Amazon Athena视图实际上是蜂巢视图,还是单独安装的视图?

时间:2019-05-25 01:22:23

标签: amazon-web-services presto amazon-athena

Amazon Athena基于Presto。 Amazon Athena支持视图。

Presto不支持Hive视图,因为它不想处理Hive查询语言。由于视图实际上是Hive查询,因​​此它必须理解Hive的整个语言,而不仅仅是其架构。 Presto supports views通过其Hive连接器。这些视图是“ Presto视图”,是Presto特定的(不能从Hive中查询)。

雅典娜在幕后是否支持Hive视图?还是Athen视图是一个完全独立的图层/螺栓,仅保存命名的Presto / Athena查询?

1 个答案:

答案 0 :(得分:1)

据我所知,它们是Presto视图。我已经研究了视图如何保存在Glue目录中,并与Athena团队讨论了为什么按原样进行。我不是什么使Presto视图和Hive视图相关的专家,但是在视图方面,Athena并没有在Presto之上做任何事情。

当您在Athena中创建视图时,它会在Glue中创建一个类型为VIRTUAL_VIEW的表,并且其中的TableInput.ViewOriginalText结构非常特殊(请参见下文)。 Parameters还需要包含presto_view: true

TableInput.ViewOriginalText中的结构类似于/* Presto View: <BASE64 DATA> */,其中有效负载是描述视图的基本64位编码JSON结构。 TableInput.ViewOriginalText的值由Presto产生(请参见https://github.com/prestosql/presto/blob/27a1b0e304be841055b461e2c00490dae4e30a4e/presto-hive/src/main/java/io/prestosql/plugin/hive/HiveUtil.java#L597-L600)。

如果问题是在Athena中创建的视图是否可以被连接到Glue目录的其他工具使用,我认为答案是否定的。它们的编码方式是Presto特定的。