パイプラインのスケジュール設定
このドキュメントでは、パイプラインのスケジュールの設定方法とスケジュールされたパイプライン実行の調査方法も含め、BigQuery パイプラインのスケジュールを設定する方法について説明します。
パイプラインは Dataform を使用します。各パイプラインのスケジュールは、スケジュールを構成するときに選択した Google アカウントのユーザー認証情報または 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
)ロールが必要です。
パイプラインのスケジュールを作成する
パイプラインのスケジュールを作成する手順は次のとおりです。
[エクスプローラ] ペイン
Google Cloud コンソールで、[BigQuery] ページに移動します。
[エクスプローラ] ペインで、プロジェクトと [パイプライン] フォルダを開き、パイプラインを選択します。
[スケジュール] をクリックします。
[パイプラインのスケジュール設定] ペインの [スケジュール名] フィールドに、スケジュールの名前を入力します。
[認証] セクションで、Google アカウントのユーザー認証情報またはサービス アカウントを使用してパイプラインを承認します。
- Google アカウントのユーザー認証情報(プレビュー)を使用するには、[自分のユーザー認証情報で実行] を選択します。
- サービス アカウントを使用するには、[選択したサービス アカウントで実行] を選択し、サービス アカウントを選択します。
パイプラインにノートブックが含まれている場合は、[ノートブックのオプション] セクションの [ランタイム テンプレート] フィールドで、Colab ノートブック ランタイム テンプレートまたはデフォルトのランタイム仕様を選択します。Colab ノートブック ランタイム テンプレートの作成の詳細については、ランタイム テンプレートを作成するをご覧ください。
パイプラインにノートブックが含まれている場合は、[ノートブックのオプション] セクションの [Cloud Storage バケット] フィールドで、[参照] をクリックし、パイプラインのノートブックの出力を保存する Cloud Storage バケットを選択するか、作成します。
選択したサービス アカウントには、選択したバケットに対するストレージ管理者の IAM ロールを付与する必要があります。詳細については、パイプラインのスケジュール設定を有効にするをご覧ください。
[スケジュールの頻度] セクションで、次の操作を行います。
- [繰り返しの頻度] メニューで、スケジュールされたパイプライン実行の頻度を選択します。
- [時刻] フィールドに、スケジュールされたパイプラインの実行時刻を入力します。
- [タイムゾーン] メニューで、スケジュールのタイムゾーンを選択します。
[スケジュールを作成] をクリックします。認証方法として [Execute with my user credentials] を選択した場合は、Google アカウントを承認する必要があります(プレビュー)。
スケジュールを作成すると、現在のバージョンのパイプラインが自動的にデプロイされます。新しいバージョンのパイプラインでスケジュールを更新するには、パイプラインをデプロイします。
デプロイされた最新バージョンのパイプラインが、選択した時間と頻度で実行されます。
[スケジュール設定] ページ
Google Cloud コンソールで、[スケジュール設定] ページに移動します。
[作成] をクリックし、メニューから [パイプライン スケジュール] を選択します。
[パイプラインのスケジュール設定] ペインで、スケジュールを設定するパイプラインを選択します。
[スケジュール名] フィールドに、スケジュールの名前を入力します。
[認証] セクションで、Google アカウントのユーザー認証情報またはサービス アカウントを使用してパイプラインを承認します。
- Google アカウントのユーザー認証情報(プレビュー)を使用するには、[自分のユーザー認証情報で実行] を選択します。
- サービス アカウントを使用するには、[選択したサービス アカウントで実行] を選択し、サービス アカウントを選択します。
パイプラインにノートブックが含まれている場合は、[ノートブックのオプション] セクションの [ランタイム テンプレート] フィールドで、Colab ノートブック ランタイム テンプレートまたはデフォルトのランタイム仕様を選択します。Colab ノートブック ランタイム テンプレートの作成の詳細については、ランタイム テンプレートを作成するをご覧ください。
パイプラインにノートブックが含まれている場合は、[Cloud Storage バケット] フィールドで [参照] をクリックし、パイプラインのノートブックの出力を保存する Cloud Storage バケットを選択するか、作成します。
選択したサービス アカウントには、選択したバケットに対するストレージ管理者の IAM ロールを付与する必要があります。詳細については、パイプラインのスケジュール設定を有効にするをご覧ください。
[スケジュールの頻度] セクションで、次の操作を行います。
- [繰り返しの頻度] メニューで、スケジュールされたパイプライン実行の頻度を選択します。
- [時刻] フィールドに、スケジュールされたパイプラインの実行時刻を入力します。
- [タイムゾーン] メニューで、スケジュールのタイムゾーンを選択します。
[スケジュールを作成] をクリックします。認証方法として [Execute with my user credentials] を選択した場合は、Google アカウントを承認する必要があります(プレビュー)。
Google アカウントを認可する
Google アカウントのユーザー認証情報でリソースを認証するには、BigQuery パイプラインに、Google アカウントのアクセス トークンを取得し、ユーザーに代わってソースデータにアクセスする権限を手動で付与する必要があります。OAuth ダイアログ インターフェースで、手動で承認できます。
BigQuery パイプラインに対する権限は 1 回だけ付与する必要があります。
付与した権限を取り消すには、次の操作を行います。
- Google アカウント ページにアクセスします。
- [BigQuery Pipelines] をクリックします。
- [アクセス権を削除] をクリックします。
新しい Google アカウントのオーナーが以前にスケジュールを作成したことがない場合は、認証情報を更新してパイプライン スケジュールのオーナーを変更するには手動で承認する必要もあります。
パイプラインにノートブックが含まれている場合は、Colab Enterprise が Google アカウントのアクセス トークンを取得し、ユーザーに代わってソースデータにアクセスする権限を手動で付与する必要があります。権限の付与は 1 回のみ必要です。この権限は、Google アカウントのページで取り消すことができます。
パイプラインをデプロイする
パイプラインをデプロイすると、パイプラインの現在のバージョンでスケジュールが更新されます。スケジュールは、デプロイされた最新バージョンのパイプラインを実行します。
パイプラインをデプロイするには、次のようにします。
Google Cloud コンソールで、[BigQuery] ページに移動します。
[エクスプローラ] ペインで、プロジェクトと [パイプライン] フォルダを開き、パイプラインを選択します。
[デプロイ] をクリックします。
対応するスケジュールが、現在のバージョンのパイプラインで更新されます。デプロイされた最新バージョンのパイプラインがスケジュールされた時間に実行されます。
スケジュールを無効にする
スケジュールを削除せずに、選択したパイプラインのスケジュールされた実行を一時停止するには、スケジュールを無効にします。
選択したパイプラインのスケジュールを無効にするには、次の操作を行います。
[エクスプローラ] ペイン
Google Cloud コンソールで、[BigQuery] ページに移動します。
[エクスプローラ] ペインで、プロジェクトと [パイプライン] フォルダを開き、パイプラインを選択します。
[スケジュールを表示] をクリックします。
[スケジュールの詳細] テーブルの [スケジュールの状態] 行で、[スケジュールが有効です] 切り替えボタンをクリックします。
[スケジュール設定] ページ
Google Cloud コンソールで、[スケジュール設定] ページに移動します。
選択したパイプラインの名前をクリックします。
[スケジュールの詳細] ページで、[無効にする] をクリックします。
スケジュールを有効にする
無効になっているパイプラインのスケジュールの実行を再開する手順は次のとおりです。
[エクスプローラ] ペイン
Google Cloud コンソールで、[BigQuery] ページに移動します。
[エクスプローラ] ペインで、プロジェクトと [パイプライン] フォルダを開き、パイプラインを選択します。
[スケジュールを表示] をクリックします。
[スケジュールの詳細] テーブルの [スケジュールの状態] 行で、[スケジュールが無効です] 切り替えボタンをクリックします。
[スケジュール設定] ページ
Google Cloud コンソールで、[スケジュール設定] ページに移動します。
選択したパイプラインの名前をクリックします。
[スケジュールの詳細] ページで、[有効にする] をクリックします。
デプロイされたパイプラインを手動で実行する
選択したスケジュールにデプロイされたパイプラインを手動で実行すると、BigQuery はスケジュールとは関係なく、デプロイされたパイプラインを 1 回実行します。
デプロイされたパイプラインを手動で実行する手順は次のとおりです。
Google Cloud コンソールで、[スケジュール設定] ページに移動します。
選択したパイプラインのスケジュールの名前をクリックします。
[スケジュールの詳細] ページで [実行] をクリックします。
すべてのパイプラインのスケジュールを表示する
Google Cloud プロジェクト内のすべてのパイプライン スケジュールを表示する手順は次のとおりです。
Google Cloud コンソールで、[スケジュール設定] ページに移動します。
省略可: パイプラインのスケジュールの詳細を含む追加の列を表示するには、
[列表示オプション] をクリックし、列を選択して [OK] をクリックします。
パイプラインのスケジュールの詳細を表示する
選択したパイプライン スケジュールの詳細を表示する手順は次のとおりです。
[エクスプローラ] ペイン
Google Cloud コンソールで、[BigQuery] ページに移動します。
[エクスプローラ] ペインで、プロジェクトと [パイプライン] フォルダを開き、パイプラインを選択します。
[スケジュールを表示] をクリックします。
[スケジュール設定] ページ
Google Cloud コンソールで、[スケジュール設定] ページに移動します。
選択したパイプラインのスケジュールの名前をクリックします。
スケジュールされた過去の実行を表示する
選択したパイプライン スケジュールの過去の実行を表示する手順は次のとおりです。
[エクスプローラ] ペイン
Google Cloud コンソールで、[BigQuery] ページに移動します。
[エクスプローラ] ペインで、プロジェクトと [パイプライン] フォルダを開き、パイプラインを選択します。
[実行] をクリックします。
省略可: 過去の実行のリストを更新するには、[更新] をクリックします。
[スケジュール設定] ページ
Google Cloud コンソールで、[スケジュール設定] ページに移動します。
選択したパイプラインの名前をクリックします。
[スケジュールの詳細] ページの [過去の実行] セクションで、過去の実行を確認します。
省略可: 過去の実行のリストを更新するには、[更新] をクリックします。
パイプラインのスケジュールを編集する
パイプラインのスケジュールを編集する手順は次のとおりです。
[エクスプローラ] ペイン
Google Cloud コンソールで、[BigQuery] ページに移動します。
[エクスプローラ] ペインで、プロジェクトと [パイプライン] フォルダを開き、パイプラインを選択します。
[スケジュールを表示] をクリックし、[編集] をクリックします。
[パイプラインのスケジュール設定] ダイアログでスケジュールを編集し、[スケジュールを更新] をクリックします。
[スケジュール設定] ページ
Google Cloud コンソールで、[スケジュール設定] ページに移動します。
選択したパイプラインの名前をクリックします。
[スケジュールの詳細] ページで、[編集] をクリックします。
[スケジュールを表示] をクリックし、[編集] をクリックします。
[パイプラインのスケジュール設定] ダイアログでスケジュールを編集し、[スケジュールを更新] をクリックします。
パイプラインのスケジュールを削除する
パイプラインのスケジュールを完全に削除する手順は次のとおりです。
Google Cloud コンソールで、[スケジュール設定] ページに移動します。
次のいずれかを行います。
選択したパイプラインのスケジュールの名前をクリックし、[スケジュールの詳細] ページで [削除] をクリックします。
選択したパイプラインのスケジュールを含む行で、[アクション] 列の
[アクションを表示] をクリックし、[削除] をクリックします。
表示されるダイアログで [削除] をクリックします。
次のステップ
- BigQuery のパイプラインの詳細を確認する。
- パイプラインを作成する方法を確認する。