안녕하세요. 현재 데이터엔지니어로 근무하고 있습니다.
언급해주신 운영계와 정보계로 DB를 나누어봤을때 저는 운영계에 있는 데이터를 추출하여 데이터를 분석하기 쉬운 형태로 가공하여 정보계 DB로 업로드하는 업무를 담당하고 있습니다.
운영계에는 말그대로 운영에 용이하게끔 DB가 설계되어있습니다. 잘 알고 계시듯 RDB형태로 설계가 되어있죠.
운영계에서 회원한명의 정보를 검색하려면 대부분 여려개의 테이블을 Join하는 쿼리가 동작할 것입니다.
보통 데이터분석을 할때는 적게는 수십만건~수억건의 레코드를 조회하게 되는데,
분석용 데이터를 운영계 DB에서 추출한다면 데이터를 조회하는데 시간이 오래걸리거나 혹은 작업이 아예 불가능할 수도 있습니다.
운영계 DB에 부하를 줄 수도 있기 때문이죠.
제 경우엔 위와 같은 이유로 운영DB의 부하량이 적은 시간대에
미리미리 데이터를 가공하는 쿼리 혹은 스크립트를 배치프로세스로 실행시켜 정보계 DB에 분석에 용이한 형태로 Join하고 지울건지우고 합칠건 합치고 나눌건 나눠 최대한 하나의 테이블 형태로 만들어 정보계 DB에 업로드해둡니다.
요약 : 운영계는 RDB형태의 테이블 구조
정보계(DW)에는 최대한 Join이 발생하지 않게끔 하나의 테이블로 만들어 분석에 용이한 구조
제 경험에 의한 답변이라, 많이 부족할수도 있겠습니다.
좋은하루 되세요!