
dbt - 기초
dbt 프로젝트, models, sources, refs, tests, 문서화, materializations, seeds
1dbt(data build tool)란 무엇인가요?
dbt(data build tool)란 무엇인가요?
답변
dbt는 분석가와 데이터 엔지니어가 SQL 또는 Python으로 데이터 웨어하우스 내에서 직접 변환을 작성할 수 있게 해주는 데이터 변환 도구입니다. 로드 전에 변환하는 기존 ETL과 달리, 데이터를 먼저 웨어하우스에 로드한 다음 그 자리에서 변환하는 ELT(Extract, Load, Transform) 접근 방식을 따릅니다. dbt는 model 간 종속성, test, 문서화를 자동으로 관리합니다.
2dbt 프로젝트의 기본 구조는 무엇인가요?
dbt 프로젝트의 기본 구조는 무엇인가요?
답변
dbt 프로젝트는 주요 폴더를 중심으로 구성됩니다: models/는 변환을 정의하는 SQL 파일을 포함하고, seeds/는 테이블로 로드되는 CSV 파일을 보관하며, tests/는 사용자 정의 테스트를 저장하고, macros/에는 재사용 가능한 Jinja 함수가 있으며, snapshots/는 상태 캡처를 유지합니다. 루트의 dbt_project.yml 파일은 프로젝트(이름, 버전, 기본 materialization)를 구성하고, profiles.yml은 웨어하우스 연결을 정의합니다.
3dbt에서 model이란 무엇인가요?
dbt에서 model이란 무엇인가요?
답변
dbt model은 데이터 변환을 정의하는 SELECT 문을 포함하는 SQL 파일입니다. 각 model은 models/ 폴더의 .sql 파일에 해당하며 실행 시 데이터 웨어하우스에 테이블 또는 뷰를 생성합니다. model은 ref() 함수를 통해 다른 model을 참조할 수 있으며, dbt가 올바른 순서로 실행하는 종속성 그래프(DAG)를 만듭니다.
dbt에서 ref() 함수의 용도는 무엇인가요?
dbt에서 source란 무엇이며 어떻게 선언하나요?
+17 면접 질문