【问题标题】:Presto and HivePresto 和 Hive
【发布时间】:2017-06-29 11:35:46
【问题描述】:

我正在尝试启用对位于 s3 目录中的 CSV 文件的基本 SQL 查询。 Presto 看起来很自然(文件为 10s GB)。当我在 Presto 中进行设置时,我尝试使用 Hive 连接器创建一个表。我不清楚我是否只需要 hive 元存储来将我的表配置保存在 Presto 中,或者我是否必须先在其中创建它们。

文档表明您可以使用 Presto 而无需配置 Hive,而是使用 Hive 语法。那准确吗?我的经验是 AWS S3 无法连接。

【问题讨论】:

  • 旁注:您也可以考虑使用Amazon Athena,这是 Presto 的无服务器实现。但是,目前仅在少数地区。
  • 我很想使用 Amazon Athena,但它不符合我的特定用例(医疗保健)
  • 我的经验是 AWS S3 无法连接。 -- 究竟是什么问题?如果您使用 IAM 角色授予 EC2 机器对 S3 的访问权限,Presto Hive 连接器开箱即用地支持 S3(至少 s3a://)。

标签: amazon-s3 presto


【解决方案1】:

Presto 语法类似于 Hive 语法。对于大多数简单的查询,相同的语法将在两者中起作用。但是,Presto 和 Hive 存在一些关键差异,它们并不完全相同。例如,在 Hive 中,您可能使用 LATERAL VIEW EXPLODE,而在 Presto 中,您将使用 CROSS JOIN UNNEST。两者之间有许多细微的句法差异的例子。

【讨论】:

    【解决方案2】:

    在没有 Hive 的情况下,无法使用 vanilla Presto 分析 S3 上的数据。 Presto 仅提供分布式执行引擎。但是,它缺少有关表的元数据信息。因此,Presto Coordinator 需要 Hive 检索表元数据以解析和执行查询。

    但是,您可以使用托管 Presto 的 AWS Athena 在 S3 之上运行查询。

    另一个选项,在最近的0.198 releasePresto 中添加了连接 AWS Glue 并在 S3 中的文件之上检索表元数据的功能。

    【讨论】:

      【解决方案3】:

      我知道已经有一段时间了,但如果这个问题仍然悬而未决,您是否考虑过使用 Spark? Spark 可以通过开箱即用的方法轻松连接,并且可以查询/处理以 S3/CSV 格式存在的数据。

      另外,我很好奇:您最终实施了什么解决方案来解决您的问题?

      【讨论】:

        猜你喜欢
        • 2016-04-01
        • 2014-02-15
        • 2016-08-24
        • 2020-12-19
        • 2014-08-19
        • 2019-04-04
        • 2013-12-02
        • 2019-08-15
        • 2013-12-09
        相关资源
        最近更新 更多