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ć
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.

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:
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.
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.

Diese Architektur bietet mehrere entscheidende Vorteile:
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.
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.
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:
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
Abonnieren Sie unseren Blog und erhalten Sie die neuesten Beiträge direkt in Ihren Posteingang.