Presto 和 Hive 分区发现

Presto and hive partition discovery

我主要使用带有 Hive 连接器的 Presto 来连接到 Hive Metastore。

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

我的主要问题是没有办法(至少我知道)在 Presto 中进行分区发现,所以在我开始查询 table 在 presto 中我需要切换蜂巢和 运行 msck repair table mytable

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

没有

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

也许 cron 可以帮助您。

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

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

这select returns 所有分区映射到您的目录中。您可以像普通查询一样过滤、排序等。

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

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

归功于 this post and this video