2016-08-11 15 views
1

私は、具体的には、Document Typeslistmapの属性を持つDynamoDBテーブルを持っています。DynamoDBドキュメントタイプをRedshiftにエクスポート

私はRedshiftにこれらのテーブルをエクスポートしようとしています。

のみアマゾンDynamoDBのはスカラーSTRINGおよびNUMBERデータ型がサポートされていると属性:あなたは listまたは mapのいずれかの属性が含まDynamoDBのテーブルからデータをコピーしようとした場合 According to the documentationは、赤方偏移 copyコマンドは失敗します。 Amazon DynamoDBのBINARYおよびSETデータ型はサポートされていません。 COPYコマンドが、サポートされていないデータ型の属性をロードしようとすると、コマンドは失敗します。

私はまた、データパイプラインとハイブを使用して調査しましたが、the documentationはハイブはどちらかlistまたはmapをサポートしていないことを示唆しています。

およびmap属性を含むDynamoDBからデータをRedshiftに移動するためのオプションは何ですか?

答えて

0

私が取り組んだアプローチは、Export DynamoDB Table to S3テンプレートから始めることです。 「S3へのエクスポートDynamoDBの表」が付属していますS3BackupLocationデータノードに加えて、だから、http://docs.aws.amazon.com/redshift/latest/dg/loading-data-files-using-manifest.html

EMRActivityで実行

org.apache.hadoop.dynamodb.tools.DynamoDbExportステップは、出力に特異的にRedshiftCopyActivityで使用するためのものマニフェストファイルですテンプレート、私は別のS3DataNodeを追加しましたdependsOn EMR活動。 manifestFilePathを指定します。これはS3BackupLocationデータノードで指定されたdirectoryPathと同じですが、末尾には/manifestが追加されます。

新しいデータノード(manifestFilePath)は、RedshiftCopyActivityの入力として使用されます。マップされた属性をフラット化するには、RedshiftCopyActivityJSONPath options提供し、いくつかのcommandOptions指定:

"commandOptions": "JSON 's3://richard.jp.leguen/data-pipeline/misc/jsonpaths.txt'" 
関連する問題