问题描述
客观
我想从ADLS数据创建Databricks global unmanaged tables,并在多个群集(自动和交互式)中使用它们。所以我先做CREATE TABLE my_table ...
,然后做MSCK REPAIR TABLE my_table
。我正在使用Databricks内部的Hive Metastore。
问题
有时MSCK REPAIR
并未跨集群同步(完全是数小时)。意味着集群#1立即看到了分区,而集群#2一段时间没有看到任何数据。
有时它已经同步了,但我仍然不明白为什么在其他情况下它不起作用。
问题
Databricks是否为每个群集使用单独的内部配置单元元存储?如果是,是否可以保证群集之间的同步?
解决方法
我相信每个数据块部署都具有一个配置单元元存储:https://docs.databricks.com/data/metastores/index.html。
因此,如果正在立即更新元存储库,那么下一个最可能出现的问题是正在缓存旧表元数据,因此您看不到更新。您是否尝试过跑步
REFRESH <database>.<table>;
出现同步问题的群集上?