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를 참고하세요.