Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Som standard skriver pipelineflöden resultat till Delta-tabeller som hanteras av Unity Catalog, vanligtvis strömmande tabeller eller materialiserade vyer. Sinkar är alternativa utdatamål som låter dig skriva transformerad data till mål utanför lagring som hanteras av Databricks, till exempel tjänster för händelseströmning eller anpassade datalager.
Sänkor används med appendflöden. Du definierar en mottagare med någon av api:erna för mottagare och refererar sedan till den som target i din append_flow definition.
När du bör använda sinkar
Databricks rekommenderar att du använder mottagare när du behöver:
- Skapa användningsfall med låg svarstid, till exempel bedrägeriidentifiering, realtidsanalys eller kundrekommendationer, där data måste flöda till en meddelandebuss i stället för molnlagring. Information om arbetsbelastningar som kräver svarstid på millisekunder finns i Använda realtidsläge i Lakeflow-pipelines.
- Skriv transformerad data till tabeller som hanteras av en extern Delta-instans, inklusive tabeller som hanteras av Unity Catalog och externa tabeller.
- Utför omvänd ETL i externa system, till exempel att skriva bearbetade data tillbaka till Apache Kafka-ämnen för förbrukning utanför Azure Databricks.
- Skriv till ett format som inte stöds internt av Azure Databricks, med hjälp av Python anpassade datakällor.
Typer av sinkar
Pipelines stöder följande mottagartyper:
| Sänktyp | Description |
|---|---|
| Deltatabellmottagare | Skriv till hanterade eller externa Delta-tabeller i Unity Catalog. Ange antingen en filsökväg eller ett fullständigt kvalificerat tabellnamn. |
| Apache Kafka-sänkor | Skriv till Apache Kafka-ämnen med hjälp av Kafka-anslutningsappen som ingår i pipelinekörningen. |
| Azure Event Hubs-sänkor | Skriv till Azure Event Hubs med kafka-gränssnittet. Använder samma alternativ som Kafka-mottagare. |
| anpassade Python-sinkar | Skriv till valfritt datalager med en anpassad Python-datakälla som har registrerats med spark.dataSource.register. |
| ForEachBatch-mottagare | Använd anpassad Python logik för varje mikrobat med strömmande data. Använd när du behöver skriva till flera mål, utföra upserts eller använda mål som inte stöder strömmande skrivningar direkt. |
Sink-API:er
Pipelines tillhandahåller två API:er för att skapa mottagare:
-
create_sink(): Skapar en namngiven mottagare av en typ som stöds (Delta, Kafka, AEH eller Python anpassad datakälla). Endast tillgängligt i Python. Se Använda mottagare i pipelines. -
foreach_batch_sink(): Dekorerar en Python-funktion som körs för varje mikrobatch med streamingdata. Ger maximal flexibilitet för anpassad skrivlogik. Se Använd ForEachBatch för att skriva till olika datakällor i pipelines.
Båda sinktyperna refereras till som target för en append_flow.
Limitations
- Sinks är bara tillgängliga i Python. SQL stöds inte.
- Endast strömmande frågeanrop stöds. Batchfrågor stöds inte.
- Endast
append_flowkan skriva till sänkor;create_auto_cdc_flowoch andra flödestyper stöds inte. - Förväntade värden för pipeline stöds inte för sinkar.
- Om du kör en fullständig uppdatering rensas inte tidigare skrivna data i mottagare.