Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questa pagina illustra come usare Structured Streaming con Unity Catalog per gestire la governance dei dati per i carichi di lavoro incrementali e di streaming in Azure Databricks.
Quali funzionalità di Structured Streaming supporta Unity Catalog?
Il catalogo unity non aggiunge limiti espliciti per le origini e i sink di Structured Streaming disponibili in Azure Databricks.
Con Unity Catalog e Structured Streaming è possibile:
- Trasmettere dati da tabelle gestite ed esterne. Vedere tabelle gestite di Unity Catalog in Azure Databricks per Delta Lake e Apache Iceberg.
- Usare posizioni esterne gestite dal catalogo unity per interagire con i dati usando gli URI di archiviazione degli oggetti.
- Scrivere nelle tabelle esterne utilizzando i nomi delle tabelle o i percorsi dei file. Per interagire con le tabelle gestite, è necessario usare il nome della tabella.
Per i checkpoint di Structured Streaming, è necessario utilizzare percorsi in posizioni esterne gestite da Unity Catalog. Per altre informazioni sulla connessione sicura dell'archiviazione con il catalogo unity, vedere Connettersi all'archiviazione di oggetti cloud tramite il catalogo unity.
Leggi una vista del catalogo Unity come flusso
In Databricks Runtime 14.3 LTS e versioni successive è possibile usare Structured Streaming per leggere dalle visualizzazioni registrate con Unity Catalog. Le tabelle sottostanti devono usare il formato Delta Lake. Per altre limitazioni, vedere Limitazioni.
Per leggere una visualizzazione con Structured Streaming, usare il .table() metodo con l'identificatore della visualizzazione:
df = (spark.readStream
.table("demoView")
)
Gli utenti devono disporre di SELECT privilegi sulla visualizzazione di destinazione.
Se si modifica la definizione della vista per aggiungere o modificare le tabelle a cui si fa riferimento nella vista, non è possibile usare lo stesso checkpoint di streaming.
Opzioni di streaming supportate
Il lettore di streaming applica le opzioni ai file e ai metadati delle tabelle Delta sottostanti per la vista specificata.
Sono supportate le opzioni seguenti:
maxFilesPerTriggermaxBytesPerTriggerignoreDeletesskipChangeCommitswithEventTimeOrderstartingTimestampstartingVersion
Le operazioni di lettura nelle viste con UNION ALL non supportano le opzioni withEventTimeOrder e startingVersion.
Se si forniscono opzioni non supportate, ad esempio readChangeFeed, Spark genera questa eccezione:
AnalysisException: [UNSUPPORTED_STREAMING_OPTIONS_FOR_VIEW.UNSUPPORTED_OPTION] Unsupported for streaming a view. Reason: option <option> is not supported.
Operazioni di streaming supportate
Le operazioni supportate includono:
| Operation | Descrizione | Operator | Esempio |
|---|---|---|---|
| Progetto | Controlla le autorizzazioni a livello di colonna | SELECT... FROM... |
CREATE VIEW project_view AS SELECT id, value FROM source_table |
| Filter | Controlla le autorizzazioni a livello di riga | WHERE... |
CREATE VIEW filter_view AS SELECT * FROM source_table WHERE value > 100 |
| Unione di tutti | Risultati di più tabelle | UNION ALL |
CREATE VIEW union_view AS SELECT id, value FROM source_table1 UNION ALL SELECT * FROM source_table2 |
Le operazioni non supportate includono aggregazioni, ordinamento e funzioni con valori di tabella, table_changes()ad esempio . Per informazioni dettagliate sulle funzioni con valori di tabella, vedere Chiamata di funzione con valori di tabella (TVF).
Se si esegue uno streaming da una vista con un'operazione non supportata, Spark solleva questa eccezione:
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.
Limitazioni
- La modalità di elaborazione continua di Apache Spark non è supportata. Si veda Elaborazione continua nella Guida alla programmazione di Spark Structured Streaming.
- Per un elenco delle funzionalità di Structured Streaming non supportate nel catalogo Unity in base alla modalità di accesso alle risorse di calcolo, vedere Limitazioni di streaminge streaming e requisiti di visualizzazione materializzata in calcolo dedicato.
- Le visualizzazioni come origine di streaming presentano limitazioni aggiuntive:
- È possibile eseguire lo streaming solo da viste che eseguono query su tabelle Delta. Altre origini dati non sono supportate.
- È necessario registrare le visualizzazioni con Unity Catalog. Vedi Creare una visualizzazione.
- Le operazioni di lettura in streaming sulle viste non supportano tutte le operazioni o le opzioni. Vedere Operazioni di streaming supportate e Opzioni di streaming supportate.