Mithilfe von Predictive Optimization ermöglicht Databricks das flexible Ingestieren semistrukturierter Daten bei einer Abfrageleistung wie bei strukturierten Daten – für 30-mal schnellere Lesevorgänge
von Jonathan Brito, Gene Pang und Harsh Motwani
Jahrelang bedeutete das Ingestieren semistrukturierter Daten wie JSON, XML oder CSV einen schwierigen Kompromiss. Datenteams konnten entweder ETL-Pipelines erstellen, um Daten für schnelle Abfragen zu schematisieren, und dabei an Flexibilität einbüßen, oder Daten als Strings speichern, um flexibel zu bleiben, und dafür eine langsame Abfrageleistung in Kauf nehmen. Um diesen Kompromiss zu lösen, haben wir gemeinsam mit den Delta- und Spark-Communitys den Variant-Datentyp eingeführt und ihn in die Parquet- und Iceberg-Communitys integriert, um das Lakehouse als einen einzigen, offenen Standard für semistrukturierte Daten zu vereinheitlichen.
Wir freuen uns, ankündigen zu können, dass Variant ab sofort in Databricks allgemein verfügbar ist. Diese Einführung umfasst auch Variant Shredding, das ebenfalls allgemein verfügbar ist – eine Leistungsoptimierung, die Predictive Optimization nutzt, um die Abfrageleistung für Variant-Daten automatisch zu verbessern. Mit Variant können Teams semistrukturierte Daten flexibel ingestieren, ohne die nachgelagerte Abfrageleistung zu beeinträchtigen.
Mehr als 5.000 Teams schreiben bereits Variant-Daten mit Databricks. Am häufigsten nutzen diese Teams Variant, um Events aus Streaming-Quellen wie Kinesis oder Event Hub, JSON-Payloads aus APIs und schemafreie Daten aus Datenbanken wie PostgreSQL und MongoDB zu ingestieren.
Variant ist besonders nützlich, um Schemaänderungen aus Ingestionsquellen zu handhaben. Beispielsweise kann eine vorgelagerte Anwendung ihre API-Typen ändern. Dies zwingt nachgelagerte Teams dazu, die entsprechenden Pipelines hektisch zu aktualisieren, Backfills für bestehende Daten durchzuführen und eine Umstellung zu bewältigen. Erschwerend kommt hinzu, dass in den meisten Unternehmen Datenplattform- und Anwendungsteams getrennt sind, was solche Schemaänderungen unvorhersehbar macht. Mit Variant können Benutzer all ihre semistrukturierten Daten flexibel in ihre Tabellen ingestieren.

Variant beseitigt die Vorabkosten für die Arbeit mit semistrukturierten Daten. Der Aufbau von Pipelines zur Schematisierung von Daten kostet Zeit, sodass Data Engineers ihre investierte Zeit rechtfertigen müssen. Variant stellt dieses Paradigma auf den Kopf: Teams können Daten zuerst mühelos speichern und erst später deren Nutzen für das restliche Unternehmen ermitteln.
Databricks-Benutzer führen monatlich über 500 Millionen Variant-Abfragen auf mehr als 160 TB an Variant-Daten aus. Databricks ermöglicht das Lesen von Variant-Daten ebenso schnell wie das Lesen schematisierter Daten in Managed Tables. Durch Shredding speichert Variant häufige Felder als Spalten in den zugrunde liegenden Parquet-Dateien. Predictive Optimization lernt aus den individuellen Workloads und Abfragemustern der Benutzer und identifiziert mithilfe von maschinellem Lernen die kritischsten geschredderten Felder und erfasst Statistiken dazu, um das Überspringen von Dateien zu verbessern. Dadurch scannt Databricks nur die für eine Abfrage erforderlichen Dateien und Spalten, was unnötigen Aufwand vermeidet und die Leistung steigert.
Variant Shredding liefert fast viermal schnellere Lesevorgänge als ungeschreddertes Variant – und 30-mal schnellere Lesevorgänge als das Speichern von JSON als String:

Mit Variant ermöglicht Databricks eine blitzschnelle Leistung in großem Maßstab:
Wir müssen Sicherheitslogs abfragen, die keine einfachen, flachen Datensätze sind, sondern komplexe JSON-Strukturen, die sich nur schwer effizient durchsuchen lassen. Die Variant-Unterstützung von Databricks in Kombination mit Shredding ermöglicht hochperformante Abfragen von tief verschachtelten Attributen – selbst im Petabyte-Bereich.

— Russell Leighton, Chief Architect
Mit Databricks können Sie Variant in Ihrem gesamten Daten-Stack nutzen.
Unsere Benutzer verwenden in der Regel zwei Tools, um semistrukturierte Daten als Variant zu ingestieren:
Beide Ingestionsansätze schreiben Daten entweder in Delta oder Iceberg, sodass jeder Client mit Daten im Lakehouse interagieren kann. Um die Einrichtung zu vereinfachen, können Sie Genie Code im Lakeflow Pipelines Editor verwenden, um ganz einfach Ingestions-Pipelines für Auto Loader mithilfe natürlicher Sprache zu erstellen.

Teams können Variant-Daten dann direkt im Lakehouse nutzen. Da die Daten während des Ingestionsprozesses intelligent geschreddert werden, können Dashboards und Berichte die Daten direkt abfragen – und das ebenso schnell wie strukturierte Daten.
In naher Zukunft planen wir, die Unterstützung für Variant noch weiter auszubauen, einschließlich Liquid Clustering nach Variant-Feldern, erweiterten SQL-Funktionen und weiteren Feature-Integrationen.
Mit Variant müssen Sie bei der Verwendung semistrukturierter Daten keine Kompromisse mehr zwischen Flexibilität und Leistung eingehen. Databricks nutzt Predictive Optimization, um Workload- und Abfragemuster zu verfolgen und Variant-Daten automatisch für die beste Leistung über alle Produkte hinweg zu schreiben.
Der Einstieg in Variant ist ganz einfach – probieren Sie es hier aus.
(Dieser Blogbeitrag wurde mit KI-gestützten Tools übersetzt.) Originalbeitrag
Abonnieren Sie unseren Blog und erhalten Sie die neuesten Beiträge direkt in Ihren Posteingang.