【问题标题】:Are Amazon Athena views actually hive views, or are they a separate bolt-on?Amazon Athena 视图实际上是 Hive 视图,还是单独的附加视图?
【发布时间】:2019-10-11 13:10:06
【问题描述】:

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

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

Athena 是否支持隐藏的 Hive 视图?还是 Athena 视图是一个完全独立的层/附加组件,它只保存命名的 Presto/Athena 查询?

【问题讨论】:

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


    【解决方案1】:

    据我所知,它们是 Presto 视图。我已经深入研究了视图是如何保存在 Glue 目录中的,并与 Athena 团队讨论了为什么它会以这种方式完成。我不是 Presto 视图与 Hive 视图的专家,但在视图方面,Athena 并没有在 Presto 之上做任何事情。

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

    TableInput.ViewOriginalText 中的结构类似于/* Presto View: <BASE64 DATA> */,其中有效负载是描述视图的 base 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 特有的。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-02-16
    • 2018-11-24
    • 2015-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多