Použití katalogu Unity se strukturovaným streamováním

Na této stránce se dozvíte, jak pomocí strukturovaného streamování s katalogem Unity spravovat zásady správného řízení dat pro přírůstkové a streamované úlohy v Azure Databricks.

Jaké funkce strukturovaného streamování podporuje Katalog Unity?

Katalog Unity nepřidává žádná explicitní omezení pro zdroje strukturovaného streamování a jímky dostupné na Azure Databricks.

S katalogem Unity a strukturovaným streamováním můžete:

Pro kontrolní body strukturovaného streamování musíte použít cesty v externích umístěních spravovaných službou Unity Catalog. Další informace o bezpečném připojení úložiště pomocí katalogu Unity najdete v tématu Připojení ke cloudovému úložišti objektů pomocí katalogu Unity.

čtení zobrazení katalogu Unity jako datového proudu

Ve verzi Databricks Runtime 14.3 LTS a vyšší můžete pomocí strukturovaného streamování číst ze zobrazení zaregistrovaných v katalogu Unity. Podkladové tabulky musí používat formát Delta Lake. Další omezení najdete v tématu Omezení.

Pokud chcete přečíst zobrazení se strukturovaným streamováním, použijte .table() metodu s identifikátorem zobrazení:

df = (spark.readStream
  .table("demoView")
)

Uživatelé musí mít SELECT oprávnění k cílovému zobrazení.

Pokud upravíte definici zobrazení a přidáte nebo změníte tabulky odkazované v zobrazení, nemůžete použít stejný kontrolní bod streamování.

Podporované možnosti streamování

Streamovací čtečka aplikuje možnosti na soubory a metadata podkladových tabulek Delta pro zadané zobrazení.

Podporují se následující možnosti:

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

Čtení v zobrazeních s UNION ALL nepodporuje možnosti withEventTimeOrder a startingVersion.

Pokud zadáte nepodporované možnosti, například readChangeFeed, Spark vyvolá tuto výjimku:

AnalysisException: [UNSUPPORTED_STREAMING_OPTIONS_FOR_VIEW.UNSUPPORTED_OPTION] Unsupported for streaming a view. Reason: option <option> is not supported.

Podporované operace streamování

Mezi podporované operace patří:

Operace Description Operator Example
Projekt Řídí oprávnění na úrovni sloupce. SELECT... FROM... CREATE VIEW project_view AS SELECT id, value FROM source_table
Filtr Řídí oprávnění na úrovni řádků. WHERE... CREATE VIEW filter_view AS SELECT * FROM source_table WHERE value > 100
Sjednocovat vše Výsledky z více tabulek UNION ALL CREATE VIEW union_view AS SELECT id, value FROM source_table1 UNION ALL SELECT * FROM source_table2

Mezi nepodporované operace patří agregace, řazení a funkce s hodnotami tabulky, například table_changes(). Podrobnosti o funkcích s hodnotami tabulky najdete v tématu Volání funkce TVF (Table-valued).

Pokud streamujete ze zobrazení s nepodporovanou operací, Spark vyvolá tuto výjimku:

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.

omezení