FARM_FINGERPRINT |
Empreinte |
| BigQuery |
Syntaxe
Paramètres
| Nom |
Description |
| value |
Ce paramètre permet de spécifier la valeur (de type STRING ou BYTES) dont l'empreinte doit être calculée. |
Description
Cette fonction permet de demander l'empreinte d'une valeur STRING ou BYTES en se basant sur la fonction Fingerprint64 de FarmHash.
Remarques
- Génère un identifiant numérique unique à partir d'une chaîne : La fonction FARM_FINGERPRINT() permet de transformer une chaîne de caractères ou un tableau
d'octets (BYTES) en un entier signé (INT64) qui représente une empreinte numérique. Cela permet de résumer de manière unique une valeur tout en gardant un format numérique
exploitable.
- Basée sur l'algorithme rapide FarmHash : Cette fonction repose sur FarmHash, un algorithme de hachage développé par Google, optimisé pour la vitesse et
la distribution uniforme des empreintes. Ce choix garantit un bon compromis entre performance et fiabilité dans la détection d'unicité ou le partitionnement.
- Très utile pour générer des clés de partition ou de hachage : Grâce à FARM_FINGERPRINT(), on peut créer des identifiants pseudonymisés ou des clefs de
hachage homogènes, souvent utilisées dans le partitionnement de données ou pour assurer la distribution équilibrée des charges dans un unité d'allocation de calcul.
- Non cryptographique : ne convient pas pour la sécurité : Il est important de noter que cette fonction ne fournit pas de chiffrement ou de sécurité :
l'empreinte peut être prédite ou répliquée. Elle est donc inadaptée pour anonymiser ou protéger des données sensibles, contrairement à des fonctions comme SHA256().
- Utilisable dans des comparaisons ou jointures optimisées : Les empreintes générées étant des entiers, elles peuvent être utilisées dans des opérations
de jointure ou de filtrage très performantes, comparées aux chaînes de texte qui nécessitent plus de ressources à comparer.
- Les collisions sont rares mais possibles : Comme tout hachage, FARM_FINGERPRINT() peut produire des collisions, c'est-à-dire deux chaînes différentes avec
la même empreinte. Toutefois, l'utilisation de 64 bits réduit considérablement cette probabilité dans les cas pratiques.
- Idéale pour pseudonymiser temporairement des champs : Dans un cadre exploratoire, on peut l'utiliser pour masquer temporairement des valeurs identifiantes
(comme des noms ou des courriels) tout en conservant leur unicité, ce qui est utile dans des contextes de test ou de développement.
- Supporte uniquement les types STRING et BYTES : Cette fonction ne fonctionne que sur des entrées de type STRING ou BYTES. Si l'on souhaite obtenir
l'empreinte d'un type comme INT64 ou DATE, il faudra d'abord convertir explicitement ces valeurs en chaînes de caractères.
Dernière mise à jour : Jeudi, le 18 Juin 2020