通过安排 SQL 脚本和笔记本,您可以将在数据探索工作台(探索)中创建的资产投入使用。
安排 SQL 脚本或笔记本的运行时间会创建一个 Dataplex 任务,该任务会在预定时间运行一次或定期运行。每次运行时,系统都会创建一个作业来捕获执行元数据,例如执行开始时间和结束时间、执行状态、日志和生成的输出。
为已安排的 SQL 脚本或笔记本触发运行时,系统会执行笔记本或 SQL 脚本的当前版本。这意味着,如果您安排运行笔记本或 SQL 脚本,之后又更新了其内容,那么更新也会反映在笔记本或 SQL 脚本的定期运行中。
费用
安排的 SQL 脚本和安排的笔记本会使用 Dataproc Serverless 触发作业执行。系统会根据 Dataproc 价格模式收取使用费,费用会显示在 Dataproc 下,而不是 Dataplex 下。
准备工作
查看并完成以下文档中所述的前提条件:
如果 SQL 脚本或笔记本时间表使用 BigQuery API,则您必须向服务账号授予“服务使用情况使用方”角色 (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 脚本
控制台
在 Google Cloud 控制台中,前往 Dataplex 的探索页面。
选择要安排的 SQL 脚本,方法是从 Spark SQL 脚本列表中选择单个 SQL 脚本,或在 Spark SQL 编辑器中打开 SQL 脚本。
在时间表菜单中,点击创建时间表。
在时间表名称字段中,输入定期实例的名称。
在时间表选项部分,选择您希望仅运行一次 SQL 脚本还是周期性运行:
如果您选择运行一次,请使用开始菜单中的选项指定您是想立即运行 SQL 脚本,还是在安排的时间运行。对于安排的运行作业,请指定开始日期和运行时间。
如果您选择重复,请指定您希望 SQL 脚本每天、每周、每月运行,还是按使用 cron 表达式指定的自定义时间表运行。此外,请指定初始安排的运行作业的开始日期和运行时间。
在结果的目标位置部分,执行以下操作:
在输出文件夹名称字段中,点击浏览,然后在 Cloud Storage 存储分区中选择要存储脚本输出的文件夹。
点击选择。
选择脚本输出格式。支持的格式包括 CSV、JSON、ORC 和 Parquet。
在定期运行的脚本凭据部分,从用户服务账号菜单中选择一个服务账号。
点击时间表。
gcloud
如需了解如何使用 gcloud CLI 调度 SQL 脚本,请参阅调度 SparkSQL 任务。
REST
使用 API Explorer 创建任务。
管理 SQL 脚本时间表
控制台
打开所有 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 脚本相关的日志。
点击 Dataproc 批处理 ID,在 Google Cloud 控制台中打开 Dataproc 页面。 访问相应 Dataproc Serverless 会话的详细信息。
点击“输出”标签旁边的在 Cloud Storage 中管理,以在 Google Cloud 控制台中打开 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 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.
为安排的笔记本构建自定义容器映像
如需了解如何为安排的笔记本建立容器映像,以及如何在容器映像 dockerfile 中安装所需的自定义 Python 软件包,请参阅为 Dataproc Serverless for Spark 构建自定义容器映像。
确保您已在容器映像中安装以下 conda 软件包:
gcsfs
google-cloud-bigquery
google-cloud-storage
google-auth
ipykernel
papermill
如需在容器映像中安装 gcloud
组件,请打开容器映像 dockerfile 并完成以下步骤:
将
google-cloud-sdk
软件包添加到要安装的 conda 软件包列表中。在 conda 软件包安装步骤后面添加以下几行代码:
# (Optional) Installing gcloud components RUN gcloud components install alpha beta bq
安排笔记本
控制台
在 Google Cloud 控制台中,前往 Dataplex 的探索页面。
选择要安排的笔记本,方法是在笔记本视图中选择单个笔记本,或在笔记本详情页面中打开笔记本。
在时间表菜单中,点击创建时间表。
在时间表名称字段中,输入定期实例的名称。
在时间表选项部分,选择您希望仅运行一次还是周期性运行该笔记本:
如果您选择运行一次,请使用开始菜单中的选项指定您希望立即运行还是在安排的时间运行该记事本。对于安排的运行作业,请指定开始日期和运行时间。
如果您选择重复,请指定您希望笔记本每天、每周、每月运行,还是按使用 cron 表达式指定的自定义时间表运行。此外,请指定初始安排的运行作业的开始日期和运行时间。
在结果的目标位置部分,选择要存储笔记本输出的位置:
在 Output folder name(输出文件夹名称)字段中,点击 Browse(浏览),然后在 Cloud Storage 存储分区中选择要存储笔记本输出的文件夹。
点击选择。
选择脚本输出格式。支持的格式包括 CSV、JSON、ORC 和 Parquet。
在定期执行的笔记本凭据部分,从用户服务账号菜单中选择一个服务账号。
在参数部分,点击添加新建,以键值对的形式添加笔记本的执行参数。
点击时间表。
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 Serverless 时,任务所需的计算资源 | |
--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 网络标识符。您最多只能指定以下一项。 | |
--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 创建任务。
管理笔记本时间表
控制台
打开所有笔记本时间表的列表
在 Google Cloud 控制台中,前往 Dataplex 的流程页面。
点击已安排的笔记本标签页,查看 SQL 脚本时间表列表。
打开特定记事本的所有时间表的列表
在 Google Cloud 控制台中,前往 Dataplex 的探索页面。
选择所需的笔记本。
在时间表菜单中,点击查看时间表。
系统会打开已安排的查询标签页,其中列出了按所选笔记本过滤的笔记本时间表。
查看笔记本时间表的详细信息
前往定期发布的笔记本标签页,然后选择所需的笔记本时间表。
点击详细信息可查看笔记本时间表的详细信息以及已安排的笔记本内容的预览。
启用和停用笔记本时间安排
前往定期发布的笔记本标签页,然后选择所需的笔记本时间安排。
点击停用可停用有效的笔记本提取时间安排。
点击启用以启用未启用的笔记本时间安排。
删除现有笔记本时间表
前往定期发布的笔记本标签页,然后选择所需的笔记本时间安排。
点击删除以永久删除现有的笔记本时间表。
查看日志和管理笔记本时间表
前往定期发布的笔记本标签页,然后选择所需的笔记本时间安排。
点击作业标签页,然后点击要查看的定期运行的笔记本的作业 ID。
在预览输出部分,查看运行的笔记本的输出。
点击查看日志,在 Cloud Logging 中查看与所选的定期运行的笔记本相关的日志。
点击 Dataproc 批处理 ID,在 Google Cloud 控制台中打开 Dataproc 页面。 访问相应 Dataproc Serverless 会话的详细信息。
点击输出标签旁边的在 Cloud Storage 中管理,以在 Google Cloud 控制台中打开 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