本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
設定信標分割
本節說明如何設定信標分割,以及它如何影響信標衍生、查詢行為和安全性保證。分割適用於所有信標,並提供分佈值、限制頻率洩漏和控制查詢廣發的一致模型。了解分割區計數和分割區指派如何一起運作,可協助您選擇在隱私權、效能和操作安全性之間取得平衡的組態。
分割區組態概觀
分割是在邏輯資料表層級設定,並統一套用至所有標準信標。每個邏輯資料表定義單一分割結構描述,由兩個參數控制:maximumNumberOfPartitions 和 defaultNumberOfPartitions。
maximumNumberOfPartitions
maximumNumberOfPartitions 欄位定義資料表在其生命週期內可能使用的分割區數量上限。此值:
-
決定可能的查詢廣發上限。
-
可以隨著資料量或安全需求的變化而增加。
-
資料存在後不得減少。
defaultNumberOfPartitions
defaultNumberOfPartitions 欄位指定未明確宣告其分割區計數的標準信標使用多少分割區。此值:
-
必須滿足
1 ≤ defaultNumberOfPartitions ≤ maximumNumberOfPartitions ≤ 255。 -
可以增加,但絕對不能在項目寫入後減少。
-
將此值設定為與 相同的值,
maximumNumberOfPartitions除非您刻意想要限制個別信標可以使用的分割區數量。當屬性具有較小或充分了解的值空間、當屬性查詢頻率很高,或您想要降低查詢廣發和查詢成本時,限制信標的分割區數量會很有用。限制分割區會交換一些隨機性和分佈優勢,以提高查詢效率和可預測性。對於大多數屬性,使用完整的可用分割區集可在隱私權保護和彈性之間取得最佳平衡。
使用 PartitionSelector 指派分割區
名為 的使用者提供的函數會在寫入時將每個項目PartitionSelector指派給分割區。它會決定分割區編號:
GetPartitionNumber(item, numberOfPartitions, logicalTableName) -> PartitionNumber
您可以在選擇器中將網域知識編碼為:
-
在多個分割區之間分佈高頻率值。
-
持續將罕見的值指派給單一分割區。
-
針對一般用途工作負載使用預設隨機選取器。
信標衍生包含選取的分割區編號,永遠不會直接公開在加密的項目或信標值中。
在標準信標上設定分割區計數
根據預設,所有標準信標都會使用 defaultNumberOfPartitions。您可以設定 來選擇性地限制個別信標numberOfPartitions。這在以下情況很有用:
-
基礎資料已大致統一分佈。
-
預期查詢工作負載會傳回非常小的結果集。
-
減少查詢廣發功能可大幅改善效能。
對於限制信標,信標衍生期間使用的有效分割區會計算為:
effectivePartition = itemPartition % numberOfPartitions
只有在必要且經過適當的安全性審查時,才套用信標層級限制。不正確的限制可能會削弱匿名保證,或使現有項目在查詢期間無法連線。