AWS 数据管道 Dynamodb 到 Redshift
Posted
技术标签:
【中文标题】AWS 数据管道 Dynamodb 到 Redshift【英文标题】:AWS Data Pipeline Dynamo to Redshift 【发布时间】:2020-12-07 21:05:41 【问题描述】:我有一个问题: 我需要将数据从 DynamoDB 迁移到 Redshift。问题是我收到这样的异常:
错误:不支持的数据类型:当前版本仅支持字符串和数字详细信息:-------------------------------- --------------- 错误:不支持的数据类型:当前版本仅支持字符串和数字代码:9005 上下文:表名 = user_session 查询:446027 位置:copy_dynamodb_scanner.cpp:199 进程:query0_124_446027 [pid=25424] --------------------------------------------------------- --
在我的 Dynamo 项目中,我有布尔字段。如何将字段从布尔值修改为 INT(例如)? 我尝试用作 VARCHAR(5),但没有帮助(所以它在 Github 中的一张票没有响应)
如有任何建议,我们将不胜感激。
【问题讨论】:
【参考方案1】:作为解决方案,我先将数据从 DynamoDB 迁移到 S3,然后再迁移到 Redshift。
-
我在 DynamoDB 中使用了 Exports to S3 内置功能。它将所有数据作为 *.json 文件保存到 S3 中非常快(但未排序)。
之后我使用 ETL 脚本,使用 Glue Job 和带有 pyspark 的自定义脚本来处理数据并将其保存到 Redshift。
也可以使用 Glue 爬虫来定义架构,但仍需要验证其结果,因为有时它不正确。
如果您不使用 ONDEMAND 读/写,则使用爬虫直接解析 DynamoDB 会过度使用您的表。因此,更好的方法是使用来自 S3 的数据。
【讨论】:
以上是关于AWS 数据管道 Dynamodb 到 Redshift的主要内容,如果未能解决你的问题,请参考以下文章
使用 AWS Datapipeline 将 DynamoDB 导出到 S3 数据
AWS DataPipeline表示未找到DynamoDB表