このドキュメントでは、Dataform のコード ライフサイクルと、Dataform 内でコンパイルと実行を構成する方法について説明します。
Dataform のコード ライフサイクルについて
Dataform コードのライフサイクルは、以下のフェーズから構成されています。
- Development
- Dataform ワークスペースで SQL ワークフローを開発します。
- Compilation
Dataform は、ワークスペース内の SQL ワークフロー コードを SQL にリアルタイムでコンパイルし、ワークスペースのコンパイル結果を作成して BigQuery で実行できます。Dataform は、
dataform.json
ファイルで定義された設定を使用してコンパイル結果を作成します。Dataform コンパイルは、コンパイルの整合性を確保するための密閉型です。つまり、同じコードが毎回同じ SQL コンパイル結果にコンパイルされます。Dataform は、インターネットにアクセスできないサンドボックス環境でコードをコンパイルします。コンパイル中は、外部 API の呼び出しなど、追加のアクションは使用できません。
- 実行
ワークフローの呼び出しでは、Dataform が BigQuery でワークスペースのコンパイル結果を実行します。
必要に応じて Dataform コードのライフサイクルを調整するには、Dataform が SQL ワークフローを実行する場所と方法に影響するようにコンパイル結果を構成します。その後、Dataform が SQL ワークフロー全体または選択した要素を実行するタイミングに影響を与えるように、実行を手動でトリガーまたはスケジュールできます。
Dataform コンパイルの構成方法
デフォルトでは、Dataform は dataform.json
ファイルの設定を使用してコンパイル結果を作成します。デフォルト設定をコンパイルのオーバーライドでオーバーライドして、カスタム コンパイル結果を作成できます。その後、カスタム コンパイル結果の実行を手動でトリガーしたり、実行をスケジュールしたりできます。
Dataform には、コンパイル結果を構成する次のオプションが用意されています。
- ワークスペースのコンパイルのオーバーライド
- リポジトリ内のすべてのワークスペースに適用されるコンパイルのオーバーライドを構成できます。ワークスペースのコンパイル オーバーライドを使用して、分離された開発環境を作成できます。
- リリース構成
- リリース構成を作成して、Dataform リポジトリのコンパイル結果を作成するテンプレートを構成できます。その後、ワークフロー構成を作成して、選択したリリース構成で作成されたコンパイル結果の実行をスケジュールできます。
- Dataform API のコンパイルのオーバーライド
- ターミナルで Dataform API リクエストを渡すと、コンパイルのオーバーライドを使用して単一のコンパイル結果を作成して実行できます。
ワークスペースのコンパイル オーバーライドを構成する
ワークスペースのコンパイルのオーバーライドを使用すると、Dataform リポジトリ内のすべてのワークスペースにコンパイルのオーバーライドを作成できます。ワークスペースのコンパイル オーバーライドの構成は、リポジトリごとに 1 つ作成できます。
ワークスペースのコンパイルがオーバーライドされるリポジトリでワークスペースの実行を手動でトリガーすると、Dataform はこれらのオーバーライドをワークスペースのコンパイル結果に適用します。
次のワークスペース コンパイルのオーバーライドを構成できます。
- Dataform がワークスペースのコンテンツを実行する Google Cloud プロジェクト
- テーブルの接頭辞
- スキーマの接尾辞
動的コンパイル オーバーライドを使用して BigQuery でワークスペースのコンパイル結果を分離することで、ワークスペースのコンパイル オーバーライドを使用して分離された開発環境を作成できます。動的テーブル接頭辞とスキーマ サフィックスのコンパイル オーバーライドには、${workspaceName}
変数が含まれます。ワークスペースで実行をトリガーすると、Dataform は ${workspaceName}
変数を現在のワークスペースの名前に置き換え、ワークスペースに固有のコンパイル オーバーライドを作成します。
ワークスペースのコンパイル オーバーライドを使用して作成されたコンパイル結果の実行をスケジュールすることはできません。
リリース構成を作成する
リリース構成では、リポジトリのコンパイル結果を作成するための設定テンプレートを構成できます。
リリース構成では、dataform.json
設定のコンパイルのオーバーライド、コンパイル変数、リポジトリ全体のコンパイル結果の作成頻度を構成できます。
リリース構成では、次のコンパイル オーバーライドを構成できます。
- Google Cloud プロジェクト
- テーブルの接頭辞
- スキーマの接尾辞
- コンパイル変数の値
Dataform リポジトリでは、開発ライフサイクルの各ステージごとに 1 つずつ、複数のリリース構成を作成できます。これにより、分離されたリポジトリのコンパイル結果を作成できます。
その後、選択したリリース構成で作成されたコンパイル結果のワークフロー構成を作成して実行をスケジュールできます。
手動で選択したリリース構成でコンパイル結果の実行をトリガーすることもできます。
Dataform API コンパイルのオーバーライドを使用して単一のコンパイル結果を構成する
ターミナルで Dataform API リクエストを渡すことで、単一のコンパイル結果に対してコンパイルのオーバーライドを構成できます。
compilationResults.create
リクエストでは、Dataform ワークスペースまたは指定した Git コンテナ化の単一のコンパイル結果を作成できます。
compilationResults.create
リクエストの CodeCompilationConfig
オブジェクトで、コンパイル リクエストのコンパイル オーバーライドを構成できます。
次の Dataform API コンパイル オーバーライドを構成できます。
- Google Cloud プロジェクト
- テーブルの接頭辞
- スキーマの接尾辞
- コンパイル変数の値
Dataform API のコンパイル オーバーライドは、単一のコンパイル結果と 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 リリース構成の作成方法については、リリース構成の作成をご覧ください。
- ワークスペースで手動で実行をトリガーする方法については、トリガーの実行をご覧ください。
- ワークフロー構成を作成する方法については、ワークフロー構成での実行をスケジュールするをご覧ください。