dbt 모델
dbt 모델 (Models)
dbt에서 데이터를 변환하는 중심 단위가 바로 **모델(model)**이에요. 모델은 주로 하나의 select 문으로 작성돼 .sql 파일에 저장되고, dbt run을 실행하면 데이터가 웨어하우스를 떠나지 않은 채 그 안에서 변환돼요. 즉 ELT에서 마지막의 'T', Transformation을 담당하는 존재죠.
모델은 대부분 SQL로 작성하지만, 버전 1.3부터는 Python 모델도 지원해요. 복잡한 변환이나 데이터 사이언스 모델 학습, 혹은 dateutil 같은 특정 Python 패키지가 필요할 때 유용하답니다.
출처: About dbt models
모델과 현대적인 워크플로우
dbt 워크플로우의 최상위 단위는 프로젝트예요. 프로젝트는 하나의 .yml 파일(프로젝트 설정)과 .sql·.py 파일(모델)로 이뤄진 디렉토리죠. 프로젝트 파일은 dbt에게 프로젝트의 맥락을 알려주고, 모델은 dbt가 특정 데이터셋을 어떻게 만들지 알려줘요.
조직이 필요한 모델이 몇 개뿐일 수도 있지만, 대개는 중첩된 모델 구조가 필요해요. 모델 하나가 최종 select 문 하나를 담고 있고, 프로젝트에는 여러 모델이 존재하며 모델끼리 서로 참조할 수 있어요. 여기에 여러 프로젝트까지 더하면, 복잡한 데이터 변환에 드는 노력을 예전 방식과 비교해 크게 줄일 수 있죠.