使用 AWS Glue Studio 管理 ETL 任务
您可以使用 AWS Glue Studio 中的简单图形界面,管理您的 ETL 任务。使用导航菜单,选择 Jobs (任务) 查看 Jobs (任务) 页面。在此页面上,您可以看到您使用 AWS Glue Studio 或 AWS Glue 控制台创建的所有任务。您可以在此页面上查看、管理和运行您的任务。
启动任务运行
在 AWS Glue Studio 中,您可以按需运行您的任务。任务可以多次运行,每次您运行任务时,AWS Glue 会收集有关任务活动和绩效的信息。此信息称为任务运行,由任务运行 ID 标识。
您可以通过以下方式在 AWS Glue Studio 中启动任务:
-
在 Jobs (任务) 页面上,选择要启动的任务,然后选择 Run job (运行任务) 按钮。
-
如果您在可视化编辑器中查看任务并且任务已保存,则可以选择 Run (运行) 按钮启动任务运行。
有关任务运行的更多信息,请参阅《AWS Glue 开发人员指南》中的在 AWS Glue Glue 控制台上处理任务。
计划任务运行
在 AWS Glue Studio 中,您可以创建计划,让您的任务在特定时间运行。您可以指定约束条件,例如任务运行次数、它们在一周中的哪几天运行,以及具体在什么时间运行。这些约束基于 cron
,与 cron
具有相同的限制。例如,如果您选择在每月第 31 天运行您的任务,请记住,有些月份没有 31 天。有关 cron
的更多信息,请参阅《AWS Glue 开发人员指南》中的 Cron 表达式。
按照计划运行任务
-
使用以下某种方法创建任务计划:
-
在 Jobs (任务) 页面上,选择要为其创建计划的任务,选择 Actions (操作),然后选择 Schedule job (计划任务)。
-
如果您在可视化编辑器中查看任务并且任务已保存,则选择 Schedules (计划) 选项卡。然后,选择 Create Schedule (创建计划)。
-
-
在 Schedule job run (计划任务运行) 页面上,输入以下信息:
-
Name (名称):输入您的任务计划的名称。
-
Frequency (频率):输入任务计划的频率。您可以选择以下选项:
-
Hourly (每小时):任务将每小时运行一次,从特定的分钟开始。您可以指定任务运行小时的具体 Minute (分钟)。默认情况下,当您选择每小时时,任务将在小时之初(分钟 0)开始运行。
-
Daily (每天):任务将每天运行,从某个时间开始。您可以指定任务运行小时的具体 Minute (分钟) 以及任务的 Start hour (开始小时)。小时使用 23 小时制时钟指定,其中您使用数字 13 到 23 表示下午小时。分钟和小时的默认值为 0,这意味着如果您选择 Daily (每天),则默认情况下,任务将在午夜运行。
-
Weekly (每周):任务将在每周的一天或多天内运行。除前面针对“Daily (每天)”介绍的相同设置外,您还可以选择任务运行的具体周时间。您可以选择一天或多天。
-
Monthly (每月):任务将在每月的特定日期运行。除前面针对“Daily (每天)”介绍的相同设置外,您还可以选择任务运行的具体日期。将日期指定为 1 到 31 之间的数值。如果您选择一个月中不存在的日期,例如 2 月 30 日,则任务在该月不会运行。
-
自定义:使用
cron
语法输入任务计划的表达式。Cron 表达式允许您创建更复杂的计划,例如每月的最后一天(而不是该月的特定日期),或者每三个月的第 7 天和第 21 天。请参阅《AWS Glue 开发人员指南》中的 Cron 表达式
-
-
Description (描述):您可以有选择地为任务计划输入描述。如果您计划为多项任务使用相同的计划,则描述有助于更轻松地确定任务计划的用途。
-
-
选择 Create schedule (创建计划),保存任务计划。
-
创建计划后,控制台页面的顶部会显示一条成功消息。您可以选择此横幅中的 Job details (任务详细信息),查看任务详细信息。这样将打开可视化任务编辑器页面,其中 Schedules (计划) 选项卡处于选中状态。
管理任务计划
为任务创建计划后,您可以在可视化编辑器中打开任务,然后选择 Schedules (任务) 选项卡以管理计划。
在可视化编辑器的 Schedules (计划) 选项卡,您可以执行以下任务:
-
创建新计划
选择 Create schedule (创建计划),然后输入计划的信息,如 计划任务运行 中所述。
-
编辑现有计划。
选择要编辑的计划,然后依次选择 Action (操作)、Edit schedule (编辑计划)。当您选择编辑现有计划时,Frequency (频率) 显示为 Custom (自定义),并且计划显示为
cron
表达式。您可以修改cron
表达式,也可以使用 Frequency (频率) 按钮指定新计划。完成更改后,选择 Update schedule (更新计划)。 -
暂停活动计划。
选择活动计划,然后依次选择 Action (操作)、Pause schedule (暂停计划)。计划会立即停用。选择刷新(重新加载)按钮,查看更新的任务计划状态。
-
恢复暂停的计划。
选择停用计划,然后依次选择 Action (操作)、Resume schedule (恢复计划)。计划会立即激活。选择刷新(重新加载)按钮,查看更新的任务计划状态。
-
删除计划。
选择要删除的计划,然后依次选择 Action (操作)、Delete schedule (删除计划)。计划会立即删除。选择刷新(重新加载)按钮,查看更新的任务计划列表。该计划将显示 Deleting (删除) 状态,直到它完全删除。
停止任务运行
您可以在任务完成任务运行之前将其停止。如果您知道任务未正确配置,或者任务花费太长时间而未完成,则可以选择此选项。
在 Monitoring (监控) 页面中的 Job runs (任务运行) 列表中,选择要停止的任务,然后依次选择 Actions (操作)、Stop run (停止运行)。
查看您的作业
您可以在 Jobs (任务) 页面查看您的所有任务。您可以在导航窗格中选择 Jobs (任务) 以访问此页面。
在 Jobs (任务) 页面上,您可以查看账户中创建的所有任务。Your jobs (您的任务) 列表会显示任务名称、类型、上次任务运行的状态,以及任务创建和上次修改的日期。您可以选择任务名称,查看相关任务的详细信息。
您还可以使用监控控制面板查看所有任务。您可以在导航窗格中选择 Monitoring (监控) 以访问控制面板。
自定义任务显示
您可以在 Jobs (任务) 页面的 Your jobs (您的任务) 部分中自定义任务的显示方式。此外,您可以在搜索文本字段中输入文本,以便仅显示名称包含该文本的任务。
如果选择 Your jobs (您的任务) 部分中的设置图标 ,您可以自定义 AWS Glue Studio 显示表中信息的方式。您可以选择在显示中将文本换行,更改页面上显示的任务数,以及指定要显示的列。
查看最近任务运行的信息
在源位置添加新数据时,任务可以多次运行。每次运行任务时,都会为任务运行分配唯一 ID,并收集有关该任务运行的信息。您可以使用以下方法查看此类信息:
-
选择可视化编辑器的 Runs (运行) 选项卡,查看当前显示的任务的任务运行信息。
在 Runs (运行) 选项卡(Recent job runs (最近任务运行) 页面)上,每次任务运行都有一张卡。Runs (运行) 选项卡上显示的信息包括:
-
任务运行 ID
-
此任务的尝试运行次数
-
任务运行的状态
-
任务运行的开始和结束时间
-
任务运行的运行时
-
指向任务日志文件的链接
-
指向任务日志文件的链接
-
失败任务返回的错误
-
您可以选择一个任务运行以查看有关任务的其他信息,包括以下信息:
输入参数
连续日志
指标 – 您可以直观地查看基本指标。有关所包含指标的更多信息,请参阅 查看 Spark 作业运行的 Amazon CloudWatch 指标。
Spark UI – 您可以在 Spark UI 中直观地查看任务的 Spark 日志。有关使用 Spark Web UI 的更多信息,请参阅 使用 Apache Spark Web UI 监控作业。按照 为 AWS Glue 作业启用 Apache Spark Web UI 中描述的过程启用此功能。
您可以选择查看详细信息,以在作业运行详细信息页面上查看类似的信息。您还可以通过监控页面导航到作业运行详细信息页面。在导航窗格中,选择 Monitoring (监控)。向下滚动到 Job runs (任务运行) 列表。选择任务,然后选择 View run details (查看运行详细信息)。内容在查看任务运行的详细信息中有描述。
有关任务日志的更多信息,请参阅查看任务运行日志。
查看任务脚本
提供任务中所有节点的信息后,AWS Glue Studio 会生成任务使用的脚本,用于从源中读取数据、转换数据以及将数据写入目标位置。如果保存任务,您可以随时查看此脚本。
查看任务生成的脚本
-
在导航窗格中,选择 Jobs (任务)。
-
在 Jobs (任务) 页面中的 Your Jobs (您的任务) 列表中,选择要查看的任务的名称。或者,您可以在列表中选择一项任务,选择 Actions (操作) 菜单,然后选择 Edit job (编辑任务)。
-
在可视化编辑器页面上,选择 Script (脚本) 选项卡以查看任务任务脚本。
如果您要编辑任务脚本,请参阅AWS Glue 编程指南。
修改任务属性
任务图中的节点定义了任务执行的操作,但也可以为任务配置多个属性。这些属性用于确定任务运行环境、任务使用的资源、阈值设置、安全设置等。
自定义任务运行环境
-
在导航窗格中,选择 Jobs (任务)。
-
在 Jobs (任务) 页面中的 Your Jobs (您的任务) 列表中,选择要查看的任务的名称。
-
在可视化编辑器页面上,选择任务编辑窗格顶部的 Job details (任务详细信息)。
-
根据需要修改任务属性。
有关任务属性的更多信息,请参阅《AWS Glue 开发人员指南》中的定义任务属性。
-
如果您需要指定以下附加任务属性,则展开 Advanced properties (高级属性) 部分:
-
Script filename (脚本文件名) – 在 Amazon S3 中存储任务脚本的文件的名称。
-
Script path (脚本路径) – 任务脚本的 Amazon S3 存储位置。
-
Job metrics (任务指标) –(不适用于 Python Shell 任务)当此任务运行时启用 Amazon CloudWatch 指标创建。
-
Continuous logging (连续日志记录) –(不适用于 Python Shell 任务)打开 CloudWatch 的连续日志记录,以便在任务完成之前可以查看日志
-
Spark UI 和 Spark UI logs path (Spark UI 日志路径) –(不适用于 Python Shell 任务)使用 Spark UI 监控此任务,并指定 Spark UI 日志的位置。
-
Maximum concurrency (最大并发) – 设置此任务业允许的并发运行的最大数量。
-
Temporary path (临时路径) – 在 Amazon S3 中提供工作目录的位置,以便当 AWS Glue 运行脚本时在该位置写入临时中间结果。
-
Delay notification threshold (minutes) (延迟通知阈值(分钟)) – 指定任务的延迟阈值。如果任务运行时间长于阈值指定的时间,则 AWS Glue 将任务的延迟通知发送给 CloudWatch。
-
Security configuration (安全配置) 和 Server-side encryption (服务器端加密) – 使用这些字段选择任务的加密选项。
-
Use Glue Data Catalog as the Hive metastore (使用 Glue 数据目录作为 Hive 元存储) – 选择此选项,如果您要使用 AWS Glue Data Catalog 作为 Apache 蜂巢元数据仓的替代方案。
-
Additional network connection (附加网络连接) – 对于 VPC 中的数据源,您可以指定类型为
Network
,确保您的任务通过 VPC 访问您的数据。 -
Python library path (Python 库路径)、Dependent jars path (从属 jars 路径)(不适用于 Python Shell 任务)或 Referenced files path (引用的文件路径) – 使用这些字段指定任务运行脚本时使用的其他文件的位置。
-
Job Parameters (任务参数) – 您可以添加作为命名参数传递给脚本的一组键值对。在 Python 对 AWS Glue API 的调用中,最好按名称显式传递参数。有关在任务脚本中使用参数的更多信息,请参阅《AWS Glue 开发人员指南》中的在 AWS Glue 中传递和访问 Python 参数。
-
Tags (标签) – 您可以将标签添加到任务,帮助您组织和识别它们。
-
-
修改任务属性后,保存任务。
将 Spark 随机播放文件存储在 Amazon S3 上
某些 ETL 任务需要读取和合并来自多个分区的信息,例如,在使用连接转换时。此操作称为随机排序。在随机排序过程中,数据会写入磁盘并通过网络传输。借助 AWS Glue 3.0 版,您可以将 Amazon S3 配置为这些文件的存储位置。AWS Glue 提供一个随机播放管理器,用于在 Amazon S3 中写入和读取随机文件。与本地磁盘(或者针对 Amazon EC2 进行了严格优化的 Amazon EBS)相比,从 Amazon S3 写入和读取随机放置文件的速度较慢(降低 5%-20%)。不过,Amazon S3 提供无限存储容量,因此您不必担心“No space left on device
”错误运行您的任务。
将您的任务配置为使用 Amazon S3 对文件进行随机排序
-
在 Jobs (任务) 页面中的 Your Jobs (您的任务) 列表中,选择要修改的任务的名称。
-
在可视化编辑器页面上,选择任务编辑窗格顶部的 Job details (任务详细信息)。
向下滚动到 Job parameters (任务参数) 部分。
-
指定以下键/值对。
-
--write-shuffle-files-to-s3
—true
这是用于配置 AWS Glue 中随机排序管理器的主要参数,使用 Amazon S3 存储桶来写入和读取随机数据。此参数的默认值为
false
。 -
(可选)
--write-shuffle-spills-to-s3
–true
此参数允许您将溢出文件卸载到 Amazon S3 存储桶,从而为AWS Glue。只有将大量数据溢出到磁盘的大型工作负载才需要这样做。此参数的默认值为
false
。 -
(可选)
--conf spark.shuffle.glue.s3ShuffleBucket
–S3://<
shuffle-bucket
>此参数指定在写入临时排序文件时要使用的 Amazon S3 存储桶。如果未设置此参数,则位置是
shuffle-data
文件夹中指定的临时路径(--TempDir
)位置。注意
确保 Shell 存储桶位于任务运行所在的相同 AWS 区域。
此外,随机排序服务不会在任务完成运行后清理文件,因此您应该在 Shell 存储桶位置上配置 Amazon S3 存储生命周期策略。有关更多信息,请参阅《Amazon S3 用户指南》中的对象生命周期管理。
-
保存任务
红色 Job has not been saved (尚未保存任务) 标注将显示在 Save (保存) 按钮左侧,直到您保存任务。
保存您的任务
-
请在 Visual (视觉对象) 和 Job details (任务详细信息) 选项卡中提供所有必需的信息。
-
选择保存按钮。
保存任务后,“not saved (未保存)”标注将更改为显示上次保存任务的时间和日期。
如果您在退出 AWS Glue Studio 时未保存您的任务,您下次登录 AWS Glue Studio 时,会显示通知。通知指示存在未保存的任务,并询问您是否要恢复。如果选择恢复任务,则可以继续对其进行编辑。
排查保存任务时的错误
如果选择 Save (保存) 按钮,但您的任务缺少了一些必需的信息,那么缺少信息的选项卡上会出现一个红色标注。标注中的数字表示检测到的缺失字段数。
-
如果可视编辑器中的节点配置不正确,则 Visual (视觉对象) 选项卡显示红色标注,出现错误的节点显示警告符号 。
-
选择节点。在节点详细信息面板中,缺少信息或不正确信息所在的选项卡上会显示一个红色标注。
-
在节点详细信息面板中选择显示红色标注的选项卡,然后找到突出显示的问题字段。字段下面的错误消息提供了有关问题的其他信息。
-
-
如果任务属性存在问题,则 Job details (任务详细信息) 选项卡显示红色标注。选择该选项卡并找到突出显示的问题字段。字段下面的错误消息提供了有关问题的其他信息。
克隆任务
您可以使用 Clone job (克隆任务) 操作将现有任务复制到新任务。
通过复制现有任务创建新任务
-
在 Jobs (任务) 页面中的 Your jobs (您的任务) 列表中,选择要复制的任务。
-
从 Actions (操作) 菜单中,选择 Clone job (克隆任务)。
-
输入新任务的名称。然后,您可以保存或编辑任务。
删除任务
您可以删除不再需要的任务。您可以在单个操作中删除一个或多个任务。
要从 AWS Glue Studio 中删除任务
-
在 Jobs (任务) 页面中的 Your jobs (您的任务) 列表中,选择要删除的任务。
从 Actions (操作) 菜单中选择 Delete job (删除任务)。
验证您要删除任务,方法是输入
delete
。
在可视化编辑器中查看任务的 Job details (任务详细信息) 选项卡时,也可以删除保存的任务。