인프런 커뮤니티 질문&답변

KyungJun Lee님의 프로필 이미지
KyungJun Lee

작성한 질문수

실무형 데이터 분석을 위한 핵심 SQL

데이터 웨어하우스 소개

만약 데이터 웨어하우스에서 분석한 내용을 다시 고객에게 서빙하고 싶다면 어떻게 하나요?

해결된 질문

작성

·

112

·

수정됨

1

안녕하세요 한기용 강사님! 궁금한 내용이 있어 질문드려요

 

OLTP에 저장되어 있는 데이터를 OLAP로 가져와서 내부 직원들이 테이블을 분석하던 중 고객들에게 제공하면 좋을 새로운 데이터(예: 통계 데이터 등)가 재가공된다면 이 데이터를 어떻게 서빙하나요?

재가공된 데이터를 OLTP 데이터 저장소(Postgres 등)에 다시 저장해서 이를 API에 연결해서 서빙하는지 궁금합니다.

답변 1

0

한기용님의 프로필 이미지
한기용
지식공유자

아주 좋은 질문입니다. 제가 지금 Airflow로 만드는 데이터 파이프라인이라는 강의를 만들고 있는데 거기서 다루는 개념 중의 하나가 Reverse ETL이라는 겁니다. 보통 ETL이라고 하면 데이터 소스에서 데이터를 추출,변환후 데이터 웨어하우스에 테이블의 형태로 로딩을 하게 되는데 그와 정반대로 가는 형태의 데이터 파이프라인을 Reverse ETL이라고 부릅니다. 그게 바로 말씀해주신 형태로 데이터 웨어하우스에서 작업한 내용을 프로덕션 DB (MySQL이나 Postgres) 등에 테이블로 저장하거나 NoSQL/Cache등에 저장하는 형태로 움직이는 거고 유데미 등에서 일할 때 실제 사용했던 유스 케이스가 있었습니다.

혹시라도 더 궁금한 부분이 있다면 편하게 알려주세요.

KyungJun Lee님의 프로필 이미지
KyungJun Lee
질문자

자세한 답변 감사합니다! 🙂 추가로 몇 가지 더 궁금한 점이 있어 질문드립니다.

  1. 답변에서 언급해주신 "Cache"는 혹시 Redis를 말씀하신 걸까요?

  2. 프로덕션 DB로 데이터를 옮길 때, 배치 작업은 Airflow를 사용하면 될 것 같습니다. 그런데 데이터 소스에서 실시간으로 들어오는 데이터를 데이터 웨어하우스로 실시간으로 전송하고, 이를 다시 실시간으로 프로덕션 DB로 옮기는 과정에서 사용할 수 있는 툴이나 아키텍처가 있을까요?

    혹 질문의 범위가 강의 내용의 밖이라면 답변해주시지 않아도 괜찮습니다!

한기용님의 프로필 이미지
한기용
지식공유자

  1. 답변에서 언급해주신 "Cache"는 혹시 Redis를 말씀하신 걸까요?

맞습니다.

  1. 프로덕션 DB로 데이터를 옮길 때, 배치 작업은 Airflow를 사용하면 될 것 같습니다. 그런데 데이터 소스에서 실시간으로 들어오는 데이터를 데이터 웨어하우스로 실시간으로 전송하고, 이를 다시 실시간으로 프로덕션 DB로 옮기는 과정에서 사용할 수 있는 툴이나 아키텍처가 있을까요?

보통은 Kafka등을 통해서 realtime update를 지원하는 DW로 로딩하기도 하고 (Snowflake의 경우) 아니면 프로덕션 DB에서 DW로 복사를 할때 Change Data Capture라는 거를 세팅해서 하기도 합니다. 반대 방향으로는 일반적으로는 보통 테이블의 크기가 작아서 그냥 간단하게 코드를 Python으로 작성해서 주기적으로 업데이트하는 것이 안전합니다. 프로덕션 DB를 실시간으로 조작하는 건 보통 백엔드 엔지니어링이나 데브옵스 엔지니어링팀에서 좋아하지 않고 그럴 만한 이유가 있는 경우도 사실은 많지 않습니다.

KyungJun Lee님의 프로필 이미지
KyungJun Lee

작성한 질문수

질문하기