Collisioni hash

Adobe tratta i valori prop e eVar come stringhe, anche se il valore è un numero. A volte queste stringhe sono lunghe centinaia di caratteri, altre volte sono brevi. Per risparmiare spazio, migliorare le prestazioni e rendere tutto uniformemente dimensionato, le stringhe non vengono utilizzate direttamente nell’elaborazione. Per ogni valore viene invece calcolato un hash a 32 bit o a 64 bit. Tutti i rapporti vengono eseguiti con questi valori con hash, in cui ogni hash viene sostituito dal testo originale. Gli hash aumentano notevolmente le prestazioni dei rapporti di Analytics.

Per la maggior parte dei campi, la stringa viene prima convertita in tutte le lettere minuscole (riducendo il numero di valori univoci). I valori vengono sottoposti a hashing su base mensile (la prima volta che vengono visualizzati ogni mese). Mese per mese esiste una piccola possibilità che due valori di variabile univoci vengano hash allo stesso valore. Questo concetto è noto come collisione hash.

Le collisioni hash possono manifestarsi nei rapporti come segue:

  • Se stai generando una tendenza per un valore e vedi un picco per un mese, è probabile che altri valori per tale variabile siano stati sottoposti a hashing sullo stesso valore del valore che stai esaminando.
  • Lo stesso accade per i segmenti per un valore specifico.

Esempio di collisione hash

La probabilità di conflitti di hash aumenta con il numero di valori univoci in una dimensione. Ad esempio, uno dei valori che arrivano alla fine del mese potrebbe ottenere lo stesso valore hash di un valore precedente del mese. L’esempio seguente può aiutare a spiegare come questo può causare la modifica dei risultati del segmento. Supponiamo che eVar62 riceva "valore 100" il 18 febbraio. Analytics conserverà una tabella che potrebbe essere simile alla seguente:

Valore stringa eVar62
Hash
Valore 99
111
Valore 100
123
Valore 101
222

Se crei un segmento che cerca le visite in cui eVar62="valore 500", Analytics determina se "valore 500" contiene un hash. Poiché "valore 500" non esiste, Analytics restituisce zero visite. Poi, il 23 febbraio, eVar62 riceve "valore 500", e l’hash per quello è anche 123. La tabella avrà un aspetto simile al seguente:

Valore stringa eVar62
Hash
Valore 99
111
Valore 100
123
Valore 101
222
Valore 500
123

Quando lo stesso segmento viene eseguito di nuovo, cerca l’hash di "valore 500", trova 123 e il rapporto restituisce tutte le visite che contengono l’hash 123. Ora, le visite avvenute il 18 febbraio saranno incluse nei risultati.

Questa situazione può creare problemi durante l’utilizzo di Analytics. Adobe continua a studiare modi per ridurre la probabilità di queste collisioni hash in futuro. Per evitare questa situazione, puoi trovare modi per distribuire i valori univoci tra le variabili, rimuovere i valori non necessari con le regole di elaborazione o ridurre in altro modo il numero di valori per variabile.

recommendation-more-help
b4f6d761-4a8b-4322-b801-c85b9e3be690