Запрос AWS Athena на данные паркета для возврата вывода JSON - PullRequest
0 голосов
/ 16 ноября 2018

У меня есть следующие настройки.

  1. Приложение отправляет сериализованные данные JSON в Firehose.
  2. Firehose настроен для преобразования данных в праке с использованием определения таблицы склеивания для эффективного выполнения запроса.
  3. Я могу выполнить запрос в Афине и посмотреть результаты.

Теперь мне нужно создать еще одно приложение, которое сможет запрашивать Athena с помощью AWSSDK (C #) и считывать данные обратно в формате JSON. Glue table

Можно ли каким-то образом использовать формат ввода / вывода таблицы и serde для чтения данных обратно в формате JSON с помощью Athena SDK? Или мне нужно реализовать собственную логику для преобразования данных обратно в JSON?

Ответы [ 2 ]

0 голосов
/ 06 августа 2019

Вопрос старый, но может помочь кому-то, кто пытается экспортировать результаты из таблицы Athena в другой формат вывода. AWS CTAS можно использовать для экспорта данных в различные форматы (ORC, PARQUET, AVRO, JSON или TEXTFILE) с использованием простого оператора Athena CTAS (https://docs.aws.amazon.com/athena/latest/ug/create-table-as.html). Вы также можете указать формат сжатия для сохранения выходных данных.

Ниже приведен пример экспорта данных в формат JSON на s3.
output_location = 's3: //s3_bucket/output.json'

CREATE TABLE output
 WITH (
 format = 'JSON',
 external_location = output_location) AS SELECT * FROM target_table     

Недостаток этого подхода: вывод всегда сжимается.

0 голосов
/ 24 ноября 2018

Athena основана на Presto версии 0.172, поэтому вы найдете ответ в документации Presto. Например, эта глава может быть вам полезна:

https://prestodb.io/docs/current/functions/json.html

...