Che cosa sono gli avvisi SQL di Databricks?
Gli avvisi SQL di Databricks eseguono periodicamente query, valutano le condizioni definite e inviano notifiche se viene soddisfatta una condizione. È possibile configurare avvisi per monitorare l'azienda e inviare notifiche quando i dati segnalati non rientrano nei limiti previsti. La pianificazione di un avviso esegue la query sottostante e controlla i criteri di avviso. Questa operazione è indipendente da qualsiasi pianificazione che potrebbe esistere nella query sottostante.
Importante
- Gli avvisi che usano query con parametri usano il valore predefinito specificato nell'editor SQL per ogni parametro.
Visualizzare e organizzare gli avvisi
Usare una delle opzioni seguenti per accedere agli avvisi:
- Fare clic sull'area di lavoro nella barra laterale per visualizzare gli avvisi nella cartella Home, in cui sono archiviati per impostazione predefinita. Gli utenti possono organizzare gli avvisi in cartelle nel browser dell'area di lavoro insieme ad altri oggetti Databricks.
- Fare clic su Avvisi nella barra laterale per visualizzare la pagina di presentazione degli avvisi.
Per impostazione predefinita, gli oggetti vengono ordinati in ordine cronologico inverso. È possibile riordinare l'elenco facendo clic sulle intestazioni di colonna. Fare clic sulla scheda Tutti gli avvisi nella parte superiore della schermata per visualizzare tutti gli avvisi nell'area di lavoro. Fare clic sulla scheda Avvisi personali per visualizzare gli avvisi in cui si è il proprietario.
- Nome indica il nome della stringa di ogni avviso.
- Stato indica se lo stato dell'avviso è
TRIGGERED
,OK
oUNKNOWN
. - Ultimo aggiornamento mostra l'ora o la data dell'ultimo aggiornamento.
- Creato in indica la data e l'ora di creazione dell'avviso.
TRIGGERED
indica che, durante l'esecuzione più recente, la colonna Valore nella query di destinazione ha soddisfatto la Condizione e la Soglia configurate. Se l'avviso verifica se il valore "gatti" è superiore a 1500, l'avviso verrà attivato a condizione che esso sia superiore a 1500.OK
indica che, durante l'esecuzione della query più recente, la colonna Valore non ha soddisfatto la Condizione e la Soglia configurate. Questo non significa che l'avviso non è stato attivato in precedenza. Se il valore "cats" è ora 1470, l'avviso verrà visualizzato comeOK
.UNKNOWN
indica che Databricks SQL non dispone di dati sufficienti per valutare i criteri di avviso. Questo stato verrà visualizzato immediatamente dopo la creazione dell'avviso e fino all'esecuzione della query. Questo stato viene visualizzato anche se non sono presenti dati nel risultato della query o se il risultato della query più recente non include la colonna Valore configurata.
Creare un avviso
Seguire questa procedura per creare un avviso in una singola colonna di una query.
Esegui una delle operazioni seguenti:
- Fare clic su Nuovo nella barra laterale e selezionare Avviso.
- Fare clic su Avvisi nella barra laterale e fare clic sul pulsante + Nuovo avviso.
- Fare clic su Area di lavoro nella barra laterale e fare clic su + Crea avviso.
- Fare clic sul menu kebab nell'angolo superiore destro di una query salvata e fare clic su + Crea avviso.
Nel campo Query cercare una query di destinazione.
Per inviare un avviso su più colonne, è necessario modificare la query. Vedere Aggregazioni di avvisi.
Nel campo Condizione trigger configurare l'avviso.
L'elenco a discesa Colonna valore controlla quale campo del risultato della query viene valutato. Le condizioni di avviso possono essere impostate sul primo valore di una colonna nel risultato della query oppure è possibile scegliere di impostare un'aggregazione in tutte le righe di una singola colonna, ad esempio SUM o AVERAGE.
L'elenco a discesa Operatore controlla l'operazione logica da applicare.
L'input di testo Valore soglia viene confrontato con la colonna Valore usando la condizione specificata.
Fare clic su Anteprima avviso per visualizzare in anteprima l'avviso e verificare se l'avviso viene attivato con i dati correnti.
Nel campo Quando viene attivato l'avviso selezionare il numero di notifiche inviate quando viene attivato l'avviso:
- Una sola volta: inviare una notifica quando lo stato dell'avviso passa da
OK
aTRIGGERED
. - Ogni volta che viene valutato l'avviso: inviare una notifica ogni volta che lo stato dell'avviso è
TRIGGERED
indipendentemente dallo stato della valutazione precedente. - Al massimo: inviare una notifica ogni volta che lo stato dell'avviso è
TRIGGERED
a un intervallo specifico. Questa scelta consente di evitare la posta indesiderata delle notifiche per gli avvisi che si attivano spesso.
Indipendentemente dall'impostazione di notifica scelta, si riceve una notifica ogni volta che lo stato passa da
OK
o versoTRIGGERED
TRIGGERED
.OK
Le impostazioni di pianificazione influiscono sul numero di notifiche che riceverai se lo stato rimaneTRIGGERED
da un'esecuzione all'altra. Per informazioni dettagliate, vedere Frequenza di notifica.- Una sola volta: inviare una notifica quando lo stato dell'avviso passa da
Nell'elenco a discesa Modello scegliere un modello:
- Usare il modello predefinito: la notifica di avviso è un messaggio con collegamenti alla schermata di configurazione avviso e alla schermata Query.
- Usare un modello personalizzato: la notifica di avviso include informazioni più specifiche sull'avviso.
Viene visualizzata una casella costituita da campi di input per oggetto e corpo. Qualsiasi contenuto statico è valido ed è possibile incorporare variabili di modello predefinite:
ALERT_STATUS
: stato dell'avviso valutato (stringa).ALERT_CONDITION
: operatore della condizione di avviso (stringa).ALERT_THRESHOLD
: soglia di avviso (stringa o numero).ALERT_COLUMN
: nome della colonna di avviso (stringa).ALERT_NAME
: nome dell'avviso (stringa).ALERT_URL
: URL della pagina di avviso (stringa).QUERY_NAME
: nome della query associato (stringa).QUERY_URL
: URL della pagina di query associata (stringa).QUERY_RESULT_TABLE
: tabella HTML del risultato della query (stringa).QUERY_RESULT_VALUE
: valore del risultato della query (stringa o numero).QUERY_RESULT_ROWS
: righe dei risultati della query (matrice di valori).QUERY_RESULT_COLS
: colonne dei risultati della query (matrice di stringhe).
Un oggetto di esempio, ad esempio, potrebbe essere:
Alert "{{ALERT_NAME}}" changed status to {{ALERT_STATUS}}
.È possibile usare HTML per formattare i messaggi in un modello personalizzato. Nei modelli sono consentiti i tag e gli attributi seguenti:
- Tag:
<a>
,<abbr>
<acronym>
,<b>
, ,<blockquote>
<tr>
<body>
<br>
<code>
<div>
<em>
<h1>
<h2>
<h3>
<h4>
<h5
><h6
><head
><hr>
<html>
<i>
<li>
<ol>
<p>
<span>
<strong>
<table>
<tbody>
<td>
<th>
<ul>
- Attributi: href (per
<a>
), title (per<a>
,<abbr>
,<acronym>
)
- Tag:
Fare clic sul pulsante Anteprima per visualizzare in anteprima il risultato sottoposto a rendering.
Importante
L'anteprima è utile per verificare che il rendering delle variabili modello venga eseguito correttamente. Non è una rappresentazione accurata del contenuto di notifica finale, perché ogni destinazione di notifica può visualizzare le notifiche in modo diverso.
Fare clic sul pulsante Salva modifiche .
Fare clic su Crea avviso.
Fare clic su Aggiungi pianificazione.
- Usare le selezioni a discesa per specificare la frequenza, il periodo, l'orario di inizio e il fuso orario. Facoltativamente, selezionare la casella di controllo Mostra sintassi cron per modificare il programma in Sintassi con Quartz.
- Per visualizzare le impostazioni facoltative, scegliere Più opzioni. È anche possibile scegliere:
- Un nome per il programma.
- Un magazzino SQL per avviare la query. Per impostazione predefinita, il magazzino SQL usato per l'esecuzione di query ad hoc viene usato anche per un lavoro programmato. Usare questa impostazione facoltativa per selezionare un magazzino diverso per eseguire la query programmata.
Fare clic sulla scheda Destinazioni nella finestra di dialogo Aggiungi pianificazione .
- Usare l'elenco a discesa per selezionare una destinazione di notifica disponibile. In alternativa, iniziare a digitare un nome utente per aggiungere singoli utenti.
Importante
Se si ignora questo passaggio , non si riceverà alcuna notifica quando viene attivato l'avviso.
Cliccare su Crea. I dettagli dell'avviso e della notifica salvati vengono visualizzati sullo schermo.
Condividere la pianificazione.
- A destra della pianificazione elencata, scegliere il menu kebab e selezionare Modifica autorizzazioni di pianificazione.
- Scegliere un utente o un gruppo dal menu a discesa nella finestra di dialogo.
- Scegliere le autorizzazioni di pianificazione seguenti:
- NESSUNA AUTORIZZAZIONE: non sono state concesse autorizzazioni. Gli utenti senza autorizzazioni non possono vedere che la pianificazione esiste, anche se sono sottoscrittori o inclusi nelle destinazioni di notifica elencate.
- CAN VIEW: concede l'autorizzazione per visualizzare i risultati di esecuzione pianificati.
- CAN MANAGE RUN: concede l'autorizzazione per visualizzare i risultati di esecuzione pianificati.
- CAN MANAGE: concede l'autorizzazione per visualizzare, modificare ed eliminare pianificazioni. Questa autorizzazione è necessaria per apportare modifiche all'intervallo di esecuzione, aggiornare l'elenco dei sottoscrittori e sospendere o rimuovere la pianificazione.
- IS OWNER: concede tutte le autorizzazioni di CAN MANAGE. Inoltre, le credenziali del proprietario della pianificazione verranno usate per eseguire query del dashboard. Solo un amministratore dell'area di lavoro può modificare il proprietario.
Importante
Le autorizzazioni per gli avvisi e le pianificazioni sono separate. Concedere l'accesso a utenti e gruppi nell'elenco delle destinazioni delle notifiche in modo che possano visualizzare i risultati di esecuzione pianificati.
Condividere l'avviso.
- Fare clic in alto a destra nella pagina.
- Aggiungere utenti o gruppi che devono avere accesso all'avviso.
- Scegliere il livello di autorizzazione appropriato, quindi fare clic su Aggiungi.
Importante
CAN MANAGE concede l'autorizzazione per visualizzare, modificare ed eliminare pianificazioni. Questa autorizzazione è necessaria per apportare modifiche all'intervallo di esecuzione, aggiornare l'elenco di destinazione delle notifiche e sospendere o annullare ilpause la pianificazione.
Per altre informazioni sui livelli di autorizzazione degli avvisi, vedere ACL degli avvisi.
Aggregazioni di avvisi
Un'aggregazione in un avviso funziona modificando il codice SQL originale della query SQL di Databricks collegata all'avviso. L'avviso esegue il wrapping del testo della query originale in un'espressione di tabella comune (CTE) ed esegue una query di aggregazione di wrapping per aggregare il risultato della query.
Ad esempio, un'aggregazione SUM
su un avviso collegato a una query con testo SELECT 1 AS column_name
indica che ogni volta che viene aggiornato l'avviso, l'istanza sql modificata eseguita sarà : WITH q AS (SELECT 1 AS column_name) SELECT SUM(column_name) FROM q
.
Ciò significa che il risultato della query originale (preaggregato) non può essere visualizzato in un corpo personalizzato dell'avviso (con parametri come QUERY_RESULT_ROWS
e QUERY_RESULT_COLS
) ogni volta che è presente un'aggregazione in un avviso. Queste variabili visualizzeranno invece solo il risultato finale della query post-aggregazione.
Nota
Tutte le condizioni di trigger correlate alle aggregazioni non sono supportate dall'API.
Avviso su più colonne
Per impostare un avviso in base a più colonne di una query, la query può implementare la logica di avviso e restituire un valore booleano per attivare l'avviso. Ad esempio:
SELECT CASE WHEN drafts_count > 10000 AND archived_count > 5000 THEN 1 ELSE 0 END
FROM (
SELECT sum(CASE WHEN is_archived THEN 1 ELSE 0 END) AS archived_count,
sum(CASE WHEN is_draft THEN 1 ELSE 0 END) AS drafts_count
FROM queries) data
Questa query restituisce 1
quando drafts_count > 10000 and archived_count > 5000
.
È quindi possibile configurare l'avviso per attivare quando il valore è 1
.
Frequenza di notifica
Databricks SQL invia notifiche alle destinazioni di notifica scelte ogni volta che rileva che lo stato dell'avviso è cambiato da OK
a TRIGGERED
o viceversa.
Si consideri questo esempio in cui un avviso è configurato in una query pianificata per l'esecuzione una volta al giorno. Lo stato giornaliero dell'avviso viene visualizzato nella tabella seguente.
Prima di lunedì lo stato dell'avviso era OK
.
Giorno | Stato avviso |
---|---|
lunedì | OK |
Martedì | OK |
mercoledì | ATTIVATO |
giovedì | ATTIVATO |
Venerdì | ATTIVATO |
Sabato | ATTIVATO |
Domenica | OK |
Se la frequenza di notifica è impostata su Just Once
, Databricks SQL invia una notifica mercoledì quando lo stato è cambiato da OK
a TRIGGERED
e di nuovo la domenica quando torna indietro. Non invia avvisi giovedì, venerdì o sabato, a meno che non venga configurato specificamente in modo da farlo perché lo stato dell'avviso non è cambiato tra le esecuzioni in quei giorni.
Configurare le autorizzazioni di avviso e trasferire la proprietà degli avvisi
È necessario disporre almeno dell'autorizzazione CAN MANAGE per una query per condividere le query. Per i livelli di autorizzazione degli avvisi, vedere Elenchi di controllo di accesso per gli avvisi.
Nella barra laterale fare clic su Avvisi.
Fare clic su un avviso.
Fare clic sul pulsante in alto a destra per aprire la finestra di dialogo Condivisione.
Cercare e selezionare i gruppi e gli utenti e assegnare il livello di autorizzazione.
Fare clic su Aggiungi.
Trasferire la proprietà di un avviso
Quando si salva un avviso, si diventa il proprietario dell'avviso. Se il proprietario di un avviso viene rimosso da un'area di lavoro, l'avviso non ha più un proprietario. Un utente amministratore dell'area di lavoro può trasferire la proprietà di un avviso a un utente diverso. Le entità servizio e i gruppi non possono essere assegnati alla proprietà di un avviso. È anche possibile trasferire la titolarità usando l'API delle autorizzazioni.
Come amministratore dell'area di lavoro, accedere all'area di lavoro di Azure Databricks.
Nella barra laterale fare clic su Avvisi.
Fare clic su un avviso.
Fare clic sul pulsante Condividi in alto a destra per aprire la finestra di dialogo Condivisione.
Fare clic sull'icona a forma di ingranaggio in alto a destra e fare clic su Assegna nuovo proprietario.
Selezionare l’utente a cui assegnare la titolarità.
Cliccare Conferma.