雜湊碰撞

Adobe Analytics中的Dimension會收集字串值。 有時這些字串長達數百個字元,有時則較短。 為改善效能,處理時不會直接使用這些字串值。 相反地,會計算每個值的雜湊,讓所有值的大小一致。 所有報表都在這些雜湊值上執行,這會大幅提升其效能。

對於大多數欄位,字串首先會轉換為全部小寫。 小寫轉換可減少不重複值的數量。 值會每月進行雜湊處理,指定值的大小寫會使用每月看到的第一個值。 在罕見情況下,某些月份也可能將兩個不重複的變數值雜湊轉換為相同的值。 此概念稱為​ 雜湊碰撞

雜湊碰撞可於以下情形出現於報表:

  • 如果您檢視一段時間的報表並看到非預期的尖峰,該變數的多個不重複值可能會使用相同的雜湊。
  • 如果您使用區段並看到非預期的值,則非預期的維度專案可能會使用與符合您區段的另一個維度專案相同的雜湊。

雜湊碰撞的機率

Adobe Analytics對大部分的維度使用32位元雜湊,表示有2個32 可能的雜湊組合(約43億)。 每個月都會為每個維度建立新的雜湊表。 根據唯一值數目,發生雜湊碰撞的大致機率如下。 這些賠率是根據單一維度的單一月計算。

唯一值
賠率
1,000
0.01%
10,000
1%
50,000
26%
100,000
71%

類似於 生日悖論,雜湊碰撞發生的可能性會隨著唯一值數量的增加而大幅增加。 該維度至少會有100萬個不重複值,且可能至少有100個雜湊碰撞。

緩解雜湊碰撞

大部分的雜湊碰撞都會發生於兩個不常見的值,而這些值對報表沒有實質影響。 即使雜湊與通用和不常用的值發生衝突,結果也微不足道。 但是,在少數情況下,當兩個常用的值遇到雜湊碰撞時,可以清楚看到其影響。 Adobe建議採取以下措施減少其在報表中的影響:

  • 變更日期範圍:雜湊表格每個月都會變更。 將日期範圍變更為跨越另一個月,可能會為每個值提供互不抵觸的不同雜湊。
  • 減少不重複值的數量:您可以調整實施或使用 處理規則 以協助減少維度收集的不重複值數量。 例如,如果您的維度收集URL,您可以移除查詢字串或通訊協定。
recommendation-more-help
b4f6d761-4a8b-4322-b801-c85b9e3be690