추가 테이블 설정 구성

이 문서에서는 테이블 정의 파일에서 추가 테이블 설정을 구성하는 방법을 보여줍니다. Dataform Core를 사용하면 pre_operationspost_operations를 정의하여 테이블 생성 전이나 후에 SQL 문을 실행할 수 있습니다. 또한 database 또는 schema 등의 테이블 설정을 재정의하고 테이블 생성을 중지할 수 있습니다.

시작하기 전에

  1. Google Cloud 콘솔에서 Dataform 페이지로 이동합니다.

    Dataform으로 이동

  2. 저장소를 선택하거나 만듭니다.

  3. 개발 작업공간을 선택하거나 만듭니다.

  4. 테이블을 만듭니다.

필요한 역할

추가 테이블 설정을 구성하는 데 필요한 권한을 얻으려면 관리자에게 작업공간에 대한 Dataform 편집자 (roles/dataform.editor) IAM 역할을 부여해 달라고 요청하세요. 역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

커스텀 역할이나 다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.

표 설정 재정의

선택한 테이블의 스키마, 데이터베이스, 이름을 재정의할 수 있습니다.

기본적으로 테이블은 workflow_settings.yaml에서 설정한 스키마 및 데이터베이스 구성을 따릅니다. 테이블 이름은 테이블 정의 SQLX 파일의 이름과 동일합니다.

선택한 테이블의 스키마와 이름을 재정의하려면 다음 단계를 따르세요.

  1. 개발 작업공간으로 이동합니다.

  2. 파일 창에서 definitions/를 펼칩니다.

  3. SQLX 테이블 정의 파일을 엽니다.

  4. config 블록에 다음 코드 스니펫을 입력합니다.

     {
       schema: "OVERRIDDEN_SCHEMA",
       database: "OVERRIDDEN_DATABASE",
       name: "OVERRIDDEN_NAME"
     }
    

    다음을 바꿉니다.

    • OVERRIDDEN_SCHEMA: 테이블을 만들 BigQuery 데이터 세트

    • OVERRIDDEN_DATABASE: 테이블을 만들려는 BigQuery 프로젝트의 ID

    • OVERRIDDEN_NAME: 테이블의 이름으로, SQLX 테이블 정의 파일 이름과 다릅니다.

  5. (선택사항): 형식을 클릭합니다.

재정의된 테이블 이름으로 테이블 참조

  • 재정의된 테이블 이름으로 테이블을 참조하려면 ref 함수에서 name: ""에 설정된 재정의된 테이블 이름을 입력합니다.

다음 코드 샘플은 이름이 overridden_name으로 재정의된 테이블을 참조합니다.

  SELECT * FROM ${ref("overridden_name")}

테이블 생성 전에 실행할 SQL 문 정의

BigQuery에서 선택한 테이블을 만들기 전에 하나 이상의 SQL 문을 실행하도록 Dataform을 구성할 수 있습니다. Dataform에서 선택한 테이블을 만들기 전에 SQL 문을 실행하려면 테이블 정의 SQLX 파일의 pre_operations 블록에 문을 추가합니다.

Dataform에서 특정 테이블을 만들기 전에 실행되는 커스텀 SQL 문을 만들려면 다음 단계를 따르세요.

  1. 개발 작업공간으로 이동합니다.

  2. 파일 창에서 definitions/를 펼칩니다.

  3. SQLX 테이블 정의 파일을 엽니다.

  4. config 블록 외부에 pre_operations { ... }를 입력합니다.

  5. pre_operations { ... } 내부에 SQL 문을 추가합니다.

  6. 선택사항: 여러 문을 추가하려면 ---로 구분하세요.

  7. (선택사항): 형식을 클릭합니다.

다음 코드 샘플은 select 문에서 사용할 수 있는 임시 함수를 만드는 pre_operations 문을 보여줍니다.

  pre_operations {
    CREATE TEMP FUNCTION AddFourAndDivide(x INT64, y INT64)
      RETURNS FLOAT64
      AS ((x + 4) / y);
  }

테이블 생성 후에 실행할 SQL 문 정의

BigQuery에서 선택한 테이블을 만든 후에 하나 이상의 SQL 문을 실행하도록 Dataform을 구성할 수 있습니다. Dataform에서 선택한 테이블을 만든 후에 SQL 문을 실행하려면 테이블 정의 SQLX 파일의 post_operations 블록에 문을 추가합니다. post_operations 블록에 SQL 문을 여러 개 추가할 수 있습니다.

Dataform에서 특정 테이블을 만든 후에 실행되는 커스텀 SQL 문을 만들려면 다음 단계를 따르세요.

  1. 개발 작업공간으로 이동합니다.

  2. 파일 창에서 definitions/를 펼칩니다.

  3. SQLX 테이블 정의 파일을 엽니다.

  4. config 블록 외부에 post_operations { ... }를 입력합니다.

  5. post_operations { ... } 내부에 SQL 문을 추가합니다.

  6. (선택사항): 형식을 클릭합니다.

다음 코드 샘플은 생성된 테이블에 대한 액세스 권한을 그룹에 부여하는 post_operations 문을 보여줍니다.

    post_operations {
      GRANT `roles/bigquery.dataViewer`
      ON
      TABLE ${self()}
      TO "group:allusers@example.com", "user:otheruser@example.com"
    }

테이블 생성 중지

Dataform에서 BigQuery에 선택한 테이블을 만들지 못하도록 하려면 SQLX 테이블 정의 파일에서 테이블을 사용 중지하면 됩니다. Dataform은 사용 중지된 테이블을 종속 항목 그래프에 유지하지만 컴파일 및 생성을 수행하지 않습니다. 예를 들어 테이블이 실패하여 문제를 해결하는 동안 전체 워크플로가 실패하지 않게 하려는 경우에 이 방법이 유용할 수 있습니다.

표를 사용 중지하려면 다음 단계를 따르세요.

  1. 개발 작업공간으로 이동합니다.

  2. 파일 창에서 definitions/를 펼칩니다.

  3. SQLX 테이블 정의 파일을 선택합니다.

  4. 파일의 config 블록에 disabled: true을 입력합니다.

  5. (선택사항): 형식을 클릭합니다.

다음 코드 샘플은 사용 중지된 테이블을 보여줍니다.

  config {
    type: "table",
    disabled: true
  }

  select * from ${ref("source_data")}

다음 단계