31 mai 2022
JSON (JavaScript Object Notation) est devenu un format populaire pour l’échange et le stockage de données en raison de sa simplicité et de sa flexibilité. Dans cet article, nous explorerons les concepts et les idées derrière l’utilisation des pipelines JSON dans SQL Server.
Exigences
Lorsque vous travaillez avec des pipelines JSON dans SQL Server, il est important de comprendre les exigences de votre scénario spécifique. Dans l’exemple que nous allons discuter, les exigences suivantes ont été identifiées :
- Les données proviennent d’une base de données SQL Server.
- La destination est une table de base de données PostgreSQL.
- La logique de transformation implique l’agrégation de plusieurs lignes de la table source et la population du document structuré JSON résultant dans une colonne de type JSONB à une seule ligne.
Préparation du document JSON
Une approche pour gagner du temps et garantir la validité du document JSON résultant est de le préparer dans la requête source en tant qu’expression de chaîne. Cela permet une validation facile dans le pipeline ADF (Azure Data Factory). Dans l’exemple, la fonction T-SQL STRING_AGG a été utilisée pour combiner plusieurs lignes de table en une seule valeur textuelle. Cela a fourni une alternative à l’utilisation des instructions T-SQL SELECT … FOR JSON PATH.
Validation des données sources
La validation des données sources est une étape importante du processus ETL (Extraction, Transformation, Chargement). Dans l’exemple, les données ont été extraites dans le stockage de blob avant d’être transmises plus loin dans le pipeline ETL. Pour garantir une manipulation correcte des caractères spéciaux, l’option ‘No…’ a été définie pour le caractère d’échappement et les paramètres de caractère de citation dans l’ensemble de données de source de stockage de blob.
Gestion des caractères spéciaux
Les caractères spéciaux, tels que le retour chariot (CR) et le saut de ligne (LF), peuvent poser des problèmes lors de la construction de documents JSON. Dans l’exemple, l’auteur a décidé de supprimer ces caractères dans la requête source pour simplifier le processus. De plus, les TAB ont été remplacés par des espaces pour éviter tout problème de mise en forme potentiel.
Prise en charge de plusieurs scénarios de transformation
Le flux de données de mappage dans ADF offre un outil puissant pour prendre en charge plusieurs scénarios de transformation, tels que l’insertion, la mise à jour, la suppression et l’upsert. En utilisant la transformation de ligne modifiée, les développeurs peuvent rationaliser leur flux de données et gérer diverses exigences de transformation.
Garantir la validité du document JSON
Lorsque vous travaillez avec des colonnes de données JSONB dans PostgreSQL, le processus ETL valide automatiquement le document JSON. Si le document JSON final n’est pas bien formaté et ne répond pas aux exigences du type JSON, un message d’erreur sera généré. Il est important de résoudre tout problème de formatage pour garantir une insertion de données réussie dans la colonne JSONB.
En comprenant ces concepts et idées, vous pouvez utiliser efficacement les pipelines JSON dans SQL Server pour gérer des transformations de données complexes et garantir l’intégrité de vos documents JSON.