Athena DDL для формата Ion?

Я пытаюсь использовать Athena для запроса некоторых файлов в ионном формате создается недавно добавленной функцией «Экспорт в S3» резервных копий DynamoDB.

Это явно глупый формат, который в основном представляет собой строку $ion_1_0, за которой следует json. Строка $ion_1_0 без кавычек спереди делает данные недопустимым json.

Я пробовал использовать Ion Serde из здесь:

CREATE EXTERNAL TABLE mydb.mytable (
`myfields` string,
 ...
)
ROW FORMAT SERDE 'com.amazon.ionhiveserde.IonHiveSerDe'
LOCATION 's3:/.../dynamodb-export/AWSDynamoDB/01608775578817-a6944d97/data/'
TBLPROPERTIES ('has_encrypted_data'='true');

Но получил вот это:

СБОЙ: ошибка выполнения, код возврата 1 из org.apache.hadoop.hive.ql.exec.DDLTask. Невозможно проверить serde: com.amazon.ionhiveserde.IonHiveSerDe

ОБНОВЛЕНИЕ

На самом деле формат даже немного хуже, чем я думал. Имена полей не цитируются. Так что это не совсем корректный json даже после удаления префикса $ ion.


person Alex R    schedule 24.12.2020    source источник


Ответы (1)


ION - это текстовый формат с открытым исходным кодом, который является надмножеством JSON. Вы пробовали конвертировать файлы ION с помощью клея? ION - это один из поддерживаемых вариантов формата (для ввода): https://docs.aws.amazon.com/glue/latest/dg/aws-glue-programming-etl-format.html

Этот семинар QLDB использует ION в своем примере, вы можете изучить шаблон облачной информации / yaml или развернуть рабочий процесс и углубиться в поисковый робот и задание, которое он создает, для некоторых идей: https://qldb-immersionday.workshop.aws/en/lab3/task3.html

Дополнительную информацию можно найти в кулинарной книге ION: https://amzn.github.io/ion-docs/guides/cookbook.html.

И спецификации: https://amzn.github.io/ion-docs/docs/spec.html

person C2BB    schedule 31.12.2020
comment
Использование клея как быстрого решения - person Alex R; 25.02.2021