Collisioni hash

Le dimensioni in Adobe Analytics raccolgono valori stringa. A volte queste stringhe sono lunghe centinaia di caratteri, mentre altre volte sono brevi. Per migliorare le prestazioni, questi valori stringa non vengono utilizzati direttamente nell’elaborazione al momento del reporting. Viene invece calcolato un hash per ogni valore, producendo un identificatore di dimensione uniforme. Per la maggior parte dei campi, il valore viene convertito in minuscolo prima dell’hashing, riducendo il numero totale di valori univoci. Tutti i rapporti vengono eseguiti su questi valori con hash, che ne aumentano notevolmente le prestazioni.

Adobe Analytics mantiene una tabella hash separata per ogni variabile e ogni tabella viene ricreata ogni mese. All’interno di una di queste tabelle, due diversi valori di origine possono occasionalmente produrre lo stesso hash, noto come conflitto hash.

Le collisioni hash possono manifestarsi nei rapporti come segue:

  • Se visualizzi un rapporto nel tempo e osservi un picco imprevisto, è possibile che più valori univoci per tale variabile utilizzino lo stesso hash.
  • Se utilizzi un segmento e vedi un valore imprevisto, è possibile che l’elemento dimensione imprevisto utilizzi lo stesso hash di un altro elemento dimensione che corrisponde al segmento.

Possibilità di una collisione hash

Adobe Analytics utilizza hash a 32 bit per la maggior parte delle dimensioni, il che significa che ci sono 232 possibili combinazioni di hash (circa 4,3 miliardi). Le probabilità approssimative di incontrare una collisione hash in base al numero di valori univoci sono le seguenti. Queste probabilità si basano su una singola dimensione per un singolo mese.

Valori univoci
Odds
1.000
0.01%
10.000
1%
50.000
26%
100.000
71%

Simile al paradosso del compleanno, la probabilità di conflitti di hash aumenta drasticamente con l’aumentare del numero di valori univoci. Con 1 milione di valori univoci, è probabile che ci siano almeno 100 conflitti di hash per quella dimensione.

Mitigazione delle collisioni hash

Le collisioni hash non possono essere eliminate completamente, ma il loro impatto sui rapporti può essere mitigato. La maggior parte delle collisioni hash si verifica con due valori non comuni, che non hanno alcun impatto significativo sui rapporti. Anche se un hash si scontra con un valore comune e non comune, il risultato è trascurabile. Tuttavia, in rari casi in cui due valori popolari sperimentano una collisione hash, è possibile vedere chiaramente il suo effetto. Per ridurre l’effetto nei rapporti, Adobe consiglia di effettuare le seguenti operazioni:

  • Modifica l’intervallo di date: le tabelle hash cambiano ogni mese. Se si modifica l’intervallo di date in modo che si estenda su un altro mese, a ogni valore possono essere assegnati hash diversi che non si scontrano. In genere è il modo più rapido per eliminare un’anomalia visibile da un rapporto specifico.
  • Riduci il numero di valori univoci: puoi regolare l’implementazione o utilizzare Regole di elaborazione per ridurre il numero di valori univoci raccolti da una dimensione. Ad esempio, se la dimensione raccoglie un URL, puoi rimuovere stringhe di query o protocollo.
  • Usa Data Warehouse o Feed dati: questi strumenti non si basano su tabelle hash.
  • Passa a Customer Journey Analytics: Customer Journey Analytics non ha livelli di hashing e nessun limite di cardinalità per le dimensioni. Prendere in considerazione il passaggio a questo prodotto se i rapporti sono spesso influenzati da conflitti di hash o da Low-Traffic.
recommendation-more-help
analytics-help-implement