Насколько я знаю, это взгляды Престо. Я изучил, как представления сохраняются в каталоге Glue, и поговорил с командой Athena о том, почему все сделано так, как есть. Я не эксперт в том, что делает представление Presto вместо представления Hive, но Афина ничего не делает поверх Presto, когда дело касается представлений.
Когда вы создаете представление в Афине, оно создает таблицу в Glue типа VIRTUAL_VIEW
с TableInput.ViewOriginalText
с очень специальной структурой (см. Ниже). Parameters
также должен содержать presto_view: true
.
Структура в TableInput.ViewOriginalText
выглядит следующим образом /* Presto View: <BASE64 DATA> */
, где полезной нагрузкой является структура JSON с кодировкой 64, которая описывает представление. Значение TableInput.ViewOriginalText
производится Presto (см. https://github.com/prestosql/presto/blob/27a1b0e304be841055b461e2c00490dae4e30a4e/presto-hive/src/main/java/io/prestosql/plugin/hive/HiveUtil.java#L597-L600).
Если вопрос в том, могут ли виды, созданные в Афине, использоваться другими инструментами, которые подключаются к каталогу Glue, я думаю, что ответ - нет. То, как они кодируются, зависит от Presto.