SAFE_CONVERT_BYTES_TO_STRING |
Conversion sécuritaire d'octets vers une chaîne de caractères |
| BigQuery |
Syntaxe
|
SAFE_CONVERT_BYTES_TO_STRING(value)
|
Paramètres
| Nom |
Description |
| value |
Ce paramètre permet de spécifier la séquence d'octets (BYTES) que vous souhaitez convertir en une chaîne de caractères (STRING). Cette fonction est "sûre" car elle retourne NULL si la séquence d'octets ne peut pas être décodée en une chaîne de caractères Unicode valide, au lieu de provoquer une erreur. |
Description
Cette fonction permet d'effectuer la conversion d'une séquence de plusieurs octets en chaîne de caractères.
Remarques
- Conversion sécurisée pour éviter les erreurs fatales : Cette fonction offre une approche défensive en convertissant des données binaires (BYTES) en
texte (STRING) tout en évitant les erreurs critiques. Si les octets ne représentent pas une chaîne Unicode valide, elle ne déclenche pas d'exception, mais renvoie
NULL, permettant à la requête de continuer sans s'interrompre.
- Utile pour le traitement de données issues de sources variées : Lorsqu'on importe des fichiers ou flux de données bruts (comme des journaux de bord, des
fichiers compressés ou encodés), le contenu peut contenir des octets invalides. Cette fonction permet de gérer ces cas sans bloquer l'analyse, ce qui est essentiel pour
le traitement en masse de données non fiables.
- Comportement différent de CAST(... AS STRING) : Contrairement à une conversion classique via CAST, qui peut générer une erreur si les octets ne forment
pas une chaîne valide, SAFE_CONVERT_BYTES_TO_STRING adopte un comportement «fail-safe» (à l'échec, retour NULL), ce qui est préférable dans un contexte de
robustesse.
- Indispensable dans les débordements ETL automatisés : Lors de l'extraction, transformation et chargement (ETL) de données brutes, cette
fonction évite que des anomalies ponctuelles dans un enregistrement ne bloquent l'ensemble du pipeline. Elle permet d'identifier et de traiter en aval les données
mal formées via des vérifications sur la valeur NULL.
- Assure la conformité Unicode des chaînes : La fonction vérifie que la séquence d'octets respecte les standards Unicode (UTF-8). Si ce n'est pas le cas,
cela signifie probablement que les octets représentent un encodage différent ou corrompu, et dans ce cas, la fonction refuse la conversion et retourne NULL.
- Idéale pour les opérations de nettoyage ou validation : En détectant implicitement les encodages invalides, la fonction peut être utilisée dans des
requêtes de nettoyage ou de validation. Par exemple, on peut filtrer toutes les lignes dont la conversion retourne NULL afin d'identifier les enregistrements
corrompus ou mal encodés.
- Fonction légère à insérer dans des expressions conditionnelles : Grâce à son comportement sûr, elle s'intègre bien dans des clauses IF, CASE WHEN ou
COALESCE, permettant de fournir des chaînes alternatives en cas d'échec de conversion sans risquer une erreur SQL.
- Ne convertit que des octets UTF-8 valides : Il est important de noter que même si la fonction semble permissive, elle reste stricte sur la validité
Unicode. Des octets partiels, des séquences invalides ou des caractères hors plage Unicode standard ne seront pas convertis, renforçant la qualité des chaînes
de sortie.
Dernière mise à jour : Jeudi, le 18 Juin 2020