私はこのリンクを参照しました:http://docs.aws.amazon.com/emr/latest/ReleaseGuide/EMR_Hive_Commands.html。Hiveを使用してDynamodbをS3にエクスポート
マイハイブスクリプトは以下のようなものです:
DROP TABLE IF EXISTS hiveTableName;
CREATE EXTERNAL TABLE hiveTableName (item map<string,string>)
STORED BY 'org.apache.hadoop.hive.dynamodb.DynamoDBStorageHandler'
TBLPROPERTIES ("dynamodb.table.name" = "test_table", "dynamodb.region"="us-west-2");
DROP TABLE IF EXISTS s3TableName;
CREATE EXTERNAL TABLE s3TableName (item map<string, string>)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n'
LOCATION 's3://bucket/test-hive2';
SET dynamodb.throughput.read.percent=0.8;
INSERT OVERWRITE TABLE s3TableName SELECT *
FROM hiveTableName;
DynamoDBのテーブルが正常にS3にエクスポートすることができますが、ファイル形式はJSONではない、それはのようである:
uuid{"s":"db154955-8555-4b49-bf40-ee36605ac510"}num{"n":"1294"}info{"s":"qwefjdkslafjdafl"}
uuid{"s":"d9898564-2b56-42ba-9cfb-fd092e7d0b8d"}num{"n":"100"}info{"s":"qwefjdkslafjdafl"}
誰かが方法を知っていますJSON形式でエクスポートするには?データパイプラインを使用できることは知っていますが、dynamodbテーブルをJSON形式のS3にエクスポートできますが、何らかの理由でEMRを使用する必要があります。私は別のツールを試みた:https://github.com/awslabs/emr-dynamodb-connectorを、そしてコマンドを使用します。
java -cp target/emr-dynamodb-tools-4.2.0-SNAPSHOT.jar org.apache.hadoop.dynamodb.tools.DynamoDBExport /where/output/should/go my-dynamo-table-name
をしかし、エラーが
Error: Could not find or load main class org.apache.hadoop.dynamodb.tools.DynamoDBExport
誰かがどのようにこれらの問題を解決するために教えてもらえますでしたか?ありがとう。
==更新==
私はto_jsonをを使用している場合は、クリスが示唆したように、私のコードは以下の通りである:私は、生成されたファイルを見てみると
DROP TABLE IF EXISTS hiveTableName2;
CREATE EXTERNAL TABLE hiveTableName2 (item map<string, string>)
STORED BY 'org.apache.hadoop.hive.dynamodb.DynamoDBStorageHandler'
TBLPROPERTIES ("dynamodb.table.name" = "test_table", "dynamodb.region"="us-west-2");
DROP TABLE IF EXISTS s3TableName2;
CREATE EXTERNAL TABLE s3TableName2 (item string)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n'
LOCATION 's3://backup-restore-dynamodb/hive-test';
INSERT OVERWRITE TABLE s3TableName2 SELECT to_json(item)
FROM hiveTableName2;
、それは
{"uuid":"{\"s\":\"db154955-8555-4b49-bf40-ee36605ac510\"}","num":"{\"n\":\"1294\"}","info":"{\"s\":\"qwefjdkslafjdafl\"}"}
ようなものです
ネストされたマップは、
map<string, map<string, string>>
はない
map<string, string>
誰かが私にいくつかの提案を与えることはできますか?ありがとう。
あなたにクリスをありがとう!しかし、私はまだ問題がある、更新された質問を参照してください。 –