修理表

适用于:检查标记是的砖的SQL检查标记是的砖运行时

这个命令更新三角洲表元数据统一目录服务。non-Delta表,维修表的分区和蜂巢metastore更新。

  • 三角洲表:当执行与δ表使用同步元数据论点,这个命令读取的δ日志目标表并更新元数据信息统一目录服务。

  • Non-Delta表:执行与non-Delta表时,这个命令恢复目录中的所有分区的蜂巢metastore non-Delta表和更新。

语法

(MSCK]修复table_name{({添加|下降|同步}分区]|同步元数据}

检查标记是的砖的SQL检查标记是的砖运行时12.1及以上,MSCK是可选的。

参数

  • table_name

    表的名称。如果表不能发现砖了TABLE_OR_VIEW_NOT_FOUND错误。

  • 添加下降同步分区

    适用于:检查标记是的砖的SQL检查标记是的砖运行时10.0及以上

    当创建一个non-Delta表使用分区通过条款,分区生成并在蜂巢metastore注册。然而,如果你从现有数据,创建分区表的分区在蜂巢metastore不会自动注册。运行MSCK修理表注册的分区。

    另一种方法是使用恢复分区ALTER TABLE恢复分区

    如果缓存表,这个命令清除表的缓存数据和所有引用它的家属。缓存填充下次访问表或家属。

    • 添加命令将新分区添加到会话基本表中所有子文件夹目录文件夹,不属于任何表分区。添加是默认的参数如果没有指定其他选项。

    • 下降从会话命令滴所有分区文件系统中的目录不存在的位置。

    • 同步的结合下降添加

  • 同步元数据

    读取的δ日志目标表和更新的元数据信息统一目录服务。运行这个命令,您必须修改和选择目标表上的特权和使用父母的模式和目录。这个命令,这种观点将会失败如果没有存储在统一目标表目录。

    如果启用了三角洲制服,同步元数据触发手动转换当前的δ冰山元数据的元数据和同步的最新冰山版本统一目录冰山端点。看到通用格式(制服)冰山兼容三角洲表

例子(non-Delta湖表)

——创建一个分区表/ tmp / namesAndAges.parquet从现有的数据>创建t1(的名字字符串,年龄INT)使用拼花分区通过(年龄)位置“/ tmp / namesAndAges.parquet”;——SELECT * FROM t1不返回结果>选择*t1;——运行MSCK修理表来恢复所有的分区>MSCK修复t1;——SELECT * FROM t1返回结果>选择*t1;的名字年龄- - - - - - - - - - - - -迈克尔20.贾斯汀19安迪30.

示例(统一目录表)

——运行MSCK修理表t1同步元数据更新元数据信息统一目录服务>MSCK修复t1同步元数据