本番環境の実行をスケジュールする
このクイックスタートでは、Dataform で本番環境の実行をスケジュールする手順について説明します。
- Dataform リポジトリの作成
- 必要なロールを付与します。
-
productionリリース構成を作成し、productionコンパイル結果の作成頻度を設定します。次に、productionワークフロー構成を作成し、productionリリース構成を選択して、productionコンパイル結果を実行するスケジュールを設定します。
始める前に
- 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.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the BigQuery and Dataform APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles. -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the BigQuery and Dataform APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles. -
リポジトリに対する Dataform 管理者 (
roles/dataform.admin) -
ワークスペースとワークフロー呼び出しに対する Dataform 編集者 (
roles/dataform.editor) -
カスタム サービス アカウントに対するサービス アカウント ユーザー (
roles/iam.serviceAccountUser) -
プロジェクトに対するプロジェクト IAM 管理者 (
roles/resourcemanager.projectIamAdmin) - Dataform が読み取りと書き込みの両方のアクセス権を必要とするプロジェクトに対する BigQuery データ編集者(
roles/bigquery.dataEditor)。通常、これには Dataform リポジトリをホストするプロジェクトが含まれます。 - Dataform が読み取り専用アクセス権を必要とするプロジェクトに対する BigQuery データ閲覧者(
roles/bigquery.dataViewer)。 - Dataform リポジトリをホストするプロジェクトに対する BigQuery ジョブユーザー(
roles/bigquery.jobUser)。 - サービス アカウント トークン作成者(
roles/iam.serviceAccountTokenCreator) - サービス アカウント ユーザー(
roles/iam.serviceAccountUser) Google Cloud コンソールで、[IAM] ページに移動します。
[アクセス権を付与] をクリックします。
[新しいプリンシパル] フィールドに、カスタム サービス アカウント ID を入力します。
[ロールを選択] メニューで、次のロールを 1 つずつ選択します。追加のロールごとに [別のロールを追加] を使用します。
- BigQuery データ編集者
- BigQuery データ閲覧者
- BigQuery ジョブユーザー
[保存] をクリックします。
Google Cloud コンソールで、[サービス アカウント] ページに移動します。
カスタム サービス アカウントを選択します。
[アクセス権を持つプリンシパル] に移動し、[アクセス権を付与] をクリックします。
[新しいプリンシパル] フィールドに、デフォルトの Dataform サービス エージェント ID を入力します。
デフォルトの Dataform サービス エージェント ID の形式は次のとおりです。
service-PROJECT_NUMBER@gcp-sa-dataform.iam.gserviceaccount.com[ロールを選択] リストで、次のロールを追加します。
- サービス アカウント ユーザー
- サービス アカウント トークン作成者
[保存] をクリックします。
Google Cloud コンソールで、[Dataform] ページに移動します。
[ リポジトリを作成] をクリックします。
[リポジトリの作成] ページで、次の操作を行います。
[リポジトリ ID] フィールドに「
quickstart-production」と入力します。[リージョン] リストで [
europe-west4] を選択します。[サービス アカウント] フィールドで [手動で入力] をクリックし、カスタム サービス アカウントの名前を入力します。このフィールドにカスタム サービス アカウントを入力してください。
[作成] をクリックします。
[リポジトリに移動] をクリックします。
Google Cloud コンソールで、[Dataform] ページに移動します。
[
quickstart-production] をクリックします。[リリースとスケジュール]、[製品版リリースの作成] の順にクリックします。
[リリース構成を作成] ペインで、次の設定を構成します。
- [リリース ID] フィールドに「
production」と入力します。 - [Git commitish] フィールドはデフォルト値の
mainのままにします。 - [スケジュールの頻度] セクションの [繰り返しの頻度] メニューで、[カスタム] を選択します。
- [カスタム スケジュール] フィールドに「
0 16 * * *」と入力します。 [タイムゾーン] メニューで、[中央ヨーロッパ標準時(CET)] などの UTC+1 タイムゾーンを選択します。
毎日午後 4 時(UTC+1)に、Dataform は
quickstart-productionリポジトリをコンパイルし、このリリース構成で構成されたコンパイル設定を適用してproductionコンパイル結果を作成します。
- [リリース ID] フィールドに「
[作成] をクリックします。
productionリリース構成では、毎日午後 4 時(UTC+1)にquickstart-productionリポジトリ全体のコンパイル結果を作成します。[リリースとスケジュール] タブが表示されていることを確認します。[ワークフロー構成] セクションに移動し、[作成] をクリックします。
[ワークフロー構成を作成] ペインで、次の設定を構成します。
- [構成 ID] フィールドに「
production」と入力します。 - [リリース構成] メニューで
productionを選択します。 - [スケジュールの頻度] セクションの [繰り返しの頻度] メニューで、[カスタム] を選択します。
- [カスタム スケジュール] フィールドに「
0 17 * * *」と入力します。 [タイムゾーン] メニューで、[中央ヨーロッパ標準時(CET)] などの UTC+1 タイムゾーンを選択します。
Dataform は、毎日午後 5 時(UTC+1)に
quickstart-productionリポジトリの最新のproductionコンパイル結果を実行します。[すべてのアクション] をクリックします。
Dataform は、
productionコンパイル結果のすべてのワークフロー アクションを実行します。
- [構成 ID] フィールドに「
[作成] をクリックします。
productionワークフロー構成では、本番環境リリース構成によって毎日午後 5 時(UTC+1)に作成された最新のコンパイル結果全体を実行します。Google Cloud コンソールで、[Dataform] ページに移動します。
quickstart-productionリポジトリを選択します。[リリースとスケジュール] をクリックします。
[リリース構成] セクションで、
productionをクリックします。Google Cloud コンソールで、[Dataform] ページに移動します。
quickstart-productionリポジトリを選択します。[ワークフローの実行ログ] をクリックします。
ワークフロー実行を選択すると、各アクションのステータスやログなど、より詳細な情報が表示されます。
Google Cloud コンソールで、[BigQuery] ページに移動します。
[エクスプローラ] パネルでプロジェクトを開き、[
dataform_production] を選択します。[アクション] メニューをクリックして、[削除] を選択します。
データセットの削除のダイアログで「delete」と入力し、[ Delete ] をクリックします。
Google Cloud コンソールで、[Dataform] ページに移動します。
[
quickstart-production] をクリックします。[リリースとスケジュール] をクリックし、[リリース構成] セクションに移動します。
productionリリース構成の場合は、[その他] メニューをクリックしてから [削除] をクリックします。[リリース構成の削除] ダイアログで、[削除] をクリックします。
Google Cloud コンソールで、[Dataform] ページに移動します。
[
quickstart-production] をクリックします。[リリースとスケジュール] をクリックし、[ワークフロー構成] セクションに移動します。
productionワークフロー構成で、[その他] メニューをクリックして、[削除] をクリックします。[リリース構成の削除] ダイアログで、[削除] をクリックします。
Google Cloud コンソールで、[Dataform] ページに移動します。
quickstart-productionから、[その他] メニューをクリックし、[削除] を選択します。[リポジトリの削除] ウィンドウで、リポジトリの名前を入力して削除を確定します。
[削除] をクリックして確定します。
- サービス アカウントの詳細については、カスタム サービス アカウントと Dataform サービス エージェントについてをご覧ください。
- Dataform のコード ライフサイクルの詳細については、Dataform のコード ライフサイクルの概要をご覧ください。
- Dataform のワークフロー ライフサイクルのベスト プラクティスの詳細については、ワークフロー ライフサイクルのベスト プラクティスをご覧ください。
- Dataform のリリース構成の詳細については、リリース構成を作成するをご覧ください。
- Dataform のワークフロー構成の詳細については、ワークフロー構成で実行をスケジュールするをご覧ください。
また、BigQuery でワークフローを実行するカスタム サービス アカウントを選択または作成します。
必要なロール
このチュートリアルのすべてのタスクに必要な権限を取得するには、次の IAM ロールを付与するよう管理者に依頼してください。
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
必要なロールを付与する
BigQuery でワークフローを実行するには、カスタム サービス アカウントまたは Google アカウント(プレビュー)を使用します。ただし、スケジュールされた実行では、カスタム サービス アカウントの認証情報がデフォルトのオプションです。スケジュールされた実行には、Google アカウントのユーザー アカウントの認証情報を使用しないことをおすすめします。
BigQuery でワークフローを実行するには、カスタム サービス アカウントに次のロールが必要です。
Dataform でカスタム サービス アカウントを使用できるようにするには、デフォルトの Dataform サービス エージェントにカスタム サービス アカウント リソースに対する次のロールが必要です。
これらのロールを付与するには、次の手順に沿って操作します。
Dataform リポジトリを作成する
リリース構成とワークフロー構成を作成する
quickstart-production リポジトリの本番環境のコンパイル結果を作成し、production テーブルの実行をスケジュールする手順は次のとおりです。
過去の production コンパイル結果を表示する
過去のスケジュール設定された production コンパイル結果を表示する手順は次のとおりです。
過去の production ワークフロー実行を表示する
過去の production ワークフローの実行を表示する手順は次のとおりです。
クリーンアップ
このページで使用したリソースについて、 Google Cloud アカウントに課金されないようにするには、次の手順を実施します。
BigQuery で作成したデータセットを削除する
BigQuery アセットの料金が発生しないようにするには、次の手順で dataform_production というデータセットを削除します。
Dataform リリース構成を削除する
Dataform リリース構成の作成に伴う費用は発生しません。ただし、production リリース構成を削除する場合は、次の手順を行います。
Dataform ワークフロー構成を削除する
BigQuery アセットの料金が発生しないようにするには、次の手順で Dataform production ワークフロー構成を削除します。
Dataform リポジトリの削除
Dataform リポジトリの作成に伴う費用は発生しません。 ただし、リポジトリとそのすべてのコンテンツを削除するには、次の手順を行います。