Direkt zum Hauptinhalt
Produkt

Suchabfragen mit Volltextsuchindizes auf Databricks beschleunigen

Volltextsuchindizes können Abfragen auf Tabellen mit offenem Format um das 100-Fache oder mehr beschleunigen, ohne das Tabellenlayout zu ändern

von Yu Xu, Yingyi Bu und Ivan Vezilić

  • Databricks führt Volltextsuchindizes in der Beta-Version ein: Erstellen Sie einen Index mit einer SQL-Anweisung, und Ihre Teilstring- und Keyword-Abfragen werden beschleunigt, ohne dass Abfrage-Hints oder Anwendungsänderungen erforderlich sind.
  • Teams, die die Volltextsuche in ihren Produktionsumgebungen einsetzen, verzeichnen eine mehr als 100-fache Beschleunigung bei Teilstring-Suchabfragen auf Tabellen im Petabyte-Bereich, was neue Anwendungsfälle auf Databricks ermöglicht hat.
  • Ab sofort in Databricks Runtime 18.2 für von Unity Catalog verwaltete Tabellen verfügbar, die automatische Indexwartung über Predictive Optimization folgt in Version 18.3.

Jedes Datenteam steht vor derselben Herausforderung, wenn Tabellen auf Hunderte von Gigabyte oder Terabyte und darüber hinaus anwachsen: Textsuchabfragen werden quälend langsam – sei es bei der Suche nach einer Fehlermeldung in Terabytes oder Petabytes von Anwendungsprotokollen, beim Finden einer verdächtigen IP-Adresse in Sicherheitsdaten oder beim Lokalisieren bestimmter Inhalte in einem Compliance-Datensatz. Diese Abfragen können letztendlich weitaus mehr Daten scannen als nötig, was schnelle, gezielte Suchen im großen Maßstab zu einer Herausforderung macht. Heute freuen wir uns, eine Lösung für diese Herausforderungen vorzustellen: Volltextsuchindizes sind ab sofort als Beta-Version in Databricks Runtime 18.2 verfügbar.

Teams sind oft zu Workarounds gezwungen: das Führen von Tabellenduplikaten, der Aufbau externer Suchsysteme wie Elasticsearch oder Splunk oder das Over-Engineering von Tabellenlayouts, um sie für ein bestimmtes Abfragemuster auf Kosten anderer zu optimieren.

image2.png

Was sind Volltextsuchindizes?

Ein Volltextsuchindex beschleunigt Teilstring- und Keyword-Abfragen in Textspalten. Sobald Sie einen erstellen, nutzt die Query Engine ihn automatisch. Suchen, die früher eine gesamte Tabelle scannen mussten, lesen so nur noch einen kleinen Bruchteil davon. (Wie das funktioniert, erklären wir weiter unten.)

Volltextsuchindizes eignen sich ideal für Lookups mit hoher Kardinalität und für die gleichzeitige Suche in vielen Textspalten. Typische Beispiele sind:

  • Protokollanalyse und SIEM (Security Information and Event Management): Suche nach Fehlermeldungen, IP-Adressen oder verdächtigen Mustern in Terabytes von Sicherheits- und Anwendungsprotokollen.
  • Trust- and Safety-Untersuchungen: Finden bestimmter Inhalte in riesigen Datensätzen zur Inhaltsmoderation.
  • Compliance-Audits: Lokalisieren von Datensätzen, die bestimmte Begriffe in regulatorischen Berichtsdaten enthalten.

Starten Sie mit nur einer SQL-Anweisung:

Abfragen werden dann automatisch beschleunigt:

Die Query Engine erkennt den Suchindex und nutzt ihn, um den Großteil der Dateien zu überspringen, was Abfragen oft um ein Vielfaches beschleunigt.

Wie es unter der Haube funktioniert

Volltextsuchindizes werden separat von der Basistabelle gespeichert. Wenn Sie einen Index erstellen, tokenisiert Databricks den Textinhalt und erstellt einen internen Index: eine kompakte Lookup-Struktur, die Token den passenden Zeilen zuordnet. Bei der Abfrage konsultiert die Engine diesen Index, um festzustellen, welche Dateien passende Zeilen enthalten könnten, und liest dann nur diese Dateien.

image3.png

Diese Architektur bietet mehrere entscheidende Vorteile:

  • Keine Auswirkungen auf die Schreibleistung: Indizes werden asynchron gepflegt. Das Schreiben in die Basistabelle wird durch die Indizierung niemals verlangsamt.
  • Automatische Abfrageoptimierung: Die Databricks Query Engine bewertet verfügbare Indizes und wählt den besten Zugriffspfad aus, ohne dass Abfrage-Hints erforderlich sind.
  • Garantierte Korrektheit: Selbst wenn ein Index veraltet ist (hinter der Basistabelle zurückbleibt), bleibt die Korrektheit der Abfrage gewahrt. Databricks scannt je nach Bedarf sowohl indizierte als auch nicht indizierte Teile der Tabelle, sodass die Ergebnisse immer vollständig und genau sind.
  • Funktioniert mit Delta und Iceberg: Volltextsuchindizes unterstützen von Unity Catalog verwaltete Delta- und Iceberg-Tabellen sowohl auf Serverless- als auch auf Classic-Compute-Ressourcen.

Wie verhalten sich Volltextsuchindizes zu Liquid Clustering?

Liquid Clustering und Volltextsuchindizes lösen unterschiedliche Probleme. Liquid Clustering organisiert Ihre Daten physisch, sodass Abfragen, die nach dem Clustering-Schlüssel filtern, große Datenmengen effizient überspringen können. Clustering hilft bei Gleichheits- und Bereichsfiltern auf Spaltenwerten, kann jedoch nicht dabei helfen, einen Teilstring oder ein Keyword innerhalb eines Feldes zu finden.

Volltextsuchindizes hingegen suchen im Text von Spaltenwerten und ermöglichen so schnelle Teilstring- und Keyword-Lookups. Das bedeutet, dass Volltextsuchindizes Abfragen selbst auf Spalten beschleunigen, nach denen Sie bereits geclustert haben, da Clustering allein keine Übereinstimmung innerhalb des Inhalts eines Feldes finden kann.

Kurz gesagt: Liquid Clustering optimiert das Filtern nach Spaltenwerten; Volltextsuchindizes optimieren das Suchen innerhalb von Spaltenwerten. Sie ergänzen sich gegenseitig und arbeiten auf derselben Tabelle zusammen.

Performance-Ergebnisse von Kunden

Ein Trust and Safety-Team hat Volltextsuchindizes für Untersuchungen in einer Tabelle im Petabyte-Bereich eingeführt.

Eine Teilstring-Suche, die zuvor die gesamte Tabelle scannen musste, läuft jetzt mehr als 100-mal schneller, was interaktive Untersuchungen zum ersten Mal praktikabel macht.

Wir arbeiten aktiv an effizienteren Index-Layouts und anderen Optimierungen, um in kommenden Releases eine noch größere Beschleunigung zu erzielen.

Erste Schritte

Volltextsuchindizes sind als Beta-Version in Databricks Runtime 18.2 verfügbar. Erste Schritte finden Sie in der Dokumentation zu Volltextsuchindizes.

Wie geht es weiter?

Der nächste Meilenstein für Volltextsuchindizes ist Version 18.3, in der Sie Folgendes erwarten können:

  • Vollständige Unity Catalog-Integration mit automatischer Vererbung von Berechtigungen.
  • Automatische Wartung über Predictive Optimization: Kein manuelles REFRESH INDEX mehr. Ihre Indizes werden automatisch auf dem neuesten Stand gehalten.

Wir freuen uns auf Ihr Feedback während der Beta-Phase. Testen Sie Volltextsuchindizes noch heute für Ihre Workloads und helfen Sie uns, das Public Preview-Release zu gestalten.

(Dieser Blogbeitrag wurde mit KI-gestützten Tools übersetzt.) Originalbeitrag

Erhalten Sie die neuesten Beiträge in Ihrem Posteingang

Abonnieren Sie unseren Blog und erhalten Sie die neuesten Beiträge direkt in Ihren Posteingang.