Presto 和 hive 分区发现

Posted

技术标签:

【中文标题】Presto 和 hive 分区发现【英文标题】:Presto and hive partition discovery 【发布时间】:2016-04-01 09:42:03 【问题描述】:

我主要使用 presto 与 hive 连接器连接到 hive 元存储。

我所有的表都是外部表,指向存储在 S3 中的数据。

我的主要问题是没有办法(至少我知道)在 Presto 中进行分区发现,所以在我开始在 presto 中查询表之前,我需要切换到 hive 并运行 @987654321 @

在 Presto 中有更合理的方法吗?

【问题讨论】:

【参考方案1】:

没有。

如果 HIVE 元存储看不到分区,PrestoDB 将看不到它。

也许 cron 可以帮助你。

【讨论】:

另外,PrestoDB 和 Hive 分区之间似乎有缓存,我没有找到任何相关信息,但我总是需要等待 2 分钟才能在 Presto 上运行查询。【参考方案2】:

我使用的是 0.227 版,以下对我有帮助:

select * from hive.yourschema."yourtable$partitions"

此选择返回目录中映射的所有分区。您可以像普通查询一样进行过滤、排序等。

【讨论】:

【参考方案3】:

现在有一种方法可以做到这一点:

CALL system.sync_partition_metadata(schema_name=>'<your-schema>', table_name=>'<your-table>', mode=>'FULL')

感谢this post 和this video

【讨论】:

以上是关于Presto 和 hive 分区发现的主要内容,如果未能解决你的问题,请参考以下文章

使用Presto实现Hive动态分区

使用Presto实现Hive动态分区

使用Presto重写Hive分区表数据

使用Presto重写Hive分区表数据

Hive 在分区上嵌套 SUM - 错误表达式不在 GROUP BY 键中

Presto统计信息