Använda Unity Catalog med strukturerad direktuppspelning

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:

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:

  • maxFilesPerTrigger
  • maxBytesPerTrigger
  • ignoreDeletes
  • skipChangeCommits
  • withEventTimeOrder
  • startingTimestamp
  • startingVersion

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