このドキュメントでは、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 はこれらのオーバーライドをワークスペースのコンパイル結果に適用します。
次のワークスペース コンパイル オーバーライドを構成できます。
- Dataform がワークスペースのコンテンツを実行する Google Cloud プロジェクト
- テーブルの接頭辞
- スキーマの接尾辞
ワークスペース コンパイル オーバーライドを使用して、BigQuery でワークスペース コンパイル結果を動的なコンパイル オーバーライドで分離することで、分離された開発環境を作成できます。動的テーブル接頭辞とスキーマ接尾辞のコンパイル オーバーライドには、${workspaceName}
変数が含まれています。ワークスペースで実行をトリガーすると、Dataform は ${workspaceName}
変数を現在のワークスペースの名前に置き換え、ワークスペースに固有のコンパイルのオーバーライドを作成します。
ワークスペースのコンパイル オーバーライドで作成されたコンパイル結果の実行をスケジュールすることはできません。
リリース構成を作成する
リリース構成では、リポジトリのコンパイル結果を作成するための設定テンプレートを構成できます。
リリース構成では、ワークフロー設定、コンパイル変数、リポジトリ全体のコンパイル結果の作成頻度のコンパイルのオーバーライドを構成できます。
リリース構成では、次のコンパイルのオーバーライドを構成できます。
- Google Cloud プロジェクト
- テーブルの接頭辞
- スキーマの接尾辞
- コンパイル変数の値
Dataform リポジトリに複数のリリース構成を作成できます(開発ライフサイクルの各ステージに 1 つずつ)。これにより、分離されたリポジトリのコンパイル結果を作成できます。
その後、選択したリリース構成で作成されたコンパイル結果のワークフロー構成を作成して実行をスケジュールできます。
また、選択したリリース構成でコンパイル結果の実行を手動でトリガーすることもできます。
Dataform API コンパイル オーバーライドを使用して単一のコンパイル結果を構成する
ターミナルで Dataform API リクエストを渡すことで、単一のコンパイル結果のコンパイル オーバーライドを構成できます。
compilationResults.create
リクエストでは、Dataform ワークスペースまたは指定した Git comitish の単一のコンパイル結果を作成できます。
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 時間です。
次のステップ
- Dataform のコード ライフサイクルのベスト プラクティスの詳細については、コード ライフサイクルの管理をご覧ください。
- Dataform ワークスペース コンパイル オーバーライドを設定する方法については、ワークスペース コンパイル オーバーライドを作成するをご覧ください。
- Dataform API のコンパイル オーバーライドを使用して単一のコンパイル結果を構成する方法については、Dataform API でコンパイルのオーバーライドを構成するをご覧ください。
- Dataform リリース構成の作成方法については、リリース構成を作成するをご覧ください。
- ワークスペースで実行を手動でトリガーする方法については、実行のトリガーをご覧ください。
- ワークフロー構成の作成方法については、ワークフロー構成で実行をスケジュールするをご覧ください。