
# 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\]
#### 参数描述
表1CONVERT TO DELTA参数描述 
| **参数**        | **描述**                        |
|:---|:---|
| database_name | Database名称，由字母、数字和下划线（_）组成。   |
| table_name    | Database中的表名，由字母、数字和下划线（_）组成。 |
| NO STATISTICS | 表示在转换过程中绕过统计信息收集，以更快的速度完成转换。  |
   
#### 所需权限
- SQL权限
表2CONVERT 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;
```
#### 系统响应
执行成功。
