ハッシュの競合

Adobe AnalyticsのDimensionは、文字列値を収集します。 これらの文字列は数百文字の長さになる場合もあれば、短くなる場合もあります。 パフォーマンスを向上させるために、これらの文字列値は、処理で直接使用されません。 代わりに、すべての値を均一なサイズにするために、値ごとにハッシュが計算されます。 すべてのレポートは、これらのハッシュ化された値に対して実行されるので、パフォーマンスが大幅に向上します。

ほとんどのフィールドでは、文字列はまず小文字すべてに変換されます。 小文字に変換すると、一意の値の数が減ります。 値は月単位でハッシュ化されます。特定の値の場合は、毎月表示される最初の値を使用します。 月から月へ、2 つの一意の変数値が同じ値にハッシュ化される可能性が少しあります。 この概念は、ハッシュの競合 ​として知られています。

ハッシュの競合は、レポートで次のように現れる場合があります。

  • レポートを経時的に表示し、予期しないスパイクが見られた場合、その変数の複数の一意の値が同じハッシュを使用する可能性があります。
  • セグメントを使用していて、予期しない値が表示された場合は、予期しないディメンション項目が、セグメントに一致する別のディメンション項目と同じハッシュを使用している可能性があります。

ハッシュの衝突の確率

Adobe Analyticsでは、ほとんどのディメンションに 32 ビットハッシュを使用します。つまり、可能なハッシュの組み合わせは 232 (約 43 億)あります。 ディメンションごとに新しいハッシュテーブルが毎月作成されます。 一意の値の数に基づいた、ハッシュの競合が発生する確率は次のとおりです。 これらのオッズは、1 か月間の単一のディメンションに基づいています。

一意の値
オッズ
1,000
0.01%
10,000
1%
50,000
26%
100,000
71%

バースデーのパラドックスと同様に、一意の値の数が増えると、ハッシュの衝突の可能性が大幅に高まります。 一意の値が 100 万個の場合、そのディメンションには少なくとも 100 個のハッシュ競合がある可能性があります。

ハッシュの競合の軽減

ほとんどのハッシュの競合は、2 つの一般的でない値で発生しますが、レポートには意味のある影響はありません。 ハッシュが一般的で一般的でない値と競合した場合でも、結果は無視できます。 ただし、まれに 2 つの一般的な値でハッシュの競合が発生する場合は、その影響を明確に確認できます。 Adobeでは、レポートでの影響を軽減するために、次のことを推奨しています。

  • 日付範囲の変更:ハッシュテーブルは月ごとに変更されます。 日付範囲を別の月に変更すると、競合しない異なるハッシュが各値に与えられる可能性があります。
  • 一意の値の数を減らす:実装を調整するか、 処理ルールを使用して、ディメンションが収集する一意の値の数を減らすことができます。 例えば、ディメンションが URL を収集する場合、クエリ文字列またはプロトコルを取り除くことができます。
recommendation-more-help
b4f6d761-4a8b-4322-b801-c85b9e3be690