Dataform で SQL ワークフローを作成して実行する
このクイックスタートでは、SQL ワークフローを作成して BigQuery で実行するための Dataform のプロセスについて説明します。
始める前に
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the BigQuery and Dataform APIs.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the BigQuery and Dataform APIs.
必要なロール
このチュートリアルのすべてのタスクを実行するために必要な権限を取得するには、プロジェクトに対して次の IAM ロールを付与するよう管理者に依頼してください。
-
Dataform 管理者(
roles/dataform.admin
)- リポジトリ -
Dataform 編集者(
roles/dataform.editor
)- ワークスペースとワークフローの呼び出し
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
Dataform リポジトリを作成する
Google Cloud コンソールの [Dataform] ページに移動します。
[リポジトリを作成] をクリックします。
[リポジトリの作成] ページで、次の操作を行います。
[リポジトリ ID] フィールドに「
quickstart-repository
」と入力します。[リージョン] リストで
europe-west4
を選択します。[作成] をクリックします。
Dataform 開発ワークスペースを作成して初期化する
Google Cloud コンソールの [Dataform] ページに移動します。
[
quickstart-repository
] をクリックします。[開発ワークスペースを作成] をクリックします。
[開発ワークスペースを作成] ウィンドウで、次の操作を行います。
[ワークスペース ID] フィールドに「
quickstart-workspace
」と入力します。[作成] をクリックします。
開発ワークスペース ページが表示されます。
[ワークスペースを初期化] をクリックします。
ビューを作成する
以降のセクションでは、後でテーブルのデータソースとして使用するビューを定義します。
ビューを定義する SQLX ファイルを作成する
[ファイル] ペインで、
definitions/
の横にある [その他] メニューをクリックします。[ファイルを作成] をクリックします。
[新しいファイルを作成] ペインで、次の操作を行います。
[ファイルパスを追加] フィールドに「
definitions/quickstart-source.sqlx
」と入力します。[ファイルを作成] をクリックします。
ビューを定義する
[ファイル] ペインで、定義フォルダを展開します。
[
definitions/quickstart-source.sqlx
] をクリックします。ファイルに次のコード スニペットを入力します。
config { type: "view" } SELECT "apples" AS fruit, 2 AS count UNION ALL SELECT "oranges" AS fruit, 5 AS count UNION ALL SELECT "pears" AS fruit, 1 AS count UNION ALL SELECT "bananas" AS fruit, 0 AS count
[書式] をクリックします。
テーブルを作成する
以降のセクションでは、SQLX ファイルでテーブルタイプを定義してから、同じファイル内にテーブル構造を定義する SELECT
ステートメントを記述します。
テーブル定義用の SQLX ファイルを作成する
[ファイル] パネルで、
definitions/
の横にある [その他] メニューをクリックして、[ファイルの作成] を選択します。[ファイルパスを追加] フィールドに「
definitions/quickstart-table.sqlx
」と入力します。[ファイルを作成] をクリックします。
テーブルの種類、構造、依存関係を定義する
[ファイル] ペインで、
definitions/
ディレクトリを展開します。quickstart-table.sqlx
を選択して、次のテーブル型とSELECT
ステートメントを入力します。config { type: "table" } SELECT fruit, SUM(count) as count FROM ${ref("quickstart-source")} GROUP BY 1
[書式] をクリックします。
テーブルタイプを定義した後、BigQuery に quickstart-source
がまだ存在しないため、Dataform はクエリ検証エラーをスローします。このエラーは、このチュートリアルの後半で SQL ワークフローを実行するときに解決されます。
Dataform に BigQuery へのアクセス権を付与する
BigQuery でワークフローを実行するには、Dataform サービス アカウントに次のロールが必要です。
- Dataform が読み取りと書き込みの両方のアクセス権を必要とするプロジェクトに対する BigQuery データ編集者。 通常は、Dataform リポジトリをホストするプロジェクトが含まれます。
- Dataform が読み取り専用アクセス権を必要とするプロジェクトに対する BigQuery データ閲覧者。
- Dataform リポジトリをホストするプロジェクトに対する BigQuery ジョブユーザー。
これらのロールを付与するには、次の手順に沿って操作します。
Google Cloud コンソールの [IAM] ページに移動します。
[追加] をクリックします。
[新しいプリンシパル] フィールドに、Dataform サービス アカウント ID を入力します。
[ロールを選択] プルダウン リストで、[BigQuery ジョブユーザー] ロールを選択します。
[別のロールを追加] をクリックし、[ロールを選択] プルダウン リストで [BigQuery データ編集者] ロールを選択します。
[別のロールを追加] をクリックし、[ロールを選択] プルダウン リストで [BigQuery データ閲覧者] ロールを選択します。
[保存] をクリックします。
ワークフローを実行する
Google Cloud コンソールの [Dataform] ページに移動します。
quickstart-workspace
ページで、[実行を開始] をクリックします。[すべてのアクション] をクリックします。
[実行] ペインで [実行を開始] をクリックします。
Dataform は、デフォルトのリポジトリ設定を使用して、
dataform
という BigQuery データセットにワークフローの内容を作成します。
Dataform で実行ログを表示します。
quickstart-repository
ページで、[ワークフローの実行ログ] をクリックします。実行の詳細を表示するには、最新の実行をクリックします。
クリーンアップ
このページで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、次の手順を行います。
BigQuery で作成したデータセットを削除する
BigQuery アセットの料金が発生しないようにするには、dataform
というデータセットを削除します。
Google Cloud コンソールで BigQuery ページに移動します。
[エクスプローラ] パネルでプロジェクトを開き、[
dataform
] を選択します。[アクション] メニューをクリックして、[削除] を選択します。
[データセットを削除する] ダイアログで、フィールドに「
delete
」と入力してから、[削除] をクリックします。
Dataform 開発ワークスペースを削除する
Dataform 開発ワークスペースの作成に費用は発生しませんが、開発ワークスペースを削除するには、次の手順を行います。
Google Cloud コンソールの [Dataform] ページに移動します。
[
quickstart-repository
] をクリックします。[開発ワークスペース] タブで、
quickstart-workspace
によって [その他] メニューをクリックし、[削除] を選択します。[削除] をクリックして確定します。
Dataform リポジトリの削除
Dataform リポジトリの作成に費用は発生しませんが、リポジトリを削除するには次の手順を行います。
Google Cloud コンソールの [Dataform] ページに移動します。
quickstart-repository
から、 [その他] メニューをクリックし、[削除] を選択します。[リポジトリの削除] ウィンドウで、リポジトリの名前を入力して削除を確定します。
[削除] をクリックして確定します。
次のステップ
Dataform の詳細については、Dataform の概要をご覧ください。
Dataform の機能の詳細については、Dataform の機能の概要をご覧ください。
Dataform コアの詳細については、Dataform コアの概要をご覧ください。
リポジトリのデフォルトの Dataform 設定をオーバーライドする方法については、[Dataform を構成] の設定をご覧ください。
BigQuery でのデータセットの管理の詳細については、データセットの管理をご覧ください。
BigQuery でのテーブルの管理の詳細については、テーブルの管理をご覧ください。