このドキュメントでは、BigQuery の Dataform ワークスペースから作成されたテーブルとビューを分離するために、ワークスペース コンパイル オーバーライドを作成する方法について説明します。ワークスペース コンパイル オーバーライドを使用して、分離された Dataform 開発環境を作成できます。
ワークスペース コンパイル オーバーライドについて
Dataform ワークスペースで SQL ワークフロー コードを開発する場合、Dataform は、ワークスペースでコードをリアルタイムでし、ワークスペースの結果を作成します。Dataform は、ワークフロー設定ファイルで定義された設定を使用して、ワークスペースのコンパイル結果を作成します。その後、ワークスペースで実行をトリガーすると、Dataform は BigQuery でワークスペースの結果を実行します。
リポジトリ内のすべてのワークスペースで ワークフロー設定 に設定されたデフォルト設定をオーバーライドするには、ワークスペース コンパイル オーバーライドを作成します。
ワークスペース コンパイル オーバーライドを使用すると、リポジトリ内のすべてのワークスペースで次の設定をオーバーライドできます。
- プロジェクト
workflow_settings.yaml
にdefaultProject
として、またはdataform.json
にdefaultDatabase
として設定されたワークスペースの結果を Dataform が実行する Google Cloud プロジェクト。- テーブルの接頭辞
- リポジトリ内のすべてのワークスペースのすべてのテーブル名に追加されたカスタム プレフィックス。
- スキーマの接尾辞
定義されるテーブルのスキーマに追加されるカスタム接尾辞
workflow_settings.yaml
のdefaultDataset
、dataform.json
のdefaultSchema
、またはテーブルのconfig
ブロックのschema
パラメータとして設定します。
分離された開発環境を作成するため、一意の オーバーライドを使用してワークスペースを分離できます。テーブル接頭辞とスキーマ接尾辞のオーバーライドは、${workspaceName}
変数を使用して動的に変更できます。
ワークスペースで手動で実行をトリガーすると、${workspaceName}
変数によりワークスペースの名前がワークスペース コンパイル オーバーライドに挿入されます。
テーブルの接頭辞として ${workspaceName}
を設定すると、Dataform ではワークスペース内のすべてのテーブルの名前にワークスペースの名前が追加されます。実行後、BigQuery でテーブルの元のワークスペースを確認できます。
${workspaceName}
をスキーマの接尾辞として設定すると、Dataform はワークスペースの名前を defaultSchema
に追加し、ワークスペース専用のカスタム スキーマを作成します。実行後、BigQuery で、特定のワークスペースから実行されたすべてのテーブルを専用のスキーマ内で配置できます。
動的なワークスペース コンパイル オーバーライドの例
次の例は、リポジトリを操作する開発者にちなんで名付けられたワークスペースを含むリポジトリに適用される動的なワークスペース コンパイル オーバーライドを示しています(Sasha
および Kai
)。
この例のワークスペース コンパイル オーバーライドの目的は、Ssha と Kai 用に分離された開発環境を作成することです。
次のデフォルト設定は、workflow_settings.yaml
で設定されています。
defaultProject
:analytics
defaultDataset
: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
)
始める前に
Google Cloud コンソールの [Dataform] ページに移動します。
リポジトリを作成または選択します。
省略可: デフォルトの Google Cloud プロジェクトをオーバーライドするには、使用する Google Cloud プロジェクトへのアクセス権を Dataform サービス アカウントに付与します。
必要なロール
ワークスペース コンパイル オーバーライドを作成するために必要な権限を取得するには、リポジトリに対する Dataform 管理者 (roles/dataform.admin
)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織へのアクセスを管理するをご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
ワークスペース コンパイル オーバーライドを作成する
Dataform ワークスペース コンパイル オーバーライドを作成するには、次の手順に従います。
- リポジトリの [設定] に移動します。
- [編集] をクリックします。
- [ワークスペース コンパイル オーバーライド] ペインで、[Google Cloud プロジェクト ID] フィールドに Google Cloud プロジェクトの ID を入力します。
- [テーブル接頭辞] フィールドに、すべてのテーブル名の接頭辞を入力します。
- 省略可: ワークスペースごとに一意の動的テーブル接頭辞を作成するには、テーブル接頭辞として
${workspaceName}
を入力します。
- 省略可: ワークスペースごとに一意の動的テーブル接頭辞を作成するには、テーブル接頭辞として
- [Schema suffix] フィールドに、作成したテーブルまたはビューのスキーマに追加するサフィックスを入力します。
- 省略可: ワークスペースごとに一意の動的スキーマの接尾辞を作成するには、テーブル接尾辞として「
${workspaceName}
」を入力します。
- 省略可: ワークスペースごとに一意の動的スキーマの接尾辞を作成するには、テーブル接尾辞として「
- [保存] をクリックします。
Dataform は、リポジトリ内のすべてのワークスペースにワークスペース コンパイル オーバーライドを適用します。
ワークスペース コンパイル オーバーライドを編集する
Dataform ワークスペース コンパイル オーバーライドを編集する手順は次のとおりです。
- リポジトリの [設定] に移動します。
- [編集] をクリックします。
- ワークスペース コンパイル オーバーライドを編集し、[保存] をクリックします。
ワークスペース コンパイル オーバーライドを削除する
Dataform ワークスペース コンパイル オーバーライドを削除するには、次の手順に従います。
- リポジトリで [設定] に移動します。
- [編集] をクリックします。
- [ワークスペース コンパイル オーバーライド] ペインで、[すべてをクリアする] をクリックしてから、[保存] をクリックします。
次のステップ
- 実行を手動でトリガーする方法については、実行のトリガーをご覧ください。