dbt Seeds
- 외부 데이터 파일(CSV, Excel 등)을 DBT 프로젝트 내에서 테이블로 변환하는 기능
- 외부 데이터를 데이터베이스 or 데이터 웨어하우스로 로드할 때 사용
dbt Sources
- 외부 시스템에 있는 원본 데이터를 정의하는 기능
- Source 테이블을 참조하는 테이블 모두 바꿔야하는 번거로운 작업 감소
- 스키마, 테이블에 alias를 부여하여 Source 테이블이 바뀌더라도 이후 작업에 영향 X
- Source 테이블에 새 레코드가 있는지 체크해주는 기능 제공
- 예시
더보기
1. models/sources.yml 파일 생성
version: 2
sources:
- name: SchemaAlias -- 스키마 별칭
schema: raw_data
tables:
- name: event -- 테이블 별칭
identifier: user_event
2. 해당 Source 테이블을 참조하는 sql 수정
WITH src_user_event AS (
SELECT * FROM raw_data.user_event
) SELECT
user_id, datestamp, item_id, clicked, purchased, paidamount
FROM src_user_event
->
WITH src_user_event AS (
SELECT * FROM {{ source("SchemaAlias", "event") }}
) SELECT
user_id, datestamp, item_id, clicked, purchased, paidamount
FROM src_user_event
dbt Tests
- 데이터 품질을 테스트하는 방법
- 내장 일반 테스트 (Generic)
- Unique, not_null, accepted_values, relationships 등의 테스트 지원
- models 폴더에 작성
- 예시
더보기
1. models/schema.yml 파일 생성
version: 2
models:
- name: dim_user_metadata -- 테이블 명
description: A dimension table with user metadata
columns:
- name: user_id
description: The primary key of the table
tests:
- unique
- not_null
2. dbt test 명령어를 통해 실행
- 커스텀 테스트 (Singular)
- 기본적으로 SELECT로 간단하며 결과가 리턴되면 실패로 간주
- tests 폴더에 작성
Documentation
- 모델, 데이터 소스, 변환 과정 등을 문서화할 수 있는 기능
- 문서화 내용을 웹서버로 서빙
- overview.md가 기본 홈페이지
- 이미지 등의 asset 추가 가능
- 두 가지 방법
- 기존 .yml 파일에 문서화 추가
- 독립적인 markdown 파일 생성
Expectations
- dbt 확장판!
- 특정 데이터에 대해 기대하는 조건이나 규칙을 설정하는 기능
- 데이터 테스트의 일종
'데이터 > dbt' 카테고리의 다른 글
[dbt] 1. dbt? (1) | 2024.11.20 |
---|