dbt 설명과 테스트 생성

사례 연구: dbt로 전자상거래 데이터 모델 구축

Susan Sun

Freelance Data Scientist

docs: dbt 사용자 정의 설명

  • yaml 파일에 사용자 정의 설명
  • 문서화 대상: dbt models, sources, seeds, data tests
  • 네이밍 규칙:
    _<data source>__<asset>.yml
    
  • 자산과 동일한 디렉터리에 저장
looker_ecommerce/
  macros/
  models/
    _looker__models.yml     <------ 
    _looker__sources.yml    <------
    stg_looker__distribution_center.sql
    stg_looker__orders.sql
  seeds/
    looker__distribution_center.csv
사례 연구: dbt로 전자상거래 데이터 모델 구축

docs: dbt 모델 yaml

예시 _looker__models.yml:

version: 2

models:
  - name: model_name
    description: This is a table
    columns:
      - name: column_name
        description: This is a column
      - name: column_name
        description: This is a column

참고:

  • version: 2는 dbt에서 사용하는 스키마 구성 형식입니다
  • models는 이 사용자 정의가 문서화하는 자산을 정의합니다
  • 테이블명 앞 공백 2칸
  • 열 이름 앞 공백 4칸
사례 연구: dbt로 전자상거래 데이터 모델 구축

dbt 데이터 테스트: not null 및 unique

  • 기본 데이터 테스트 4개는 yaml에 정의됩니다:
    • unique
    • not_null
    • accepted_values
    • relationship

1.unique: 각 행의 값이 고유

- name: table_name
  columns: 
    - name: column_name
      data_tests:
        - not_null
    ...

2.not_null: 어떤 행도 null 값이면 안 됨

- name: table_name
  columns: 
    - name: column_name
      data_tests:
        - unique
        - not_null
    - name: column_name
      data_tests:
        - unique
사례 연구: dbt로 전자상거래 데이터 모델 구축

dbt 데이터 테스트: accepted values

3.accepted_values: 목록의 값만 허용됨

- name: table_name
  columns: 
    - name: column_name
      data_tests:
        - accepted_values:
            values: ['value_a', 'value_b', 'value_c', NULL]
사례 연구: dbt로 전자상거래 데이터 모델 구축

dbt 데이터 테스트: relationships

4.relationships: 테이블 간 참조 무결성(외래 키)

- name: table_1
  columns: 
    - name: column_1
      data_tests:
        - relationships:
            to: ref('table_2')
            field: column_2
사례 연구: dbt로 전자상거래 데이터 모델 구축

Ayo berlatih!

사례 연구: dbt로 전자상거래 데이터 모델 구축

Preparing Video For Download...