Dataform の機能の概要

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

リポジトリ

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

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

  • 構成ファイル

    Config 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 は、workflow_settings.yaml で構成されているデフォルトのコンパイル設定を使用して、ワークスペース内の SQL ワークフロー コードをリアルタイムで SQL にコンパイルし、ワークスペースのコンパイル結果を作成します。

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

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

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

ワークフローの実行

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

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

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

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

次のステップ