Dataform の機能の概要

Dataform は、データ アナリストがテーブル、増分テーブル、ビューを開発して BigQuery にデプロイするためのサーバーレス サービスです。Dataform は、SQL ワークフロー開発、GitHub、GitLab、Azure DevOps Services、Bitbucket との接続、継続的インテグレーション、継続的デプロイ、ワークフロー実行のためのウェブ環境を提供します。

リポジトリ

各 Dataform プロジェクトは、リポジトリに保存されます。Dataform リポジトリには、JSON 構成ファイル、SQLX ファイル、JavaScript ファイルのコレクションが格納されます。

Dataform リポジトリには、次の種類のファイルが含まれています。

  • 構成ファイル

    JSON または SQLX の構成ファイルを使用すると、SQL ワークフローを構成できます。新しいテーブルとビューを作成するための一般的な構成、実行スケジュール、スキーマが含まれます。

  • 定義

    定義は、BigQuery で実行する新しいテーブル、ビュー、追加の SQL オペレーションを定義する SQLX ファイルと JavaScript ファイルです。

  • 含まれるサービス

    インクルードは、プロジェクトで使用する変数と関数を定義することができる JavaScript ファイルです。

各 Dataform リポジトリは、サービス アカウントに接続されます。サービス アカウントは、リポジトリを作成するとき、または後でサービス アカウントを編集するときに選択できます。

デフォルトでは、Dataform はプロジェクト番号から派生した次の形式のサービス アカウントを使用します。

service-YOUR_PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com

バージョン管理

Dataform は、Git バージョン管理システムを使用して、プロジェクト ファイルに加えられた各変更の記録を保持し、ファイルのバージョンを管理します。

各 Dataform リポジトリは、独自の Git リポジトリを管理することも、リモートのサードパーティ Git リポジトリに接続することもできます。Dataform リポジトリを GitHub、GitLab、Azure DevOps Services、または Bitbucket のリポジトリに接続できます。

ユーザーは、Dataform ワークスペース内で SQL ワークフロー コードをバージョン管理します。Dataform ワークスペースでは、リポジトリから変更を pull し、すべてまたは選択した変更を commit して、リポジトリの Git ブランチに push できます。

ワークフロー開発

Dataform では、開発ワークスペース内のファイルとディレクトリを変更します。開発ワークスペースは、Git リポジトリの仮想の編集可能なコピーです。Dataform は、セッション間で開発ワークスペース内のファイルの状態を保持します。

開発ワークスペースでは、Dataform コアを SQLX と JavaScript とともに使用するか、またはJavaScript のみを使用することで、SQL ワークフロー アクションを開発できます。 Dataform コアまたは JavaScript コードの書式を自動的に設定できます。

テーブルやアサーションなどの Dataform SQL ワークフローの各要素は、Dataform が BigQuery で実行するアクションに対応しています。たとえば、テーブル定義ファイルは、BigQuery でテーブルを作成または更新するアクションです。

Dataform ワークスペースでは、次の SQL ワークフロー アクションを開発できます。

JavaScript を使用して、次の方法で Dataform SQL ワークフロー コードを再利用できます。

Dataform は、ワークスペースで SQL ワークフロー コードをリアルタイムでコンパイルします。ワークスペースで、各ファイルにコンパイルされたクエリとアクションの詳細を表示できます。コンパイルされたステータスとエラーは、編集したファイルやリポジトリで表示することもできます。

BigQuery で実行する前にコンパイル済みの SQL クエリの出力をテストするには、Dataform ワークスペースでクエリのプレビューを実行します。

ワークスペースで定義された SQL ワークフロー全体を検査するには、SQL ワークフロー内のすべてのコンパイル済みアクションとそれらの関係を示すインタラクティブなコンパイル済みグラフを表示します。

ワークフローのコンパイル

Dataform は、dataform.json で構成されているデフォルトのコンパイル設定を使用して、ワークスペース内の SQL ワークフロー コードをリアルタイムで SQL にコンパイルし、ワークスペースのコンパイル結果を作成します。

コンパイルの設定をオーバーライドして、Dataform が SQL ワークフローをコンパイル結果にコンパイルする方法をカスタマイズできます。

ワークスペースのコンパイルのオーバーライドを使用すると、リポジトリ内のすべてのワークスペースでコンパイルのオーバーライドを構成できます。動的ワークスペースのオーバーライドを設定して、ワークスペースごとにコンパイル結果をカスタム作成し、ワークスペースを独立した開発環境に変換できます。Dataform がワークスペースの内容を実行する Google Cloud プロジェクトをオーバーライドし、すべてのコンパイル済みテーブルの名前に接頭辞を追加して、デフォルトのスキーマに接尾辞を追加できます。

リリース構成では、Dataform リポジトリのコンパイル結果を作成するために、コンパイル設定のテンプレートを構成できます。リリース構成では、Dataform がコンパイル結果を実行する Google Cloud プロジェクトをオーバーライドし、すべてのコンパイル済みテーブルの名前に接頭辞を追加して、デフォルトのスキーマに接尾辞を追加し、コンパイル変数を追加します。コンパイル結果の作成頻度を設定することもできます。選択したリリース構成で作成されたコンパイル結果の実行をスケジュールするには、ワークフロー構成を作成します。

ワークフローの実行

ワークフローの実行中に、Dataform は SQL ワークフローのコンパイル結果を実行して、BigQuery でアセットを作成または更新します。

BigQuery で SQL ワークフローで定義されたテーブルとビューを作成または更新するには、開発ワークスペースでワークフローの実行を手動で開始するか、実行をスケジュールします。

BigQuery では、次の方法で Dataform 実行をスケジュールできます。

エラーをデバッグするために、次の方法で実行をモニタリングできます。

次のステップ