我將DynamoDB表備份到S3中,並且需要(非常少的)方式以Dynamo不支持的方式對我們的數據執行定製查詢。雅典娜似乎是一個很好的方式,可以使用我們的S3備份作爲我們的DW/BI工具的源代碼。將Amazon Athena與DynamoDB備份集成
這樣做的問題是,DyanmoDB備份到S3存儲每個行這種格式
{"Column1":{"n":"1234"},"Column2":{"n":"5678"},"Column3":{"s":"abcd"}}
這使人們難以對雅典娜/普雷斯托閱讀。我可以用
CREATE EXTERNAL TABLE test_table (
column1 struct<n:string>
)
ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe'
導入數據,但是,這並不理想,爲「數字」仍然被認爲是一個字符串。我曾考慮過下載文件,壓扁JSON並重新上傳到不同的地方,但這不是有效的JSON。只有該文件的每一行都是有效的JSON。
Athena有沒有辦法讀取文件中的數據,以便正確導入字段類型?或者理想的方式是雅典娜可以將{「n」:「1234」}變成一個int嗎?