Utilizzo del catalogo Unity con Structured Streaming
Usare Structured Streaming con Unity Catalog per gestire la governance dei dati per i carichi di lavoro incrementali e di streaming in Azure Databricks. Questo documento illustra le funzionalità supportate e suggerisce procedure consigliate per l'uso di Unity Catalog e Structured Streaming insieme.
Quali funzionalità di Structured Streaming supporta Unity Catalog?
Unity Catalog non aggiunge limiti espliciti per origini e sink Structured Streaming disponibili in Azure Databricks. Il modello di governance dei dati di Unity Catalog consente di trasmettere dati da tabelle gestite ed esterne in Unity Catalog. È anche possibile usare percorsi esterni gestiti da Unity Catalog per interagire con i dati usando gli URI di archiviazione degli oggetti. È possibile scrivere in tabelle esterne usando nomi di tabella o percorsi di file. È necessario interagire con le tabelle gestite in Unity Catalog usando il nome tabella.
Usare percorsi esterni gestiti da Unity Catalog quando si specificano i percorsi per i checkpoint di Structured Streaming. Per altre informazioni sulla connessione sicura dell'archiviazione con Unity Catalog, vedere Connettersi all'archiviazione di oggetti cloud e ai servizi tramite Il catalogo unity.
Il supporto delle funzionalità di Structured Streaming varia a seconda della versione di Databricks Runtime in esecuzione e se si usa la modalità di accesso al cluster assegnato o condiviso. Per altre informazioni, vedere Limitazioni di streaming per Unity Catalog.
Per una demo end-to-end con Structured Streaming in Unity Catalog, vedere Esercitazione: Eseguire una pipeline di analisi lakehouse end-to-end.
Quali funzionalità di Structured Streaming non sono supportate in Unity Catalog?
Per un elenco delle funzionalità di Structured Streaming non supportate in Unity Catalog, vedere Limitazioni di streaming per Unity Catalog.
Leggere una visualizzazione di Unity Catalog come stream
Importante
Questa funzionalità è disponibile in anteprima pubblica.
In Databricks Runtime 14.1 e versioni successive è possibile usare Structured Streaming per eseguire lo streaming delle letture dalle visualizzazioni registrate con Unity Catalog. Azure Databricks supporta solo le letture in streaming dalle viste definite nelle tabelle Delta.
Per leggere una visualizzazione con Structured Streaming, specificare l'identificatore per la visualizzazione al .table()
metodo, come nell'esempio seguente:
df = (spark.readStream
.table("demoView")
)
Gli utenti devono disporre di SELECT
privilegi per la visualizzazione di destinazione.
Opzioni supportate per la configurazione delle letture di streaming sulle visualizzazioni
Quando si configurano le letture in streaming sulle visualizzazioni sono supportate le opzioni seguenti:
maxFilesPerTrigger
maxBytesPerTrigger
ignoreDeletes
skipChangeCommits
withEventTimeOrder
startingTimestamp
startingVersion
Il lettore di streaming applica queste opzioni ai file e ai metadati che definiscono le tabelle Delta sottostanti.
Importante
Le letture sulle visualizzazioni definite con UNION ALL
non supportano le opzioni withEventTimeOrder
e startingVersion
.
Operazioni supportate nelle visualizzazioni di origine
Non tutte le visualizzazioni supportano le letture di streaming. Le operazioni non supportate nelle visualizzazioni di origine includono aggregazioni e ordinamento.
L'elenco seguente fornisce descrizioni e definizioni di visualizzazione di esempio per le operazioni supportate:
Progetto
Descrizione: controlla le autorizzazioni a livello di colonna
Operatore:
SELECT... FROM...
Esempio istruzione:
CREATE VIEW project_view AS SELECT id, value FROM source_table
Filtra
Descrizione: controlla le autorizzazioni a livello di riga
Operatore:
WHERE...
Esempio istruzione:
CREATE VIEW filter_view AS SELECT * FROM source_table WHERE value > 100
Union all
Descrizione: risultati da più tabelle
Operatore:
UNION ALL
Esempio istruzione:
CREATE VIEW union_view AS SELECT id, value FROM source_table1 UNION ALL SELECT * FROM source_table2
Nota
Non è possibile modificare la definizione della visualizzazione per aggiungere o modificare le tabelle a cui si fa riferimento e usare lo stesso checkpoint di streaming.
Limiti
Si applicano le limitazioni seguenti:
È possibile eseguire lo streaming solo dalle visualizzazioni supportate dalle tabelle Delta. Le visualizzazioni definite in base ad altre origini dati non sono supportate.
È necessario registrare le visualizzazioni con Unity Catalog.
L'eccezione seguente viene visualizzata se si esegue lo stream da una visualizzazione con un operatore non supportato:
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.
L'eccezione seguente viene visualizzata se si forniscono opzioni non supportate:
AnalysisException: [UNSUPPORTED_STREAMING_OPTIONS_FOR_VIEW.UNSUPPORTED_OPTION] Unsupported for streaming a view. Reason: option <option> is not supported.