使用 CloudWatch Events 实现 Amazon Glue 自动化 - Amazon Glue
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

使用 CloudWatch Events 实现 Amazon Glue 自动化

您可以使用 Amazon CloudWatch Events 自动执行您的 Amazon 服务并自动响应系统事件,例如应用程序可用性问题或资源更改。Amazon 服务中的事件近乎实时地传输到 CloudWatch Events。您可以编写简单规则来指示您关注的事件,并指示要在事件匹配规则时执行的自动化操作。可自动触发的操作包括:

  • 调用 Amazon Lambda 函数

  • 调用 Amazon EC2 Run Command

  • 将事件中继到 Amazon Kinesis Data Streams

  • 激活 Amazon Step Functions 状态机

  • 通知 Amazon SNS 主题或 Amazon SQS 队列

一些将 CloudWatch Events 与 Amazon Glue 结合使用的示例包括:

  • 当 ETL 任务成功时激活 Lambda 函数

  • 当 ETL 任务失败时通知 Amazon SNS 主题

以下 CloudWatch Events 由 Amazon Glue 生成。

  • 针对 SUCCEEDEDFAILEDTIMEOUTSTOPPED 生成的 "detail-type":"Glue Job State Change" 事件。

  • 当超过作业延迟通知阈值时,则会针对 RUNNINGSTARTINGSTOPPING 作业运行生成 "detail-type":"Glue Job Run Status" 事件。必须设置作业延迟通知阈值属性才能接收这些事件。

    当超过作业延迟通知阈值时,每个作业运行状态仅生成一个事件。

  • 针对 StartedSucceededFailed 生成 "detail-type":"Glue Crawler State Change" 事件。

  • 针对 CreateDatabaseDeleteDatabaseCreateTableDeleteTableBatchDeleteTable 生成 "detail-type":"Glue Data Catalog Database State Change" 的事件。例如,如果创建或删除表,系统会向 CloudWatch Events 发送一条通知。请注意,您不能编写取决于通知事件的顺序或存在的程序,因为它们可能是乱序或缺失的。尽最大努力发出事件。在通知的详细信息中:

    • typeOfChange 包含 API 操作的名称。

    • databaseName 包含受影响数据库的名称。

    • changedTables 对于每个通知最多包含 100 个受影响的表的名称。当表名称过长时,可创建多个通知。

  • 针对 UpdateTableCreatePartitionBatchCreatePartitionUpdatePartitionDeletePartitionBatchUpdatePartitionBatchDeletePartition 生成的 "detail-type":"Glue Data Catalog Table State Change" 事件。例如,如果更新表或分区,系统会向 CloudWatch Events 发送一条通知。请注意,您不能编写取决于通知事件的顺序或存在的程序,因为它们可能是乱序或缺失的。尽最大努力发出事件。在通知的详细信息中:

    • typeOfChange 包含 API 操作的名称。

    • databaseName 包含其中包含受影响资源的数据库的名称。

    • tableName 包含受影响的表的名称。

    • changedPartitions 在一条通知中最多指定 100 个受影响的分区。当分区名称过长时,可创建多个通知。

      例如,如果有两个分区键 YearMonth,则 "2018,01", "2018,02" 会修改分区(其中 "Year=2018" and "Month=01")和分区(其中 "Year=2018" and "Month=02")。

      { "version":"0", "id":"abcdef00-1234-5678-9abc-def012345678", "detail-type":"Glue Data Catalog Table State Change", "source":"aws.glue", "account":"123456789012", "time":"2017-09-07T18:57:21Z", "region":"us-west-2", "resources":["arn:aws:glue:us-west-2:123456789012:database/default/foo"], "detail":{ "changedPartitions": [ "2018,01", "2018,02" ], "databaseName": "default", "tableName": "foo", "typeOfChange": "BatchCreatePartition" } }

有关更多信息,请参阅 Amazon CloudWatch Events 用户指南。有关特定于 Amazon Glue 的事件,请参阅 Amazon Glue 事件