【问题标题】:copy payload data from dynamodb to redshift将有效负载数据从 dynamodb 复制到 redshift
【发布时间】:2017-02-02 14:56:30
【问题描述】:

AWS 的新手。

我想使用 COPY 命令将表从 dynamoDB 导入 Redshift。但是我出现了诸如“无效操作:不支持的数据类型:当前版本仅支持字符串和数字”之类的错误消息。或者我只能在某些列中有值,而其他列(更重要的一个,例如 paylaod 中的传感器值)为空。

在 dynamoDB 中,hashkey 和 rangekey 是 String,但是 payload 是 JSON 格式,我如何将这个 payload 复制到 Redshift? AWS 中的文档没有提供详细的解决方案。

【问题讨论】:

标签: json amazon-web-services amazon-dynamodb amazon-redshift


【解决方案1】:

COPY 命令可用于从具有标量数据类型(即 STRING 和 NUMBER) 的 DynamoDB 表中复制数据。

如果您在 DynamoDB 表中有任何具有不同数据类型(即 Map、List、Set 等)的属性,则 COPY 命令将失败(即目前不支持)。

仅具有标量 STRING 和 NUMBER 数据的 Amazon DynamoDB 属性 支持类型。 Amazon DynamoDB BINARY 和 SET 数据类型是 不支持。如果 COPY 命令尝试加载带有 不支持的数据类型,命令将失败。如果属性确实 与 Amazon Redshift 表列不匹配,COPY 不会尝试 加载它,它不会引发错误。

【讨论】:

  • 感谢您的回复。在 AWS IoT 教程中,它建议开发人员将传感器数据作为 JSON 存储到 dynamoDB 的有效负载中,另外还有 hashkey 和 rangekey。那么也许将 dynamoDB 导出到 S3 是这种情况下唯一有效的解决方案?
  • 是的,您可以使用 AWS 管道将数据导出到 S3。
猜你喜欢
  • 1970-01-01
  • 2015-07-24
  • 2017-01-16
  • 1970-01-01
  • 2017-03-13
  • 1970-01-01
  • 2018-05-12
  • 2014-01-25
  • 2019-10-02
相关资源
最近更新 更多