ワークフローをオーケストレートする
この機能に関するサポートをリクエストする場合、またはフィードバックを提供する場合は、bigquery-workflows-preview-feedback@google.com までメールをお送りください。
このドキュメントでは、ワークフローのスケジュール設定方法や、スケジュール設定されたワークフローの実行を検査する方法など、ワークフローをオーケストレートする方法について説明します。
Workflows は Dataform をベースにしています。
各ワークフローのスケジュールは、スケジュールの作成時に選択したカスタム Dataform サービス アカウントによって実行されます。Dataform のサービス アカウントの種類の詳細については、Dataform のサービス アカウントについてをご覧ください。
ワークフローに加えた変更は自動的に保存されますが、変更内容は、自分自身とプロジェクトに対する Dataform 管理者のロールが付与されているユーザーのみが利用できます。新しいバージョンのワークフローでスケジュールを更新するには、ワークフローをデプロイする必要があります。デプロイすると、現在のバージョンのワークフローを使用するようにスケジュールが更新されます。スケジュールは、常にデプロイされた最新バージョンを実行します。
ノートブックを含むワークフローのスケジュールは、デフォルトのランタイム仕様を使用します。ノートブックを含むワークフローのスケジュール設定された実行中に、BigQuery はスケジュール作成時に選択した Cloud Storage バケットにノートブック出力を書き込みます。
始める前に
始める前に、ワークフローを作成します。
ワークフローのスケジュール設定を有効にする
ワークフローのスケジュールを設定するには、ワークフローのスケジュールに使用するサービス アカウントに次のロールを付与する必要があります。
- サービス アカウント ユーザー(
roles/iam.serviceAccountUser
) - サービス アカウントに単一のロールを付与するの手順に沿って、サービス アカウントをプリンシパルとして自身に追加します。つまり、サービス アカウントをプリンシパルとして同じサービス アカウントに追加します。次に、このプリンシパルにサービス アカウント ユーザーのロールを付与します。
ワークフローに SQL クエリが含まれている場合は、ワークフローのスケジュールに使用するサービス アカウントに次のロールを付与する必要があります。
- BigQuery ジョブユーザー(
roles/bigquery.jobUser
) - プロジェクトに単一のロールを付与するの手順に沿って、ワークフローがデータを読み取るプロジェクトのサービス アカウントに BigQuery ジョブユーザーのロールを付与します。
- BigQuery データ閲覧者(
roles/bigquery.dataViewer
) - プロジェクトに単一のロールを付与するの手順に沿って、ワークフローがデータを読み取るプロジェクトのサービス アカウントに BigQuery データ閲覧者のロールを付与します。
- BigQuery データ編集者(
roles/bigquery.dataEditor
) - プロジェクトに単一のロールを付与するの手順に沿って、ワークフローがデータを書き込むプロジェクトのサービス アカウントに BigQuery データ編集者のロールを付与します。
ワークフローにノートブックが含まれている場合は、ワークフローのスケジュールに使用するサービス アカウントに次のロールを付与する必要があります。
- ノートブック エグゼキュータ ユーザー(
roles/aiplatform.notebookExecutorUser
) - プロジェクトに単一のロールを付与するの手順に沿って、選択したプロジェクトのサービス アカウントにノートブック エグゼキュータ ユーザーのロールを付与します。
- ストレージ管理者(
roles/storage.admin
) - バケットレベルのポリシーにプリンシパルを追加するの手順に沿って、サービス アカウントをプリンシパルとして、スケジュール設定されたワークフローの実行で実行されたノートブックの出力の保存に使用する Cloud Storage バケットに追加し、このプリンシパルにストレージ管理者のロールを付与します。
また、デフォルトの Dataform サービス アカウントに次のロールを付与する必要があります。
- サービス アカウント トークン作成者(
roles/iam.serviceAccountTokenCreator
) - サービス アカウントにトークン作成アクセス権を付与するの手順に沿って、デフォルトの Dataform サービス アカウントをプリンシパルとしてサービス アカウントに追加し、このプリンシパルにサービス アカウント トークン作成者のロールを付与します。
Dataform のサービス アカウントの詳細については、Dataform のサービス アカウントについてをご覧ください。
必要なロール
ワークフローを管理するために必要な権限を取得するには、次の IAM ロールを付与するよう管理者に依頼してください。
-
ワークフローを削除するには:
ワークフローの Dataform 管理者 (
roles/dataform.Admin
) -
ワークフローのスケジュールを作成、編集、実行、削除するには、ワークフローの Dataform 管理者 (
roles/dataform.Admin
)が必要です。 -
ワークフローを表示して実行するには: プロジェクトに対する Dataform 閲覧者 (
roles/dataform.Viewer
) -
ワークフローのスケジュールを表示するには: プロジェクトに対する Dataform 編集者 (
roles/dataform.Editor
)
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
Dataform IAM の詳細については、IAM によるアクセス制御をご覧ください。
ワークフローのスケジュールを作成する
ワークフローのスケジュールを設定する手順は次のとおりです。
Google Cloud コンソールで [BigQuery] ページに移動します。
[エクスプローラ] ペインで、プロジェクトと [ワークフロー] フォルダを開き、ワークフローを選択します。
[スケジュール] をクリックします。
[ワークフローのスケジュール設定] ペインの [スケジュール名] フィールドに、スケジュールの名前を入力します。
[サービス アカウント] フィールドで、サービス アカウントを選択します。
ワークフローにノートブックが含まれている場合は、[Cloud Storage バケット] フィールドで [参照] をクリックし、ワークフローのノートブックの出力を保存する Cloud Storage バケットを選択または作成します。
選択したサービス アカウントには、選択したバケットに対するストレージ管理者の IAM ロールを付与する必要があります。詳細については、ワークフローのスケジュール設定を有効にするをご覧ください。
[スケジュールの頻度] セクションで、次の操作を行います。
- [繰り返しの頻度] プルダウンで、ワークフローの実行スケジュールの頻度を選択します。
- [時刻] フィールドに、ワークフローの実行スケジュールを設定する時刻を入力します。
- [タイムゾーン] プルダウンで、スケジュールのタイムゾーンを選択します。
[スケジュールを作成] をクリックします。
スケジュールを作成すると、現在のバージョンのワークフローが自動的にデプロイされます。新しいバージョンのワークフローでスケジュールを更新するには、ワークフローをデプロイします。
ワークフローの最新のデプロイ バージョンが、選択した時間と頻度で実行されます。
ワークフローをデプロイする
ワークフローをデプロイすると、ワークフローの現在のバージョンでスケジュールが更新されます。スケジュールは、デプロイされた最新バージョンのワークフローを実行します。
ワークフローをデプロイする手順は次のとおりです。
Google Cloud コンソールで [BigQuery] ページに移動します。
[エクスプローラ] ペインで、プロジェクトと [ワークフロー] フォルダを開き、ワークフローを選択します。
[デプロイ] をクリックします。
対応するスケジュールが、ワークフローの現在のバージョンで更新されます。デプロイされた最新バージョンのワークフローがスケジュールされた時間に実行されます。
スケジュールを無効にする
スケジュールを削除せずに、選択したワークフローのスケジュールされた実行を一時停止するには、スケジュールを無効にします。
選択したワークフローのスケジュールを無効にする手順は次のとおりです。
Google Cloud コンソールで [BigQuery] ページに移動します。
[エクスプローラ] ペインで、プロジェクトと [ワークフロー] フォルダを開き、ワークフローを選択します。
[スケジュールを表示] をクリックします。
[スケジュールの詳細] テーブルの [スケジュールの状態] 行で、[スケジュールが有効です] 切り替えボタンをクリックします。
スケジュールを有効にする
無効になっているワークフロー スケジュールの実行を再開する手順は次のとおりです。
Google Cloud コンソールで [BigQuery] ページに移動します。
[エクスプローラ] ペインで、プロジェクトと [ワークフロー] フォルダを開き、ワークフローを選択します。
[スケジュールを表示] をクリックします。
[スケジュールの詳細] テーブルの [スケジュールの状態] 行で、[スケジュールが無効です] 切り替えボタンをクリックします。
デプロイされたワークフローを手動で実行する
選択したスケジュールにデプロイされたワークフローを手動で実行すると、BigQuery はスケジュールとは関係なく、デプロイされたワークフローを 1 回実行します。
デプロイされたワークフローを手動で実行する手順は次のとおりです。
Google Cloud コンソールの [オーケストレーション] ページに移動します。
選択したワークフロー スケジュールの名前をクリックします。
[スケジュールの詳細] ページで、[実行] をクリックします。
すべてのワークフロー スケジュールを表示する
Google Cloud プロジェクト内のすべてのワークフロー スケジュールを表示する手順は次のとおりです。
Google Cloud コンソールの [オーケストレーション] ページに移動します。
省略可: ワークフローのスケジュールの詳細を含む追加の列を表示するには、
[列表示オプション] をクリックし、列を選択して [OK] をクリックします。
ワークフローのスケジュールの詳細を表示する
選択したワークフロー スケジュールの詳細を表示する手順は次のとおりです。
[エクスプローラ] ペイン
Google Cloud コンソールで [BigQuery] ページに移動します。
[エクスプローラ] ペインで、プロジェクトと [ワークフロー] フォルダを開き、ワークフローを選択します。
[スケジュールを表示] をクリックします。
[オーケストレーション] ページ
Google Cloud コンソールの [オーケストレーション] ページに移動します。
選択したワークフロー スケジュールの名前をクリックします。
過去のスケジュール設定された実行を表示する
選択したワークフロー スケジュールの過去の実行を表示する手順は次のとおりです。
[エクスプローラ] ペイン
Google Cloud コンソールで [BigQuery] ページに移動します。
[エクスプローラ] ペインで、プロジェクトと [ワークフロー] フォルダを開き、ワークフローを選択します。
[Executions] をクリックします。
省略可: 過去の実行のリストを更新するには、[更新] をクリックします。
[オーケストレーション] ページ
- Google Cloud コンソールの [オーケストレーション] ページに移動します。
選択したワークフローの名前をクリックします。
[スケジュールの詳細] ページの [過去の実行] セクションで、過去の実行を確認します。
省略可: 過去の実行のリストを更新するには、[更新] をクリックします。
ワークフローのスケジュールを編集する
ワークフローのスケジュールを編集する手順は次のとおりです。
Google Cloud コンソールで [BigQuery] ページに移動します。
[エクスプローラ] ペインで、プロジェクトと [ワークフロー] フォルダを開き、ワークフローを選択します。
[スケジュールを表示] をクリックし、[編集] をクリックします。
[ワークフローのスケジュール設定] ダイアログでスケジュールを編集し、[スケジュールを更新] をクリックします。
ワークフローのスケジュールを削除する
ワークフローのスケジュールを完全に削除する手順は次のとおりです。
Google Cloud コンソールの [オーケストレーション] ページに移動します。
次のいずれかを行います。
選択したワークフローのスケジュールの名前をクリックし、[スケジュールの詳細] ページで [削除] をクリックします。
選択したワークフロー スケジュールを含む行で、[アクション] 列の
[アクションを表示] をクリックし、[削除] をクリックします。
表示されるダイアログで [削除] をクリックします。
次のステップ
- BigQuery のワークフローの詳細を確認する。
- ワークフローを作成する方法を確認する。