.alter-merge table policy mirroring 命令
更改表的镜像策略。 镜像策略以增量 parquet 格式创建数据库中表的逻辑副本,并允许对文件进行分区以提高查询速度。 每个分区使用 Partitions 列表中列出的 PartitionName 表示为单独的列。 这意味着目标中的列数多于源表中的列数。
语法
(.alter
| .alter-merge
) table
TableName policy mirroring
[partition
by
(Partitions)] dataformat
= parquet
[with
(IsEnabled
=IsEnabledValue
)]
详细了解语法约定。
参数
客户 | 类型 | 必需 | 说明 |
---|---|---|---|
TableName | string | ✔️ | 遵循实体名称规则的表名称。 |
分区 | string | 用于将数据划分为较小分区的列的逗号分隔列表。 请参阅分区格式设置。 |
分区格式设置
分区列表是分区列的任意组合,使用下表中显示的格式之一指定。
分区类型 | 语法 | 注释 |
---|---|---|
虚拟列 | 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 必须是不区分大小写的唯一字符串,既包括其他分区名称,也包括镜像表的列名。
属性
名称 | Type | 描述 |
---|---|---|
IsEnabled |
bool |
一个布尔值,用于确定是否启用了镜像策略。 默认值为 true 。 镜像策略被禁用并设置为 false 后,基础镜像数据将被软删除并保留在数据库中。 |
注意
在启用镜像策略后,表将无法重命名。
示例
.alter table policy mirroring
在以下示例中,镜像了一个名为 myTable 的表。 数据首先按名称进行分区,然后按日期进行分区。
.alter table myTable policy mirroring
partition by (Name: string=Name, Date: datetime= startofday(timestamp))
dataformat=parquet
with
(IsEnabled=true)
相关内容
- 若要检查镜像操作,请参阅 .show table mirroring operations 命令。
- 若要删除镜像操作,请参阅 .delete table policy mirroring 命令。
不支持此功能。