ハッシュの競合
Adobe Analyticsのディメンションは、文字列値を収集します。 これらの文字列は数百文字の場合もあれば、短い場合もあります。 パフォーマンスを向上させるために、これらの文字列値は、レポート時処理で直接使用されません。 代わりに、値ごとにハッシュが計算され、均一なサイズの識別子が生成されます。 ほとんどのフィールドでは、値はハッシュする前に小文字に変換され、一意の値の合計数が減少します。 すべてのレポートは、これらのハッシュ化された値で実行されるため、パフォーマンスが大幅に向上します。
Adobe Analyticsでは、各変数に対して個別のハッシュテーブルを保持し、各テーブルは毎月再構築されます。 これらのテーブルのいずれかで、2つの異なるソース値が同じハッシュを生成することがあります。これは ハッシュ コリジョン と呼ばれます。
ハッシュの衝突は、次のようにレポートに表示されます。
- レポートを時系列で表示し、予期しないスパイクを確認した場合、その変数の複数の一意の値が同じハッシュを使用している可能性があります。
- セグメントを使用して予期しない値を確認した場合、予期しないディメンション項目で、セグメントに一致する別のディメンション項目と同じハッシュが使用される可能性があります。
ハッシュ衝突の確率
Adobe Analyticsでは、ほとんどのディメンションに32 ビットハッシュが使用されます。つまり、232個のハッシュの組み合わせが可能です(約43億)。 一意の値の数に基づいて、ハッシュ衝突が発生する近似確率は次のとおりです。 これらのオッズは、1か月間の単一のディメンションにもとづいています。
誕生日パラドックス と同様に、一意の値の数が増えるにつれて、ハッシュ衝突の可能性が大幅に増加します。 100万の一意の値では、そのディメンションに対して少なくとも100回のハッシュ衝突が発生している可能性があります。
ハッシュ衝突の緩和
ハッシュ衝突を完全に排除することはできませんが、レポートへの影響を軽減することはできます。 ほとんどのハッシュ衝突は、2つの珍しい値で発生し、レポートに意味のある影響を与えません。 ハッシュが共通および非共通の値と衝突しても、結果は無視できます。 しかし、2つの一般的な値がハッシュ衝突を経験するまれなケースでは、その効果を明確に確認することができます。 Adobeでは、レポートでの効果を減らすために、次のことをお勧めします。
- 日付範囲を変更: ハッシュテーブルは毎月変更されます。 日付範囲を別の月にまたがるように変更すると、各値に衝突しない異なるハッシュが設定される場合があります。 通常、特定のレポートから目に見える異常値を除去する最も高速な方法です。
- 一意の値の数を減らします:実装を調整するか、処理ルール を使用して、ディメンションが収集する一意の値の数を減らすことができます。 例えば、ディメンションでURLを収集した場合、クエリ文字列またはプロトコルを削除できます。
- 使用Data Warehouseまたは データフィード:これらのツールはハッシュテーブルに依存しません。
- Customer Journey Analyticsに移動:Customer Journey Analyticsにはハッシュレイヤーがなく、 ディメンションに基数制限がありません。 ハッシュの衝突または低トラフィック が頻繁にレポートに影響を与える場合は、この製品への移行を検討してください。