发布于: Aug 12, 2022

想要通过 Amazon CloudFormation 部署自动化数据管道,首先,您要使用 Amazon Web Services CloudFormation 模板创建所有必要的资源。这消除了手动出错的机会、提高了效率并确保配置保持一致。

使用以下“启动堆栈”按钮启动 Amazon Web Services CloudFormation 模板。

请务必选择 “美国东部(弗吉尼亚北部)”区域 (us-east-1) ** 。然后,输入合适的堆栈名称、电子邮件地址和 Amazon Web Services Glue 爬网程序名称以创建数据目录。添加 Amazon Web Services Glue 数据库名称以保存元数据表。如以下屏幕截图所示确认 IAM 资源的创建,然后选择创建** 。

注意 :请务必输入您的有效电子邮件地址,以确保在 ETL 作业完成时能够收到通知。

此 Amazon Web Services CloudFormation 模板在您的 Amazon Web Services 账户中创建以下资源:

  • 两个 Amazon S3 存储桶,分别用来存储原始数据和已处理的 Parquet 数据。
  • 两个 Amazon Web Services Lambda 函数:一个用来创建 Amazon Web Services Glue 数据目录,另一个用来将主题发布到 Amazon SNS。
  • 一个 Amazon Simple Queue Service (Amazon SQS) 队列,用来维持重试逻辑。
  • 一个 Amazon SNS 主题,用来通知您数据已成功处理。
  • 两条 CloudWatch Events 规则:一条与 Amazon Web Services Glue 爬网程序有关,另一条与 Amazon Web Services Glue ETL 作业有关。
  • 多个 Amazon Web Services Identity and Access Management (IAM) 角色,用于访问 Amazon Web Services Glue、Amazon SNS、Amazon SQS 和 Amazon S3。


在 Amazon Web Services CloudFormation 堆栈准备就绪时,检查您的电子邮件并确认 SNS 订阅。选择 资源 选项卡并查找详细信息。

按照以下步骤验证您的电子邮件订阅,以便在 ETL 作业完成时立即收到电子邮件提醒。

1.  在 Amazon SNS 控制台上,在导航窗格中选择 主题 。名为 SNSProcessedEvent 的 SNS 主题会出现在屏幕上。

2. 选择 ARN。此时会显示“主题详细信息”页,并会将电子邮件订阅列出为 等待确认 。请务必确认通过 终端节点 列中提供的电子邮件地址进行了订阅。


如果没有看到电子邮件地址,或者链接在电子邮件中显示为无效,请选择相应的订阅终端节点。然后,选择 请求确认 以确认订阅。请务必检查垃圾邮件文件夹中是否有请求确认链接。

配置 Amazon S3 存储桶事件触发器

在此部分中,您将在原始 S3 存储桶上配置一个触发器。配置后,如果有新数据放入该存储桶,就会触发已在 Amazon Web Services CloudFormation 部署中创建的 GlueTriggerLambda。

要配置通知,请执行以下操作:

  1. 打开 Amazon S3 控制台。
  2. 选择源存储桶。在本例中,存储桶名称包含 raws3bucket,例如 -raws3bucket-1k331rduk5aph 。
  3. 转到 属性 选项卡,在 高级设置 下选择 事件 。

4. 选择 添加通知 ,然后按照以下设置来配置通知:

  • 名称 – 输入您选择的名称。在本例中,名称是 crawlerlambdaTrigger
  • 事件 – 选中所有对象创建事件复选框,以在您上传文件时创建 Amazon Web Services Glue 数据目录。
  • 发送到 – 选择 Lambda 函数。
  • Lambda – 选择已在部署部分中创建的 Lambda 函数。您的 Lambda 函数应包含字符串 GlueTriggerLambda 。 请查看以下屏幕截图,了解所有设置。完成时,选择 保存 。
有关配置事件的更多详细信息,请参阅 Amazon S3 控制台用户指南中的如何为 S3 存储桶启用和配置事件通知?
 
下载数据集
 
在这篇博文中,您将使用一个公开的纽约绿色出租车数据集(CSV 格式)。您要将每月数据上传到原始区,然后使用 Amazon Web Services Glue 爬网程序执行自动化的数据编目。编目后会触发自动执行的 Amazon Web Services Glue ETL 作业,该作业将每月绿色出租车数据转换为 Parquet 格式并存储在已处理区中。
 
您可以从 NYC Taxi & Limousine Commission 行程记录数据站点下载原始数据集。下载每月绿色出租车数据集,然后仅上传一个月的数据。例如,首先仅将 2018 年 1 月的绿色出租车数据上传到原始 S3 存储桶。
< h2 使用 Amazon Web Services Glue 爬网程序自动进行数据编目
 
现代数据湖的一个重要方面是对可用数据进行编目处理,以便能轻松发现数据。要依据数据湖运行 ETL 作业或即时查询,您必须首先确定数据的架构和其他元数据信息(如位置、格式和大小)。Amazon Web Services Glue 爬网程序可以轻松执行此流程。
 
将数据上传到原始区之后,您在这篇博文的前面部分创建的 Amazon S3 触发器会调用 GlueTriggerLambda 函数。此函数创建一个 Amazon Web Services Glue 数据目录,以存储从已爬网的数据中推导出的元数据信息。
 
打开 Amazon Web Services Glue 控制台。您应看到已使用 Amazon Web Services CloudFormation 模板创建的数据库、表和爬网程序。您的 Amazon Web Services Glue 爬网程序应显示如下。
使用左侧导航窗格浏览到表。您将在您前面创建的数据库中看到该表。
选择表名称,然后进一步查看爬网程序发现的元数据,如下所示。
您还可以查看列、数据类型和其他详细信息。 在以下屏幕截图中,Glue 爬网程序通过确定列名称和相应的数据类型从 Amazon S3 中可用的文件创建了架构。您可以使用此架构创建外部表。

相关文章