ワークスペース コンパイル オーバーライドを作成する

このドキュメントでは、BigQuery の Dataform ワークスペースから作成されたテーブルとビューを分離するために、ワークスペース コンパイル オーバーライドを作成する方法について説明します。ワークスペース コンパイル オーバーライドを使用して、分離された Dataform 開発環境を作成できます。

ワークスペース コンパイル オーバーライドについて

Dataform ワークスペースで SQL ワークフロー コードを開発する場合、Dataform は、ワークスペースでコードをリアルタイムでし、ワークスペースの結果を作成します。Dataform は、dataform.json ファイルで定義された設定を使用してワークスペースの結果を作成します。その後、ワークスペースで実行をトリガーすると、Dataform は BigQuery でワークスペースの結果を実行します。

リポジトリ内のすべてのワークスペースで dataform.json に設定されたデフォルト設定をオーバーライドするには、ワークスペース コンパイル オーバーライドを作成します。

ワークスペース コンパイル オーバーライドを使用すると、リポジトリ内のすべてのワークスペースで次の設定をオーバーライドできます。

プロジェクト
dataform.jsondefaultDatabase として設定されたワークスペースの結果を Dataform が実行する Google Cloud プロジェクト。
テーブルの接頭辞
リポジトリ内のすべてのワークスペースのすべてのテーブル名に追加されたカスタム プレフィックス。
スキーマの接尾辞
dataform.jsondefaultSchema またはテーブルの config ブロックの schema パラメータで定義されたテーブルのスキーマに追加されるカスタム サフィックス。

分離された開発環境を作成するため、一意の オーバーライドを使用してワークスペースを分離できます。テーブル接頭辞とスキーマ接尾辞のオーバーライドは、${workspaceName} 変数を使用して動的に変更できます。

ワークスペースで手動で実行をトリガーすると、${workspaceName} 変数によりワークスペースの名前がワークスペース コンパイル オーバーライドに挿入されます。

${workspaceName} をテーブル接頭辞として設定すると、Dataform はワークスペースの名前をワークスペース内のすべてのテーブルの名前に追加します。実行後、BigQuery でテーブルの送信元のワークスペースを特定できます。

${workspaceName} をスキーマ サフィックスとして設定すると、Dataform はワークスペースの名前を defaultSchema に追加し、ワークスペース専用のカスタム スキーマを作成します。実行後、BigQuery の専用スキーマで、特定のワークスペースから実行されたすべてのテーブルを見つけることができます。

動的なワークスペース コンパイル オーバーライドの例

次の例は、リポジトリを操作する開発者にちなんで名付けられたワークスペースを含むリポジトリに適用される動的なワークスペース コンパイル オーバーライドを示しています(Sasha および Kai)。

この例のワークスペース コンパイル オーバーライドの目的は、Ssha と Kai 用に分離された開発環境を作成することです。

次のデフォルト設定は dataform.json に設定されています。

  • defaultDatabase: analytics
  • defaultSchema: dataform

次のワークスペース コンパイル オーバーライドでは、リポジトリ内の各ワークスペースに動的なテーブル接頭辞とスキーマ接尾辞を作成します。

  • Google Cloud プロジェクト ID: analytics_dev
  • テーブルの接頭辞: ${workspaceName}
  • スキーマの接尾辞: ${workspaceName}

Sasha が Sasha ワークスペースで手動で実行をトリガーすると、Dataform は次の設定でコンテンツを実行します。

  • Google Cloud プロジェクト: analytics_dev
  • スキーマ: dataform_sasha
  • テーブル名: sasha_name(例: sasha_orders)。

Kai が Kai ワークスペースで手動で実行をトリガーすると、Dataform は次の設定でコンテンツを実行します。

  • Google Cloud プロジェクト: analytics_dev
  • スキーマ: dataform_kai
  • テーブル名: kai_name、例: kai_orders

始める前に

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

    [Dataform] ページに移動

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

  3. 省略可: デフォルトの Google Cloud プロジェクトをオーバーライドするには、使用する Google Cloud プロジェクトに Dataform サービス アカウントにアクセス権を付与します。

必要なロール

ワークスペース コンパイル オーバーライドを作成するために必要な権限を取得するには、リポジトリに対する Dataform 管理者 roles/dataform.admin)IAM ロールを付与するよう管理者に依頼してください。ロールの付与の詳細については、アクセス権の管理をご覧ください。

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

ワークスペース コンパイル オーバーライドを作成する

Dataform ワークスペース コンパイル オーバーライドを作成するには、次の手順に従います。

  1. リポジトリで [設定] に移動します。
  2. [編集] をクリックします。
  3. [ワークスペース コンパイル オーバーライド] ペインで、[Google Cloud プロジェクト ID] フィールドに Google Cloud プロジェクトの ID を入力します。
  4. [テーブル接頭辞] フィールドに、すべてのテーブル名の接頭辞を入力します。
    1. (省略可)各ワークスペースに固有の動的テーブル接頭辞を作成するには、テーブル接頭辞として「${workspaceName}」と入力します。
  5. [スキーマのサフィックス] フィールドに、作成されたテーブルまたはビューのスキーマに追加するサフィックスを入力します。
    1. 省略可: ワークスペースごとに一意の動的スキーマ サフィックスを作成するには、テーブル サフィックスとして ${workspaceName} を入力します。
  6. [保存] をクリックします。

Dataform は、リポジトリ内のすべてのワークスペースにワークスペース コンパイル オーバーライドを適用します。

ワークスペース コンパイル オーバーライドを編集する

Dataform ワークスペース コンパイル オーバーライドを編集する手順は次のとおりです。

  1. リポジトリで [設定] に移動します。
  2. [編集] をクリックします。
  3. ワークスペース コンパイル オーバーライドを編集し、[保存] をクリックします。

ワークスペース コンパイル オーバーライドを削除する

Dataform ワークスペース コンパイル オーバーライドを削除するには、次の手順に従います。

  1. リポジトリで [設定] に移動します。
  2. [編集] をクリックします。
  3. [ワークスペース コンパイル オーバーライド] ペインで、[すべてをクリアする] をクリックしてから、[保存] をクリックします。

次のステップ

  • 実行を手動でトリガーする方法については、トリガー実行をご覧ください。