Databricks gibt heute bekannt, dass die Unterstützung für die Skriptsprache ANSI SQL/PSM jetzt allgemein verfügbar ist.
SQL-Scripting ist jetzt in Databricks verfügbar und bringt prozedurale Logik wie Schleifen und Kontrollfluss direkt in das SQL, das Sie bereits kennen. Scripting in Databricks basiert auf offenen Standards und ist vollständig mit Apache Spark™ kompatibel.
Für SQL-First-Benutzer wird es dadurch einfacher, direkt auf dem Lakehouse zu arbeiten und dabei die Skalierbarkeit und die KI-Funktionen von Databricks zu nutzen.
Wenn Sie Databricks bereits verwenden, ist SQL-Scripting für Sie besonders nützlich, um administrative Logik und ELT-Aufgaben zu erstellen. Zu den Key Features gehören:
Genug der Feature-Liste — sehen wir uns einige praktische Beispiele an. Sie können dieses Notebook verwenden , um die Schritte mitzuverfolgen.
Administrative Tasks und die Datenbereinigung sind ein ständiger Begleiter im Datenverwaltung von Unternehmen – notwendig, routinemäßig und unvermeidbar. Sie müssen historische Datensätze bereinigen, gemischte Formate standardisieren, neue Namenskonventionen anwenden, Spalten umbenennen, Datentypen erweitern und Spaltenmasken hinzufügen. Je mehr Sie diese Tasks automatisieren können, desto zuverlässiger und besser verwaltbar werden Ihre Systeme im Laufe der Zeit. Ein gängiges Beispiel: die Erzwingung von Case-Insensitivität für alle STRING-Spalten in einer Tabelle.
Sehen wir uns an, wie SQL-Skripting diese Art der Schemaverwaltung wiederholbar und unkompliziert machen kann.
In diesem Beispiel möchten wir eine neue Richtlinie für die Sortierung und den Vergleich von Strings auf jede anwendbare Spalte in der Tabelle „employees“ anwenden. Wir verwenden einen Standardkollationstyp, UTF8_LCASE, um sicherzustellen, dass das Sortieren und Vergleichen der Werte in dieser Tabelle immer ohne Berücksichtigung der Groß- und Kleinschreibung erfolgt. Die Anwendung dieses Standards ermöglicht es Benutzern, von den Leistungsvorteilen der Verwendung von Kollationen zu profitieren, und vereinfacht den Code, da Benutzer LOWER() nicht mehr in ihren Abfragen anwenden müssen.
Wir werden Widgets verwenden, um anzugeben, welche Tabelle und welcher Collation-Typ geändert werden sollen. Mithilfe des Informationsschemas finden wir dann alle vorhandenen Spalten vom Typ STRING in dieser Tabelle und ändern deren Kollation. Wir werden die Spaltennamen in einem Array sammeln. Abschließend werden wir neue Statistiken für die geänderten Spalten erfassen, alles in einem einzigen Skript.
Eine naheliegende Erweiterung des obigen Skripts besteht darin, es auf alle Tabellen in einem Schema auszuweiten und die Ansichten zu aktualisieren, damit diese die Änderung der Kollation übernehmen.
Gibt es in der Datenwelt ein häufigeres Problem als 'unsaubere Daten'? Daten aus verschiedenen Systemen, Geräten und von Menschen weisen unweigerlich Unterschiede oder Fehler auf, die korrigiert werden müssen. Wenn Daten nicht bereinigt werden, erhalten Sie möglicherweise falsche Ergebnisse und verpassen wichtige Erkenntnisse. Wenn Sie ein LLM mit schlechten Daten füttern, erhalten Sie auch eine schlechte Antwort.
Werfen wir einen Blick auf ein Beispiel, das die Plage jeder Veröffentlichung – auch dieses Blogs – enthält: Tippfehler. Wir haben eine Tabelle, die Freitexteinträge in einer Spalte namens „description“ enthält. Die Probleme im Text, darunter Rechtschreib- und Grammatikfehler, wären für jeden, der Englisch kann, offensichtlich. Die Daten in diesem Zustand zu belassen, wird bei der späteren Analyse oder Prüfung des Textes zweifellos zu Problemen führen. Beheben wir das mit SQL Scripting! Zuerst extrahieren wir Tabellen aus dem Informationsschema, die diesen Spaltennamen enthalten. Dann beheben wir alle Rechtschreibfehler mit ai_fix_grammar(). Diese Funktion ist nicht-deterministisch. Daher verwenden wir MERGE, um unser Ziel zu erreichen.
Eine interessante Verbesserung könnte sein, ai_classify() aus dem Spaltennamen oder den Beispieldaten ableiten zu lassen, ob eine Spalte Freitext enthält. SQL Scripting macht administrative Tasks und die Bereinigung unsauberer Daten effizient und unkompliziert.
Kunden verwenden heute SQL für ETL. Warum? Denn SQL unterstützt mit seiner intuitiven Syntax eine robuste Auswahl an Datentransformationen, einschließlich Joins, Aggregationen und Filterung. So können Data Engineers den Pipeline-Code ganz einfach erweitern, aktualisieren und warten. Mit SQL-Scripting können Kunden jetzt bisher komplexe Ansätze vereinfachen oder komplexere Logik mit reinem SQL handhaben.
Wer physische Produkte verkauft, nutzt Prozesse zum Monitoring des Vertriebs und zum Tracking. Ein gängiges Muster in der Datenverwaltung besteht darin, mehrere Tabellen zu modellieren, um Transaktionen, Sendungen, Zustellungen und Retouren zu verfolgen. Das Transaktions-Monitoring ist geschäftskritisch und erfordert wie jeder kritische Prozess den Umgang mit unerwarteten Werten. Mit SQL-Scripting ist es einfach, eine bedingte CASE-Anweisung zu nutzen, um Transaktionen in die entsprechende Tabelle zu parsen und, falls ein Fehler auftritt, die Ausnahme abzufangen.
In diesem Beispiel betrachten wir eine Tabelle mit Roh-Transaktionen, deren Zeilen basierend auf dem Ereignistyp an eine bekannte Menge von Zieltabellen geleitet werden müssen. Wenn das Skript auf ein unbekanntes Ereignis stößt, wird eine benutzerdefinierte Ausnahme ausgelöst. Eine Sitzungsvariable verfolgt den Fortschritt des Skripts bis zu dessen Abschluss oder dem Auftreten einer Ausnahme.
Dieses Beispielskript könnte um eine äußere Schleife erweitert werden, die kontinuierlich weitere Daten abfragt. Mit SQL Scripting verfügen Sie sowohl über die Leistung als auch über die Flexibilität, um Daten in Ihrer gesamten Datenlandschaft zu verwalten und zu aktualisieren. Mit SQL Scripting können Sie jede Datenverwaltungs-Task bewältigen und den Datenverarbeitungsfluss effizient steuern.
Verfolgen Sie weiterhin den Databricks-Blog und die SQL-Sessions auf dem bevorstehenden Data + AI Summit, da wir die Einführung der Unterstützung für Temp Tables, SQL Stored Procedures und mehr vorbereiten!
Egal, ob Sie als bestehender Databricks-Benutzer Routinewartungen durchführen oder eine groß angelegte Migration orchestrieren, SQL-Scripting ist eine Funktion, die Sie nutzen sollten. SQL-Scripting wird ausführlich in SQL Scripting | Databricks Documentation beschrieben.
Sie können diese Beispiele direkt in diesem SQL-Scripting-Notebook ausprobieren. Weitere Informationen finden Sie in Teil 2 dieser Reihe, der sich intensiv mit SQL-Skripting-Konstrukten und deren Verwendung befasst.
Produto
June 12, 2024/11 min de leitura

