パイプラインのスケジュール設定

このドキュメントでは、パイプラインのスケジュールの設定方法とスケジュールされたパイプライン実行の調査方法も含め、BigQuery パイプラインのスケジュールを設定する方法について説明します。

パイプラインには 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 でアクセスを制御するをご覧ください。

パイプラインのスケジュール設定時に Colab ノートブック ランタイム テンプレートを使用するには、ノートブック ランタイム ユーザー(roles/aiplatform.notebookRuntimeUserロールが必要です。

パイプラインのスケジュールを作成する

パイプラインのスケジュールを作成する手順は次のとおりです。

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

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

    [BigQuery] に移動

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

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

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

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

  6. パイプラインにノートブックが含まれている場合は、[ノートブックのオプション] セクションの [ランタイム テンプレート] フィールドで、Colab ノートブック ランタイム テンプレートまたはデフォルトのランタイム仕様を選択します。Colab ノートブック ランタイム テンプレートの作成の詳細については、ランタイム テンプレートを作成するをご覧ください。

  7. パイプラインにノートブックが含まれている場合は、[ノートブックのオプション] セクションの [Cloud Storage バケット] フィールドで、[参照] をクリックし、パイプラインのノートブックの出力を保存する Cloud Storage バケットを選択するか、作成します。

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

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

    1. [繰り返しの頻度] メニューで、スケジュールされたパイプライン実行の頻度を選択します。
    2. [時刻] フィールドに、スケジュールされたパイプラインの実行時刻を入力します。
    3. [タイムゾーン] メニューで、スケジュールのタイムゾーンを選択します。
  9. [スケジュールを作成] をクリックします。

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

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

[スケジュール設定] ページ

  1. Google Cloud コンソールで [スケジュール設定] ページに移動します。

    [スケジュール設定] に移動

  2. [作成] をクリックし、メニューから [パイプライン スケジュール] を選択します。

  3. [パイプラインのスケジュール設定] ペインで、スケジュールを設定するパイプラインを選択します。

  4. [スケジュール名] フィールドに、スケジュールの名前を入力します。

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

  6. パイプラインにノートブックが含まれている場合は、[ノートブックのオプション] セクションの [ランタイム テンプレート] フィールドで、Colab ノートブック ランタイム テンプレートまたはデフォルトのランタイム仕様を選択します。Colab ノートブック ランタイム テンプレートの作成の詳細については、ランタイム テンプレートを作成するをご覧ください。

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

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

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

    1. [繰り返しの頻度] メニューで、スケジュールされたパイプライン実行の頻度を選択します。
    2. [時刻] フィールドに、スケジュールされたパイプラインの実行時刻を入力します。
    3. [タイムゾーン] メニューで、スケジュールのタイムゾーンを選択します。
  9. [スケジュールを作成] をクリックします。

パイプラインをデプロイする

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

パイプラインをデプロイするには、次のようにします。

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

    [BigQuery] に移動

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

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

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

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

スケジュールを削除せずに、選択したパイプラインのスケジュールされた実行を一時停止するには、スケジュールを無効にします。

選択したパイプラインのスケジュールを無効にするには、次の操作を行います。

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

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

    [BigQuery] に移動

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

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

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

[スケジュール設定] ページ

  1. Google Cloud コンソールで [スケジュール設定] ページに移動します。

    [スケジュール設定] に移動

  2. 選択したパイプラインの名前をクリックします。

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

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

無効になっているパイプラインのスケジュールの実行を再開する手順は次のとおりです。

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

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

    [BigQuery] に移動

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

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

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

[スケジュール設定] ページ

  1. Google Cloud コンソールで [スケジュール設定] ページに移動します。

    [スケジュール設定] に移動

  2. 選択したパイプラインの名前をクリックします。

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

デプロイされたパイプラインを手動で実行する

選択したスケジュールにデプロイされたパイプラインを手動で実行すると、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. [実行] をクリックします。

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

[スケジュール設定] ページ

  1. Google Cloud コンソールで [スケジュール設定] ページに移動します。

    [スケジュール設定] に移動

  2. 選択したパイプラインの名前をクリックします。

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

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

パイプラインのスケジュールを編集する

パイプラインのスケジュールを編集する手順は次のとおりです。

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

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

    [BigQuery] に移動

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

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

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

[スケジュール設定] ページ

  1. Google Cloud コンソールで [スケジュール設定] ページに移動します。

    [スケジュール設定] に移動

  2. 選択したパイプラインの名前をクリックします。

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

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

  5. [パイプラインのスケジュール設定] ダイアログでスケジュールを編集し、[スケジュールを更新] をクリックします。

パイプラインのスケジュールを削除する

パイプラインのスケジュールを完全に削除する手順は次のとおりです。

  1. Google Cloud コンソールで [スケジュール設定] ページに移動します。

    [スケジュール設定] に移動

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

    • 選択したパイプラインのスケジュールの名前をクリックし、[スケジュールの詳細] ページで [削除] をクリックします。

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

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

次のステップ