Dataform の設定を構成する

このページでは、特定のリポジトリの 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!"
  )}

始める前に

  1. リポジトリを作成する

  2. リポジトリ内に開発ワークスペースを作成して初期化します

必要なロール

Dataform 設定の構成に必要な権限を取得するには、リポジトリに対する Dataform 管理者roles/dataform.admin)IAM ロールの付与を管理者に依頼してください。ロールの付与の詳細については、アクセスの管理をご覧ください。

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

スキーマ名を構成する

このタスクでは、workflow_settings.yaml ファイルで defaultDataset プロパティと defaultAssertionSchema プロパティを構成する方法について説明します。

スキーマの名前を変更するには、次の手順に沿って操作します。

  1. 開発ワークスペースの [ファイル] ペインで、workflow_settings.yaml ファイルをクリックします。

  2. defaultDatasetdefaultAssertionSchema、またはその両方の値を編集します。

次のサンプルコードは、workflow_settings.yaml ファイル内のカスタム defaultDataset の名前を示しています。

  ...
  defaultDataset: mytables
  ...

カスタム コンパイル変数を作成する

コンパイル変数には、Dataform API リクエストで をコンパイルのオーバーライドで変更できる値が含まれています。

workflow_settings.yaml でコンパイル変数を定義し、選択したテーブルに追加すると、 Dataform API コンピレーション オーバーライドで値を変更するを使用して、条件付きでテーブルを実行できます。

リポジトリ全体で使用できるコンパイル変数を作成するには、次の手順に沿って操作します。

  1. Dataform 開発ワークスペースに移動します。
  2. [ファイル] ペインで、workflow_settings.yaml ファイルを選択します。
  3. 次のコード スニペットを入力します。

    "vars": {
     "YOUR_VARIABLE":"VALUE"
    }
    

    以下を置き換えます。

    • YOUR_VARIABLE は、変数の名前に置き換えます。
    • VALUE は、コンパイル変数のデフォルト値に置き換えます。

次のサンプルコードは、workflow_settings.yamlmyVariableValue に設定された myVariableName コンパイル変数を示しています。

  ...
  vars:
    myVariableName: myVariableValue
  ...

次のサンプルコードは、executionSetting コンパイル変数が dev に設定された workflow_settings.yaml ファイルを示しています。

defaultProject: default_bigquery_database
defaultLocation:us-west1
defaultDataset: dataform_data,
vars:
  executionSetting: dev

テーブルにコンパイル変数を追加する

SQLX テーブル定義ファイルにコンパイル変数を追加する手順は次のとおりです。

  1. Dataform 開発ワークスペースに移動します。
  2. [ファイル] ペインで、SQLX テーブル定義ファイルを選択します。
  3. このファイルに、when 句を次の形式で入力します。

    ${when(dataform.projectConfig.vars.YOUR_VARIABLE === "SET_VALUE", "CONDITION")}
    

    以下を置き換えます。

    • YOUR_VARIABLE は、変数の名前に置き換えます(executionSetting など)。
    • SET_VALUE は、変数の値(例: staging)に置き換えます。
    • CONDITION は、テーブルの実行条件に置き換えます。

次のサンプルコードは、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!"
  )}

次のステップ