인프런 커뮤니티 질문&답변
강의 관련 질문
작성
·
30
·
수정됨
1
안녕하세요 강사님
dbt랑 airflow를 현재 수강중인 직장인입니다.
배울수록 굉장히 활용범위가 넓은 툴이라고 생각이 됩니다.
두가지 질문 드리고 싶은데요
1) 현재 저는 dbt+Airflow 기반으로 CRM 분석 마트 테이블을 팀에 적용하려고 하고 있습니다. 현재 raw테이블을 자동화해서 airflow로 db에 적재하여 사용하고 있는데요, 조인 결합, 가공을 통한 2차, 3차 테이블들은 현재 수동으로 만들어지고 있고 이를 자동화하려고 하고 있는데 현재 운영 및 성과 분석을 위한 너무 많은 테이블이 생기면서 점점 복잡해지고 있어 처음 만든 저도 헷갈려지는 단계에 왔는데...설계 관리(테이블간 관계, 단계로직을 정리하여 적재)하는 것에 대한 노하우가 있으신지 궁금합니다. 그리고 설계 이후 dbt로 만든 모델을 팀원들(분석가나 마케터) 쉽게 활용할 수 있게 하려면, 어떤 방식으로 문서화나 공유를 하시나요?
2) Airflow DAG에서 dbt run/test를 통합할 때, 실행 단위를 모델 단위로 쪼개는 게 좋은가요, 아니면 전체 프로젝트 단위로 돌리는 게 좋은가요?
답변 2
0
1) 현재 저는 dbt+Airflow 기반으로 CRM 분석 마트 테이블을 팀에 적용하려고 하고 있습니다. 현재 raw테이블을 자동화해서 airflow로 db에 적재하여 사용하고 있는데요, 조인 결합, 가공을 통한 2차, 3차 테이블들은 현재 수동으로 만들어지고 있고 이를 자동화하려고 하고 있는데 현재 운영 및 성과 분석을 위한 너무 많은 테이블이 생기면서 점점 복잡해지고 있어 처음 만든 저도 헷갈려지는 단계에 왔는데...설계 관리(테이블간 관계, 단계로직을 정리하여 적재)하는 것에 대한 노하우가 있으신지 궁금합니다. 그리고 설계 이후 dbt로 만든 모델을 팀원들(분석가나 마케터) 쉽게 활용할 수 있게 하려면, 어떤 방식으로 문서화나 공유를 하시나요?
--> 노하우는 아무래도 말씀하신 것처럼 "굉장히 활용범위가 넓은 툴"이다보니, 절대적인 방법은 없는 것 같습니다. 상황에 따라 너무 많은 노하우가 있어서 뭘 공유드려야할지 모르겠네요. dbt는 말그대로 'tool(도구)'이기 때문에, 그 전에 정보계에서의 데이터의 logical modeling과 layer에 대한 설계, 그리고 데이터 공급/사용 방식에 대한 정책 수립이 가장 최우선이고, 이를 빠르게 실행하고 쉽게 관리할 수 있게 하는게 dbt라고 생각합니다.
팀원들(분석가나 마케터) 쉽게 활용하도록 가이드를 주는것은 저도 아직 많이 고민하고 있는 문제이기도 합니다. 가능한 GUI를 제공하는 것, 이를 통한 백그라운드에서의 자동화(encapsulation)가 사실상 핵심이긴한 것 같아요. 그래서 streamlit 통해서 필요한 툴이나 아이디어를 빠르게 delivery 해보고, 서버화가 필요하면 간단하게 앱으로도 구축하면 좋은 것 같습니다. 마치 dbt cloud를 직접 만드는 느낌 처럼요.
2) Airflow DAG에서 dbt run/test를 통합할 때, 실행 단위를 모델 단위로 쪼개는 게 좋은가요, 아니면 전체 프로젝트 단위로 돌리는 게 좋은가요?
정답은 없습니다. 상황에 따라 너무 다른 문제이기 때문에, 주어진 상황에서 여러 방식을 시도해보면서 각각의 장단점을 비교해볼 수 밖에 없는 문제에요..
0
안녕하세요, 인프런 AI 인턴입니다.
베일리님이 질문 주신 dbt와 Airflow를 활용한 CRM 분석 마트 테이블 구축과 관련된 사항을 설명드리겠습니다.
dbt 모델 문서화 및 팀 간 공유 방법:
- 문서화: dbt는 자동화된 문서화를 지원하기 때문에
dbt docs기능을 활용하여 기본 레벨의 문서를 쉽게 생성할 수 있습니다.yml파일을 통해 변수나 모델 설명을 문서화하고, HTML 파일로 생성된 문서를 팀에 배포할 수 있습니다.
- 공유 방식: 생성된 문서는 웹 서버에 배포하거나, 사내 Wiki나 Confluence와 같은 협업 도구에 올려서 팀원들이 쉽게 접속할 수 있게 만드는 것이 좋습니다. 팀 내 슬랙이나 이메일을 통해 정기적으로 업데이트된 내용을 공유해서 항상 최신 정보를 팀원들이 접할 수 있게 할 수 있습니다.
- 문서화: dbt는 자동화된 문서화를 지원하기 때문에
Airflow DAG에서 dbt 실행 단위 선택:
- 모델 단위로 실행: 각각의 모델에 대해 독립적인 DAG task를 설정하면, 특정 모델에 대한 문제가 생겼을 때 더 빠르게 해결할 수 있으며, 필요 시 일부 모델만 업데이트할 수 있어 효율적입니다.
- 전체 프로젝트 단위로 실행: 프로젝트 전체를 한 번에 실행하면 개별 모델 간의 의존성 관리가 용이하며, 대규모 데이터 업데이트나 일관성 있는 데이터셋 구성을 쉽게 관리할 수 있습니다.
- 권장 사항: 실제 상황에 따라 다릅니다. 모델의 복잡성, 데이터의 양, 팀의 요구에 따라 다르므로, 필요에 따라 병행하여 실행하거나 테스트 환경에서 모델 단위로 실행하고, 운영 환경에서는 전체 프로젝트를 빌드하는 방법을 고려해볼 수 있습니다.
- 모델 단위로 실행: 각각의 모델에 대해 독립적인 DAG task를 설정하면, 특정 모델에 대한 문제가 생겼을 때 더 빠르게 해결할 수 있으며, 필요 시 일부 모델만 업데이트할 수 있어 효율적입니다.
기존의 유사한 질문들에 대한 링크를 통해 보다 상세한 답변을 참고하실 수 있습니다:
- dbt 자동화 및 협업 도구 활용
- Airflow와 dbt 통합 실행 방법
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.




