Creating a DBT Project

우상욱·2024년 2월 27일
0

DBT

목록 보기
2/16

What is DBT project?


DBT 프로젝트에는 DBT 내의 모든 작업에 필요한 모든(선택적) 구성요소가 포함됩니다.

  • 프로젝트 이름, 폴더 이름
  • 데이터 소스 및 대상
  • SQL 쿼리
  • 템플릿
  • 데이터 및 데이터 관계에 대한 문서

DBT는 특정 시스템에서 폴더 구조로 구현됩니다. 따라서 필요에 따라 쉽게 복사, 수정 또는 소스 제어에 배치할 수도 있습니다.

How to create a news project


  • dbt init sub command 사용
    • 프로젝트의 이름 입력
    • 어떤 데이터베이스, 어떤 데이터웨어하우스를 사용할 것인지
  • dbt init <projectname>
    • 프로젝트 명을 통합해서, 이름 입력을 할 필요가 없게 할 수 있습니다.
  • dbt init은 프로젝트에 대한 최상위 프로젝트 폴더와 하위 폴더 및 구성 파일을 생성합니다.

Defining configuration with project profiles


DBT 내에서 프로필은 지정된 배포 시나리오와 가장 유사합니다.

  • Development
  • Staging / Test
  • Production

DBT 프로젝트는 다수의 프로필을 가질 수 있습니다. 배포 시나리오에 따라 다양한 웨어하우스를 선택할 수도 있습니다. 이 프로필들은 profiles.yml 파일에서 정의합니다.

  • profiles.yml 파일 예시
marketing_campaign_results:
  outputs:
    dev:
      type: duckdb
      path: dbt.duckdb
    prod:
      type: snowflake
      ...
  target: dev

DuckDB는 로컬에서 개발 및 테스트하는 데 유용하지만, Snowflake는 다른 사용자가 데이터에 액세스해야할 가능성이 높으므로, 프로덕션에서 더 잘 사용됩니다.

YAML


  • Yet Another Markup Language
  • 텍스트 기반 파일 형식이지만 파이썬과 마찬가지로 공백 및 들여쓰기가 중요합니다.
  • YAML은 상대적으로 사람이 읽을 수 있는 형식으로 인해서, configuration을 위해서 많은 개발 시나리오에서 사용됩니다.

DuckDB


  • 오픈소스 서버리스 데이터베이스(SQLite과 유사)
  • 데이터웨어하우스와 같은 분석용으로 설계되었으며, 벡터화된 특성으로 인해 속도가 빠릅니다.
  • dbt-duckdb

예시


  1. dbt init 명령 실행

  2. 프로젝트 이름, 데이터웨어하우스 설정

  3. profile.yml 파일 수정

nyc_yellow_taxi:
  outputs:
    dev:
      type: duckdb
      path: dbt.duckdb
  target: dev
  1. dbt debug 명령 실행 -> 유효성 및 커넥션 확인
profile
데이터엔지니어

0개의 댓글