Direkt zum Hauptinhalt

Einführung von SQL-gespeicherten Prozeduren in Databricks

Das beste Data Warehouse ist ein offenes Lakehouse

SQL Stored Procedures blog OG
Updated: 26. Februar 2026
Veröffentlicht: 14. August 2025
Produkt12 min Lesezeit

Summary

  • Wiederverwendbare SQL-Logik: Speichern und Ausführen komplexer Logik mit Parametern für konsistente, wiederholbare Ergebnisse.
  • Einfache Migration: Verschieben Sie gespeicherte Prozeduren aus bestehenden Enterprise Data Warehouses, ohne sie neu schreiben zu müssen.
  • Enterprise-ready: Vollständig durch Unity Catalog gesteuert, ANSI-konform und interoperabel mit Open Source

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.

Übersicht über SQL Stored Procedures

Was sind Stored Procedures?

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.

Was wird unterstützt?

Es gibt 5 Kernbefehle, die Procedures unterstützen: CREATE, CALL, DESCRIBE, SHOW und DROP.

  • CREATE PROCEDURE: Definiert und speichert eine neue Stored Procedure in Unity Catalog. Sie gibt den Namen der Procedure, Parameter (falls vorhanden) und die SQL-Anweisungen an, die ausgeführt werden, wenn die Procedure aufgerufen wird.
  • CALL PROCEDURE: Führt eine zuvor erstellte Stored Procedure aus; übergibt alle erforderlichen Parameter.
  • DESCRIBE PROCEDURE: Gibt die grundlegenden Metadaten einer vorhandenen Procedure zurück, wie z. B. ihren Namen und ihre Parameter. Mit EXTENDED enthält die Beschreibung zusätzliche Metadaten, einschließlich des Eigentümers, des Erstellungsdatums, des Sicherheitstyps usw.
  • SHOW PROCEDURES: Listet alle im aktuellen Katalogschema verfügbaren Stored Procedures auf.
  • DROP PROCEDURE: Löscht eine vorhandene Procedure aus dem Speicher.

Beim Erstellen einer Procedure können Sie verschiedene Parametertypen verwenden, um die Ein- und Ausgaben zu steuern.

  • `IN`-Parameter: Wird verwendet, um Werte als Eingabe an eine Procedure zu übergeben. Sie könnten beispielsweise eine Kunden-ID übergeben, um nur die Daten dieses Kunden abzurufen oder zu verarbeiten. Die Procedure kann diese Werte lesen, aber nicht ändern.
  • `OUT`-Parameter: Wird verwendet, um Werte nach der Zuweisung aus einer Procedure zurückzugeben. Sie könnten beispielsweise eine Kunden-ID übergeben und deren Kontostatus oder berechneten Gesamtumsatz zurückgeben, um ihn außerhalb der Procedure weiterzuverarbeiten.
  • `INOUT`-Parameter: Dient einem doppelten Zweck, indem er es ermöglicht, einen Wert an eine Procedure zu übergeben, ihn darin zu ändern und den aktualisierten Wert zurückzugeben. Er fungiert sowohl als Eingabe als auch als Ausgabe.

Diese Parameter können zugewiesen werden an:

  • Lokale Variablen, die innerhalb eines Skripts/einer Procedure deklariert werden
  • Sitzungsvariablen, die innerhalb der Sitzung und sogar außerhalb des Skripts/der Procedure deklariert werden

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:

  • Introducing SQL Scripting Teil 1
  • Introducing SQL Scripting Teil 2
  • Lesen Sie die Dokumentation zu SQL Scripting documentation

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.

Wie unterscheiden sich Procedures von Functions?

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.

LEITFADEN

Ihr kompakter Leitfaden für moderne Analytics

Beispiele für die Verwendung von SQL Stored Procedures

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.

ETL – Datenbereinigung: Vorbereitung von Silver- oder Gold-Tabellen

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:

  • Daten aus Rohdaten in eine Faktentabelle zu laden
  • Daten basierend auf dem Datumsbereich und dem Verkaufsursprung (Web, Mobil, Point-of-Sale, Drittanbieter) auszuwählen
  • Die Daten zu bereinigen und zu formatieren, indem Datumsangaben in ein bestimmtes Format konvertiert und Leerzeichen entfernt werden
  • Nach der Bereinigung die Daten in eine „bereinigte“ Tabelle zu laden
  • Einen Protokolleintrag basierend auf Zeitstempel, von-bis-Daten und Verkaufsursprung hinzuzufügen
  • Mithilfe der Prozedur die Verkäufe über mobile Apps für Juni 2025 abzurufen

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: Aktualisieren einer Tabelle basierend auf Geschäftskriterien

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.

Was kommt als Nächstes?

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:

  • SQL Stored Procedures in Apache Spark™: Unterstützung für alle SQL-Prozeduren in Open Source
  • Unterstützung für SQL SECURITY DEFINER: Ermöglicht Kunden die Ausführung von Prozedur-Logik mit den Berechtigungen des Prozedur-Erstellers (Definer)

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

Verpassen Sie keinen Beitrag von Databricks

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