У меня есть несколько json-файлов, хранящихся в ведре S3, где каждый файл имеет несколько элементов одинаковой структуры. Например,Хранить несколько элементов в json-файлах в AWS Athena
[{"eventId":"1","eventName":"INSERT","eventVersion":"1.0","eventSource":"aws:dynamodb","awsRegion":"us-west-2","image":{"Message":"New item!","Id":101}},{"eventId":"2","eventName":"MODIFY","eventVersion":"1.0","eventSource":"aws:dynamodb","awsRegion":"us-west-2","image":{"Message":"This item has changed","Id":101}},{"eventId":"3","eventName":"REMOVE","eventVersion":"1.0","eventSource":"aws:dynamodb","awsRegion":"us-west-2","image":{"Message":"This item has changed","Id":101}}]
Я хочу создать таблицу в Афине, соответствующую вышеуказанным данным.
Запрос я написал для создания таблицы:
CREATE EXTERNAL TABLE IF NOT EXISTS sampledb.elb_logs2 (
`eventId` string,
`eventName` string,
`eventVersion` string,
`eventSource` string,
`awsRegion` string,
`image` map<string,string>
)
ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe'
WITH SERDEPROPERTIES (
'serialization.format' = '1',
'field.delim' = ' '
) LOCATION 's3://<bucketname>/';
Но если я делаю SELECT, следующий запрос,
SELECT * FROM sampledb.elb_logs4;
я получаю следующий результат:
1 {"eventid":"1","eventversion":"1.0","image":{"id":"101","message":"New item!"},"eventsource":"aws:dynamodb","eventname":"INSERT","awsregion":"us-west-2"} {"eventid":"2","eventversion":"1.0","image":{"id":"101","message":"This item has changed"},"eventsource":"aws:dynamodb","eventname":"MODIFY","awsregion":"us-west-2"} {"eventid":"3","eventversion":"1.0","image":{"id":"101","message":"This item has changed"},"eventsource":"aws:dynamodb","eventname":"REMOVE","awsregion":"us-west-2"}
Все содержимое json-файла выбрано в виде одной записи здесь.
Как я могу прочитать каждый элемент json-файла в виде одной записи?
Редактировать: Как я могу прочитать каждую подколонку изображения, т. Е. Каждый элемент карты?
Спасибо.
У меня такая же проблема, как Q1, как мои данные поступают из sendgrid и У меня нет большого выбора в отношении формата данных :( – CpILL