Die Verwaltung wiederkehrender SQL-Aufgaben – wie das Bereinigen von Daten, das Aktualisieren von Geschäftsregeln oder das Ausführen von Batch-Logik – kann mühsam und fehleranfällig sein, wenn Sie Code kopieren und einfügen.
Jetzt können Sie mit SQL Stored Procedures in Databricks (jetzt allgemein verfügbar) diese Logik einmal speichern, nach Bedarf ausführen und unter Unity Catalog verwalten lassen.
Ob Sie Daten vor der Analyse bereinigen, Tabellen basierend auf Geschäftskriterien aktualisieren oder Workloads von einem alten Enterprise Data Warehouse verschieben, Stored Procedures machen den Prozess einfacher, konsistenter und wartungsfreundlicher.
Databricks unterstützt offene Standards und Interoperabilität und vermeidet proprietäre oder herstellerspezifische Implementierungen. SQL Stored Procedures folgen dem ANSI/PSM SQL-Standard und werden zu Open Source Apache Spark™ beitragen.
Procedures werden häufig für administrative Aufgaben, Datenmanagement und ETL-Workflows verwendet – insbesondere in Enterprise Data Warehouses (EDWs). Für Kunden, die von EDWs zu Databricks wechseln, können vorhandene Stored Procedures ohne Umschreiben migriert werden, was den Übergang vereinfacht. Und wie immer ist das beste Data Warehouse ein Lakehouse.
Für einen unserer kritischen Anwendungsfälle zur Kundensegmentierung nutzten wir SQL Stored Procedures mit DBSQL, um eine bessere Leistung, Skalierbarkeit und Kosteneffizienz zu erzielen. Da wir mit SQL vertraut waren, konnten wir die Lösung in sehr kurzer Zeit implementieren und in die Produktion überführen. Die Verwendung von Stored Procedures hat es uns ermöglicht, komplexe Logik effektiver zu verwalten und gleichzeitig die Gesamtarchitektur schlank und wartbar zu halten. —SambaSiva Rao, Sr. Data Engineer/Architect, ClicTechnologies
SQL Stored Procedures sind jetzt allgemein verfügbar.
In Datenverarbeitungsworkflows kämpfen Kunden oft damit, Konsistenz und Leistung bei wiederkehrenden Aufgaben und komplexer Logik aufrechtzuerhalten. Stored Procedures sind in diesen Fällen ein großartiger Ansatz, um sicherzustellen, dass Daten konsistent und standardisiert verarbeitet werden und die Leistung optimal ist.
Für Datenbereinigungsaufgaben können Procedures Transformationen anwenden, wie z. B. die Konvertierung inkonsistenter Datumsformate in eine standardisierte Struktur, das Entfernen von führenden und nachgestellten Leerzeichen aus Textfeldern sowie das Ersetzen oder Korrigieren fehlerhafter Werte. Dies stellt sicher, dass Ihre Daten für die nachgelagerte Analyse vorbereitet sind. Sehen Sie sich das detaillierte ETL-Beispiel unten an.
Auf der Seite des Datenmanagements können Stored Procedures effizient Tabellenwerte basierend auf definierten Geschäftsregeln aktualisieren – wie z. B. das Markieren veralteter Datensätze, das Neuberechnen von Feldern oder das Synchronisieren von Daten über zusammengehörige Tabellen hinweg. Durch die Kapselung dieser Operationen in Procedures können Teams eine konsistente Ausführung sicherstellen, manuelle Eingriffe reduzieren und die Datenqualität im großen Maßstab verbessern. Sehen Sie sich das detaillierte Datenmanagement-Beispiel unten an, bei dem Stored Procedures zur Aktualisierung eines Treue-/Mitgliederprogramms verwendet werden.
Was sind also Procedures? Es handelt sich um vorkompilierte Sammlungen von SQL-Anweisungen, die es einem Benutzer ermöglichen, seine SQL-Logik in einer einzigen, wiederverwendbaren Einheit zu verwalten. Procedures werden in Unity Catalog gespeichert, was bedeutet, dass sie verwaltet werden und Berechtigungen vollständig kapseln. Wenn eine Stored Procedure aufgerufen wird, führt die Datenbank diese vordefinierten Operationen aus, was Vorteile wie erhöhte Sicherheit, vereinfachte Wartung komplexer Workloads und das Potenzial für verbesserte Leistung bietet.
Es gibt 5 Kernbefehle, die Procedures unterstützen: CREATE, CALL, DESCRIBE, SHOW und DROP.
Beim Erstellen einer Procedure können Sie verschiedene Parametertypen verwenden, um die Ein- und Ausgaben zu steuern.
Diese Parameter können zugewiesen werden an:
Die in einer SQL Stored Procedure gekapselte Logik basiert auf SQL Scripting. Eine Stored Procedure kann als wiederverwendbares Skript mit Parametern betrachtet werden, das von Unity Catalog verwaltet wird. Sie können über diese beiden einführenden Blogs mehr über Scripting erfahren:
Verschachtelte und rekursive Prozeduraufrufe werden unterstützt, was bedeutet, dass Kunden ihre Arbeitseinheiten oder Geschäftslogik bequem in separate Procedures organisieren können, wodurch der gesamte SQL-Ausführungsfluss modularer wird. Dies verbessert die Lesbarkeit und Wartbarkeit.
Procedures werden in der Benutzeroberfläche zusammen mit Functions in Unity Catalog gruppiert. Procedures und Functions dienen jedoch, obwohl sie die Wiederverwendung von SQL-Logik ermöglichen, unterschiedlichen Zwecken.
Eine Funktion wird verwendet, um einen Wert oder eine Tabelle zurückzugeben. Sie muss innerhalb einer SQL-Abfrage verwendet werden und darf keine dynamische SQL- oder prozedurale Logik enthalten. Eine Procedure hingegen wird verwendet, um eine Sequenz von SQL-Anweisungen auszuführen. Sie kann Kontrollfluss, Variablen, Schleifen und dynamisches SQL mit IDENTIFIER und EXECUTE IMMEDIATE enthalten. Sie rufen eine Procedure als eigenständigen Befehl auf, um typischerweise eine Aufgabe oder einen Workflow auszuführen.
Nachdem wir nun die Fähigkeiten von SQL Stored Procedures behandelt haben, wollen wir einige Beispiele untersuchen, um ihren Wert und die Probleme, die sie lösen, zu demonstrieren.
Sie können dieses Notebook verwenden, um mitzuverfolgen – es enthält alle Beispiele aus diesem Beitrag sowie Befehle zur Datenvorbereitung.
Wenn Sie der typischen Medallion-Architektur folgen, wissen Sie, dass die Verschiebung von Daten von Bronze zu Silver (oder Silver zu Gold) die Bereinigung, Transformation, Aggregation und Formatierung von Daten erfordern kann. Gespeicherte Prozeduren eignen sich hervorragend für die Verwaltung wiederkehrender Prozesse wie dieser innerhalb eines ETL-Workflows.
In diesem ETL-Szenario wird eine Prozedur verwendet, um:
Prozeduren wie diese helfen bei der Standardisierung von Datenprodukten. Jeder Benutzer dieser Prozedur erzeugt Daten in der gleichen Struktur, unabhängig vom Datumsbereich oder Point-of-Sale. Dies ist ein Hauptvorteil der Wiederverwendung von Code. Code-Wiederverwendung ist naturgemäß fehleranfälliger, da die gleiche Logik jedes Mal ausgeführt wird.
Datenmanagement ist die Praxis, sicherzustellen, dass Ihre Daten korrekt, konsistent und effizient zugänglich sind – Qualitäten, die für jedes Unternehmen unerlässlich sind, das datengesteuerte Entscheidungen treffen möchte. Ohne ein starkes Datenmanagement können selbst die fortschrittlichsten Analyse- oder Berichtsinitiativen durch unzuverlässige oder inkonsistente Informationen untergraben werden.
Betrachten wir ein Beispiel aus kommerziellen Branchen, in denen es üblich ist, dass ein Unternehmen ein Treueprogramm einrichtet, um Kunden Vorteile basierend auf ihrer Stufe zu bieten. Fluggesellschaften haben Vielfliegerprogramme und die meisten Einzelhandelsketten haben Prämienprogramme usw. Je mehr Kunden mit derselben Fluggesellschaft fliegen oder mehr Artikel von derselben Kette kaufen, desto mehr Vorteile erhalten die Kunden.
Hier ist ein Beispiel dafür, wie gespeicherte Prozeduren verwendet werden können, um ein Standard-Einzelhandels-Treueprogramm zu verwalten und zu aktualisieren. Es gibt zwei Prozeduren zur Verwaltung der Kunden-Treuestufen: eine zum Aktualisieren der Treuestufe eines bestimmten Kunden für die angegebene customerID und eine weitere, die die Treuestufe für alle Kunden aus einem angegebenen Land aktualisiert.
Lassen Sie uns nun die erstellte Prozedur verwenden, um die Kunden-Treuestufen für Kunden aus Serbien, Deutschland und Kanada zu aktualisieren und dann die aktualisierten Datensätze zu überprüfen:
Die vorherige Abfrage liefert folgendes Ergebnis:
Durch die Kapselung der Logik zur Aktualisierung der Stufe in entsprechende Prozeduren vermeiden wir Code-Duplizierung und reduzieren gleichzeitig die Komplexität für den Aufrufer, der nur die Prozedur mit den entsprechenden Prozedurparametern aufrufen muss.
Mit SQL Stored Procedures jetzt in DBSQL können Kunden weiterhin Legacy-Enterprise-Data-Warehouse-Workloads in den Lakehouse migrieren. Basierend auf Kundenfeedback gibt es mehrere Schlüsselfunktionen, die wir auf dem Weg zur GA angehen wollen:
Kunden, die Feedback oder Anfragen zu SQL Scripting und Prozeduren teilen möchten, können dies über dieses Formular tun.
Zwei weitere wichtige SQL-Konstrukte sind für die Migration von Stored Procedures aus Legacy-Systemen erforderlich: Temporäre Tabellen und Transaktionen. Temporäre Tabellen sind jetzt allgemein in DBSQL verfügbar, während die Unterstützung für Transaktionen (Mehrfachanweisungen und Mehrfachtabellen) bald verfügbar sein wird.
Ob Sie bereits Databricks-Nutzer sind oder von einem anderen Data Warehouse migrieren, SQL Stored Procedures sind eine Funktion, die Sie nutzen sollten, um die Verwaltung komplexer SQL-Workflows zu vereinfachen. Beginnen Sie mit SQL Stored Procedures, indem Sie die Databricks Dokumentation lesen.
Um mehr über Databricks SQL zu erfahren, besuchen Sie unsere Website oder lesen Sie die Dokumentation. Sie können auch die Produkttour für Databricks SQL ansehen. Wenn Sie Ihr bestehendes Warehouse zu einem hochleistungsfähigen, serverlosen Data Warehouse mit großartiger Benutzererfahrung und niedrigeren Gesamtkosten migrieren möchten, dann ist Databricks SQL die Lösung – probieren Sie es kostenlos aus.
(Dieser Blogbeitrag wurde mit KI-gestützten Tools übersetzt.) Originalbeitrag
