AWS Data Pipeline DynamoDB 到 S3 到 Redshift,包括 JsonPaths

Posted

技术标签:

【中文标题】AWS Data Pipeline DynamoDB 到 S3 到 Redshift,包括 JsonPaths【英文标题】:AWS Data Pipeline DynamoDB to S3 to Redshift including JsonPaths 【发布时间】:2017-03-15 19:15:35 【问题描述】:

我知道从 DynamoDB 到 Redshift 的标准 COPY,但这仅适用于没有地图和列表的模式。我有几个带有地图和列表的 ddb 表,我需要使用 jsonpaths 来导入 Redshift。

所以我的问题是,我可以安排从 DynamoDB 到 S3 的备份,然后在备份完成后,运行导入到 Redshift,包括 jsonpaths 配置?我想这是一个两阶段的过程。或者我可以创建一个单独的数据管道来执行备份和导入吗?

或者,是否有可以使用 AWS 的任务运行程序,或者我需要连接一个事件 (SNS) 以通知导入备份已完成?

【问题讨论】:

数据管道.. 是的,但是如何结合执行备份和导入? 【参考方案1】:

AWS 现在有一些可以运行任务的服务。您可以使用AWS step functions 管理您的导入工作流程。 AWS Lambda functions 对应于您的导入工作流程中的每个步骤可能会产生 AWS Batch jobs,其中第一个作业将您的 DynamoDB 表备份到 S3,第二个作业将使用 jsonpaths 配置导入到 Redshift。

【讨论】:

【参考方案2】:

您可以将 Dynamo 复制到 RS,但两者的架构必须完全匹配 AFAIK(我还没有尝试过)

但是,您可以设置两个/单个管道来设置从 DDB 到 S3 以及从 S3 到 RS 的备份。 DDB 将备份作为 JSON 对象,因此您需要将 jsonpath 配置插入您的 RS

示例 col1(数字) - 0 col2(字符串) - x 您的备份看起来像 "col1":"n":"0","col2":"s":"x" 你得到 0 的 jsonpath 应该像 $.col1.n

如果您设置 2 个管道,您可以使用数据管道预定义模板,但如果您想使用一个管道,则必须构建自己的模板或从模板开始并在其上构建

您可以在管道失败或成功时连接 snsAlarm。

【讨论】:

以上是关于AWS Data Pipeline DynamoDB 到 S3 到 Redshift,包括 JsonPaths的主要内容,如果未能解决你的问题,请参考以下文章

什么是 AWS Data Pipeline

使用 Data Pipeline 在 AWS 中进行批处理文件

AWS:通过使用 amazon-data-pipeline 将数据从 S3 传输到 Redshift 来实现除 COPY 之外的其他功能

AWS Data Pipeline 无法验证 S3 访问 [权限警告]

在 AWS Data Pipeline 中创建聚合表

AWS Data Pipeline 在 emr 活动步骤部分中转义逗号