.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 ) 请参阅有关 startofyearstartofmonthstartofweekstartofday 函数的文档。
截断的日期/时间列值 = 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)

不支持此功能。