Dataform のコード ライフサイクルの概要

このドキュメントでは、Dataform のコード ライフサイクルと、Dataform 内でのコンパイルと実行を構成する方法について説明します。

Dataform のコード ライフサイクルについて

Dataform コードのライフサイクルは、次のフェーズで構成されています。

開発
Dataform ワークスペースで SQL ワークフローを開発します。
コンパイル

Dataform は、ワークスペース内の SQL ワークフロー コードを SQL にリアルタイムでコンパイルし、ワークスペースのコンパイル結果を作成して BigQuery で実行できます。Dataform は、ワークフロー設定ファイルで定義した設定を使用してコンパイル結果を作成します。

Dataform コンパイルは、コンパイルの整合性を確保するための密閉型です。つまり、同じコードが毎回同じ SQL コンパイル結果にコンパイルされます。Dataform は、インターネットにアクセスできないサンドボックス環境でコードをコンパイルします。コンパイル中は、外部 API の呼び出しなどの追加のアクションは実行できません。

実行

ワークフローの呼び出しで、Dataform は BigQuery でワークスペースのコンパイル結果を実行します。

Dataform コードのライフサイクルをニーズに合わせて調整するには、Dataform が SQL ワークフローを実行する場所と方法に影響を与えるようにコンパイル結果を構成します。その後、実行を手動でトリガーまたはスケジュールして、Dataform が SQL ワークフロー全体またはその選択した要素を実行するタイミングを制御できます。

Dataform コンパイルを構成する方法

デフォルトでは、Dataform はワークフロー設定ファイルの設定を使用してコンパイル結果を作成します。コンパイル オーバーライドを使用してデフォルト設定をオーバーライドし、カスタム コンパイル結果を作成できます。その後、カスタム コンパイル結果の実行を手動でトリガーするか、実行をスケジュールできます。

Dataform には、コンパイル結果を構成する次のオプションがあります。

ワークスペースのコンパイルのオーバーライド
リポジトリ内のすべてのワークスペースに適用されるコンパイル オーバーライドを構成できます。ワークスペース コンパイル オーバーライドを使用して、分離された開発環境を作成できます。
リリース構成
リリース構成を作成して、Dataform リポジトリのコンパイル結果を作成するためのテンプレートを構成できます。その後、選択したリリース構成で作成されたコンパイル結果の実行をスケジュールするワークフロー構成を作成できます。
Dataform API のコンパイル オーバーライド
ターミナルで Dataform API リクエストを渡して、コンパイル オーバーライドを使用して単一のコンパイル結果を作成して実行できます。

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

ワークスペース コンパイル オーバーライドを使用すると、Dataform リポジトリ内のすべてのワークスペースに対してコンパイル オーバーライドを作成できます。ワークスペース コンパイル オーバーライドの構成は、リポジトリごとに 1 つ作成できます。

ワークスペースのコンパイル オーバーライドがあるリポジトリでワークスペースで実行を手動でトリガーすると、Dataform はこれらのオーバーライドをワークスペースのコンパイル結果に適用します。

次のワークスペース コンパイル オーバーライドを構成できます。

  • Google Cloud Dataform がワークスペースの内容を実行するプロジェクト
  • テーブルの接頭辞
  • スキーマの接尾辞

ワークスペース コンパイル オーバーライドを使用して、動的コンパイル オーバーライドで BigQuery のワークスペース コンパイル結果を分離し、分離された開発環境を作成できます。動的テーブル接頭辞とスキーマ接尾辞のコンパイル オーバーライドには、${workspaceName} 変数があります。ワークスペースで実行をトリガーすると、Dataform は ${workspaceName} 変数を現在のワークスペースの名前に置き換え、ワークスペースに固有のコンパイル オーバーライドを作成します。

ワークスペースのコンパイル オーバーライドで作成されたコンパイル結果の実行をスケジュールすることはできません。

リリース構成を作成する

リリース構成では、リポジトリのコンパイル結果を作成するための設定テンプレートを構成できます。

リリース構成では、ワークフロー設定のコンパイル オーバーライド、コンパイル変数、リポジトリ全体のコンパイル結果の作成頻度を構成できます。

リリース構成では、次のコンパイル オーバーライドを構成できます。

  • Google Cloud プロジェクト
  • テーブルの接頭辞
  • スキーマの接尾辞
  • コンパイル変数の値

Dataform リポジトリに、開発ライフサイクルの各ステージに 1 つずつ、複数のリリース構成を作成して、分離されたリポジトリのコンパイル結果を作成できます。

その後、選択したリリース構成で作成されたコンパイル結果のワークフロー構成を作成して実行をスケジュールできます。

選択したリリース構成でコンパイル結果の実行をトリガーすることもできます。

Dataform API のコンパイル オーバーライドを使用して単一のコンパイル結果を構成する

ターミナルで Dataform API リクエストを渡すことで、1 つのコンパイル結果のコンパイル オーバーライドを構成できます。

compilationResults.create リクエストでは、Dataform ワークスペースまたは指定された Git commitish の単一のコンパイル結果を作成できます。

compilationResults.create リクエストの CodeCompilationConfig オブジェクトで、コンパイル リクエストのコンパイル オーバーライドを構成できます。

次の Dataform API コンパイル オーバーライドを構成できます。

  • Google Cloud プロジェクト
  • テーブルの接頭辞
  • スキーマの接尾辞
  • コンパイル変数の値

Dataform API のコンパイル オーバーライドは、1 つのコンパイル結果と 1 つの実行に適用されることに注意してください。これらのタスクを使用して Dataform の実行をスケジュールすることはできません。

コンパイル結果は workflowInvocations.create リクエストで実行できます。

Dataform の実行を構成する方法

Dataform には、実行を構成する次のオプションがあります。

ワークスペースでの手動実行
スケジュールに関係なく、Dataform ワークスペースで SQL ワークフローの即時実行を手動でトリガーできます。SQL ワークフローで選択したアクションを実行できます。
ワークフロー構成
選択したリリース構成で作成されたコンパイル結果の実行をスケジュールできます。実行する SQL ワークフロー アクションを選択し、実行の頻度とタイムゾーンを設定できます。

ワークスペースで即時実行をトリガーする

Dataform ワークスペースでは、スケジュールに関係なく、ワークスペースで SQL ワークフローを即時に手動で実行できます。

ワークスペースで SQL ワークフローの次の要素を手動で実行できます。

リポジトリにワークスペースのコンパイル オーバーライドが含まれている場合は、Dataform がワークスペースのコンパイル結果に適用するコンパイル オーバーライドを確認できます。

ワークフロー構成を作成する

ワークフロー構成を使用すると、選択したリリース構成のコンパイル結果の実行をスケジュールできます。Dataform リポジトリに複数のワークフロー構成を作成できます。

ワークフロー構成では、次の実行設定を構成できます。

  • 適用されたコンパイル リリース構成
  • 実行する SQL ワークフロー アクションの選択
  • 実行のスケジュールとタイムゾーン

次の SQL ワークフロー アクションを実行するように選択できます。

  • すべてのアクション
  • 選択したアクション
  • 選択したタグを持つアクション

その後、Dataform は、ワークフロー構成のスケジュールされた実行時に、適用されたコンパイル結果から選択したアクションを BigQuery にデプロイします。

Dataform のリリース構成とワークフロー構成では、Dataform 内でコンパイルとスケジュールの実行を設定できます。追加のサービスは必要はありません。

ライフサイクル リソースの有効期限

Dataform は、コンパイル結果とワークフロー呼び出しを一定期間保存します。

ワークフローの呼び出しの有効期限

ワークフローの呼び出しは、90 日経過するか、手動で削除すると期限切れになります。

ワークフロー構成では、構成によって作成された最新のワークフローの呼び出しのリストを表示できます。ワークフロー構成によって作成されたワークフロー呼び出しが期限切れになると、Dataform は最近の呼び出しのリストからそのワークフロー呼び出しを削除します。

コンパイル結果の有効期限

コンパイル結果の有効期限は、作成方法によって異なります。(開発ワークスペース、リリース構成、ワークフローの呼び出し方法)

Dataform ワークスペースで SQL ワークフローを開発する場合、Dataform はコードをリアルタイムでコンパイルし、クエリの検証を行います。この方法で作成されたコンパイル結果は 24 時間後に期限切れになります。

リリース構成では、最新のコンパイル結果がライブ コンパイル結果になります。新しいコンパイル結果が現在のライブ コンパイル結果に置き換えられます。Dataform は、新しいコンパイル結果に置き換えられるまでライブ コンパイル結果を保持します。置き換えられたコンパイル結果の有効期間は最大 24 時間です。

Dataform は、リリース構成の [詳細]ページにある過去のコンパイル結果のリストから、期限切れのコンパイル結果を削除します。

Dataform は、ワークフロー呼び出しによって作成されたコンパイル結果を、ワークフローの呼び出しの全有効期間保持します。この期間は、ワークフロー呼び出しの有効期限が切れるか、削除されるまでの 24 時間です。

次のステップ