Grâce à la Predictive Optimization, Databricks permet d'ingérer des données semi-structurées de manière flexible tout en conservant des performances de requête similaires à celles des données structurées, pour des lectures 30 fois plus rapides
par Jonathan Brito, Gene Pang et Harsh Motwani
Pendant des années, l'ingestion de données semi-structurées comme JSON, XML ou CSV impliquait un compromis difficile. Les équipes de données pouvaient soit créer des pipelines ETL pour schématiser les données afin d'accélérer les requêtes, au détriment de la flexibilité, soit stocker les données sous forme de chaînes de caractères pour rester flexibles, au prix de performances de requête ralenties. Pour résoudre ce dilemme, nous avons collaboré avec les communautés Delta et Spark afin d'introduire le type de données Variant et de le proposer aux communautés Parquet et Iceberg pour unifier le lakehouse autour d'un standard unique et ouvert pour les données semi-structurées.
Nous sommes ravis d'annoncer que Variant est désormais en disponibilité générale dans Databricks. Ce lancement inclut le Variant Shredding, également en disponibilité générale, une optimisation des performances qui utilise la Predictive Optimization pour améliorer automatiquement les performances des requêtes sur les données Variant. Avec Variant, les équipes peuvent ingérer des données semi-structurées de manière flexible sans compromettre les performances des requêtes en aval.
Plus de 5 000 équipes écrivent des données Variant à l'aide de Databricks. Ces équipes utilisent le plus souvent Variant pour ingérer des événements provenant de sources de streaming comme Kinesis ou Event Hub, des charges utiles JSON issues d'API et des données sans schéma provenant de bases de données comme PostgreSQL et MongoDB.
Variant est particulièrement utile pour gérer les changements de schéma des sources d'ingestion. Par exemple, une application en amont peut modifier ses types d'API. Les équipes en aval doivent alors se précipiter pour mettre à jour les pipelines concernés, effectuer des remplissages historiques (backfills) des données existantes et gérer la transition. Pire encore, la plupart des entreprises ont des plateformes de données et des équipes d'application distinctes, ce qui rend ces changements de schéma imprévisibles. Avec Variant, les utilisateurs peuvent ingérer toutes leurs données semi-structurées de manière flexible dans leurs tables.

Variant élimine le coût initial lié au traitement des données semi-structurées. La création de pipelines pour schématiser les données prend du temps, obligeant les ingénieurs de données à justifier leur investissement en temps. Variant inverse le paradigme : les équipes peuvent facilement charger les données d'abord, puis déterminer leur utilité pour le reste de l'entreprise.
Les utilisateurs de Databricks exécutent plus de 500 millions de requêtes Variant par mois sur plus de 160 TB de données Variant. Databricks rend la lecture de Variant aussi rapide que la lecture de données schématisées sur des tables managées. Grâce au Shredding, Variant stocke les champs communs sous forme de colonnes dans les fichiers Parquet sous-jacents. La Predictive Optimization s'entraîne sur la charge de travail et les modèles de requête uniques d'un utilisateur et, grâce au machine learning, identifie les champs morcelés (shredded) les plus critiques et collecte des statistiques sur ceux-ci pour améliorer l'exclusion de fichiers (file skipping). Par conséquent, Databricks n'analyse que les fichiers et les colonnes requis pour une requête, évitant ainsi le travail inutile et boostant les performances.
Le shredding de Variant offre des lectures près de 4 fois plus rapides que le Variant non morcelé, et des lectures 30 fois plus rapides que le stockage de JSON sous forme de chaîne de caractères :

Avec Variant, Databricks libère des performances ultra-rapides à grande échelle :
Nous devons interroger des journaux de sécurité qui ne sont pas de simples enregistrements plats, mais des structures JSON complexes difficiles à explorer efficacement. La prise en charge de Variant par Databricks, combinée au shredding, permet d'interroger avec de hautes performances des attributs profondément imbriqués, même à l'échelle du pétaoctet.

— Russell Leighton, architecte en chef
Avec Databricks, vous pouvez utiliser Variant sur l'ensemble de votre stack de données.
Nos utilisateurs se servent généralement de deux outils pour ingérer des données semi-structurées sous forme de Variant :
Les deux approches d'ingestion écrivent les données dans Delta ou Iceberg, permettant à n'importe quel client d'interagir avec les données du lakehouse. Pour simplifier la configuration, utilisez Genie Code dans l'éditeur de pipelines Lakeflow afin de générer facilement des pipelines d'ingestion Auto Loader en langage naturel.

Les équipes peuvent ensuite consommer directement les données Variant dans le Lakehouse. Comme les données sont morcelées de manière intelligente lors du processus d'ingestion, les tableaux de bord et les rapports peuvent interroger les données directement, aussi rapidement que des données structurées.
Dans un avenir proche, nous prévoyons d'étendre encore la prise en charge de Variant pour inclure le Liquid Clustering par champs Variant, des fonctions SQL étendues et d'autres intégrations de fonctionnalités.
Avec Variant, vous n'avez plus à faire de compromis entre flexibilité et performance lorsque vous utilisez des données semi-structurées. Databricks utilise la Predictive Optimization, qui suit la charge de travail et les modèles de requêtes, pour écrire automatiquement les données Variant afin d'obtenir les meilleures performances sur l'ensemble des produits.
Commencer à utiliser Variant est simple : essayez-le ici.
(Cet article de blog a été traduit à l'aide d'outils basés sur l'intelligence artificielle) Article original
Abonnez-vous à notre blog et recevez les derniers articles directement dans votre boîte mail.