오픈소스 Dataform CLI 사용

이 문서에서는 오픈소스 Dataform 명령줄 인터페이스(CLI)를 사용하여 터미널을 통해 SQL 워크플로를 로컬로 개발하는 방법을 보여줍니다.

오픈소스 Dataform CLI를 사용하면 Google Cloud 외부에서 로컬로 Dataform Core를 초기화, 컴파일, 테스트, 실행할 수 있으며 다음 데이터 웨어하우스에 애셋을 배포할 수 있습니다.

  • BigQuery
  • Snowflake
  • Redshift
  • Azure SQL Data Warehouse
  • Postgres

Dataform은 동등한 Dataform CLI 명령어를 실행하는 데 사용할 수 있는 Docker 이미지를 배포합니다.

시작하기 전에

Dataform CLI를 설치하기 전에 NPM을 설치합니다.

Dataform CLI 설치

  • Dataform CLI를 설치하려면 다음 명령어를 실행하세요.

    npm i -g @dataform/cli@^2.3.2
    

Dataform 프로젝트 초기화

  • 새 Dataform 프로젝트를 초기화하려면 프로젝트 디렉터리 내에서 다음 명령어를 실행합니다.

    dataform init
    

Dataform 업데이트

  • Dataform 프레임워크를 업데이트하려면 dataform.json 파일이 포함된 프로젝트 디렉터리 내에서 다음 명령어를 실행합니다.

    npm i @dataform/core@^2.3.2
    

Dataform CLI 업데이트

  • Dataform CLI 도구를 업데이트하려면 다음 명령어를 실행합니다.

    npm i -g @dataform/cli@^2.3.2
    

사용자 인증 정보 파일 만들기

Dataform에는 웨어하우스에 연결하고 디스크에 .df-credentials.json 파일을 만들기 위한 사용자 인증 정보 파일이 필요합니다.

사용자 인증 정보 파일을 만들려면 다음 단계를 수행합니다.

  1. 다음 명령어를 실행합니다.

    dataform init-creds WAREHOUSE
    

    WAREHOUSE를 웨어하우스(bigquery, postgres, redshift, snowflake 또는 sqldatawarehouse)로 바꿉니다.

  2. 사용자 인증 정보 파일 생성 과정을 안내하는 init-creds 마법사를 따릅니다.

프로젝트 만들기

빈 Dataform 프로젝트의 구조는 다음과 같습니다.

   project-dir
   ├── definitions
   ├── includes
   ├── package.json
   └── dataform.json
  • BigQuery에 애셋을 배포하기 위한 Dataform 프로젝트를 만들려면 다음 명령어를 실행하세요.

    dataform init bigquery PROJECT_NAME --default-database YOUR_GOOGLE_CLOUD_PROJECT_ID
    

    PROJECT_NAME을 프로젝트 이름으로 바꾸고 YOUR_GOOGLE_CLOUD_PROJECT_ID를 Google Cloud 프로젝트 ID로 바꿉니다.

  • Postgres, Redshift, Snowflake 또는 Azure SQL Data Warehouse에 애셋을 배포하는 Dataform 프로젝트를 만들려면 다음 명령어를 실행하세요.

    dataform init WAREHOUSE PROJECT_NAME
    

    PROJECT_NAME을 프로젝트 이름으로 바꾸고 WAREHOUSE를 웨어하우스(postgres, redshift, snowflake 또는 sqldatawarehouse)로 바꿉니다.

프로젝트 클론

타사 Git 저장소에서 기존 Dataform 프로젝트를 클론하려면 Git 제공업체의 안내를 따릅니다.

  • 저장소가 클론되면 클론된 저장소 디렉터리 내에서 다음 명령어를 실행합니다.

    dataform install
    

테이블 정의

definitions/ 폴더에 정의를 저장합니다.

  • 테이블을 정의하려면 다음 명령어를 실행합니다.

    echo "config { type: 'TABLE_TYPE' } SELECT_STATEMENT" > definitions/FILE.sqlx
    

    다음을 바꿉니다.

    • TABLE_TYPE을 테이블 유형으로 바꿉니다(table, incremental 또는 view).
    • SELECT_STATEMENT를 테이블을 정의하는 SELECT 문으로 바꿉니다.
    • FILE을 테이블 정의 파일의 이름으로 바꿉니다.

다음 코드 샘플은 example SQLX 파일에서 뷰를 정의합니다.

echo "config { type: 'view' } SELECT 1 AS test" > definitions/example.sqlx

수동 어설션 정의

definitions/ 폴더에 정의를 저장합니다.

  • 수동 어설션을 정의하려면 다음 명령어를 실행합니다.

    echo "config { type: 'assertion' } SELECT_STATEMENT" > definitions/FILE.sqlx
    

    다음을 바꿉니다.

    • SELECT_STATEMENT를 어설션을 정의하는 SELECT 문으로 바꿉니다.
    • FILE을 커스텀 SQL 작업 정의 파일의 이름으로 바꿉니다.

커스텀 SQL 작업 정의

definitions/ 폴더에 정의를 저장합니다.

  • 커스텀 SQL 작업을 정의하려면 다음 명령어를 실행합니다.

    echo "config { type: 'operations' } SQL_QUERY" > definitions/FILE.sqlx
    

    다음을 바꿉니다.

    • SQL_QUERY를 커스텀 SQL 작업으로 바꿉니다.
    • FILE을 커스텀 SQL 작업 정의 파일의 이름으로 바꿉니다.

컴파일 출력 보기

Dataform은 코드를 실시간으로 컴파일합니다.

  • 터미널에서 컴파일 프로세스의 출력을 보려면 다음 명령어를 실행합니다.

    dataform compile
    
  • 컴파일 프로세스의 출력을 JSON 객체로 보려면 다음 명령어를 실행합니다.

    dataform compile --json
    
  • 커스텀 컴파일 변수로 컴파일 출력을 보려면 다음 명령어를 실행하세요.

    dataform compile --vars=SAMPLE_VAR=SAMPLE_VALUE,foo=bar
    

    다음을 바꿉니다.

    • SAMPLE_VAR을 커스텀 컴파일 변수로 바꿉니다.
    • SAMPLE_VALUE를 커스텀 컴파일 변수의 값으로 바꿉니다.

코드 실행

코드를 실행하기 위해 Dataform은 데이터 웨어하우스에 액세스하여 현재 상태를 확인하고 그에 따라 결과 SQL을 맞춤설정합니다.

  • 데이터 웨어하우스에서 Dataform 프로젝트의 코드를 실행하려면 다음 명령어를 실행합니다.

    dataform run
    
  • 커스텀 컴파일 변수로 데이터 웨어하우스에서 Dataform 프로젝트의 코드를 실행하려면 다음 명령어를 실행합니다.

    dataform run --vars=SAMPLE_VAR=SAMPLE_VALUE,sampleVar2=sampleValue2
    

    다음을 바꿉니다.

    • SAMPLE_VAR을 커스텀 컴파일 변수로 바꿉니다.
    • SAMPLE_VALUE를 커스텀 컴파일 변수의 값으로 바꿉니다.
  • 데이터 웨어하우스에서 Dataform 프로젝트 코드를 실행하고 모든 테이블을 처음부터 다시 빌드하려면 다음 명령어를 실행합니다.

    dataform run --full-refresh
    

--full-refresh가 없으면 Dataform은 테이블을 처음부터 다시 빌드하지 않고 증분 테이블을 업데이트합니다.

  • 웨어하우스 내에서 실행하지 않고 웨어하우스의 현재 상태에 맞게 조정된 최종 컴파일 SQL 코드를 보려면 다음 명령어를 실행합니다.

    dataform run --dry-run
    

도움 받기

  • 사용 가능한 모든 명령어와 옵션을 나열하려면 다음 명령어를 실행하세요.

    dataform help
    
  • 특정 명령어에 대한 설명을 보려면 다음 명령어를 실행합니다.

    dataform help COMMAND
    

    COMMAND를 알아보려는 명령어로 바꿉니다.

다음 단계