S3に、改行で区切られたJSONの行が多数含まれているファイルがあります。これらのファイルを消費するColumnar形式に変換したいAWS Athena これを行うにはConverting to Columnar Formats guideに従っていますが、ORCに変換するとS3のパーティションの規則が失われます。AWSのHive:S3 JSONをColumnarの保存パーティションに変換する
この例では、dt
パーティションを変換された寄木細工s3フォルダ構造に保存するにはどうすればよいですか?私は例を実行すると、それだけでs3://myBucket/pq/000000_0
とここにいないs3://myBucket/pq/dt=2009-04-14-04-05/000000_0
はハイブテーブルにJSONをもたらすためにインターフェイスを設定HQLで出力します。
ここCREATE EXTERNAL TABLE impressions (
requestBeginTime string,
adId string,
impressionId string,
referrer string,
userAgent string,
userCookie string,
ip string,
number string,
processId string,
browserCookie string,
requestEndTime string,
timers struct<modelLookup:string, requestTime:string>,
threadId string,
hostname string,
sessionId string)
PARTITIONED BY (dt string)
ROW FORMAT serde 'org.apache.hive.hcatalog.data.JsonSerDe'
with serdeproperties ('paths'='requestBeginTime, adId, impressionId, referrer, userAgent, userCookie, ip')
LOCATION 's3://us-east-1.elasticmapreduce/samples/hive-ads/tables/impressions' ;
msck repair table impressions;
は寄木細工に変換HQLである
CREATE EXTERNAL TABLE parquet_hive (
requestBeginTime string,
adId string,
impressionId string,
referrer string,
userAgent string,
userCookie string,
ip string)
STORED AS PARQUET
LOCATION 's3://mybucket/pq/';
INSERT OVERWRITE TABLE parquet_hive SELECT requestbegintime,adid,impressionid,referrer,useragent,usercookie,ip FROM impressions where dt='2009-04-14-04-05';
本当に感謝しています。 Hive 2.1.1を実行しているAWS EMRでは、 'set hive.exec.dynamic.partition.mode = nonstrict;'が本当に必要です。 – rynop