Les données semi-structurées sont organisées, mais ne se prêtent pas parfaitement à un format tabulaire. JSON, XML, YAML et les en-têtes d'e-mails appartiennent à cette catégorie. Ces données possèdent des balises ou des clés qui décrivent leur structure, mais cette structure peut varier d'un enregistrement à l'autre. Un objet JSON peut contenir un champ absent d'un autre. Deux documents XML peuvent imbriquer leurs éléments différemment. Le schéma est flexible, parfois appelé schéma à la lecture. La structure est appliquée lors de l'interrogation des données, et non lors de leur stockage.
Les données semi-structurées sont courantes dans les applications modernes. Les API renvoient du JSON. Les fichiers journaux utilisent des paires clé-valeur. Les fichiers de configuration utilisent YAML. Les bases de données NoSQL stockent nativement du JSON. Cette flexibilité est utile lorsque le modèle de données évolue ou varie. Elle représente également un défi pour l'analyse. Interroger des données semi-structurées requiert des outils et des techniques différents de ceux utilisés pour interroger des tables. Il faut naviguer dans des structures imbriquées, gérer les champs manquants et aplatir les tableaux. Les moteurs SQL se sont adaptés. PostgreSQL, MySQL et Snowflake prennent tous en charge les fonctions JSON. Il est possible d'interroger des documents JSON sans les extraire au préalable. Cette confusion entre données structurées et semi-structurées rend la distinction moins pertinente. La question importante n'est plus de savoir si les données sont semi-structurées, mais plutôt si l'on peut les interroger efficacement.
Formats semi-structurés
- JSON — paires clé-valeur, tableaux, objets imbriqués
- XML — éléments balisés, hiérarchique
- YAML — configuration lisible par l'homme
- CSV — délimité mais sans information de type
- Fichiers journaux — événements horodatés avec champs variables
Les données semi-structurées représentent un juste milieu. Elles sont suffisamment structurées pour être utiles et suffisamment flexibles pour être désordonnées.
Comments (2)
Leave a comment