我正在尝试对位于 s3 目录中的 CSV 文件启用基本的 SQL 查询。 Presto似乎是天作之合(文件是10s GB(。 当我在 Presto 中进行设置时,我尝试使用 Hive 连接器创建一个表。 我不清楚我是否只需要 hive 元存储来将我的表配置保存在 Presto 中,或者我是否必须先在那里创建它们。
该文档使你似乎可以使用Presto,而不必配置Hive,而是使用Hive语法。 这准确吗? 我的经验是 AWS S3 无法连接。
Presto语法类似于Hive语法。对于大多数简单的查询,相同的语法将在两者中起作用。但是,有一些关键差异使Presto和Hive不完全相同。例如,在 Hive 中,您可以使用 LATERAL VIEW EXPLODE
,而在 Presto 中,您可以使用 CROSS JOIN UNNEST
。两者之间微妙的语法差异有很多这样的例子。
如果没有Hive,就不可能使用vanilla Presto来分析S3上的数据。Presto 仅提供分布式执行引擎。但是,它缺少有关表的元数据信息。因此,Presto 协调器需要 Hive 来检索表元数据来解析和执行查询。
但是,您可以使用托管 Presto 的 AWS Athena 在 S3 上运行查询。
另一个选项是,在最近的 0.198 版本中,Presto 添加了连接 AWS Glue 并在 S3 中的文件之上检索表元数据的功能。
已经有一段时间了,但如果这个问题仍然悬而未决,您是否考虑过使用 Spark?Spark 与开箱即用的方法轻松连接,可以查询/处理 S3/CSV 格式的数据。
另外,我很好奇:您最终实施了什么解决方案来解决您的问题?