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.
Den här sidan visar hur du använder Structured Streaming med Unity Catalog för att hantera datastyrning för dina inkrementella och strömmande arbetsbelastningar på Azure Databricks.
Vilka funktioner för strukturerad direktuppspelning stöder Unity Catalog?
Unity Catalog lägger inte till några explicita gränser för strukturerade direktuppspelningskällor och mottagare som är tillgängliga på Azure Databricks.
Med Unity Catalog och Structured Streaming kan du:
- Strömma data från både hanterade och externa tabeller. Se Unity Catalog-hanterade tabeller i Azure Databricks för Delta Lake och Apache Iceberg.
- Använd externa platser som hanteras av Unity Catalog för att interagera med data med hjälp av objektlagrings-URI:er.
- Skriv till externa tabeller med antingen tabellnamn eller filsökvägar. Om du vill interagera med hanterade tabeller måste du använda tabellnamnet.
För kontrollpunkter för strukturerad strömning måste du använda sökvägar på externa platser som hanteras av Unity Catalog. Mer information om hur du ansluter lagring på ett säkert sätt med Unity Catalog finns i Ansluta till molnobjektlagring med Unity Catalog.
Läsa en Unity Catalog-vy som en dataström
I Databricks Runtime 14.3 LTS och senare kan du använda Structured Streaming för att läsa från vyer som registrerats med Unity Catalog. De underliggande tabellerna måste använda Delta Lake-formatet. Andra begränsningar finns i Begränsningar.
Om du vill läsa en vy med Structured Streaming använder du .table() metoden med vyns identifierare:
df = (spark.readStream
.table("demoView")
)
Användarna måste ha SELECT behörigheter i målvyn.
Om du ändrar vydefinitionen för att lägga till eller ändra tabellerna som refereras i vyn kan du inte använda samma kontrollpunkt för direktuppspelning.
Alternativ för direktuppspelning som stöds
Den strömmande läsaren använder alternativ för filer och metadata för de underliggande Delta-tabellerna för den angivna vyn.
Följande alternativ stöds:
maxFilesPerTriggermaxBytesPerTriggerignoreDeletesskipChangeCommitswithEventTimeOrderstartingTimestampstartingVersion
Läsningar på vyer med UNION ALL stöder inte alternativen withEventTimeOrder och startingVersion.
Om du anger alternativ som inte stöds, till exempel readChangeFeed, genererar Spark det här undantaget:
AnalysisException: [UNSUPPORTED_STREAMING_OPTIONS_FOR_VIEW.UNSUPPORTED_OPTION] Unsupported for streaming a view. Reason: option <option> is not supported.
Direktuppspelningsåtgärder som stöds
Bland de åtgärder som stöds finns:
| Operation | Description | Operator | Example |
|---|---|---|---|
| Projekt | Styr behörigheter på kolumnnivå | SELECT... FROM... |
CREATE VIEW project_view AS SELECT id, value FROM source_table |
| Filter | Styr behörigheter på radnivå | WHERE... |
CREATE VIEW filter_view AS SELECT * FROM source_table WHERE value > 100 |
| Union alla | Resultat från flera tabeller | UNION ALL |
CREATE VIEW union_view AS SELECT id, value FROM source_table1 UNION ALL SELECT * FROM source_table2 |
Åtgärder som inte stöds omfattar aggregeringar, sortering och tabellvärdesfunktioner som table_changes(). Mer information om tabellvärdesfunktioner finns i Anrop av tabellvärdesfunktion (TVF).
Om du strömmar från en vy med en åtgärd som inte stöds genererar Spark det här undantaget:
UnsupportedOperationException: [UNEXPECTED_OPERATOR_IN_STREAMING_VIEW] Unexpected operator <operator> in the CREATE VIEW statement as a streaming source. A streaming view query must consist only of SELECT, WHERE, and UNION ALL operations.
Begränsningar
- Apache Spark-läget för kontinuerlig bearbetning stöds inte. Se Kontinuerlig bearbetning i programmeringsguiden för Spark Structured Streaming.
- En lista över funktioner för strukturerad direktuppspelning som inte stöds i Unity Catalog baserat på beräkningsåtkomstläget finns i Begränsningar för strömning och direktuppspelning och materialiserade visningskrav för dedikerad beräkning.
- Vyer som strömningskälla har ytterligare begränsningar:
- Du kan bara strömma data från vyer som bygger på frågor mot Delta-tabeller. Andra datakällor stöds inte.
- Du måste registrera vyer med Unity Catalog. Se Skapa en vy.
- Direktuppspelningsläsningar i vyer stöder inte alla åtgärder eller alternativ. Se strömningsåtgärder som stöds och alternativ för direktuppspelning som stöds.