dbt_cloud.yml 파일

dbt_cloud.yml 파일

dbt_cloud.yml 파일은 dbt platform CLI, dbt VS Code 확장 같은 dbt 도구들이 dbt platform에 인증할 때 사용하는 자격 증명을 저장해요. dbt platform에서 다운로드해 로컬 .dbt 디렉터리에 저장할 수 있어요.

출처: 문서

본문

이 페이지는 다음을 다뤄요:

이 파일을 안전하게 보관하세요dbt_cloud.yml 파일은 API 키를 포함해요. 안전하게 저장하고 버전 관리에 커밋하지 않도록 하세요.

dbt_cloud.yml 다운로드

파일을 다운로드하는 방법은 dbt platform CLI를 설정하느냐 dbt VS Code 확장이냐에 따라 달라요. 다운로드한 dbt_cloud.yml에는 personal access token (PAT)이 포함돼요.

  1. dbt platform에서 작업할 프로젝트를 선택해요. 프로젝트에는 개발 환경이 이미 설정되어 있어야 해요.
  2. Account settingsYour profile로 이동한 다음 도구에 맞는 단계를 따라요:
  • dbt platform CLI: CLIConfigure Cloud authentication으로 이동해 Download CLI configuration file을 클릭해요.
  • dbt VS Code 확장: VS Code ExtensionSet up your credentials로 이동해 Download credentials를 클릭해요.
  1. 파일을 .dbt 디렉터리로 옮겨요. 아직 없다면 다음 빠른 설정(한 줄) 옵션 중 하나를 시도해요:

    Mac / Linux

    mkdir -p ~/.dbt && mv ~/Downloads/dbt_cloud.yml ~/.dbt/dbt_cloud.yml
    

    Windows

    mkdir %USERPROFILE%\.dbt 2>nul & move %USERPROFILE%\Downloads\dbt_cloud.yml %USERPROFILE%\.dbt\dbt_cloud.yml
    

    .dbt 디렉터리를 수동으로 만들고 이동하기

    .dbt 디렉터리가 없었다면 다음 권장 단계로 하나 만드는 게 좋아요. 이미 .dbt 디렉터리가 있다면 dbt_cloud.yml 파일을 그 안으로 옮기기만 하면 돼요. .dbt 디렉터리에 대한 몇 가지 정보:

    • .dbt 디렉터리는 파일 시스템 루트의 숨김 폴더예요. dbt 구성 파일을 저장하는 데 쓰여요. . 접두사로 숨김 폴더를 만들어서 Finder나 File Explorer에서 기본적으로 보이지 않아요.
    • 숨김 파일·폴더를 보려면 macOS에서는 Command + Shift + G, Windows에서는 Ctrl + Shift + G를 눌러요. 그러면 "Go to Folder" 대화상자가 열리고 .dbt 디렉터리를 검색할 수 있어요.

    .dbt 디렉터리 만들기

    1. dbt 프로젝트 저장소를 로컬에 클론해요.
    2. 만들 폴더 이름과 함께 mkdir 명령어를 사용해요.
    • macOS를 쓰면 ~ 접두사를 추가해 파일 시스템 루트에 .dbt 폴더를 만들어요:

      • macOS: mkdir ~/.dbt
      • Windows: mkdir %USERPROFILE%\.dbt

    dbt_cloud.yml 파일 옮기기

    mv 명령어로 dbt_cloud.yml 파일을 .dbt 디렉터리로 옮기거나, "Go to Folder" 대화상자로 Downloads 폴더를 열어 드래그-앤-드롭으로 옮길 수 있어요.

    터미널로 옮기려면 mv/move 명령어를 사용해요. 이 명령어는 Downloads 폴더에서 .dbt 폴더로 dbt_cloud.yml을 이동해요. dbt_cloud.yml 파일이 다른 곳에 있다면 경로를 그에 맞게 조정해요.

    Mac 또는 Linux

    명령줄에서 mv 명령어로 dbt_cloud.yml 파일을 .dbt 디렉터리로 옮겨요. 방금 다운로드해서 Downloads 폴더에 있다면 명령어는 대략 이렇게 될 거예요:

    mv ~/Downloads/dbt_cloud.yml ~/.dbt/dbt_cloud.yml
    

    Windows

    명령줄에서 move 명령어를 사용해요. 파일이 Downloads 폴더에 있다고 가정하면 명령어는 대략 이렇게 될 거예요:

    move %USERPROFILE%\Downloads\dbt_cloud.yml %USERPROFILE%\.dbt\dbt_cloud.yml
    

    다운로드한 파일에 숫자 접미사가 붙어 있다면(예: dbt_cloud(2).yml), 옮기기 전에 dbt_cloud.yml로 이름을 바꿔요. dbt platform CLI와 확장은 정확한 파일 이름만 찾아요.

  2. dbt_project.ymldbt-cloud 블록project-id가 작업 중인 프로젝트와 일치하는지 확인해요. 이렇게 하면 도구를 dbt platform에 등록·연결하고 Mesh나 deferral 같은 platform 기능을 활성화해요.

프로젝트 업데이트 또는 전환

dbt_cloud.yml 파일은 머신 로컬에 있으며 자동으로 업데이트되지 않아요. 다음 경우에 다시 다운로드해야 해요:

  • 새 프로젝트에 접근 권한을 얻어 로컬에서 작업하고 싶을 때
  • 프로젝트가 계정에서 제거되거나 프로젝트 접근 권한이 바뀌었을 때
  • 토큰이 바뀌거나 회전(rotate)되었을 때
  • 계정이 리전을 옮기는 등 계정 호스트가 바뀌었을 때

파일은 같은 dbt platform 계정의 여러 프로젝트를 포함할 수 있어요. 프로젝트를 전환하려면 context.active-project를 사용하려는 프로젝트의 project-id로 업데이트해요. 활성 프로젝트는 projects 아래에 나열된 프로젝트 중 하나와 일치해야 해요.

여러 dbt platform 계정에서 작업한다면 계정마다 별도의 dbt_cloud.yml 파일을 유지하고, 사용할 파일을 .dbt 디렉터리로 옮겨요.

파일 구조

dbt_cloud.yml 파일의 구조는 다음과 같아요:

dbt_cloud.yml

version: "1"
context:
  active-host: your_active_host       # for example, "abc123.us1.dbt.com"
  active-project: your_project_id     # for example, "123456"
projects:
  - project-name: your_project_name
    project-id: your_project_id
    account-name: your_account_name
    account-id: your_account_id
    account-host: your_account_host   # for example, "abc123.us1.dbt.com"
    token-name: your_token_name       # for example, "cloud-cli-1234"
    token-value: your_token_value

  - project-name: your_project_name
    project-id: your_project_id
    account-name: your_account_name
    account-id: your_account_id
    account-host: your_account_host
    token-name: your_token_name
    token-value: your_token_value

예를 들어 "Jaffle and wizard shop" 계정이 있다면 dbt_cloud.yml 파일은 이렇게 보일 거예요:

dbt_cloud.yml

version: "1"
context:
  active-host: "abc123.us1.dbt.com"
  active-project: "123456"
projects:
  - project-name: "Project 1"
    project-id: "123"
    account-name: "Jaffle and wizard shop" 
    account-id: "1"
    account-host: "abc123.us1.dbt.com"
    token-name: "cloud-cli-1091"
    token-value: "dbtu_token_value"            # this would be a longer token value
  - project-name: "Project 2"
    project-id: "456"
    account-name: "Jaffle and wizard shop"
    account-id: "1"
    account-host: "abc123.us1.dbt.com"
    token-name: "cloud-cli-1091"
    token-value: "dbtu_token_value"
  - project-name: "Project 3"
    project-id: "789"
    account-name: "Jaffle and wizard shop"
    account-id: "1"
    account-host: "abc123.us1.dbt.com"
    token-name: "cloud-cli-1091"
    token-value: "dbtu_token_value"

필드 참조

Field Required Description
version Yes 파일의 스키마 버전. 현재 "1".
context.active-host Yes 기본으로 사용할 account-host. Account settings 페이지에서 찾을 수 있어요.
context.active-project Yes 명령어를 실행할 때 기본으로 사용할 프로젝트의 project-id. projects 아래 나열된 project-id와 일치해야 해요.
context.defer-env-id No 빌드 아티팩트를 위해 defer할 환경 ID. 프로젝트 기본 deferral 환경의 선택적 오버라이드. dbt platform CLI 전용. Configure deferral 참고.
projects.project-name Yes 프로젝트의 사람이 읽기 좋은 이름.
projects.project-id Yes dbt platform 프로젝트 ID. 프로젝트를 볼 때 URL에서 찾아요(예: …/projects/123456).
projects.account-name Yes 계정의 사람이 읽기 좋은 이름.
projects.account-id Yes dbt platform 계정 ID.
projects.account-host Yes 계정의 호스트. 예: cloud.getdbt.com, emea.dbt.com, 또는 단일 테넌트 액세스 URL.
projects.token-name Yes Personal access token (PAT)의 이름.
projects.token-value Yes PAT 값. 비밀로 취급해요.

dbt_project.yml의 dbt-cloud 블록

dbt-cloud 블록은 프로젝트의 dbt_project.yml 파일(dbt_cloud.yml이 아니라)에 사는 동반 설정이에요. dbt platform CLI, Studio IDE, dbt v2에 로컬 프로젝트가 어떤 dbt platform 프로젝트에 해당하는지 알려줘요.

dbt_project.yml

name:
version:
# Your project configs...

dbt-cloud:
  project-id: your_project_id
  defer-env-id: '123456'  # optional
Field Required Description
project-id Yes 이 로컬 프로젝트가 매핑되는 dbt platform 프로젝트 ID. 프로젝트를 볼 때 URL에서 찾아요(예: https://YOUR_ACCESS_URL/develop/26228/projects/123456123456).
defer-env-id No 빌드 아티팩트를 위해 defer할 환경 ID. dbt v2 auto-deferral과 dbt platform CLI deferral 오버라이드에 사용돼요.
account_id No dbt v2 전용. 이 로컬 프로젝트가 속한 dbt platform 계정 ID. 이 블록의 다른 필드와 달리 하이픈이 아니라 밑줄이라는 점을 유의해요.

더 알아보기 (Learn more)