Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Standardmäßig schreiben Pipelineflüsse Ergebnisse in Delta-Tabellen, die von Unity Catalog verwaltet werden, in der Regel Streamingtabellen oder materialisierte Ansichten. Sinks sind ein alternatives Ausgabeziel, mit dem Sie transformierte Daten an Ziele außerhalb des von Databricks verwalteten Speichers schreiben können, z. B. an Event-Streaming-Dienste oder benutzerdefinierte Datenspeicher.
Senken werden mit Anfügeflüssen verwendet. Sie definieren eine Senke mit einer der Sink-APIs und referenzieren sie dann als target in Ihrer append_flow-Definition.
Wann sinks verwendet werden sollten
Databricks empfiehlt die Verwendung von Senken bei Bedarf:
- Erstellen Sie Betriebsanwendungsfälle mit geringer Latenz, z. B. Betrugserkennung, Echtzeitanalysen oder Kundenempfehlungen, in denen Daten an einen Nachrichtenbus und nicht in den Cloudspeicher fließen müssen. Für Workloads, die Millisekundenlatenz erfordern, finden Sie informationen unter Verwenden des Echtzeitmodus in Lakeflow Spark Declarative Pipelines.
- Schreiben Sie transformierte Daten in Tabellen, die von einer externen Delta-Instanz verwaltet werden, einschließlich von durch Unity Catalog verwalteten und externen Tabellen.
- Führen Sie Reverse ETL mit externen Systemen durch, z. B. indem Sie verarbeitete Daten zurück in Apache-Kafka-Topics schreiben, damit sie außerhalb von Azure Databricks genutzt werden können.
- In ein Format schreiben, das von Azure Databricks nicht nativ unterstützt wird, unter Verwendung von Python-benutzerdefinierten Datenquellen.
Senkentypen
Pipelines unterstützen die folgenden Senkentypen:
| Spületyp | Description |
|---|---|
| Delta-Tabellenspülungen | In von Unity Catalog verwaltete oder externe Delta-Tabellen schreiben. Geben Sie entweder einen Dateipfad oder einen vollqualifizierten Tabellennamen an. |
| Apache Kafka-Senken | Schreiben Sie in Apache Kafka-Themen mithilfe des Kafka-Connectors, der in der Pipelinelaufzeit enthalten ist. |
| Azure Event Hubs-Senken | In Azure Event Hubs über die Kafka-Schnittstelle schreiben. Verwendet die gleichen Optionen wie Kafka-Sinks. |
| benutzerdefinierte Python-Senken | Schreiben Sie in jeden Datenspeicher mithilfe einer benutzerdefinierten Python-Datenquelle, die mit spark.dataSource.register registriert ist. |
| ForEachBatch Senken | Wenden Sie benutzerdefinierte Python Logik auf jeden Mikrobatch von Streamingdaten an. Verwenden Sie diese Option, wenn Sie in mehrere Ziele schreiben, Upserts ausführen oder Ziele verwenden müssen, die streaming-Schreibvorgänge nicht nativ unterstützen. |
Senken-APIs
Pipelines stellen zwei APIs zum Erstellen von Senken bereit:
-
create_sink(): Erstellt eine benannte Senke eines unterstützten Typs (Delta, Kafka, AEH oder benutzerdefinierte Python-Datenquelle). Nur in Python verfügbar. Siehe Verwenden von Senken in Pipelines. -
foreach_batch_sink(): Dekoriert eine Python-Funktion, die für jeden Mikro-Batch von Streaming-Daten ausgeführt wird. Bietet maximale Flexibilität für benutzerdefinierte Schreiblogik. Siehe Verwenden von ForEachBatch zum Schreiben in beliebige Datensenken in Pipelines.
Beide Sink-Typen werden als das target eines append_flow bezeichnet.
Einschränkungen
- Sinks sind nur in Python verfügbar. SQL wird nicht unterstützt.
- Nur Streamingabfragen werden unterstützt. Batchabfragen werden nicht unterstützt.
- Nur
append_flowkann in Senken schreiben;create_auto_cdc_flowund andere Flusstypen werden nicht unterstützt. - Pipelineerwartungen werden für Senken nicht unterstützt.
- Durch ausführen einer vollständigen Aktualisierung werden zuvor geschriebene Daten in Senken nicht bereinigt.