해결된 질문
작성
·
112
·
수정됨
답변 1
0
아주 좋은 질문입니다. 제가 지금 Airflow로 만드는 데이터 파이프라인이라는 강의를 만들고 있는데 거기서 다루는 개념 중의 하나가 Reverse ETL이라는 겁니다. 보통 ETL이라고 하면 데이터 소스에서 데이터를 추출,변환후 데이터 웨어하우스에 테이블의 형태로 로딩을 하게 되는데 그와 정반대로 가는 형태의 데이터 파이프라인을 Reverse ETL이라고 부릅니다. 그게 바로 말씀해주신 형태로 데이터 웨어하우스에서 작업한 내용을 프로덕션 DB (MySQL이나 Postgres) 등에 테이블로 저장하거나 NoSQL/Cache등에 저장하는 형태로 움직이는 거고 유데미 등에서 일할 때 실제 사용했던 유스 케이스가 있었습니다.
혹시라도 더 궁금한 부분이 있다면 편하게 알려주세요.
답변에서 언급해주신 "Cache"는 혹시 Redis를 말씀하신 걸까요?
맞습니다.
프로덕션 DB로 데이터를 옮길 때, 배치 작업은 Airflow를 사용하면 될 것 같습니다. 그런데 데이터 소스에서 실시간으로 들어오는 데이터를 데이터 웨어하우스로 실시간으로 전송하고, 이를 다시 실시간으로 프로덕션 DB로 옮기는 과정에서 사용할 수 있는 툴이나 아키텍처가 있을까요?
보통은 Kafka등을 통해서 realtime update를 지원하는 DW로 로딩하기도 하고 (Snowflake의 경우) 아니면 프로덕션 DB에서 DW로 복사를 할때 Change Data Capture라는 거를 세팅해서 하기도 합니다. 반대 방향으로는 일반적으로는 보통 테이블의 크기가 작아서 그냥 간단하게 코드를 Python으로 작성해서 주기적으로 업데이트하는 것이 안전합니다. 프로덕션 DB를 실시간으로 조작하는 건 보통 백엔드 엔지니어링이나 데브옵스 엔지니어링팀에서 좋아하지 않고 그럴 만한 이유가 있는 경우도 사실은 많지 않습니다.
자세한 답변 감사합니다! 🙂 추가로 몇 가지 더 궁금한 점이 있어 질문드립니다.
답변에서 언급해주신 "Cache"는 혹시 Redis를 말씀하신 걸까요?
프로덕션 DB로 데이터를 옮길 때, 배치 작업은 Airflow를 사용하면 될 것 같습니다. 그런데 데이터 소스에서 실시간으로 들어오는 데이터를 데이터 웨어하우스로 실시간으로 전송하고, 이를 다시 실시간으로 프로덕션 DB로 옮기는 과정에서 사용할 수 있는 툴이나 아키텍처가 있을까요?
혹 질문의 범위가 강의 내용의 밖이라면 답변해주시지 않아도 괜찮습니다!