

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

# 自动将数据从 Amazon S3 AWS Data Exchange 中提取数据
<a name="automate-data-ingestion-from-aws-data-exchange-into-amazon-s3"></a>

*Adnan Alvee 和 Manikanta Gona，Amazon Web Services*

## Summary
<a name="automate-data-ingestion-from-aws-data-exchange-into-amazon-s3-summary"></a>

此模式提供了一个 CloudFormation 模板，使您能够自动将数据从亚马逊简单存储服务 (Amazon S3) 中的数据提取 AWS Data Exchange 到您的数据湖中。 

AWS Data Exchange 是一项服务，可让您轻松安全地在 AWS 云中交换基于文件的数据集。 AWS Data Exchange 数据集是基于订阅的。作为订阅用户，您还可以在提供程序发布新数据时访问数据集修订版。 

该 CloudFormation 模板在 Amazon Events 中创建了一个 CloudWatch 事件和一个 AWS Lambda 函数。该事件将监视您所订阅的数据集是否有任何更新。如果有更新，则 CloudWatch 启动 Lambda 函数，该函数会将数据复制到您指定的 S3 存储桶。成功复制数据后，Lambda 将向您发送 Amazon Simple Notification Service(Amazon SNS) 通知。

## 先决条件和限制
<a name="automate-data-ingestion-from-aws-data-exchange-into-amazon-s3-prereqs"></a>

**先决条件**
+ 活跃的 AWS 账户
+ 订阅中的数据集 AWS Data Exchange

**限制**
+ 必须为中的每个订阅数据集单独部署 CloudFormation 模板。 AWS Data Exchange

## 架构
<a name="automate-data-ingestion-from-aws-data-exchange-into-amazon-s3-architecture"></a>

**目标技术堆栈**
+ AWS Lambda
+ Amazon S3
+ AWS Data Exchange
+ Amazon CloudWatch
+ Amazon SNS

**目标架构**

![CloudWatch 启动 Lambda 函数将数据复制到 S3 存储桶并发送 Amazon SNS 通知。](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/patterns/images/pattern-img/059816dc-5a71-4942-9c7f-ac977072eebc/images/ec021620-47c1-4fb5-95a9-3b8985accc56.png)


**自动化和扩展**

对于要导入到数据湖中的数据集，您可以多次使用该 CloudFormation 模板。

## 工具
<a name="automate-data-ingestion-from-aws-data-exchange-into-amazon-s3-tools"></a>
+ [AWS Data Exchange](https://docs.aws.amazon.com/data-exchange/latest/userguide/what-is.html)使 AWS 客户可以轻松安全地交换中基于文件的数据集。 AWS Cloud作为订阅用户，您可查找和订阅来自合格数据提供商的数百种产品。然后，您可以快速下载数据集或将其复制到 Amazon S3，以便在各种 AWS 分析和机器学习服务中使用。任何拥有的人 AWS 账户 都可以成为 AWS Data Exchange 订阅者。
+ 利用 [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html)，您可以运行代码，而无需预调配或管理服务器。Lambda 只在需要时运行您的代码，并自动进行扩展，从每天几个请求扩展到每秒数千个请求。您只需按消耗的计算时间付费；代码未运行时不产生费用。借助 Lambda，您几乎可以为任何类型的应用程序或后端服务运行代码，并且不必进行任何管理。Lambda 可在高可用性计算基础设施上运行代码，管理所有计算资源，其中包括服务器和操作系统维护、容量预调配和自动扩缩、代码监控和日志记录。
+ [Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/gsg/GetStartedWithS3.html) 提供面向互联网的存储服务。您可以通过 Amazon S3 随时在 Web 上的任何位置存储和检索的任意大小的数据。
+ [Amazon CloudWatch ](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/WhatIsCloudWatchEvents.html) Events 提供近乎实时的系统事件流，这些事件描述了 AWS 资源的变化。使用可以快速设置的简单规则，您可以匹配事件并将它们路由到一个或多个目标函数或流。 CloudWatch 事件在发生时就会意识到操作变化。其可响应这些操作更改并在必要时采取纠正措施，方式是发送消息以响应环境、激活函数、进行更改并捕获状态信息。您还可以使用 Ev CloudWatch ents 来安排自动操作，这些操作在特定时间使用 **cron** 或**速率**表达式自行启动。
+ [Amazon Simple Notification Service（Amazon SNS）](https://docs.aws.amazon.com/sns/latest/dg/welcome.html)让应用程序、终端用户和设备可以即时发送和接收来自云的通知。Amazon SNS 为高吞吐量、基于推送的消息传递提供主题（通信渠道）。 many-to-many使用亚马逊 SNS 主题，发布者可以向大量订阅者分发消息以进行并行处理，包括亚马逊简单队列服务 (Amazon SQS) Simple Queue Service 队列、Lambda 函数和 webhook。 HTTP/S 您还可以使用 Amazon SNS，通过移动推送、SMS 和电子邮件向最终用户发送通知。

## 操作说明
<a name="automate-data-ingestion-from-aws-data-exchange-into-amazon-s3-epics"></a>

### 订阅数据集
<a name="subscribe-to-a-data-set"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 订阅数据集。 | 在 AWS Data Exchange 控制台中，订阅数据集。有关说明，请参阅 AWS 文档 AWS Data Exchange中的[订阅数据产品](https://docs.aws.amazon.com/data-exchange/latest/userguide/subscribe-to-data-sets.html)。 | 常规 AWS | 
| 注意数据集的属性。 | 记下数据集的 AWS 区域、ID 和修订版 ID。在下一步中，你将需要这个作为 CloudFormation 模板。 | 常规 AWS | 

### 部署 CloudFormation 模板
<a name="deploy-the-cfn-template"></a>


| Task | 说明 | 所需技能 | 
| --- | --- | --- | 
| 创建 S3 存储桶和文件夹。 | 如果您在 Amazon S3 中已经有数据湖，请创建一个文件夹来存储要从中 AWS Data Exchange提取的数据。如果您要为测试部署模板，请创建新的 S3 存储桶，并记下存储桶名称和文件夹前缀，以供下一步使用。 | 常规 AWS | 
| 部署 CloudFormation 模板。 | 部署作为该模式附件提供的 CloudFormation 模板。有关说明，请参阅 [CloudFormation 文档](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html)。<br />将以下参数配置为与您的 AWS 账户、数据集和 S3 存储桶设置相对应：**数据集 AWS 区域****、数据集 ID**、**修订版 ID**、**S3 存储桶名称**（例如`DOC-EXAMPLE-BUCKET`）、**文件夹前缀**（例如`myfolder/`）和用**于 SNS 通知的电子邮件**。您可将**数据集名称**参数设置为任何名称。部署模板时，它会运行 Lambda 函数，以自动摄取数据集中可用的第一组数据。随后，当新数据到达数据集时，后续摄取将自动进行。 | 常规 AWS | 

## 相关资源
<a name="automate-data-ingestion-from-aws-data-exchange-into-amazon-s3-resources"></a>
+ [在 AWS Data Exchange（AWS Data Exchange 文档）上订阅数据产品](https://docs.aws.amazon.com/data-exchange/latest/userguide/subscribe-to-data-sets.html)

## 附件
<a name="attachments-059816dc-5a71-4942-9c7f-ac977072eebc"></a>

要访问与此文档相关联的其他内容，请解压以下文件：[attachment.zip](samples/p-attach/059816dc-5a71-4942-9c7f-ac977072eebc/attachments/attachment.zip)