ワークフローをオーケストレートする

この機能に関するサポートをリクエストする場合、またはフィードバックを提供する場合は、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 によるアクセス制御をご覧ください。

ワークフローのスケジュールを作成する

ワークフローのスケジュールを設定する手順は次のとおりです。

  1. Google Cloud コンソールで [BigQuery] ページに移動します。

    BigQuery に移動

  2. [エクスプローラ] ペインで、プロジェクトと [ワークフロー] フォルダを開き、ワークフローを選択します。

  3. [スケジュール] をクリックします。

  4. [ワークフローのスケジュール設定] ペインの [スケジュール名] フィールドに、スケジュールの名前を入力します。

  5. [サービス アカウント] フィールドで、サービス アカウントを選択します。

  6. ワークフローにノートブックが含まれている場合は、[Cloud Storage バケット] フィールドで [参照] をクリックし、ワークフローのノートブックの出力を保存する Cloud Storage バケットを選択または作成します。

    選択したサービス アカウントには、選択したバケットに対するストレージ管理者の IAM ロールを付与する必要があります。詳細については、ワークフローのスケジュール設定を有効にするをご覧ください。

  7. [スケジュールの頻度] セクションで、次の操作を行います。

    1. [繰り返しの頻度] プルダウンで、ワークフローの実行スケジュールの頻度を選択します。
    2. [時刻] フィールドに、ワークフローの実行スケジュールを設定する時刻を入力します。
    3. [タイムゾーン] プルダウンで、スケジュールのタイムゾーンを選択します。
  8. [スケジュールを作成] をクリックします。

スケジュールを作成すると、現在のバージョンのワークフローが自動的にデプロイされます。新しいバージョンのワークフローでスケジュールを更新するには、ワークフローをデプロイします。

ワークフローの最新のデプロイ バージョンが、選択した時間と頻度で実行されます。

ワークフローをデプロイする

ワークフローをデプロイすると、ワークフローの現在のバージョンでスケジュールが更新されます。スケジュールは、デプロイされた最新バージョンのワークフローを実行します。

ワークフローをデプロイする手順は次のとおりです。

  1. Google Cloud コンソールで [BigQuery] ページに移動します。

    BigQuery に移動

  2. [エクスプローラ] ペインで、プロジェクトと [ワークフロー] フォルダを開き、ワークフローを選択します。

  3. [デプロイ] をクリックします。

対応するスケジュールが、ワークフローの現在のバージョンで更新されます。デプロイされた最新バージョンのワークフローがスケジュールされた時間に実行されます。

スケジュールを無効にする

スケジュールを削除せずに、選択したワークフローのスケジュールされた実行を一時停止するには、スケジュールを無効にします。

選択したワークフローのスケジュールを無効にする手順は次のとおりです。

  1. Google Cloud コンソールで [BigQuery] ページに移動します。

    BigQuery に移動

  2. [エクスプローラ] ペインで、プロジェクトと [ワークフロー] フォルダを開き、ワークフローを選択します。

  3. [スケジュールを表示] をクリックします。

  4. [スケジュールの詳細] テーブルの [スケジュールの状態] 行で、[スケジュールが有効です] 切り替えボタンをクリックします。

スケジュールを有効にする

無効になっているワークフロー スケジュールの実行を再開する手順は次のとおりです。

  1. Google Cloud コンソールで [BigQuery] ページに移動します。

    BigQuery に移動

  2. [エクスプローラ] ペインで、プロジェクトと [ワークフロー] フォルダを開き、ワークフローを選択します。

  3. [スケジュールを表示] をクリックします。

  4. [スケジュールの詳細] テーブルの [スケジュールの状態] 行で、[スケジュールが無効です] 切り替えボタンをクリックします。

デプロイされたワークフローを手動で実行する

選択したスケジュールにデプロイされたワークフローを手動で実行すると、BigQuery はスケジュールとは関係なく、デプロイされたワークフローを 1 回実行します。

デプロイされたワークフローを手動で実行する手順は次のとおりです。

  1. Google Cloud コンソールの [オーケストレーション] ページに移動します。

    [オーケストレーション] ページに移動

  2. 選択したワークフロー スケジュールの名前をクリックします。

  3. [スケジュールの詳細] ページで、[実行] をクリックします。

すべてのワークフロー スケジュールを表示する

Google Cloud プロジェクト内のすべてのワークフロー スケジュールを表示する手順は次のとおりです。

  1. Google Cloud コンソールの [オーケストレーション] ページに移動します。

    [オーケストレーション] ページに移動

  2. 省略可: ワークフローのスケジュールの詳細を含む追加の列を表示するには、 [列表示オプション] をクリックし、列を選択して [OK] をクリックします。

ワークフローのスケジュールの詳細を表示する

選択したワークフロー スケジュールの詳細を表示する手順は次のとおりです。

[エクスプローラ] ペイン

  1. Google Cloud コンソールで [BigQuery] ページに移動します。

    BigQuery に移動

  2. [エクスプローラ] ペインで、プロジェクトと [ワークフロー] フォルダを開き、ワークフローを選択します。

  3. [スケジュールを表示] をクリックします。

[オーケストレーション] ページ

  1. Google Cloud コンソールの [オーケストレーション] ページに移動します。

    [オーケストレーション] ページに移動

  2. 選択したワークフロー スケジュールの名前をクリックします。

過去のスケジュール設定された実行を表示する

選択したワークフロー スケジュールの過去の実行を表示する手順は次のとおりです。

[エクスプローラ] ペイン

  1. Google Cloud コンソールで [BigQuery] ページに移動します。

    BigQuery に移動

  2. [エクスプローラ] ペインで、プロジェクトと [ワークフロー] フォルダを開き、ワークフローを選択します。

  3. [Executions] をクリックします。

  4. 省略可: 過去の実行のリストを更新するには、[更新] をクリックします。

[オーケストレーション] ページ

  1. Google Cloud コンソールの [オーケストレーション] ページに移動します。

[オーケストレーション] ページに移動

  1. 選択したワークフローの名前をクリックします。

  2. [スケジュールの詳細] ページの [過去の実行] セクションで、過去の実行を確認します。

  3. 省略可: 過去の実行のリストを更新するには、[更新] をクリックします。

ワークフローのスケジュールを編集する

ワークフローのスケジュールを編集する手順は次のとおりです。

  1. Google Cloud コンソールで [BigQuery] ページに移動します。

    BigQuery に移動

  2. [エクスプローラ] ペインで、プロジェクトと [ワークフロー] フォルダを開き、ワークフローを選択します。

  3. [スケジュールを表示] をクリックし、[編集] をクリックします。

  4. [ワークフローのスケジュール設定] ダイアログでスケジュールを編集し、[スケジュールを更新] をクリックします。

ワークフローのスケジュールを削除する

ワークフローのスケジュールを完全に削除する手順は次のとおりです。

  1. Google Cloud コンソールの [オーケストレーション] ページに移動します。

    [オーケストレーション] ページに移動

  2. 次のいずれかを行います。

    • 選択したワークフローのスケジュールの名前をクリックし、[スケジュールの詳細] ページで [削除] をクリックします。

    • 選択したワークフロー スケジュールを含む行で、[アクション] 列の [アクションを表示] をクリックし、[削除] をクリックします。

  3. 表示されるダイアログで [削除] をクリックします。

次のステップ