Auto Loader ist ein Ladewerkzeug in Databricks, das neue Dateien in einem Cloud-Speicher (Dateiablage in der Cloud wie Amazon S3, Azure Data Lake Storage oder Google Cloud Storage) automatisch erkennt und in eine Delta-Tabelle (verwaltete Tabelle im Databricks-Lakehouse) übernimmt, ohne bereits geladene Dateien erneut zu lesen. Auto Loader merkt sich in einem Checkpoint (Fortschrittsprotokoll auf der Ablage), was schon verarbeitet wurde, und läuft entweder in festen Abständen oder dauerhaft mit.
Was ist Auto Loader?
Auto Loader ist eine Ladequelle innerhalb von Apache Spark (der Rechen-Engine hinter Databricks) und speziell für Dateien im Cloud-Speicher gebaut. Angesprochen wird die Quelle über den Format-Namen cloudFiles in einer Streaming-Abfrage (eine Abfrage, die kontinuierlich läuft und neue Daten laufend nachlädt). Die Abfrage liest neue Dateien aus einem Verzeichnis und schreibt sie in eine Zieltabelle. Auto Loader ist Teil der Databricks-Laufzeitumgebung und lässt sich auch in Lakeflow Spark Declarative Pipelines (dem früheren Delta Live Tables, einem Baukasten für deklarative Datenpipelines) als Quelle einhängen.
Für die Erkennung neuer Dateien bietet Auto Loader zwei Discovery-Modi. Directory Listing ist der Default und listet den Inhalt des Ziel-Verzeichnisses auf, um neue Dateien gegen den Checkpoint-Status abzugleichen. File Notification setzt cloud-native Event-Dienste ein (etwa AWS SQS, Azure Event Grid oder Google Pub/Sub), an die der Objektspeicher jede neue Datei meldet. File Notification skaliert besser bei sehr großen Verzeichnissen, verlangt aber zusätzliche Cloud-Ressourcen und Berechtigungen.
Den Fortschritt hält Auto Loader in einem Checkpoint-Verzeichnis fest. Jede bereits verarbeitete Datei wird dort vermerkt, sodass ein Neustart der Query die Datei überspringt. Diese Semantik ist exactly-once auf Datei-Ebene und ersetzt die selbstgebaute Buchhaltung, die eine manuelle Ingestion-Pipeline sonst pflegen müsste.
Für sich ändernde Datenstrukturen unterstützt Auto Loader Schema Inference und Schema Evolution. Beim ersten Lauf leitet der Reader das Schema aus einer Stichprobe von Dateien ab und legt es in einer Schema-Location ab. Für spätere Läufe stehen vier Evolutions-Modi zur Verfügung: addNewColumns (neue Spalten werden aufgenommen), rescue (unbekannte Werte landen in einer Rescue-Spalte als JSON), failOnNewColumns (die Query bricht ab) und none (Abweichungen werden ignoriert). Die Rescue-Spalte bleibt in jedem Modus als Auffangfeld für Typkonflikte verfügbar.
Abgrenzung: COPY INTO, Structured Streaming, Lakeflow
Auto Loader wird häufig mit benachbarten Databricks-Bausteinen für Ingestion und Pipelines verwechselt, weil sie sich funktional teilweise überlappen.
| Begriff | Verhältnis zu Auto Loader |
|---|---|
| COPY INTO | SQL-Befehl für idempotente Batch-Ladungen aus Cloud-Speichern in eine Delta-Tabelle. Kein Streaming-Checkpoint zwischen Läufen; geeignet für begrenzte Datenmengen und einmalige Backfills. |
| Structured Streaming | Das Streaming-Framework von Apache Spark. Auto Loader ist eine konkrete Quelle innerhalb dieses Frameworks, kein eigenes Framework. |
| Lakeflow Spark Declarative Pipelines | Deklaratives Pipeline-Framework (früher Delta Live Tables). Auto Loader kann in einer solchen Pipeline als Quelle dienen; die Pipeline übernimmt Orchestrierung, Datenqualität und Deployment. |
| Lakeflow Connect | Managed-Konnektoren für Datenbanken und SaaS-Systeme (etwa Salesforce, Workday). Auto Loader zielt auf Dateien im Objektspeicher, Lakeflow Connect auf strukturierte Quellsysteme. |
| Zerobus Ingest | Direkter Push-Ingest von Anwendungen in Delta-Tabellen ohne Zwischen-Datei. Auto Loader setzt eine Datei im Cloud-Speicher voraus. |
Auto Loader ist damit die Ingest-Schicht für den Fall, dass Rohdaten als Dateien im Cloud-Objektspeicher entstehen und inkrementell und mit Schema-Kontrolle in eine Delta-Tabelle wandern.
Beispiel: Bronze-Ingestion aus einem S3-Bucket
Ein typischer Einsatz ist die Bronze-Schicht einer Medaillon-Architektur. Ein Quellsystem legt JSON-Dateien mit Transaktions-Events in einem S3-Bucket ab. Ein Auto-Loader-Stream liest neue Dateien inkrementell und schreibt sie in eine Delta-Tabelle bronze.transactions.
(spark.readStream
.format("cloudFiles")
.option("cloudFiles.format", "json")
.option("cloudFiles.schemaLocation", "/Volumes/main/bronze/_schemas/transactions")
.option("cloudFiles.schemaEvolutionMode", "addNewColumns")
.load("s3://acme-raw/transactions/")
.writeStream
.option("checkpointLocation", "/Volumes/main/bronze/_checkpoints/transactions")
.trigger(availableNow=True)
.toTable("main.bronze.transactions"))Der Trigger availableNow verarbeitet alle seit dem letzten Lauf angesammelten Dateien in einem Rundlauf und beendet die Query danach. Diese Betriebsart eignet sich für stündliche oder tägliche Jobs. Für niedrigere Latenzen bleibt die Query dauerhaft aktiv und verarbeitet Dateien fortlaufend im Micro-Batch. Der Schema-Location-Pfad hält das inferierte Schema; die Checkpoint-Location verhindert doppelte Verarbeitung nach Neustarts.
Auto Loader im eigenen Unternehmen umsetzen?
Wir zeigen, wie sich das in deiner Systemlandschaft konkret abbilden lässt.
Discovery-Modi, Schema-Strategien und Trigger-Wahl im Entscheidungskontext
Data Engineering auf DatabricksEinordnung in Ingest-, Pipeline- und Orchestrierungs-Bausteine
Data Ingestion in DatabricksIngest-Optionen im Vergleich: Auto Loader, COPY INTO, Lakeflow Connect, Zerobus
Lakeflow Spark Declarative Pipelinesdeklaratives Pipeline-Framework, in dem Auto Loader als Quelle dient
Apache SparkEngine unter Auto Loader und Structured Streaming
Datenstreamingkontinuierliche Verarbeitung als übergeordnetes Konzept