Список свойств SerDe для AWS Athena (JSON)

Я тестирую продукт Athena от AWS, пока работает очень хорошо. Но я хочу знать список свойств SerDe. Я искал повсюду и не нашел. Я использую этот, например, "ignore.malformed.json" = "true", но я почти уверен, что есть масса других вариантов настройки запросов.

Я не смог найти информацию, например, о том, что делает свойство "path", поэтому иметь полный список будет просто потрясающе.

Я просмотрел документы Apache Hive, но не нашел этого, а также в документах / форумах AWS.

Спасибо!


person Laerion    schedule 22.05.2017    source источник


Ответы (2)


Похоже, вы используете Openx-JsonSerDe
http://docs.aws.amazon.com/athena/latest/ug/json.html

// properties used in configuration
public static final String PROP_IGNORE_MALFORMED_JSON = "ignore.malformed.json";
public static final String PROP_DOTS_IN_KEYS = "dots.in.keys";
public static final String PROP_CASE_INSENSITIVE ="case.insensitive" ;

https://github.com/rcongiu/Hive-JSON-Serde/blob/master/json-serde/src/main/java/org/openx/data/jsonserde/JsonSerDe.java

person David דודו Markovitz    schedule 23.05.2017
comment
Так что всего три свойства? А что насчет свойства path, которое я видел в документации Amazon, где это? - person Laerion; 24.05.2017
comment
Покажи мне ссылку - person David דודו Markovitz; 24.05.2017
comment
Будет это: docs.aws.amazon.com/athena/latest /ug/json.html - person Laerion; 24.05.2017
comment
Мне кажется, это фиктивные свойства, которые не действуют. - person David דודו Markovitz; 24.05.2017
comment
По состоянию на 02.09.18 свойство нечувствительности к регистру не работает, поскольку AWS не имеет версии Openx-JsonSerDe, которая реализует это свойство. Я могу подтвердить, что dots.in.keys работает. Кроме того, отсутствующая функция, не упомянутая здесь, - это возможность переназначения полей с нарушениями имен, такими как foo-bar, путем добавления свойства serde mapping.foo_bar = foo-bar действительно работает. Затем схема должна указать foo_bar в качестве имени столбца, и вы должны удалить / повторно добавить все разделы, чтобы получить обновление схемы. - person waynethec; 03.09.2018

Как указано в примечаниях к выпуску (см., пожалуйста, пункт 2), JSON OpenX SerDe, используемый в Athena, был улучшен. Улучшения включают, помимо прочего, следующее:

  • Поддержка свойства ConvertDotsInJsonKeysToUnderscores. Если установлено значение TRUE, это позволяет SerDe заменять точки в именах клавиш подчеркиванием. Например, если набор данных JSON содержит ключ с именем «a.b», вы можете использовать это свойство для определения имени столбца как «a_b» в Athena. По умолчанию - ЛОЖЬ. По умолчанию Athena не допускает точек в именах столбцов.
  • Поддержка свойства case.insensitive. По умолчанию Athena требует, чтобы все ключи в вашем наборе данных JSON использовали строчные буквы. Использование WITH SERDE PROPERTIES ("case.insensitive" = FALSE;) позволяет использовать в данных имена ключей с учетом регистра. По умолчанию - ИСТИНА. Если установлено значение TRUE, SerDe преобразует все столбцы верхнего регистра в нижний регистр.

Для получения дополнительной информации см. OpenX JSON SerDe в Руководство пользователя Amazon Athena.

person user10659002    schedule 08.03.2019