추가 테이블 설정 구성

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

시작하기 전에

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

    Dataform으로 이동

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

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

  4. 테이블을 만듭니다.

필요한 역할

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

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

테이블 설정 재정의

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

기본적으로 테이블은 dataform.json에서 설정한 스키마 및 데이터베이스 구성을 따릅니다. 테이블 이름은 테이블 정의 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")}

다음 단계