追加のアクションを設定

このドキュメントでは、次の方法について説明します。

始める前に

  1. Google Cloud コンソールで、[Dataform] ページに移動します。

    Dataform に移動

  2. リポジトリを作成または選択します。

  3. 開発ワークスペースを作成または選択します。

  4. テーブルを作成する

  5. 次のいずれかのタイプの SQLX ファイルを定義します。

必要なロール

このドキュメントのタスクを完了するのに必要な権限を取得するには、ワークスペースに対する Dataform 編集者 roles/dataform.editor)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。

必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。

テーブルの作成前に実行する SQL ステートメントを定義する

BigQuery で選択したテーブルを作成する前に、1 つ以上の 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 で選択したテーブルの作成後に 1 つ以上の 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")}

実行タグを追加する

このセクションでは、タグを Dataform コア SQLX ファイルに追加してワークフローを分類する方法について説明します。

ワークフローのコンポーネントをコレクションに整理するには、次のタイプの SQLX ファイルにカスタムタグを追加します。

  • table
  • view
  • incremental
  • assertion
  • operations

ワークフローの実行中に、選択したタグを持つファイルのみを実行できます。

Cloud Composer または Cloud Scheduler と Cloud Scheduler を併用すると、タグを特定の間隔で選択して、Dataform ワークフローを実行するスケジュールを作成できます。

タグを追加

SQLX ファイルには複数のタグを追加できます。

SQLX ファイルにタグを追加する手順は次のとおりです。

  1. 開発ワークスペースに移動します。
  2. [ファイル] ペインで definitions/ を開きます。
  3. SQLX ファイルを選択します。
  4. config ブロックに、次の形式のタグを追加します。

    tags: ["CUSTOM_TAG"]
    

    CUSTOM_TAG はタグに置き換えます。

  5. 省略可: 複数のタグを追加する場合は、カンマ(,)で区切ります。

  6. 省略可: [書式] をクリックします。

次のコードサンプルは、daily タグと hourly タグの付いた user_counts ビューを示しています。

config {
  type: "view",
  name: "user_counts",
  tags: ["daily", "hourly"]
}

次のステップ