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.
È possibile creare e aggiornare viste materializzate autonome e tabelle di streaming da un notebook usando Python. Creare la pipeline in un notebook Python ed eseguirle con spark.sql(). In questo modo è possibile gestire pipeline autonome insieme agli altri flussi di lavoro basati su notebook basati su Python.
Python'origine per le pipeline autonome richiede un notebook collegato a un ambiente di calcolo generale serverless. Non è possibile usare Python per creare o aggiornare pipeline autonome da un databricks SQL Warehouse, perché un warehouse esegue istruzioni SQL, non Python notebook. Per usare invece un'istanza di SQL Warehouse, vedere Usare viste materializzate autonome e Usare tabelle di streaming autonome.
Importante
La creazione e l'aggiornamento di viste materializzate autonome e tabelle di streaming da un notebook in un ambiente di calcolo generale serverless sono disponibili in beta e disponibili in aree selezionate. Vedere Notebook.
Requisiti
Per creare e aggiornare pipeline autonome con Python, è necessario un notebook collegato al calcolo generale serverless in Databricks Runtime 18.1 o versione successiva. Per l'elenco completo dei requisiti, tra cui disponibilità e autorizzazioni a livello di area, vedere Notebook.
Come funziona
In un notebook di Python passare le stesse istruzioni eseguite da un databricks SQL Warehouse a spark.sql(). La sintassi della vista materializzata autonoma e della tabella di streaming è identica; solo il modo in cui si invia l'istruzione è diversa. Come per un warehouse, ogni CREATE istruzione o REFRESH esegue una pipeline serverless per elaborare l'operazione.
La spark sessione è disponibile per impostazione predefinita nei notebook Azure Databricks, quindi non è necessaria alcuna importazione.
Creare una vista materializzata
L'esempio seguente crea la vista materializzata mv1 dalla tabella di base base_table1.
spark.sql("""
CREATE OR REPLACE MATERIALIZED VIEW mv1
AS SELECT
date,
sum(sales) AS sum_of_sales
FROM base_table1
GROUP BY date
""")
Per informazioni dettagliate complete CREATE MATERIALIZED VIEW , ad esempio aggiornamenti pianificati e attivati, vedere Creare una vista materializzata.
Creare una tabella di streaming
Nell'esempio seguente viene creata la tabella sales di streaming dalla raw_data tabella :
spark.sql("""
CREATE OR REFRESH STREAMING TABLE sales
AS SELECT product, price FROM STREAM raw_data
""")
Per informazioni dettagliate CREATE STREAMING TABLE , incluso il caricamento di file con il caricatore automatico e la pianificazione, vedere Usare tabelle di streaming autonome.
Aggiornare una vista materializzata o una tabella di streaming
Usare un'istruzione REFRESH per aggiornare una tabella autonoma con i dati più recenti dell'origine:
spark.sql("REFRESH MATERIALIZED VIEW mv1")
spark.sql("REFRESH STREAMING TABLE sales")
Nel calcolo generale serverless gli aggiornamenti sono sincroni. Gli aggiornamenti asincroni (parola ASYNC chiave) non sono supportati. Vedere Calcolo generale serverless.
Istruzioni Parameterize
Per passare valori dal codice Python a un'istruzione invece di impostarli come hardcoding, usare marcatori di parametro denominati in SQL e specificare i relativi valori tramite l'argomento args di spark.sql(). Usare un marcatore, ad :min_sales esempio direttamente per i valori letterali. Eseguire il wrapping del marcatore in IDENTIFIER() solo quando il parametro è un nome di oggetto, ad esempio una tabella, una vista o uno schema, perché gli identificatori non possono essere sostituiti come valori stringa normale.
Nell'esempio seguente vengono parametrizzati sia il nome della vista materializzata che un valore di filtro:
mv_name = "main.sales.regional_sales"
min_sales = 1000
spark.sql("""
CREATE OR REPLACE MATERIALIZED VIEW IDENTIFIER(:mv)
AS SELECT
region,
sum(sales) AS sum_of_sales
FROM base_table1
WHERE sales > :min_sales
GROUP BY region
""", args={
"mv": mv_name,
"min_sales": min_sales,
})
Per altre informazioni, vedere Parametri marcatori e IDENTIFIER clausola.
Eseguire altre istruzioni
È possibile eseguire qualsiasi vista materializzata autonoma o istruzione di tabella di streaming da un notebook di Python passandola a spark.sql(), incluse le istruzioni per pianificare gli aggiornamenti, modificare una tabella o eliminare una tabella. Per informazioni su come usare viste materializzate e tabelle di streaming, inclusa la sintassi SQL, vedere Usare viste materializzate autonome e Usare tabelle di streaming autonome.
Limitazioni
Le viste materializzate autonome e le tabelle di streaming create nel calcolo generale serverless presentano limitazioni aggiuntive, ad esempio nessun supporto per gli aggiornamenti asincroni e nessuna attribuzione dei costi per tabella. Per l'elenco completo, vedere Calcolo generale serverless.