Använda Unity Catalog med strukturerad direktuppspelning
Använd Structured Streaming med Unity Catalog för att hantera datastyrning för dina inkrementella och strömmande arbetsbelastningar på Azure Databricks. Det här dokumentet beskriver funktioner som stöds och föreslår metodtips för att använda Unity Catalog och Strukturerad direktuppspelning tillsammans.
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 i Azure Databricks. Med datastyrningsmodellen för Unity Catalog kan du strömma data från hanterade och externa tabeller i Unity Catalog. Du kan också använda externa platser som hanteras av Unity Catalog för att interagera med data med hjälp av objektlagrings-URI:er. Du kan skriva till externa tabeller med antingen tabellnamn eller filsökvägar. Du måste interagera med hanterade tabeller i Unity Catalog med tabellnamnet.
Använd externa platser som hanteras av Unity Catalog när du anger sökvägar för kontrollpunkter för strukturerad direktuppspelning. Mer information om hur du ansluter lagring på ett säkert sätt med Unity Catalog finns i Ansluta till molnobjektlagring och -tjänster med Unity Catalog.
Stöd för strukturerad direktuppspelning skiljer sig åt beroende på vilken Databricks Runtime-version du kör och om du använder tilldelat eller delat klusteråtkomstläge. Mer information finns i Begränsningar för strömning för Unity Catalog.
En demo från slutpunkt till slutpunkt med structured streaming på Unity Catalog finns i Självstudie: Kör en lakehouse-analyspipeline från slutpunkt till slutpunkt.
Vilka funktioner för strukturerad direktuppspelning stöds inte i Unity Catalog?
En lista över funktioner för strukturerad direktuppspelning som inte stöds i Unity Catalog finns i Begränsningar för strömning för Unity Catalog.
Läsa en Unity-katalogvy som en ström
Viktigt!
Den här funktionen finns som allmänt tillgänglig förhandsversion.
I Databricks Runtime 14.1 och senare kan du använda Structured Streaming för att utföra strömmande läsningar från vyer som registrerats med Unity Catalog. Azure Databricks stöder endast strömmande läsningar från vyer som definierats mot Delta-tabeller.
Om du vill läsa en vy med Structured Streaming anger du identifieraren för vyn till .table()
metoden, som i följande exempel:
df = (spark.readStream
.table("demoView")
)
Användarna måste ha SELECT
behörighet i målvyn.
Alternativ som stöds för att konfigurera direktuppspelningsläsningar mot vyer
Följande alternativ stöds när du konfigurerar direktuppspelningsläsningar mot vyer:
maxFilesPerTrigger
maxBytesPerTrigger
ignoreDeletes
skipChangeCommits
withEventTimeOrder
startingTimestamp
startingVersion
Den strömmande läsaren tillämpar dessa alternativ på de filer och metadata som definierar de underliggande Delta-tabellerna.
Viktigt!
Läsningar mot vyer som definierats med UNION ALL
stöder inte alternativen withEventTimeOrder
och startingVersion
.
Åtgärder som stöds i källvyer
Alla vyer stöder inte direktuppspelningsläsningar. Åtgärder som inte stöds i källvyer omfattar aggregeringar och sortering.
Följande lista innehåller beskrivningar och exempel på vydefinitioner för åtgärder som stöds:
Projekt
Beskrivning: Styr behörigheter på kolumnnivå
Operatör:
SELECT... FROM...
Exempelsats:
CREATE VIEW project_view AS SELECT id, value FROM source_table
Filter
Beskrivning: Styr behörigheter på radnivå
Operatör:
WHERE...
Exempelsats:
CREATE VIEW filter_view AS SELECT * FROM source_table WHERE value > 100
Union all
Beskrivning: Resultat från flera tabeller
Operatör:
UNION ALL
Exempelsats:
CREATE VIEW union_view AS SELECT id, value FROM source_table1 UNION ALL SELECT * FROM source_table2
Kommentar
Du kan inte ändra vydefinitionen för att lägga till eller ändra tabellerna som refereras i vyn och använda samma kontrollpunkt för strömning.
Begränsningar
Följande begränsningar gäller:
Du kan bara strömma från vyer som backas upp av Delta-tabeller. Vyer som definierats mot andra datakällor stöds inte.
Du måste registrera vyer med Unity Catalog.
Följande undantag visas om du strömmar från en vy med en operator som inte stöds:
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.
Följande undantag visas om du anger alternativ som inte stöds:
AnalysisException: [UNSUPPORTED_STREAMING_OPTIONS_FOR_VIEW.UNSUPPORTED_OPTION] Unsupported for streaming a view. Reason: option <option> is not supported.