转换为δ
适用于:砖的SQL砖运行时
将现有的拼花表转换为表就地三角洲。这个命令将列出目录中的所有文件,创建了一个三角洲湖事务日志跟踪这些文件,并自动推断数据模式通过阅读所有铺文件的页脚。转换过程收集统计信息来提高查询性能的差值表转换。如果你提供一个表名,metastore也更新来反映表现在δ表。
该命令支持冰山转换表的底层文件格式是拼花。在这种情况下,转换生成基于冰山的三角洲湖事务日志表的本地文件清单、模式和分区信息。
参数
一个可选的资格表标识符或路径
拼花
或冰山
文件目录。必须不包含一个名称时间规范。对于冰山的表,你只能使用路径,转换管理冰山表不支持。没有统计数据
在转换过程中绕过统计信息收集,完成转换速度更快。表转换为三角洲湖后,您可以使用
优化ZORDER通过
重组数据布局和生成统计数据。通过指定的分区创建的表列。当
table_name
是一个路径,分区通过
需要分区的数据。当table_name
是一个合格的表标识符,分区通过
条款是可选的,分区规范从metastore加载。无论是哪种方法,转换过程中止抛出一个异常,如果提供的目录结构不符合或加载分区通过
规范。请注意
在砖运行时11.1及以下,
分区通过
是一个为所有分区数据所需的参数。
例子
请注意
你不需要提供分区信息注册到metastore冰山表或表。
转换来δdatabase_name。table_name;——只有拼花表转换来δ拼花。”gs:/ /我的- - - - - -桶/路径/来/表”分区通过(日期日期);——如果表分区转换来δ冰山。”gs:/ /我的- - - - - -桶/路径/来/表”;——为元数据使用冰山清单
警告
任何文件不是由三角洲湖是无形的和跟踪运行时可以删除真空
。你应该避免更新或添加数据文件转换过程中。表转换后,确保所有经过三角洲湖写道。
有可能是多个外部表共享相同的底层铺目录。在这种情况下,如果你跑了转换
在一个外部表,那么你将无法访问其他外部表,因为他们的基础目录已经转换从铺到三角洲湖。再次查询或写这些外部表,你必须运行转换
在他们身上。
转换
填充目录信息,比如模式和表属性,三角洲湖事务日志。如果底层的目录已经转化为三角洲湖及其元数据不同于目录的元数据,convertMetastoreMetadataMismatchException
抛出。
在使用砖运行时,如果你想要的转换
覆盖现有的元数据在三角洲湖事务日志,设置SQL配置spark.databricks.delta.convert.metadataCheck.enabled
为假。