SQL スクリプトとノートブックをスケジュール設定すると、データ探索ワークベンチ(Explore)で作成したアセットを運用できます。
SQL スクリプトやノートブックをスケジュール設定すると、あらかじめ決められた時間に 1 回または繰り返し実行される Dataplex タスクが作成されます。それぞれの実行時には、実行開始時間と終了時間、実行ステータス、ログ、生成された出力などの実行メタデータをキャプチャするジョブが作成されます。
スケジュール設定された SQL スクリプトやノートブックに対して実行がトリガーされると、ノートブックや SQL スクリプトの現在のバージョンが実行されます。つまり、ノートブックや SQL スクリプトをスケジュール設定し、そのコンテンツを後で更新した場合、更新はノートブックや SQL スクリプトのスケジュール設定された実行にも反映されます。
費用
スケジュール設定された SQL スクリプトおよびスケジュール設定されたノートブックは、Dataproc Serverless を使用してジョブ実行をトリガーします。使用は Dataproc の料金モデルに従って課金され、Dataplex ではなく Dataproc に表示されます。
始める前に
次のドキュメントに記載の前提条件を確認し、すべて揃えてください。
SQL スクリプトやノートブックのスケジュールで BigQuery API を使用する場合は、サービス アカウントに Service Usage ユーザーロール(roles/serviceusage.serviceUsageConsumer
)を付与する必要があります。
既知の制限事項
Google Cloud コンソールを使用してノートブックをスケジュール設定する場合、選択した環境で構成された追加の Python パッケージは、スケジュール設定されたノートブックに対して実行時に利用できません。それを実行時に利用できるようにするには、必要な追加パッケージを使用してコンテナ イメージを参照するノートブック スケジュールを作成する必要があります。詳細については、カスタム パッケージを使用してノートブックをスケジュール設定するをご覧ください。
ノートブックをスケジュール設定するときに、Google Cloud コンソールでカスタム コンテナ イメージを参照することはできません。コンソールではなく gcloud CLI を使用してください。
一旦作成したスケジュールは編集できません。スケジュール パラメータを更新するには、新しいパラメータを使用してスケジュールを再作成する必要があります。
スケジュールで使用する SQL スクリプトやノートブックの特定のバージョンを定義することはできません。スケジュールがトリガーされると、SQL スクリプトやノートブックの現在のバージョンが使用されます。
Google Cloud コンソールを使用して SQL スクリプトやノートブックをスケジュール設定する場合は、デフォルトのサブネットワークが使用されます。別のネットワークやサブネットワークを指定するには、gcloud CLI を使用します。
また、データ探索の既知の制限事項もご確認ください。
SQL スクリプトのスケジュールを作成、管理する
スケジュール設定された SQL スクリプトのランタイム構成
SQL スクリプトがスケジュール設定されると、Dataplex タスクとして動作します。Google Cloud コンソールを使用してスケジュールを作成すると、スケジュール設定された SQL スクリプトの対応するタスク ランタイム パラメータは、次のマッピングに基づいて、その SQL スクリプトの環境から継承されます。
環境構成パラメータ | スケジュール設定された SQL スクリプト タスク構成パラメータ |
---|---|
メインディスクのサイズ | コンテナ イメージ / プロパティ: spark.dataproc.driver.disk.size spark.dataproc.executor.disk.size |
ノード数 | バッチ / エグゼキュータ数 |
ノードの最大数 | バッチ / 最大エグゼキュータ数 |
イメージのバージョン | 継承されない |
JAR ファイル | コンテナ イメージ / Java JAR |
Python パッケージ | 継承されない |
追加プロパティ | コンテナ イメージ / プロパティ |
SQL スクリプトをスケジュール設定する
Console
Google Cloud コンソールで Dataplex の [探索]ページに移動します。
Spark SQL Script リストから 1 つの SQL スクリプトを選択するか、Spark SQL Editor で SQL スクリプトを開くことで、スケジュール設定する SQL スクリプトを選択します。
[スケジュール] メニューで、[スケジュールを作成] をクリックします。
[スケジュール名] フィールドに、スケジュール設定されたインスタンスの名前を入力します。
[スケジュール オプション] セクションで、SQL スクリプトを 1 回だけ実行するか、繰り返し実行するかを選択します。
[1 回だけ実行] を選択した場合は、[スタート] メニューのオプションを使用して、SQL スクリプトをすぐに実行するか、スケジュール設定した時間に実行するかを指定します。スケジュールによる実行の場合は、開始日と実行時間を指定します。
[繰り返し] を選択した場合は、SQL スクリプトを実行するタイミングを、毎日、毎週、毎月、cron 式で指定されたカスタム スケジュールのいずれかに指定します。また、最初のスケジュール実行の開始日と実行時間も指定します。
[結果の保存先] セクションで、次の操作を行います。
[出力フォルダ名] フィールドで [参照] をクリックし、スクリプト出力を保存する Cloud Storage バケット内のフォルダを選択します。
[選択] をクリックします。
[スクリプトの出力形式] でスクリプトの出力形式を選択します。サポートされている形式は、CSV、JSON、ORC、Parquet です。
[スケジュール設定されたスクリプトの認証情報] セクションで、[ユーザー サービス アカウント] メニューからサービス アカウントを選択します。
[スケジュール] をクリックします。
gcloud
gcloud CLI を使用して SQL スクリプトをスケジュール設定する方法については、SparkSQL タスクのスケジュール設定をご覧ください。
REST
API Explorer を使用してタスクを作成します。
SQL スクリプトのスケジュールを管理する
Console
SQL スクリプトのスケジュールすべてのリストを開く
Google Cloud コンソールで、Dataplex の [処理] ページに移動します。
[スケジュール済みのクエリ] タブをクリックして、SQL スクリプト スケジュールのリストを表示します。
特定の SQL スクリプトのスケジュールすべてのリストを開く
Google Cloud コンソールで Dataplex の [探索]ページに移動します。
必要な SQL スクリプトを選択します。
[スケジュール] メニューで、[スケジュールを表示] をクリックします。
[スケジュール設定されたクエリ] タブが開き、選択した SQL スクリプトによってフィルタされた SQL スクリプト スケジュールのリストが表示されます。
SQL スクリプトのスケジュールの詳細を表示する
[スケジュール設定されたクエリ] タブに移動し、必要な SQL スクリプトのスケジュールを選択します。
[詳細] タブをクリックすると、SQL スクリプト スケジュールの詳細と、スケジュール設定された SQL スクリプト コンテンツのプレビューが表示されます。
SQL スクリプトのスケジュールの有効化と無効化
[スケジュール設定されたクエリ] タブに移動し、必要な SQL スクリプトのスケジュールを選択します。
[無効にする] をクリックして、アクティブな SQL スクリプトのスケジュールを無効にします。
[有効にする] をクリックして、非アクティブな SQL スクリプトのスケジュールを有効にします。
既存の SQL スクリプトのスケジュールを削除する
[スケジュール設定されたクエリ] タブに移動し、必要な SQL スクリプトのスケジュールを選択します。
[削除] をクリックして、既存の SQL スクリプトのスケジュールを完全に削除します。
ログを表示して SQL スクリプトのスケジュールを管理する
[スケジュール設定されたクエリ] タブに移動し、必要な SQL スクリプトのスケジュールを選択します。
[ジョブ] タブをクリックしてから、スケジュール設定された SQL スクリプト実行の [ジョブ ID] をクリックします。
[ログを表示] をクリックして、Cloud Logging で動作する選択したスケジュール設定済みの SQL スクリプトに関連するログを表示します。
Google Cloud コンソールで、[Dataproc バッチ ID] をクリックして Dataproc ページを開きます。対応する Dataproc Serverless セッションの詳細にアクセスします。
Google Cloud コンソールで、[出力] ラベルの横にある [Cloud Storage で管理] をクリックして、Cloud Storage ページを開きます。SQL スクリプトの実行出力を含む対応する Cloud Storage バケットの詳細にアクセスします。
gcloud
gcloud CLI を使用してスケジュール設定された SQL スクリプトをモニタリングする方法については、タスクのモニタリングの [gcloud] タブをご覧ください。
gcloud CLI を使用してスケジュール設定された SQL スクリプトを管理する方法については、スケジュールの管理の [gcloud] タブをご覧ください。
REST
REST を使用してスケジュール設定された SQL スクリプトをモニタリングする方法については、タスクをモニタリングするで [REST] タブをご覧ください。
REST を使用してスケジュール設定された SQL スクリプトを管理する方法については、スケジュールの管理の [REST] タブをご覧ください。
スケジュール設定された SQL スクリプトの出力
スケジュール設定された SQL スクリプトの実行ごとの出力は、次の構造で、Cloud Storage フォルダの指定した場所に保存されます。
CLOUD_STORAGE_FOLDER_LOCATION/projects/PROJECT_ID/locations/LOCATION_ID/lakes/LAKE_ID/tasks/TASK_ID/JOB_ID/QUERY_NUMBER
ノートブックのスケジュールを作成、管理する
スケジュール設定されたノートブックのランタイム構成
ノートブックは、スケジュール設定されると、Dataplex タスクとして実行されます。Google Cloud コンソールを使用してスケジュールを作成すると、スケジュール設定されたノートブックに対応するタスク ランタイム パラメータが、次のマッピングに基づいてそのノートブックの環境から継承されます。
環境構成パラメータ | スケジュール設定されたノートブックのタスク構成パラメータ |
---|---|
メインディスクのサイズ | コンテナ イメージ / プロパティ: spark.dataproc.driver.disk.size spark.dataproc.executor.disk.size |
ノード数 | バッチ / エグゼキュータ数 |
ノードの最大数 | バッチ / 最大エグゼキュータ数 |
イメージのバージョン | 継承されない |
JAR ファイル | コンテナ イメージ / Java JAR |
Python パッケージ | 継承されない |
追加プロパティ | コンテナ イメージ / プロパティ |
カスタム パッケージを使用してノートブックをスケジュール設定する
インタラクティブ ノートブックの場合、Dataplex では、環境を構成するときに、その環境用にプロビジョニングされたユーザー セッションにインストールするカスタム Python パッケージを指定できます。このようなノートブックがスケジュール設定されている場合、そうしたノートブックには、その環境に構成されたカスタム Python パッケージが実行時に使用できません。デフォルトのランタイム環境には、Dataproc Serverless for Spark ランタイム バージョン 1.0 のコンポーネントのみがあります。スケジュール設定されたノートブックに対して実行時にカスタム Python パッケージを使用できるようにするため、必要なカスタム パッケージを含むカスタム コンテナ イメージを用意します。
Google Cloud コンソールを使用してノートブックをスケジュール設定するときに、カスタム コンテナ イメージを指定することはできません。コンソールではなく gcloud CLI を使用してください。詳細については、ノートブックをスケジュール設定するをご覧ください。
カスタム パッケージが構成されている環境でノートブックをスケジュール設定すると、次の警告が表示されます。
Selected environmenthas additional Python packages configured. These packages will not be available in the default runtime for the scheduled notebook when scheduling in the Console. To make the required additional Python packages available in the runtime, please create Notebook Schedule using gcloud command instead, referencing a container image with required additional packages.
スケジュール設定されたノートブックのカスタム コンテナ イメージをビルドする
スケジュール設定されたノートブックのコンテナ イメージを作り、必要なカスタム Python パッケージをコンテナ イメージの dockerfile にインストールする方法については、Dataproc Serverless for Spark のカスタム コンテナ イメージをビルドするをご覧ください。
コンテナ イメージに次の conda パッケージがインストールされていることを確認します。
gcsfs
google-cloud-bigquery
google-cloud-storage
google-auth
ipykernel
papermill
コンテナ イメージに gcloud
コンポーネントをインストールするには、コンテナ イメージの Dockerfile を開き、次の手順を行います。
インストールする conda パッケージのリストに
google-cloud-sdk
パッケージを追加します。conda パッケージのインストール手順の後に、次の行を追加します。
# (Optional) Installing gcloud components RUN gcloud components install alpha beta bq
ノートブックをスケジュール設定する
Console
Google Cloud コンソールで Dataplex の [探索]ページに移動します。
スケジュール設定するノートブックを選択するには、[Notebooks] ビューで 1 つのノートブックを選択するか、ノートブックの詳細ページでノートブックを開きます。
[スケジュール] メニューで、[スケジュールを作成] をクリックします。
[スケジュール名] フィールドに、スケジュール設定されたインスタンスの名前を入力します。
[スケジュール オプション] セクションで、ノートブックを 1 回だけ実行するか、繰り返し実行するかを選択します。
[1 回だけ実行] を選択した場合は、[スタート] メニューのオプションを使用して、ノートブックをすぐに実行するか、スケジュール設定した時間に実行するかを指定します。スケジュールによる実行の場合は、開始日と実行時間を指定します。
[繰り返し] を選択した場合は、ノートブックを実行するタイミングを、毎日、毎週、毎月、cron 式で指定されたカスタム スケジュールのいずれかに指定します。また、最初のスケジュール実行の開始日と実行時間も指定します。
[結果の保存先] セクションで、ノートブックの出力を保存する場所を選択します。
[出力フォルダ名] フィールドで、[参照] をクリックし、ノートブックの出力を保存する Cloud Storage バケット内のフォルダを選択します。
[選択] をクリックします。
[スクリプトの出力形式] でスクリプトの出力形式を選択します。サポートされている形式は、CSV、JSON、ORC、Parquet です。
[スケジュール設定されたノートブックの認証情報] セクションで、[ユーザー サービス アカウント] メニューからサービス アカウントを選択します。
[パラメータ] セクションで、[新規を追加] をクリックして、ノートブックの実行パラメータを Key-Value ペアとして追加します。
[スケジュール] をクリックします。
gcloud
Spark(Java または Python)タスクをスケジュール設定するに記載されている gcloud CLI コマンドを、次の追加パラメータを指定して実行します。
パラメータ | 説明 |
---|---|
--notebook
|
入力ノートブックのノートブック コンテンツのパス。実行引数には環境変数としてアクセスできます。例: TASK_key=value 注 : ノートブックをタスクとしてスケジュール設定するための gcloud リファレンス ドキュメントには、--notebook パラメータの値としてノートブック ファイルの Cloud Storage URI を使用できることが記載されています。これはサポートされていません。--notebook パラメータには、ノートブック コンテンツのパスを指定する必要があります。 |
--notebook-archive-uris
|
各エグゼキュータの作業ディレクトリに解凍されるアーカイブの Cloud Storage URI。サポートされているファイル形式は、JAR 、tar 、tar.gz 、tgz 、zip です。 |
--notebook-file-uris |
各エグゼキュータの作業ディレクトリに配置されるファイルの Cloud Storage URI。 |
Dataproc サーバーレスを使用するときタスクに必要なコンピューティング リソース | |
--notebook-batch-executors-count |
ジョブ エグゼキュータの数。 |
--notebook-batch-max-executors-count
|
構成可能なエグゼキュータの最大数。notebook-batch-max-executors-count が notebook-batch-executors-count より大きい場合は、自動スケーリングが有効になります。 |
コンテナ イメージのランタイム構成 | |
--notebook-container-image |
省略可: ジョブのカスタム コンテナ イメージ。 |
--notebook-container-image-java-jars
|
クラスパスに追加する Java JAR のリスト。有効な入力には、JAR バイナリへの Cloud Storage URI が含まれます。たとえば、「gs ://BUCKET_NAME/my/path/to/file.jar 」です。 |
--notebook-container-image-properties
|
デーモン構成ファイルに設定するプロパティ。 プロパティキーは「 prefix :property 」の形式で指定します(例: core :hadoop.tmp.dir )。詳細については、クラスタ プロパティをご覧ください。 |
インフラストラクチャの実行に使用される Cloud VPC ネットワーク | |
--notebook-vpc-network-tags |
ジョブに適用するネットワーク タグのリスト。 |
Cloud VPC ネットワーク ID。次の中から 1 つまで指定できます。 | |
--notebook-vpc-network-name
|
ジョブが実行される Cloud VPC ネットワーク。デフォルトでは、プロジェクトにある Default という Cloud VPC ネットワークが使用されます。 |
--notebook-vpc-sub-network-name |
ジョブが実行される Cloud VPC サブネットワーク。 |
ノートブック出力の場所 | |
--execution-args
|
ノートブック タスクの場合、次の引数は必須で、TASK_ARGS として渡す必要があります。 |
--execution-args=^::^TASK_ARGS="--output_location,CLOUD_STORAGE_URI_OF_OUTPUT_DIRECTORY" |
ノートブックのスケジュール設定に使用される gcloud
コマンドの例を次に示します。
gcloud dataplex tasks create sample-task --project=sample-project --location=us-central1 --lake=my-lake --trigger-type=ON_DEMAND --notebook="projects/my-project-id/locations/us-central1/lakes/my-lake/content/my-notebook.ipynb" --execution-service-account=associated-service-account@sample-project.iam.gserviceaccount.com --execution-args=^::^TASK_ARGS="--output_location,gs://my-bucket/Demo" --notebook-batch-executors-count=2 --notebook-batch-max-executors-count=5 --notebook-container-image=container-image --notebook-container-image-java-jars=java-jar1,java-jar-2
REST
API Explorer を使用してタスクを作成します。
ノートブックのスケジュールを管理する
Console
ノートブックのスケジュールすべてのリストを開く
Google Cloud コンソールで、Dataplex の [処理] ページに移動します。
[スケジュール済みのノートブック] タブをクリックして、SQL スクリプト スケジュールのリストを表示します。
特定のノートブックのスケジュールすべてのリストを開く
Google Cloud コンソールで Dataplex の [探索]ページに移動します。
必要なノートブックを選択します。
[スケジュール] メニューで、[スケジュールを表示] をクリックします。
[スケジュール設定されたクエリ] タブが開き、選択したノートブックでフィルタされたノートブック スケジュールのリストが表示されます。
ノートブックのスケジュールの詳細を表示する
[スケジュール設定されたノートブック] タブに移動し、必要なノートブックのスケジュールを選択します。
ノートブック スケジュールの [詳細] と、スケジュール設定されたノートブック コンテンツのプレビューをクリックします。
ノートブック スケジュールの有効化と無効化
[スケジュール設定されたノートブック] タブに移動し、必要なノートブックのスケジュールを選択します。
[無効にする] をクリックして、アクティブなノートブック スケジュールを無効にします。
[有効にする] をクリックし、非アクティブなノートブックのスケジュールを有効にします。
既存のノートブックのスケジュールを削除する
[スケジュール設定されたノートブック] タブに移動し、必要なノートブックのスケジュールを選択します。
[削除] をクリックして、既存のノートブック スケジュールを完全に削除します。
ログの表示してノートブック スケジュールを管理する
[スケジュール設定されたノートブック] タブに移動し、必要なノートブックのスケジュールを選択します。
[ジョブ] タブをクリックしてから、表示するスケジュール設定されたノートブックの実行の [ジョブ ID] をクリックします。
[出力のプレビュー] セクションで、ノートブックの実行の出力を確認します。
[ログを表示] をクリックして、Cloud Logging で実行する選択したスケジュール設定済みノートブックに関連するログを表示します。
Google Cloud コンソールで、[Dataproc バッチ ID] をクリックして Dataproc ページを開きます。対応する Dataproc Serverless セッションの詳細にアクセスします。
Google Cloud コンソールで、[出力] ラベルの横にある [Cloud Storage で管理] をクリックして、Cloud Storage ページを開きます。ノートブックの実行出力を含む対応する Cloud Storage バケットの詳細にアクセスします。
gcloud
gcloud CLI を使用してスケジュール設定されたノートブックをモニタリングする方法については、タスクのモニタリングの [gcloud] タブをご覧ください。
gcloud CLI を使用してスケジュール設定されたノートブックを管理する方法については、スケジュールの管理の [gcloud] タブをご覧ください。
REST
REST を使用してスケジュール設定されたノートブックをモニタリングする方法については、タスクをモニタリングするの [REST] タブをご覧ください。
REST を使用してスケジュール設定されたノートブックを管理する方法については、スケジュールの管理の [REST] タブをご覧ください。
スケジュール設定されたノートブックの出力
スケジュール設定されたノートブックの実行ごとの出力は、次の構造で Cloud Storage フォルダの指定していした場所に保存されます。
CLOUD_STORAGE_FOLDER_LOCATION/projects/PROJECT_ID/locations/LOCATION_ID/lakes/LAKE_ID/tasks/TASK_ID/JOB_ID/QUERY_NUMBER