更新时间:2024-12-25 GMT+08:00
分享

CONVERT TO DELTA

命令功能

CONVERT TO DELTA 命令将现有的 Parquet 表就地转换为 Delta 表。 此命令会列出目录中的所有文件,创建 Delta Lake 事务日志来跟踪这些文件,并通过读取所有 Parquet 文件的页脚来自动推断数据架构。 转换过程会收集统计信息,以提升转换后的 Delta 表的查询性能。 如果提供表名,则元存储也将更新,以反映该表现在是 Delta 表。

注意事项

分区表转换需要设置参数spark.sql.forcePartitionPredicatesOnPartitionedTable.enabled为false。

命令格式

CONVERT TO DELTA [database_name.]table_name [NO STATISTICS]

参数描述

表1 CONVERT TO DELTA参数描述

参数

描述

database_name

Database名称,由字母、数字和下划线(_)组成。

table_name

Database中的表名,由字母、数字和下划线(_)组成。

NO STATISTICS

表示在转换过程中绕过统计信息收集,以更快的速度完成转换。

所需权限

  • SQL权限
表2 CONVERT TO DELTA所需权限列表

权限描述

表所在数据库的CREATE_TABLE权限

表的ALTER权限

表的INSERT_INTO_TABLE权限

表的DROP_TABLE权限

  • 细粒度权限:dli:database:createTable, dli:table:alter, dli:table:insertIntoTable, dli:table:dropTable。
  • 由LakeFormation提供的元数据服务,权限配置详见LakeFormation文档。

示例

create table if not exists parquet_table0 (id int,name string,price double) using parquet location 'obs://bucket_name0/db0/parquet_table0';
convert to delta parquet_table0;

系统响应

执行成功。

相关文档