创建和处理 Amazon Glue DataBrew 配方作业 - Amazon Glue DataBrew
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

创建和处理 Amazon Glue DataBrew 配方作业

使用 DataBrew 配方作业清理和标准化数据 DataBrew集中的数据,并将结果写入您选择的输出位置。运行配方作业不会影响数据集或底层源数据。当作业运行时,它会以只读方式连接到源数据。任务输出将写入您在 Amazon S3 Amazon Glue Data Catalog、或支持的 JDBC 数据库中定义的输出位置。

使用以下步骤创建 DataBrew 配方作业。

创建配方任务
  1. 登录 Amazon Web Services Management Console 并打开 DataBrew 控制台,网址为 https://console.aws.amazon.com/databrew/

  2. 从导航窗格中选择 “作业”,选择 “食谱作业” 选项卡,然后选择 “创建作业”。

  3. 输入任务的名称,然后选择 “创建配方作业”。

  4. J ob 输入中,输入要创建的作业的详细信息:要处理的数据集的名称和要使用的配方。

    配方作业使用 DataBrew 配方来转换数据集。要使用食谱,请务必先将其发布。

  5. 配置您的任务输出设置。

    为您的任务输出提供目的地。如果您没有为输出目标配置 DataBrew 连接,请先在数据集选项卡上进行配置,如中所述支持的数据源和输出连接。选择以下输出目标之一:

    • Amazon S3,有或没有 Amazon Glue Data Catalog 支持

    • 亚马逊 Redshift,有或没有支持 Amazon Glue Data Catalog

    • JDBC

    • 雪花桌

    • Amazon Glue Data Catalog 支持的 Amazon RDS 数据库表。Amazon RDS 数据库表支持以下数据库引擎:

      • Amazon Aurora

      • MySQL

      • Oracle

      • PostgreSQL

      • Microsoft SQL Server

    • 有 Amazon Glue Data Catalog 支持的 Amazon S3。

    对于基于的 Amazon Glue Data Catalog 输出 Amazon Lake Formation,仅 DataBrew 支持替换现有文件。在这种方法中,文件将被替换,以保持数据访问角色的现有 Lake Formation 权限不变。此外, DataBrew 优先考虑 Amazon Glue Data Catalog 表中的 Amazon S3 位置。因此,在创建配方任务时,您无法覆盖 Amazon S3 的位置。

    在某些情况下,任务输出中的 Amazon S3 位置与数据目录表中的 Amazon S3 位置不同。在这些情况下,使用目录表中的 Amazon S3 位置自动 DataBrew 更新任务定义。它会在您更新或启动现有任务时执行此操作。

  6. 仅对于 Amazon S3 的输出目的地,您还有其他选择:

    1. 为 Amazon S3 选择一种可用的数据输出格式、可选的压缩格式和可选的自定义分隔符。输出文件支持的分隔符与输入文件支持的分隔符相同:逗号、冒号、分号、竖线、制表符、插入符号、反斜杠和空格。有关格式的详细信息,请参阅下表。

      格式 文件扩展名(未压缩) 文件扩展名(压缩)

      以逗号分隔的值

      .csv .csv.snappy, .csv.gz, .csv.lz4, csv.bz2, .csv.deflate, csv.br

      制表符分隔的值

      .csv .tsv.snappy, .tsv.gz, .tsv.lz4, tsv.bz2, .tsv.deflate, tsv.br
      Apache Parquet .parquet .parquet.snappy, .parquet.gz, .parquet.lz4, .parquet.lzo, .parquet.br
      Amazon Glue 实木地板 不支持 .glue.parquet.snappy
      Apache Avro .avro .avro.snappy, .avro.gz, .avro.lz4, .avro.bz2, .avro.deflate, .avro.br
      Apache ORC .orc .orc.snappy, .orc.lzo, .orc.zlib
      XML .xml .xml.snappy, .xml.gz, .xml.lz4, .xml.bz2, .xml.deflate, .xml.br
      JSON(仅限 JSON 行格式) .json .json.snappy, .json.gz, .json.lz4, json.bz2, .json.deflate, .json.br
      Tableau 超级 不支持 不适用
    2. 选择是输出单个文件还是多个文件。Amazon S3 有三个文件输出选项:

      • 自动生成文件(推荐)-已 DataBrew 确定输出文件的最佳数量。

      • 单文件输出-生成单个输出文件。此选项可能会导致额外的作业执行时间,因为需要进行后期处理。

      • 多文件输出-是否为任务输出指定文件数。有效值为 2—999。如果使用列分区或输出中的行数少于您指定的文件数,则输出的文件数量可能会少于您指定的数量。

    3. (可选)为配方任务输出选择列分区。

      列分区提供了另一种将配方任务输出分成多个文件的方法。列分区可以与新的或现有的 Amazon S3 输出一起使用,也可以与新的数据目录 Amazon S3 输出一起使用。它不能用于现有的数据目录 Amazon S3 表。输出文件基于您指定的列名的值。如果您指定的列名是唯一的,则生成的 Amazon S3 文件夹路径将基于列名的顺序。

      有关列分区的示例列分区示例,请参见以下内容。

  7. (可选)选择 “为作业输出启用加密” 以加密 DataBrew 写入输出位置的作业输出,然后选择加密方法:

    • 使用 SSE-S3 加密 — 输出使用服务器端加密和 Amazon S3 托管加密密钥进行加密。

    • 使用 Amazon Key Management Service (Amazon KMS)-使用对输出进行加密 Amazon KMS。要使用此选项,请选择要使用的 Amazon KMS 密钥的 Amazon 资源名称 (ARN)。如果您没有 Amazon KMS 密钥,则可以通过选择创建密钥来创建 Amazon KMS 密钥

  8. 要获得访问权限,请选择允许 DataBrew 写入您的输出位置的 Amazon Identity and Access Management (IAM) 角色。对于您的 Amazon 账号拥有的营业地点,您可以选择AwsGlueDataBrewDataAccessRole服务管理角色。这样做可以 DataBrew 访问您拥有的 Amazon 资源。

  9. 高级作业设置窗格上,您可以为作业的运行方式选择更多选项:

    • 最大单位数-使用并行运行的多个计算节点 DataBrew 处理作业。默认节点数为 5。最大节点数为 149。

    • Job timeout — 如果作业运行时间超过您在此处设置的分钟数,则该作业会失败并显示超时错误。默认值为 2,880 分钟或 48 小时。

    • 重试次数-如果作业在运行时失败, DataBrew 可以尝试再次运行。默认情况下,不会重试该作业。

    • 为作业启用 Amazon CloudWatch 日志- DataBrew 允许将诊断信息发布到 CloudWatch 日志。这些日志可用于故障排除或获取有关如何处理任务的更多详细信息。

  10. 对于 Schedule 作业,您可以应用 DataBrew 作业计划,以便您的作业在特定时间运行,或者定期运行。有关更多信息,请参阅 按计划自动运行作业

  11. 当设置符合您的需要时,选择创建作业。或者,如果您想立即运行作业,请选择创建并运行作业

您可以通过在作业运行时检查其状态来监控作业的进度。作业运行完成后,状态将更改为 “成功”。现在,作业输出可在您选择的输出位置获得。

DataBrew 保存您的作业定义,以便您以后可以运行相同的作业。要重新运行作业,请从导航窗格中选择 “作业”。选择要处理的作业,然后选择 “运行作业”。

列分区示例

作为列分区的示例,假设您指定了三列,其中每行包含两个可能值中的一个。该Dept列的值可以是AdminEng。该Staff-type列的值可以是Part-timeFull-time。该Location列的值可以是Office1Office2。用于任务输出的 Amazon S3 存储桶如下所示。

s3://bucket/output-folder/Dept=Admin/Staff-type=Part-time/Area=Office1/jobId_timestamp_part0001.csv s3://bucket/output-folder/Dept=Admin/Staff-type=Part-time/Location=Office2/jobId_timestamp_part0002.csv s3://bucket/output-folder/Dept=Admin/Staff-type=Full-time/Location=Office1/jobId_timestamp_part0003.csv s3://bucket/output-folder/Dept=Admin/Staff-type=Full-time/Location=Office2/jobId_timestamp_part0004.csv s3://bucket/output-folder/Dept=Eng/Staff-type=Part-time/Location=Office1/jobId_timestamp_part0005.csv s3://bucket/output-folder/Dept=Eng/Staff-type=Part-time/Location=Office2/jobId_timestamp_part0006.csv s3://bucket/output-folder/Dept=Eng/Staff-type=Full-time/Location=Office1/jobId_timestamp_part0007.csv s3://bucket/output-folder/Dept=Eng/Staff-type=Full-time/Location=Office2/jobId_timestamp_part0008.csv

按计划自动运行作业

您可以随时重新运行 DataBrew 作业,也可以按计划自动运行 DataBrew 作业。

重新运行作业 DataBrew
  1. 登录 Amazon Web Services Management Console 并打开 DataBrew 控制台,网址为 https://console.aws.amazon.com/databrew/

  2. 在导航窗格上,选择作业。选择要运行的作业,然后选择运行作业

要在特定时间运行 DataBrew 作业,或定期运行作业,请创建 DataBrew 作业计划。然后,您可以将作业设置为按计划运行。

创建 DataBrew 作业时间表
  1. 在 DataBrew 控制台的导航窗格上,选择作业。选择 “计划” 选项卡,然后选择 “添加计划”。

  2. 输入计划名称,然后为运行频率选择一个值:

    • 重复-选择您希望作业运行的频率(例如,每 12 小时运行一次)。然后选择在哪一天或几天运行作业。或者,您可以输入一天中作业运行的时间。

    • 在特定时间-输入您希望作业运行的时间。然后选择在哪一天或几天运行作业。

    • 输入 CRON-通过输入有效的 cron 表达式来定义作业计划。有关更多信息,请参阅 使用配方作业的 cron 表达式

  3. 根据需要进行设置后,选择 Save (保存)

将作业与计划关联
  1. 在导航窗格上,选择作业

  2. 选择要处理的作业,然后在 “操作” 中选择 “编辑”。

  3. 在 “安排作业” 窗格上,选择 “关联计划”。选择要使用的时间表的名称。

  4. 根据需要进行设置后,选择 Save (保存)

使用配方作业的 cron 表达式

Cron 表达式有六个必填字段,之间以空格分隔。语法如下所示。

Minutes Hours Day-of-month Month Day-of-week Year

在前面的语法中,以下值和通配符用于指定的字段。

字段 通配符

分钟

0-59

, - * /

小时

0–23

, - * /

D ay-of-month

1-31

, - * ? / L W

1-12 或 JAN-DEC

, - * /

D ay-of-week

1-7 或 SUN-SAT

, - * ? / L

1970-2199

, - * /

按如下方式使用这些通配符:

  • ,(逗号)通配符包含其他值。在现Month场,JAN,FEB,MAR包括一月、二月和三月。

  • -(破折号)通配符指定范围。在该Day字段中,1—15 包括指定月份的第 1 天到第 15 天。

  • *(星号)通配符包含该字段中的所有值。在该Hours字段中,* 包括每小时。

  • /(斜杠)通配符用于指定增量。在该Minutes字段中,您可以输入1/10指定从一小时的第一分钟(例如,第 11 分钟、第 21 分钟和第 31 分钟)开始每隔 10 分钟。

  • ?(问号)通配符用于指定一个或另一个。例如,假设您在Day-of-month字段中输入 7。如果你不在乎第七天是哪一天,那么你可以输入Day-of-week野外。

  • Day-of-monthDay-of-week字段中的 L 通配符指定一个月或一周的最后一天。

  • Day-of-month 字段中的 W 通配符用于指定工作日。在 Day-of-month 字段中,3W 用于指定最靠近当月的第三周的日。

这些字段和值具有以下限制:

  • 您无法在同一 cron 表达式中为 Day-of-monthDay-of-week 字段同时指定值。如果您在其中一个字段中指定了值,则必须在另一个字段中使用 ?(问号)。

  • 不支持导致速率快于 5 分钟的 Cron 表达式。

在创建计划时,您可以使用以下示例 cron 字符串。

分钟 小时 日期 月份 星期几 含义

0

10

*

*

?

*

每天上午 10:00(世界标准时间)跑步

15

12

*

*

?

*

每天下午 12:15 (UTC) 运行

0

18

?

*

MON-FRI

*

每星期一到星期五下午 6:00 (UTC) 运行

0

8

1

*

?

*

每月第一天上午 8:00(UTC)运行

0/15

*

*

*

?

*

每 15 分钟运行一次

0/10

*

?

*

MON-FRI

*

从星期一到星期五,每 10 分钟运行一次

0/5

8-17

?

*

MON-FRI

*

在每星期一到星期五的上午 8:00 到下午 5:55 (UTC) 之间,每 5 分钟运行一次

例如,您可以使用以下 cron 表达式在每天 12:15 UTC 运行作业。

15 12 * * ? *

删除作业和作业计划

如果您不再需要作业或作业计划,则可以将其删除。

删除任务
  1. 在导航窗格上,选择作业

  2. 选择要删除的作业,然后在 “操作” 中选择 “删除”。

删除作业计划
  1. 在导航窗格上,选择作业,然后选择计划选项卡。

  2. 选择要删除的计划,然后在 “操作” 中选择 “删除”。