【问题标题】:Exporting DynamoDB document types to Redshift将 DynamoDB 文档类型导出到 Redshift
【发布时间】:2016-12-18 14:51:16
【问题描述】:

我有一个 DynamoDB 表,其中一些属性是 Document Typeslistmap,具体来说。

我正在尝试将这些表导出到 Redshift。 According to the documentation,如果您尝试从包含 listmap 属性的 DynamoDB 表中复制数据,Redshift copy 命令将失败:

仅支持具有标量 STRING 和 NUMBER 数据类型的 Amazon DynamoDB 属性。不支持 Amazon DynamoDB BINARY 和 SET 数据类型。如果 COPY 命令尝试加载数据类型不受支持的属性,则该命令将失败。

我也使用 Data Pipeline 和 Hive 进行了调查,但 the documentation 建议 Hive 也不支持 listmap

将数据移出 DynamoDB(包括 listmap 属性)并移入 Redshift 有哪些选项?

【问题讨论】:

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


    【解决方案1】:

    我采取的方法是从Export DynamoDB Table to S3 模板开始。

    EMRActivity 中运行的org.apache.hadoop.dynamodb.tools.DynamoDbExport 步骤似乎输出了一个专门用于RedshiftCopyActivity 的清单文件:http://docs.aws.amazon.com/redshift/latest/dg/loading-data-files-using-manifest.html

    因此,除了“将 DynamoDB 表导出到 S3”模板附带的 S3BackupLocation 数据节点之外,我还添加了另一个 S3DataNode dependsOn EMR 活动。它指定了一个manifestFilePath,它与S3BackupLocation 数据节点中指定的directoryPath 相同——除了在末尾添加了/manifest

    那个新的数据节点——带有manifestFilePath——然后被用作RedshiftCopyActivity的输入。为了展平属于地图的属性,RedshiftCopyActivity 指定了一些commandOptions,它提供了JSONPath options

    "commandOptions": "JSON 's3://richard.jp.leguen/data-pipeline/misc/jsonpaths.txt'"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-13
      • 1970-01-01
      • 1970-01-01
      • 2014-09-17
      • 2015-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多