2017-02-22 156 views
1

我想查询使用Amazon雅典娜格式的JSON数据:使用Amazon Athena创建表并查询json数据?

[{"id":"0581b7c92be", 
    "key":"0581b7c92be", 
    "value":{"rev":"1-ceeeecaa040"}, 
    "doc":{"_id":"0581b7c92be497d19e5ab51e577ada12","_rev":"1ceeeecaa04","node":"belt","DeviceId":"C001"}}, 
{"id":"0581b7c92be49", 
    "key":"0581b7c92be497d19e5", 
    "value":{"rev":"1-ceeeecaa04031842d3ca"}, 
    "doc":{"_id":"0581b7c92be497","_rev":"1ceeeecaa040318","node":"belt","DeviceId":"C001"} 
} 
] 

回答

4

雅典娜DDL是基于蜂巢,所以你也会想你的阵列中的每个JSON对象是在一个单独的行:

{"id": "0581b7c92be", "key": "0581b7c92be", "value": {"rev": "1-ceeeecaa040"}, "doc": {"_id": "0581b7c92be497d19e5ab51e577ada12", "_rev": "1ceeeecaa04", "node": "belt", "DeviceId": "C001"} } 
{"id": "0581b7c92be49", "key": "0581b7c92be497d19e5", "value": {"rev": "1-ceeeecaa04031842d3ca"}, "doc": {"_id": "0581b7c92be497", "_rev": "1ceeeecaa040318", "node": "belt", "DeviceId": "C001"} } 

你可能会遇到嵌套字段(“value”,“doc”)的问题,所以如果你能压平jsons,你会更容易。 (见例如:Hive for complex nested Json

+0

我想如何创建表和选择操作来查询多行数据。 – rajeswari

+0

我要如何创建表并选择运行查询data.ex的多行:[{ \t “_id”: “0899f824e118d390f57bc2f279bd38fe”, \t “_rev”: “1-81cc25723e02f50cb6fef7ce0b0f4f38”, \t “的DeviceID”:“ BELT001" , \t “locationId”: “LID001”, \t “SuperviceId”: “SID001” },{ \t “_id”: “0899f824e118d390f57bc2f279bd38fe”, \t “_rev”: “1-81cc25723e02f50cb6fef7ce0b0f4f38”, \t “deviceId”:“BELT001”, \t“locationId”:“LID001”, \t“SuperviceId”:“SID001” }] – rajeswari

+0

我在说的是,在我可以帮助你之前,请检查你是否可以将你的json数组“爆炸”成单独的json对象的行。将您的示例转换为: – belostoky