[SEO 副标题]
本指南介绍了用于将广告和营销数据连接到 AWS 服务的数据摄取模式。数据可以来自各种数据存储,激活后可用于设置 Customer 360 概况、AWS Clean Rooms 协作、人工智能和机器学习(AI/ML)训练,以及分析应用程序。本指南包括演示数据管道的概述架构图,以及六种架构模式,它们展示了为您的分析工作负载预置数据的不同方法。
请注意:[免责声明]
架构图
-
概览
-
使用 AWS Lambda 实现 API 拉取模式
-
使用 Amazon AppFlow 实现 API 拉取模式
-
使用 Amazon S3 实现推送模式
-
批量拉取和更改数据捕获模式
-
托管文件传输模式
-
文件复制模式
-
概览
-
此架构图概述了如何将存储在各种数据来源中的数据源连接到 AWS。要查看架构模式,请打开其他选项卡。
第 1 步
广告和营销分析所需的数据来源属于以下三类之一:软件即服务(SaaS)应用程序、关系数据库,或文件存储。第 2 步
使用专为数据摄取而构建的 AWS 服务,连接数据来源并从中拉取数据。随后的架构模式详细介绍了每种数据来源的摄取服务。第 3 步
使用云数据存储“原始”区域作为数据摄取服务的目标。第 4 步
使用提取、转换、加载(ETL)数据处理作业将数据转换为满足数据消费需求的格式。第 5 步
将转换后的数据存储在云数据存储的“清洁”区域。在数据目录服务中将数据编目为关系表。第 6 步
要构建分析应用程序,可将编目的数据提供给消费服务,例如 AWS Clean Rooms、AWS Entity Resolution 数据匹配服务、Amazon SageMaker、Amazon Redshift、Amazon Athena 和 Amazon QuickSight。第 7 步
构建统一的可观测性堆栈,提供以下功能:工作流程元数据存储库;工作流程触发事件;将任务串联起来,形成具有消费工作负载的端到端工作流程;生成可观测性通知的能力;以及日志捕获和详细的可观测性仪表板。第 8 步
实施安全和访问控制措施,以实现以下功能:对特定资源和操作的最低权限访问;加密静态数据和传输中数据;存储个人身份信息(PII)数据的哈希密钥;监控本指南中使用的所有服务的日志和指标。 -
使用 AWS Lambda 实现 API 拉取模式
-
此架构图展示了使用 AWS Lambda 针对 Amazon Ads API 和 Amazon Selling Partner API 实现 API 拉取模式。要查看其他架构模式,请打开其他选项卡。
第 1 步
Amazon EventBridge 调度作业,启动 AWS Step Functions 状态机。该状态机处理一系列 AWS Lambda 函数,帮助创建报告。第 2 步
状态机调用 Lambda 函数(Create Request Execution)从 Amazon Ads API 或 Amazon Selling Partner API 创建报告请求。第 3 步
在 AWS Secrets Manager 中存储 API 凭证,并在调用 API 时使用这些凭证。然后,状态机进入一系列轮询步骤,在下载报告前调用 Lambda 函数(Check Report Status)检查报告请求状态。第 4 步
Amazon DynamoDB 为每份下载的报告存储元数据。第 5 步
Lambda 函数(Download Report)将报告写入原始的 Amazon Simple Storage Service(Amazon S3)存储桶,其前缀包含具体的报告类型和报告日期。将报告写入 S3 存储桶时,Lambda 使用 Amazon 托管的 AWS Key Management Service(AWS KMS)密钥对报告进行加密。第 6 步
S3 对象插入存储桶时,其发出的通知调用 Step Functions 状态机。如果经过指定时间没有再收到更多对象,数据转换 Step Functions 状态机就会启动,并调用一个 Lambda 函数。第 7 步
Lambda 函数(Update Metadata)在 DynamoDB 表中存储 Step Functions 执行 ID 的任务令牌。AWS Glue 作业处理数据,并从原始 S3 存储桶中读取数据,然后将其转换为可用格式。 -
使用 Amazon AppFlow 实现 API 拉取模式
-
此架构图展示了使用 Amazon AppFlow 针对 SaaS 应用程序数据实现 API 拉取模式。要查看其他架构模式,请打开其他选项卡。
第 1 步
EventBridge 调度启动 Step Functions 状态机的作业,其中包括启动 Amazon Appflow。第 2 步
Amazon AppFlow 流程首先打开与外部数据提供商的连接,并请求数据。外部提供商使用数据响应 Amazon AppFlow。第 3 步
Amazon AppFlow 将数据放入原始的 S3 存储桶和指定前缀。Amazon AppFlow 使用 AWS KMS 密钥对写入原始 S3 存储桶的对象进行加密。第 4 步
当指南将对象存储到存储桶中时,Amazon S3 的通知会启动 Step Functions 状态机。如果经过指定时间没有再收到更多对象,数据转换 Step Functions 状态机将启动,并继续执行常规流程。第 5 步
Lambda 函数将 Step Functions 执行 ID 的任务令牌存储到 DynamoDB 表,并调用 AWS Glue 作业。AWS Glue 作业运行,从原始存储桶读取数据,并进行转换。AWS Glue 将转换后的数据写入清洁的 S3 存储桶。AWS Glue Data Catalog 元数据也会写出。由此堆栈创建的 AWS KMS 客户自主管理型密钥(CMK)会对存储桶内容和 AWS Glue 元数据进行加密。第 6 步
通过存储 Step Functions 工作流程元数据和执行信息,DynamoDB 建立了统一的可观测性。然后,Amazon Simple Notification Service(Amazon SNS)会生成可观测性通知。第 7 步
使用以下 AWS 服务实现安全性和访问权限:AWS Identity and Access Management(IAM)实现对特定资源和操作的最低权限访问。AWS KMS 为静态数据和传输中数据提供加密。Secrets Manager 为 PII 数据提供哈希密钥。Amazon CloudWatch 监控本指南中使用的所有服务的日志和指标。 -
使用 Amazon S3 实现推送模式
-
此架构图展示了使用 Amazon S3 针对 SaaS 应用程序数据实现 API 推送模式。要查看其他架构模式,请打开其他选项卡。
第 1 步
外部数据来源将原始数据文件(如 CSV)推送到每日分区的登录区 S3 存储桶中。请参考外部文档,设置推送作业输入,如 S3 存储桶位置、访问密钥和调度频率。第 2 步
在 EventBridge 中创建一条规则,以调度 Step Functions 标准工作流程,按要求的频率处理数据。第 3 步
在工作流程中,使用 Lambda 函数执行文件级处理,例如 Pretty Good Privacy(PGP)解密。将解密后的文件放入不同的 S3 存储桶前缀。第 4 步
使用 AWS Glue 作业处理登录区 S3 存储桶中的解密数据文件,并将数据写入单独已处理区的 S3 存储桶中。使用为读取而优化的 Apache Parquet 格式写入对象。应用属性级转换(如 SHA256 哈希算法),以确保敏感数据的安全。根据需要应用分区方案,以优化读取。第 5 步
从工作流程执行 AWS Glue 爬网程序,对数据目录中为读取而优化的数据进行编目。第 6 步
使用 Lambda 函数执行后处理活动,例如在清理过程中,将源数据文件移动到“archive”前缀位置。第 7 步
使用 Amazon SNS 发布工作流程完成事件,并通过电子邮件通知操作员和用户。使用 HTTP 或 Topic 选项与其他可观测性工具集成。第 8 步
使用以下 AWS 服务实现安全性和访问权限:IAM 实现对特定资源和操作的最低权限访问。AWS KMS 为静态数据和传输中数据提供加密。 Secrets Manager 为 PII 数据提供哈希密钥。CloudWatch 监控本指南中使用的所有服务的日志和指标。 -
批量拉取和更改数据捕获模式
-
此架构图展示了使用 Amazon S3 针对 SaaS 应用程序数据实现 API 推送模式。要查看其他架构模式,请打开其他选项卡。
第 1a 步
使用 AWS Glue 以及预构建的连接器或市场上的连接器,以批处理模式从关系数据库管理系统(RDBMS)中提取广告和营销分析应用场景所需的数据。AWS Glue 将从数据存储中检索数据并将其加载到 S3 存储桶中。Amazon S3 被配置为以 parquet 格式存储远程数据库文件的目标。第 1b 步
使用 AWS Database Migration Service(AWS DMS)将存储在兼容关系数据库(本地或云端)的数据复制到 AWS。第 2 步
EventBridge 中的规则会调度 Step Functions 标准工作流程,以要求的频率执行上传后处理。第 3 步
AWS Glue 作业和工作流程对解密的数据文件进行行级处理,并将数据写入单独的 S3 存储桶。使用为读取而优化的 Apache Parquet 格式写入对象。应用属性级转换(如 SHA256 哈希算法),以确保敏感数据的安全。根据需要应用自定义分区方案,以优化读取。第 4 步
从工作流程执行 AWS Glue 爬网程序,对数据目录中为读取而优化的数据进行编目。第 5 步
向 Amazon SNS 发布通知,通知操作员工作流程是成功还是失败。使用 HTTP 或 Topic 选项与其他可观测性工具集成。第 6 步
使用以下 AWS 服务实现安全性和访问权限:IAM 实现对特定资源和操作的最低权限访问。AWS KMS 为静态数据和传输中数据提供加密。Secrets Manager 为 PII 数据提供哈希密钥。CloudWatch 监控本指南中使用的所有服务的日志和指标。 -
托管文件传输模式
-
此架构图展示了针对 RDBMS 源的批量拉取和更改数据捕获模式。要查看其他架构模式,请打开其他选项卡。
第 1 步
AWS Transfer Family 安全地迁移存储在文件系统(本地或云端)的数据,这些数据是广告和营销分析应用场景所需的。第 2 步
来自远程服务器的原始文件以原样上传至原始 S3 存储桶。第 3 步
Transfer Family 托管工作流程完成文件的上传后处理,包括解密、错误检查和格式更改。第 4 步
Lambda 在将数据发送到存储之前,完成数据的自定义后处理。第 5 步
经过处理的数据可随时供应用程序和其他数据消费者分析,其存储在标准的 S3 存储桶中。第 6 步
当文件的上传后处理步骤失败时,Transfer Family 托管工作流程将调用 Lambda 函数。第 7 步
Amazon SNS 发布异常事件,通过电子邮件或其他可观测性工具通知用户。第 8 步
使用以下 AWS 服务实现安全性和访问权限:IAM 实现对特定资源和操作的最低权限访问。AWS KMS 为静态数据和传输中数据提供加密。Secrets Manager 为 PII 数据提供哈希密钥。 CloudWatch 监控本指南中使用的所有服务的日志和指标。 -
文件复制模式
-
此架构图展示了 SFTP 数据来源的托管文件传输模式。要查看其他架构模式,请打开其他选项卡。
第 1 步
在托管源对象存储的公有云中的虚拟机上,安装和配置 AWS DataSync Agent。第 2 步
DataSync Agent 和 DataSync 支持为初始同步和连续的持续同步发现和调度数据传输。第 3 步
配置 DataSync,将复制的数据存储在登录区 S3 存储桶中。第 4 步
在 EventBridge 中创建一条规则,以调度 Step Functions 标准工作流程,按要求的频率处理数据。第 5 步
在工作流程中,使用 Lambda 函数执行必要的文件级或对象级解密,并调用 AWS Glue 任务对数据进行规范化处理。第 6 步
使用 AWS Glue 任务和工作流程对解密后的数据文件进行数据处理,并将数据写入单独的 S3 存储桶。第 7 步
使用为读取而优化的 Apache Parquet 格式写入对象。应用数据。根据需要对属性级转换(如 SHA256 哈希)应用自定义分区方案,以确保优化对敏感数据的读取。第 8 步
创建 AWS Glue 爬网程序,并将其添加到工作流中,以便对数据目录中为读取而优化的数据进行编目。第 9 步
使用另一个 Lambda 函数执行后处理活动(例如在清理过程中,将源数据文件移动到“archive”前缀位置),并节省存储成本。第 10 步
使用 Amazon SNS 发布工作流程完成事件,并通过电子邮件通知操作员和用户。使用 HTTP 或 Topic 选项与其他可观测性工具集成。第 11 步
使用以下 AWS 服务实现安全性和访问权限:IAM 实现对特定资源和操作的最低权限访问。AWS KMS 为静态数据和传输中数据提供加密。 Secrets Manager 为 PII 数据提供哈希密钥。CloudWatch 监控本指南中使用的所有服务的日志和指标。
Well-Architected 支柱
当您在云中构建系统时,AWS Well-Architected Framework 可以帮助您了解所做决策的利弊。框架的六大支柱使您能够学习设计和操作可靠、安全、高效、经济高效且可持续的系统的架构最佳实践。使用 AWS 管理控制台中免费提供的 AWS Well-Architected Tool,您可以通过回答每个支柱的一组问题,根据这些最佳实践来检查您的工作负载。
上面的架构图是按照 Well-Architected 最佳实践创建的解决方案示例。要做到完全的良好架构,您应该遵循尽可能多的 Well-Architected 最佳实践。
-
卓越运营
本指南中的服务是无服务器的,使用户无需管理(虚拟或裸机)服务器。例如,Step Functions 是一种用于构建工作流的无服务器托管服务,可减少与构建和管理工作流程解决方案相关的无差别繁重工作。AWS Glue 是一种用于数据处理任务的无服务器托管服务。
同样,以下服务也免去了容量管理的需要:用于通知的 Amazon SNS、用于密钥管理的 AWS KMS、用于密钥的 Secrets Manager、用于事件驱动架构的 EventBridge、用于低延迟 NoSQL 数据库的 DynamoDB、用于与第三方应用程序集成的 AppFlow、用于文件传输协议的 Transfer Family、用于发现和同步远程数据来源(本地或其他云)的 DataSync,以及用于简化受支持数据库之间迁移的托管数据迁移服务 AWS DMS。
-
安全性
IAM 可管理对特定资源和操作的最低权限访问。AWS KMS 可使用 Pretty Good Privacy(PGP)加密数据文件,为静态数据和传输中数据提供加密。Secrets Manager 可为远程系统访问提供密钥,并为个人身份信息(PII)数据提供哈希密钥。CloudWatch 监控本指南中使用的所有服务的日志和指标。作为托管服务,这些服务不仅支持强大的安全态势,还能帮助您腾出时间,集中精力处理数据和应用程序逻辑,以加强安全性。
-
可靠性
在管道中使用 Lambda 仅限于文件级处理(例如解密)。这样可以避免管道达到 15 分钟的运行时间限制。对于所有行级处理,AWS Glue Spark 引擎可进行扩展,以处理大量数据。此外,您还可以使用 Step Functions 为任何失败的 AWS Glue 作业设置重试、退避率、最大尝试次数、间隔和超时时间。
-
性能效率
本指南中的无服务器服务(包括 Step Functions、AWS Glue、Lambda、EventBridge 和 Amazon S3)减少了您需要管理的底层基础设施的数量,使您能够专注于解决业务需求。您可以使用自动部署将架构组件快速部署到任何 AWS 区域,同时解决数据驻留和低延迟需求。
-
成本优化
当 AWS Glue 执行数据转换时,您只需在处理过程中支付基础设施费用。对于数据目录,您需要为元数据的存储和访问支付基本月度费用。使用 EventBridge 免费套餐,您可以安排规则来启动数据处理工作流程。使用 Step Functions 工作流程,您可以根据状态转换的次数付费。此外,通过租户隔离模型和资源标记,您可以建立自动成本使用警报,帮助您衡量每个租户、应用模块和服务的具体成本。
-
可持续性
本指南中使用的无服务器服务(如 AWS Glue、Lambda 和 Amazon S3)可根据需求自动优化资源利用率。您可以使用 Amazon S3 生命周期配置来定义策略,根据访问模式将对象移动到不同的存储类,从而扩展此指南。
实施资源
提供了在 AWS 账户中进行实验和使用的详细指南。构建指南的每个阶段(包括部署、使用和清理)都将被检查,以便为部署做好准备。
示例代码为起点。它经过行业验证,是规范性但不是决定性的,可以帮助您开始。
相关内容
免责声明
示例代码;软件库;命令行工具;概念验证;模板;或其他相关技术(包括由我方人员提供的任何前述项)作为 AWS 内容按照《AWS 客户协议》或您与 AWS 之间的相关书面协议(以适用者为准)向您提供。您不应将这些 AWS 内容用在您的生产账户中,或用于生产或其他关键数据。您负责根据特定质量控制规程和标准测试、保护和优化 AWS 内容,例如示例代码,以使其适合生产级应用。部署 AWS 内容可能会因创建或使用 AWS 可收费资源(例如,运行 Amazon EC2 实例或使用 Amazon S3 存储)而产生 AWS 费用。
本指南中提及第三方服务或组织并不意味着 Amazon 或 AWS 与第三方之间存在认可、赞助或从属关系。AWS 的指导是一个技术起点,您可以在部署架构时自定义与第三方服务的集成。