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 set 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 le query con parameters 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'icona dell'area di lavoro
'area di lavoro nella barra laterale per visualizzare gli avvisi nella cartella home, vengono 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 il list facendo clic sulle intestazioni del column. 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 di cui sei il proprietario where.
- 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
significa che nell'esecuzione più recente, il valore column nella query di destinazione ha soddisfatto la condizione e la soglia configurata. Se l'avviso verifica se il valore "gatti" è superiore a 1500, l'avviso verrà attivato a condizione che esso sia superiore a 1500. -
OK
significa che nell'esecuzione della query più recente il valore column non soddisfa la condizione e la soglia configurata. 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 verrà visualizzato anche se non sono presenti dati nel risultato della query oppure se il risultato della query più recente non include il valore Column configurato.
-
Creare un avviso
Segui questi passaggi per creare un avviso su un singolo column di una query.
Esegui una delle operazioni seguenti:
- Fare clic su Nuovo nella barra laterale e selectAvviso.
- 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.
Nel campo Query cercare una query di destinazione.
Per generare un avviso su più columns, è necessario modificare la query. Vedere Aggregazioni di avvisi.
Nel campo Condizione trigger configurare l'avviso.
L'elenco a discesa valore column controlla quale campo del risultato della query viene valutato. Le condizioni di avviso possono essere set sul primo valore di un column nel risultato della query oppure è possibile scegliere di set un'aggregazione in tutte le righe di un singolo column, ad esempio SUM o AVERAGE.
L'elenco a discesa Operatore controlla l'operazione logica da applicare.
Il valore soglia dell'input di testo viene confrontato con il valore column utilizzando la condizione che specifichi.
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", inviare notifica, definisci nel campo select quante notifiche vengono inviate quando l'avviso viene attivato.
-
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 dell'avviso column (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
: HTML del risultato della query table (stringa). I risultati sono limitati alle prime 100 righe. -
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
: il risultato della query columns (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>
<body>
<br>
<code>
<div>
<em>
<h1>
<h2>
<h3>
<h4>
<h5
><h6
><head
><hr>
<html>
<i>
<li>
<ol>
<p>
<span>
<strong>
<table>
<tbody>
<td>
<th>
<tr>
<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,
casella di controllo Mostra sintassi cron per modificare la pianificazione in sintassi Cron . - 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 select un warehouse diverso per eseguire la query pianificata.
- Usare le selezioni a discesa per specificare la frequenza, il periodo, l'orario di inizio e il fuso orario. Facoltativamente,
Fare clic sulla scheda Destinazioni nella finestra di dialogo Aggiungi pianificazione .
- Usare l'elenco a discesa per select 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 selectModifica autorizzazioni della 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, update al sottoscrittore liste per sospendere o riavviare la pianificazione.
- IS OWNER: concede tutte le autorizzazioni di CAN MANAGE. Inoltre, il credentials del proprietario della pianificazione verrà usato 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. Grant permetti l'accesso a utenti e gruppi nelle destinazioni delle notifiche list in modo da poter visualizzare i risultati delle esecuzioni pianificate.
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, update la destinazione di notifica liste 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 incorpora il testo della query originale in un'espressione comune table (CTE) ed esegue una query di aggregazione su di essa 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 parameters, ad esempio 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ù columns
Per set un avviso basato su più columns 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 where un avviso è configurato in una query pianificata per l'esecuzione una volta al giorno. Nel seguente tableviene visualizzato lo stato giornaliero dell'avviso.
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 è da set a Just Once
, Databricks SQL invia una notifica mercoledì, quando lo stato cambia da OK
a TRIGGERED
, e di nuovo domenica quando lo stato torna a OK
. 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.
Cerca e select i gruppi e gli utenti e assegna 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.
Select l'utente a cui assegnare la proprietà.
Cliccare Conferma.