镜像策略
镜像策略命令让你可以查看、更改、分区和删除表镜像策略。 它们还提供了通过查看操作镜像状态来检查镜像延迟的方法。
管理命令
- 使用 .show table policy mirroring 命令显示表的当前镜像策略。
- 使用 .alter-merge table policy mirroring 命令更改当前镜像策略。
- 使用 .delete table policy mirroring 命令软删除当前镜像策略。
- 使用 .show table mirroring operations 命令检查操作镜像状态。
- 使用 .show table mirroring operations exported artifacts 命令检查操作导出的工件状态。
- 使用 .show table mirroring operations failures 检查操作镜像失败状态。
策略对象
镜像策略包括以下属性:
properties | 说明 | 值 | 默认 |
---|---|---|---|
Format | 镜像文件的格式。 | 有效值为 parquet 。 |
parquet |
ConnectionStrings | 帮助配置和建立连接的连接字符串数组。 此值会自动填充。 | ||
IsEnabled | 确定是否启用镜像策略。 镜像策略被禁用并设置为 false 后,基础镜像数据会保留在数据库中。 |
true , false , null . |
null |
分区 | 用于将数据划分为较小分区的列的逗号分隔列表。 | 请参阅分区格式设置。 |
警告
删除或放弃表镜像策略将永久删除 OneLake 中的增量表。
注意
在启用镜像策略后,表将无法重命名。
分区格式设置
分区列表是分区列的任意组合,使用下表中显示的格式之一指定。
分区类型 | 语法 | 注释 |
---|---|---|
虚拟列 | PartitionName : (datetime | string ) |
详细了解虚拟列。 |
字符串列值 | PartitionName : string = ColumnName |
|
字符串列值 hash() | PartitionName : long = hash( ColumnName, Number) |
哈希是模数。 |
已截断的日期/时间列(值) | PartitionName : datetime = (startofyear | startofmonth | startofweek | startofday ) ( ColumnName ) |
请参阅有关 startofyear、startofmonth、startofweek 或 startofday 函数的文档。 |
截断的日期/时间列值 = bin ( ColumnName , TimeSpan ) |
详细了解 bin 函数。 |
注意
每个分区使用 Partitions 列表中列出的 PartitionName 表示为单独的列。 PartitionName 必须是不区分大小写的唯一字符串,既包括其他分区名称,也包括镜像表的列名。
数据类型映射
为了确保兼容性和优化查询,请确保数据类型正确映射到 parquet 数据类型。
Event house 到 Delta parquet 数据类型映射
事件屋数据类型使用以下规则映射到 Delta Parquet 数据类型:
Eventhouse 数据类型 | Delta 数据类型 |
---|---|
bool |
boolean |
datetime |
timestamp OR date (for date-bound partition definitions) |
dynamic |
string |
guid |
string |
int |
integer |
long |
long |
real |
double |
string |
string |
timespan |
long |
decimal |
decimal(38,18) |
有关 Event house 数据类型的详细信息,请参阅标量数据类型。
示例策略
{
"Format": "parquet",
"IsEnabled": true,
"Partitions": null,
}
不支持此功能。