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)