このページでは、特定のリポジトリの Dataform 処理設定を編集する方法について説明します。
設定ファイルを編集してスキーマの名前を変更したり、リポジトリにカスタム コンパイル変数を追加したりできます。
リポジトリの設定について
各 Dataform リポジトリには、一意の workflow_settings.yaml
設定ファイルが含まれます。このファイルには、Google Cloud プロジェクト ID と、Dataform が BigQuery でアセットを公開するスキーマが含まれています。
Dataform では、workflow_settings.yaml
ファイルを編集してニーズに合うようにオーバーライドできるデフォルト設定を使用します。
次のコードサンプルは、サンプル workflow_settings.yaml
ファイルを示しています。
defaultProject: my-gcp-project-id
defaultDataset: dataform
defaultLocation: australia-southeast2
defaultAssertionDataset: dataform_assertions
サンプルコード、Key-Value ペア、ワークフロー設定のその他のオプションについては、ワークフロー設定の構成ファイル リファレンスをご覧ください。
プロジェクト コードで workflow_settings.yaml
で定義されたプロパティに、dataform.projectConfig
オブジェクトのプロパティとしてアクセスできます。次の workflow_settings.yaml
オプションからコードアクセス可能な dataform.projectConfig
オプションへのマッピングが適用されます。
defaultProject
=>defaultDatabase
.defaultDataset
=>defaultSchema
.defaultAssertionDataset
=>assertionSchema
.projectSuffix
=>databaseSuffix
.datasetSuffix
=>schemaSuffix
.namePrefix
=>tablePrefix
.
dataform.projectConfig
オブジェクトの詳細については、IProjectConfig
Dataform コアのリファレンスをご覧ください。
次のサンプルコードは、ビューの SELECT
ステートメントで呼び出される dataform.projectConfig
オブジェクトを示しています。
config { type: "view" }
SELECT ${when(
!dataform.projectConfig.tablePrefix,
"table prefix is set!",
"table prefix is not set!"
)}
始める前に
必要なロール
Dataform 設定の構成に必要な権限を取得するには、リポジトリに対する Dataform 管理者(roles/dataform.admin
)IAM ロールの付与を管理者に依頼してください。ロールの付与の詳細については、アクセスの管理をご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
スキーマ名を構成する
このタスクでは、workflow_settings.yaml
ファイルで defaultDataset
プロパティと defaultAssertionSchema
プロパティを構成する方法について説明します。
スキーマの名前を変更するには、次の手順に沿って操作します。
開発ワークスペースの [ファイル] ペインで、
workflow_settings.yaml
ファイルをクリックします。defaultDataset
、defaultAssertionSchema
、またはその両方の値を編集します。
次のサンプルコードは、workflow_settings.yaml
ファイル内のカスタム defaultDataset
の名前を示しています。
...
defaultDataset: mytables
...
カスタム コンパイル変数を作成する
コンパイル変数には、Dataform API リクエストで をコンパイルのオーバーライドで変更できる値が含まれています。
workflow_settings.yaml
でコンパイル変数を定義し、選択したテーブルに追加すると、
Dataform API コンピレーション オーバーライドで値を変更するを使用して、条件付きでテーブルを実行できます。
リポジトリ全体で使用できるコンパイル変数を作成するには、次の手順に沿って操作します。
- Dataform 開発ワークスペースに移動します。
- [ファイル] ペインで、
workflow_settings.yaml
ファイルを選択します。 次のコード スニペットを入力します。
"vars": { "YOUR_VARIABLE":"VALUE" }
以下を置き換えます。
- YOUR_VARIABLE は、変数の名前に置き換えます。
- VALUE は、コンパイル変数のデフォルト値に置き換えます。
次のサンプルコードは、workflow_settings.yaml
で myVariableValue
に設定された myVariableName
コンパイル変数を示しています。
...
vars:
myVariableName: myVariableValue
...
次のサンプルコードは、executionSetting
コンパイル変数が dev
に設定された workflow_settings.yaml
ファイルを示しています。
defaultProject: default_bigquery_database
defaultLocation:us-west1
defaultDataset: dataform_data,
vars:
executionSetting: dev
テーブルにコンパイル変数を追加する
SQLX テーブル定義ファイルにコンパイル変数を追加する手順は次のとおりです。
- Dataform 開発ワークスペースに移動します。
- [ファイル] ペインで、SQLX テーブル定義ファイルを選択します。
このファイルに、
when
句を次の形式で入力します。${when(dataform.projectConfig.vars.YOUR_VARIABLE === "SET_VALUE", "CONDITION")}
以下を置き換えます。
- YOUR_VARIABLE は、変数の名前に置き換えます(
executionSetting
など)。 - SET_VALUE は、変数の値(例:
staging
)に置き換えます。 - CONDITION は、テーブルの実行条件に置き換えます。
- YOUR_VARIABLE は、変数の名前に置き換えます(
次のサンプルコードは、when
句と、ステージング実行設定でデータの 10% を実行する executionSetting
変数を含むテーブル定義 SQLX ファイルを示しています。
select
*
from ${ref("data")}
${when(
dataform.projectConfig.vars.executionSetting === "staging",
"where mod(farm_fingerprint(id) / 10) = 0",
)}
次のコードサンプルは、when
句と myVariableName
変数を含むビュー定義 SQLX ファイルを示しています。
config { type: "view" }
SELECT ${when(
dataform.projectConfig.vars.myVariableName === "myVariableValue",
"myVariableName is set to myVariableValue!",
"myVariableName is not set to myVariableValue!"
)}
次のステップ
Dataform プロジェクトの設定の詳細については、
IProjectConfig
リファレンスをご覧ください。Dataform でコードのバージョン管理を行う方法については、コードのバージョン管理をご覧ください。
テーブルの定義方法については、テーブルの作成をご覧ください。