修改后,该卡将在Metastore重新启动后5或6分钟开始。然后我们无法运行。
自动管理分区
您可以找到分区更改并自动同步Hive Metadata.Contrary与手动执行,自动执行同步可以节省很多时间,尤其是当分区数据(例如日志)经常更改时,您还可以配置分区数据和元数据的时间多长时间保留。
创建分区表之后,Hive将不会在添加或删除的文件系统上的相应对象或目录上更新元数据。添加或删除相应的对象/目录后,Hive Yuan存储中的分区元数据变为旧。您需要同步元存储和文件系统。
您可以手动或自动刷新Hive Metastore分区信息。
? 手动的
您运行MSCK(元存储一致性检查)HIVE命令:MSCK修理表table_name Sync分区一次需要分区和文件系统。
? 自动的
您将分区设置为定期发生。
discover.partitions表属性是自动创建并已为外部区域表启用的。发现时启用了分区时,在表上启用了蜂巢,将自动刷新如下:
?在文件系统中添加相应的分区,但在Metastore中不添加到Metastore中的分区。
?如果从文件系统中删除相应的分区,请从元存储中删除分区架构信息。
您可以配置保留的分区元数据和数据多长时间,并在保留期间删除它。
局限性
通常,不建议在受托人上使用分区和预订。桌子上的hive yuan存储以获取其锁的锁定,这使分区能够发现这将减慢其他查询的速度。
自动分区发现和维修
Hive可以自动,定期定期在文件系统中的相应目录或对象中找到差异,以及在Hive转移中的文件系统。发现差异后,Hive执行同步。自动分区发现它对日志数据和其他有用Spark和Hive目录处理中的数据。
discover.partitions表属性启用或禁用并与分区的文件系统同步。在外部区域表中,创建表时默认启用此属性。对于外部表的旧版本(由hive版本创建的hive版本(由hive版本创建)不支持此功能),您需要将Discover..partitions添加到表格属性中以使分区找到。
默认情况下,每5分钟分区的发现和同步,但是您可以配置此任务中显示的频率。
启用压缩(请参见下面的链接)作为解决以下问题的解决方案:除非启用压缩,否则找不到。
1.假设您使用不支持分区的Hive版本创建一个外部表。
复制
Discover.partitions参数设置为true,这会导致我在删除滴分区后被删除。
构建表时,external.table.purge设置为true,并将删除的分区添加到文件中。
删除外部表数据
当您在外部表上运行下降表时,Hive仅默认删除元-DATA(模式)。表,您需要相应地配置表格属性。
原始:https://juejin.cn/post/7098572462274641927