dbt seed 명령어

dbt seed 명령어

dbt seed 명령어는 프로젝트의 seed-paths에 있는 정적 CSV 파일을 데이터 웨어하우스에 테이블로 로드해요. 국가 코드, 지역 매핑, 비즈니스 정의 카테고리 같은 작고 버전 관리되는 참조 데이터셋에 적합해요.

출처: 문서

본문

dbt seed 명령어는 프로젝트의 seed-paths에 있는 정적 CSV 파일을 데이터 웨어하우스에 테이블로 로드해요. 프로젝트와 함께 유지하고 싶은 작고 버전 관리되는 참조 데이터셋(예: 국가 코드, 지역 매핑, 비즈니스 정의 카테고리 목록)에 시드를 사용하세요.

시드를 로드한 후에는 결과 테이블을 다운스트림 모델에서 참조할 수 있고, CSV가 바뀌면 dbt seed를 다시 실행할 수 있어요.

시드는 dbt_project.yml 파일에서 설정해요. 여기서 시드 파일 디렉터리·컬럼 해석 같은 옵션을 정의할 수 있어요. dbt seed 명령어는 그런 다음 CSV를 웨어하우스에 로드해서 다운스트림 모델에서 참조할 수 있게 해줘요.

개요

이 섹션은 흔한 dbt seed 결과(아티팩트와 CLI 출력)와 시드 실행 시 사용할 수 있는 옵션을 다뤄요.

실행 중 무슨 일이 있었는지 검사하거나 문제를 해결하려면 아티팩트를 사용하세요:

  • Artifacts: dbt seed 실행은 실행된 시드에 대한 run_results.json을 포함한 dbt 실행 아티팩트를 생성해요. 무엇이 포함되고 어떻게 해석하는지에 대한 자세한 내용은 Run results JSON file을 참고하세요.

시드의 일부만 실행하려면 리소스 선택을 사용하세요:

  • Selecting resources: 고급 선택 패턴(태그, 경로, 그래프 연산자 등)은 Syntax overview를 읽어보세요.

명령어 동작·로깅·런타임 설정을 제어하려면 전역 플래그를 사용하세요:

  • Flags: dbt seed는 dbt 전역 플래그를 지원해요. 전체 목록은 Command line options와 Available flags를 참고하세요.

시드 선택

dbt seed 명령어를 실행할 때 --select 플래그로 특정 시드를 실행할 수 있어요. 예를 들어:

dbt seed --select "country_codes"
Found 2 models, 3 tests, 0 archives, 0 analyses, 53 macros, 0 operations, 2 seed files

14:46:15 | Concurrency: 1 threads (target='dev')
14:46:15 |
14:46:15 | 1 of 1 START seed file analytics.country_codes........................... [RUN]
14:46:15 | 1 of 1 OK loaded seed file analytics.country_codes....................... [INSERT 3 in 0.01s]
14:46:16 |
14:46:16 | Finished running 1 seed in 0.14s.

흔한 dbt seed 호출 예시:

# Run all seeds
dbt seed

# Run one seed
dbt seed --select "country_codes"

# Rebuild selected seeds from scratch
dbt seed --select "country_codes state_codes" --full-refresh

--full-refresh 플래그

시드 테이블을 처음부터 재빌드해야 할 때(증분 업데이트 대신) --full-refresh로 시드 데이터의 완전한 재로드를 강제하세요. 이는 다음 때 유용해요:

  • 시드 데이터의 깨끗한 재로드를 강제하고 싶을 때: dbt seed --full-refresh
  • 시드 구조를 바꿨을 때(예: 컬럼 이름·타입): dbt seed --select "country_codes" --full-refresh
  • 시드 변경 후 모든 환경에서 일관된 동작이 필요할 때: dbt seed --select "country_codes state_codes" --full-refresh

시드 설정(예: 컬럼 타입과 따옴표 동작)에 대한 자세한 내용은 Seed configurations를 참고하세요.

(dbt v1.12 이상 적용)

--empty 플래그

--empty를 사용하면 데이터를 로드하지 않고 올바른 스키마로 시드 테이블을 만들 수 있어요. dbt는 CSV 파일에서 컬럼 이름·타입을 추론하지만 0행을 삽입해요. 이는 다운스트림 모델과 단위 테스트가 전체 데이터셋 로드 오버헤드 없이 테이블 구조를 필요로 하는 개발·CI 환경에서 유용해요.

예를 들어:

  • 다운스트림 모델과 단위 테스트가 컴파일·실행될 수 있도록 스키마 전용 시드 테이블을 만들기: dbt seed --empty
  • 하나의 테이블 구조만 필요할 때 특정 시드를 대상으로: dbt seed --select "country_codes" --empty

자세한 내용은 The empty flag를 참고하세요.

더 알아보기 (Learn more)