column_types
column_types
column_types는 시드(seed) 파일의 컬럼이 데이터베이스에서 어떤 타입으로 생성될지를 지정하는 설정이에요. 지정하지 않으면 dbt가 시드 파일의 컬럼 값을 보고 타입을 스스로 추론해요. 타입 추론이 기대와 다르게 동작할 때만 필요한 설정이랍니다.
출처: 문서
본문
column_types로 시드의 컬럼 데이터베이스 타입을 명시적으로 지정할 수 있어요. 컬럼 이름을 키로, 유효한 데이터타입을 값으로 하는 딕셔너리를 제공하면 돼요. (유효한 데이터타입은 데이터베이스마다 달라요.) 지정하지 않으면 dbt는 시드 파일의 컬럼 값에 기반해서 데이터타입을 추론해요.
사용법 (Usage)
dbt_project.yml 파일에 컬럼 타입을 지정해요:
seeds:
jaffle_shop:
country_codes:
+column_types:
country_code: varchar(2)
country_name: varchar(32)
또는:
seeds:
- name: country_codes
config:
column_types:
country_code: varchar(2)
country_name: varchar(32)
이전에 dbt seed를 실행한 적이 있다면 변경 사항이 적용되도록 dbt seed --full-refresh 를 실행해야 해요.
column_types를 설정할 때는 시드의 전체 디렉토리 경로를 사용해야 해요. 예를 들어 seeds/marketing/utm_mappings.csv 파일이라면 이렇게 설정해요:
seeds:
jaffle_shop:
marketing:
utm_mappings:
+column_types:
...
예시 (Examples)
zipcode의 앞자리 0을 보존하려고 varchar 컬럼 타입 사용하기
seeds:
jaffle_shop: # you must include the project name
warehouse_locations:
+column_types:
zipcode: varchar(5)
권장사항 (Recommendation)
이 설정은 타입 추론이 기대대로 동작하지 않을 때처럼 꼭 필요할 때만 사용하는 게 좋아요. 그 외에는 생략해도 돼요.
더 알아보기 (Learn more)
- 시드(seeds) — dbt 시드에 대한 전반적인 개념
- dbt_project.yml 설정 — 프로젝트 설정 파일 문법