適用於: ✅Microsoft Fabric
變更數據表的 鏡像原則。 鏡像原則會以差異 parquet 格式在資料庫中建立數據表的邏輯複本,並可讓您分割檔案以改善查詢速度。 每個分割區會使用 Partitions 清單中所列的 PartitionName,以個別數據行表示。 這表示目標中的數據行數目比源數據表中的數據行多。
語法
(.alter
| .alter-merge
) table
TableNamepolicy mirroring
[partition
by
(Partitions)] dataformat
= parquet
[with
(
propertyName=
propertyValue [,
...])
]
深入瞭解 語法慣例。
參數
姓名 | 類型 | 必要 | 描述 |
---|---|---|---|
TableName | 字串 | ✔️ | 遵守實體名稱規則的 數據表名稱 。 |
資料分割 | 字串 | 以逗號分隔的數據行清單,用來將數據分割成較小的分割區。 請參閱 分割區格式設定。 | |
propertyName、propertyValue | string |
索引鍵/值屬性組的逗號分隔清單。 請參閱 |
數據分割格式設定
數據分割清單是資料分割資料行的任何組合,使用下表所示的其中一個表單來指定。
數據分割類型 | 語法 | 備註 |
---|---|---|
虛擬數據行 |
PartitionName: (datetime | string ) |
深入瞭解 虛擬數據行。 |
字串數據行值 |
PartitionName: string = ColumnName |
|
字串資料行值 哈希() |
:
long
=
hash( Number, |
哈希為模數。 |
截斷日期時間資料行 (value) |
PartitionName: datetime = (startofyear | startofmonth | startofweek | startofday ) ( ColumnName) |
請參閱 startofyear、startofmonth、startofweek 或 startofday 函式的檔。 |
截斷的 Datetime 資料行值 = bin ( ColumnName, TimeSpan) |
深入瞭解 bin 函式。 |
注意
每個分割區會使用 Partitions 清單中所列的 PartitionName,以個別數據行表示。 PartitionName 必須是不區分大小寫的唯一字串,以及其他數據分割名稱和鏡像數據表的數據行名稱。
支援的屬性
姓名 | 類型 | 描述 |
---|---|---|
IsEnabled |
bool |
布爾值,決定是否啟用鏡像原則。 預設值為 true 。 停用鏡像原則並設定為 false 時,基礎鏡像數據會虛刪除並保留在資料庫中。 |
TargetLatencyInMinutes |
int |
寫入作業延遲為最小值。 根據預設,寫入作業最多可能需要 3 小時,或直到有 256 MB 的數據可用為止。 您可以將延遲調整為介於 5 分鐘到 3 小時之間的值。 |
Backfill |
bool |
當設定為 true 時,鏡像會從 EffectiveDateTime 開始。 如果未指定 EffectiveDateTime ,則會鏡像所有數據表數據。 預設值為 false 。 |
EffectiveDateTime |
datetime |
當 Backfill 設定為 true 時相關。 如果提供,鏡像會從指定的值開始。 |
注意
啟用鏡像原則時,無法重新命名數據表。
範例
.alter 數據表原則鏡像
在下列範例中,會鏡像名為 myTable 的數據表。 數據會先依名稱分割,再依日期分割。
.alter table myTable policy mirroring
partition by (Name: string=Name, Date: datetime= startofday(timestamp))
dataformat=parquet
with
(IsEnabled=true, Backfill=true, EffectiveDateTime=datetime(2025-01-01))
相關內容
- 若要檢查鏡像作業,請參閱 .show 數據表鏡像作業命令。
- 若要刪除鏡像作業,請參閱 .delete 數據表原則鏡像命令。