Sdílet prostřednictvím


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

Použití strukturovaného streamování s Unity Catalog ke správě zásad správného řízení dat pro přírůstkové a streamované úlohy v Azure Databricks. Tento dokument popisuje podporované funkce a navrhuje osvědčené postupy pro společné používání unity Catalog a strukturovaného streamování.

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

Unity Catalog nepřidává žádná explicitní omezení pro zdroje strukturovaného streamování a jímky dostupné v Azure Databricks. Model správy dat Unity Catalog umožňuje přenos dat ze spravovaných a externích tables v Unity Catalog. K interakci s daty pomocí identifikátorů URI úložiště objektů můžete také použít externí umístění spravovaná Unity Catalog. Do externích tables můžete zapisovat pomocí názvů table nebo cest k souborům. Musíte spolupracovat se spravovaným tables v Unity Catalog pomocí názvu table.

Při zadávání cest pro kontrolní body strukturovaného streamování používejte externí umístění, která spravuje Unity Catalog. Další informace o bezpečném připojení úložiště pomocí unity Catalognajdete v tématu Připojení ke cloudovému úložišti objektů a službám pomocí CatalogUnity .

Podpora funkcí strukturovaného streamování se liší v závislosti na verzi Databricks Runtime, kterou používáte a jestli používáte přiřazený nebo sdílený režim přístupu ke clusteru. Podrobnosti najdete v tématu Omezení streamování pro Unity Catalog.

Kompletní ukázku s využitím strukturovaného streamování v Unity Catalognajdete v kurzu: Spuštění kompletního analytického kanálu lakehouse.

Jaké funkce strukturovaného streamování se v Unity Catalognepodporují?

Informace o list funkcích strukturovaného streamování, které nejsou podporovány v Unity Catalog, najdete v části Omezení streamování pro Unity Catalog.

Čtení zobrazení Unity Catalog jako datového proudu

Důležité

Tato funkce je ve verzi Public Preview.

Ve službě Databricks Runtime 14.1 a novějších můžete pomocí Structured Streaming provádět streamovací čtení z views registrovaných pomocí Unity Catalog. Azure Databricks podporuje pouze streamové čtení z views definovaných s ohledem na Delta tables.

Pokud chcete přečíst zobrazení se strukturovaným streamováním, zadejte identifier pro zobrazení metodě .table(), jak je znázorněno v následujícím příkladu:

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

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

Podporované možnosti konfigurace čtení streamování pro views

Při konfiguraci čtení datového proudu pro viewsse podporují následující možnosti:

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

Streamovací čtečka použije tyto možnosti na soubory a metadata definující podkladovou Delta tables.

Důležité

Čtení proti views definovanému pomocí UNION ALL nepodporuje možnosti withEventTimeOrder a startingVersion.

Podporované operace v zdroji views

Ne všechny views podporují streamové čtení. Nepodporované operace ve zdrojovém views zahrnují agregace a řazení.

Následující list obsahuje popisy a ukázkové definice zobrazení podporovaných operací:

  • Projekt

    • Popis: Řídí oprávnění na úrovni column

    • Operátor: SELECT... FROM...

    • Příklad příkazu:

      CREATE VIEW project_view AS
      SELECT id, value
      FROM source_table
      
  • Filtr

    • Popis: Řídí oprávnění na úrovni řádků.

    • Operátor: WHERE...

    • Příklad příkazu:

      CREATE VIEW filter_view AS
      SELECT * FROM source_table
      WHERE value > 100
      
  • Sjednocovat vše

    • Popis: Výsledky z více tables

    • Operátor: UNION ALL

    • Příklad příkazu:

      CREATE VIEW union_view AS
      SELECT id, value FROM source_table1
      UNION ALL
      SELECT * FROM source_table2
      

Poznámka:

Definici zobrazení nelze upravit, pokud chcete přidat nebo změnit tables odkazované v zobrazení a použít stejný kontrolní bod streamování.

Omezení

Platí následující omezení:

  • Proud můžete pouze ze zařízení views podporovaných Delta tables. Views definované proti jiným zdrojům dat se nepodporují.

  • Musíte zaregistrovat views v Unity Catalog.

  • Následující výjimka se zobrazí, pokud streamujete ze zobrazení s nepodporovaným operátorem:

    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.
    
  • Pokud zadáte nepodporované možnosti, zobrazí se následující výjimka:

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