Passa al contenuto principale

Le 5 query principali sulle tabelle di sistema per comprendere i costi di Databricks

Cinque query SQL per evidenziare i trend di costo, attribuire la spesa per team, segnalare anomalie e prevedere la fattura del mese prossimo

di Drew Vander Wood

  • Scopri dove vanno a finire le tue spese oggi, non il mese prossimo. Tre query SQL suddividono la spesa di Databricks per prodotto, SQL warehouse e team, utilizzando tabelle di sistema che si aggiornano quasi in tempo reale.
    • Individua i picchi di costo il giorno stesso in cui si verificano. Una baseline mobile di 14 giorni segnala i giorni anomali rispetto a una media mobile, pronta per essere integrata in un avviso DBSQL.
    • Prevedi l'andamento futuro delle spese. AI_FORECAST estrapola il tuo utilizzo recente in una proiezione di spesa a 30 giorni in un'unica query — senza bisogno di modellazione manuale di serie temporali.

Le tabelle di sistema di Databricks offrono una miniera di informazioni su come utilizzi Databricks e sui relativi costi. Concentrandoci sui costi, la tabella `system.billing.usage` fornisce una vista aggregata a livello globale dei costi per l'intero account Databricks e, insieme a `system.billing.list_prices`, può darti un'idea approfondita di come viene allocata la spesa. Databricks offre una Dashboard di utilizzo predefinita che rappresenta un ottimo punto di partenza per comprendere i costi, ma comprendere le tabelle sottostanti e creare query su di esse ti consente di portare le tue analisi a un livello superiore, specialmente sfruttando le funzionalità di visualizzazione di Databricks.

Di seguito sono riportate cinque query da utilizzare come punto di partenza per comprendere meglio la tua spesa. Iniziamo con una semplice scomposizione giornaliera della spesa per prodotto, per poi passare alla comprensione della spesa attraverso la lente di specifici SQL Warehouse e tag, e infine identificare i giorni con spese anomale e prevedere la spesa futura con l'AI. Tutte le query forniscono informazioni utili tramite i risultati restituiti, ma sono ancora più efficaci se utilizzate come dataset in una dashboard AI/BI in cui i dati possono essere visualizzati e ulteriormente analizzati con Genie.

Query 1: Spesa giornaliera per prodotto

Cosa mostra la query

La nostra prima query è semplicemente una scomposizione della spesa per giorno e per prodotto. Uniamo la tabella di utilizzo (la nostra tabella dei fatti) con la nostra tabella dei prezzi (una dimensione SCD di Tipo 2) per ottenere la nostra spesa nel tempo in base al listino prezzi. Come menzionato sopra, potresti sostituire la tabella del listino prezzi fornita con una tabella personalizzata che includa eventuali sconti applicabili per visualizzare i costi esatti.

Quando utilizzare la query

Questa query è perfetta per farsi un'idea di come viene utilizzato il tuo ambiente Databricks, quali prodotti stanno registrando una crescita o un calo di utilizzo e qual è la spesa totale. Inizierei sempre da qui quando si esamina la spesa di Databricks.

A cosa prestare attenzione

La tabella `system.billing.usage` contiene solo i costi di Databricks. Ciò significa che in tutti i casi in cui si utilizza un calcolo non serverless, la spesa per l'infrastruttura cloud non è inclusa e dovrà essere verificata tramite la console cloud pertinente (calcolo, rete, archiviazione, ecc.).

Query 2: Tendenze dei costi dei warehouse

Cosa mostra la query

I Databricks SQL Warehouse sono uno strumento incredibilmente potente per supportare analisti SQL, dashboard e agenti Genie, e comprendere le tendenze dei loro costi è fondamentale per chiunque gestisca un account Databricks. La Query 2 consente di visualizzare le tendenze nell'utilizzo giornaliero dei warehouse che, poiché si paga in base al consumo, è analogo al loro utilizzo.

Quando utilizzare la query

Con Databricks paghi in base al consumo, quindi essere in grado di vedere le tendenze dei costi per un warehouse è analogo a vedere le tendenze del loro utilizzo (almeno nel senso che il tempo di attività corrisponde all'utilizzo). Questa query può quindi mostrare essenzialmente l'utilizzo dei warehouse, in cui un utilizzo maggiore potrebbe essere dovuto a un tempo di attività più elevato o a più tempo trascorso in modalità scalata. Dopo aver identificato un warehouse per un'ulteriore analisi con questa query, potresti indagare ulteriormente su quel warehouse con la tabella di sistema `system.compute.warehouse_events` o la pagina di monitoraggio del warehouse, e verificare se il warehouse potrebbe utilizzare impostazioni di scalabilità o di arresto automatico diverse. L'utilizzo del warehouse può anche fornire informazioni rapide su come vengono utilizzate le dashboard o gli spazi Genie creati su di essi e se si dovrebbe fare di più per promuoverli presso gli utenti aziendali.

A cosa prestare attenzione

Per impostazione predefinita, questa query include tutti i warehouse attivi nel periodo di tempo esaminato, compresi quelli che sono stati eliminati. È inclusa una colonna (is_deleted) che può essere utilizzata come ulteriore filtro se desideri rimuovere i warehouse eliminati dall'analisi.

Query 3: Attribuzione dei costi basata sui tag

Grafico a barre che mostra un esempio di attribuzione dei costi basata sui tag nel tempo

Cosa mostra la query

I tag sono una funzionalità potente che può essere utilizzata per monitorare l'utilizzo tra utenti, progetti, team o workspace. Nello specifico, i tag personalizzati possono essere applicati tramite policy di calcolo e policy di utilizzo serverless, per poi utilizzare tali tag durante l'analisi dei dati di utilizzo delle tabelle di sistema. Ad esempio, potresti scegliere di imporre il tagging per team in cui i valori consentiti sono mappati su unità aziendali, come marketing, finanza e ingegneria. Utilizzando poi questa query in cui hai parametrizzato il tag su cui stai raggruppando, potrai visualizzare l'utilizzo per team.

Quando utilizzare la query

Questa query può essere utilizzata ogni volta che si applica una strategia di tagging e si desidera visualizzare i costi in base ai valori del tag. Non tutti i record della tabella devono essere taggati; se la chiave del tag non esiste nel record, questo verrà registrato come privo di tag e potrà quindi essere escluso dall'analisi o utilizzato per identificare i punti in cui il tagging non viene applicato correttamente.

A cosa prestare attenzione

Come menzionato in precedenza, i record non taggati verranno restituiti come privi di tag; questo può essere utile per identificare le aree in cui il tagging non viene applicato, ma potrebbe anche essere indesiderato poiché il tag potrebbe essere rilevante solo per un sottoinsieme di utilizzo. Potresti modificare la query includendo `u.custom_tags[:tag_key] is not null` nella clausola WHERE per filtrare completamente i record senza tag, oppure spingerti oltre filtrando su più di un tag o aggiungendo più tag al raggruppamento (group by) della query.

Query 4: Rilevamento delle anomalie dei costi giornalieri

Cosa mostra la query

Controlli efficaci tramite policy di calcolo, impostazioni di timeout dei job e budget aiutano gli amministratori della piattaforma Databricks a mantenere la spesa entro i limiti, ma esiste sempre la possibilità che un utente con autorizzazioni sufficienti crei un job o un warehouse che viene eseguito a lungo o rimane scalato oltre le aspettative, causando un picco imprevisto nei costi. La Query 4 è progettata per aiutare a rilevare questa situazione il prima possibile. In parole semplici, utilizza la media mobile della spesa a 14 giorni e categorizza la spesa giornaliera come elevata se supera la media di oltre una deviazione standard, o come anomalia se la supera di oltre due.

Quando utilizzare la query

Questa query è perfetta per essere utilizzata in una dashboard di monitoraggio dei costi oppure potresti usare questa idea come base per un avviso che invii automaticamente un'e-mail agli amministratori se la spesa del giorno precedente risulta elevata o anomala.

A cosa prestare attenzione

Se il tuo carico di lavoro è molto instabile di giorno in giorno, le deviazioni standard del tuo utilizzo potrebbero essere molto elevate e questa query difficilmente riuscirà a rilevare picchi che non siano estremamente significativi.

Query 5: Previsione della spesa

Grafico di esempio che mostra la spesa storica e prevista

Cosa mostra la query

Nelle quattro query precedenti ci siamo concentrati sull'analisi della spesa passata, ma la spesa futura è fondamentale per comprendere il quadro completo dell'utilizzo di Databricks. Normalmente ciò potrebbe richiedere una modellazione previsionale complessa, ma tra le Databricks SQL AI Functions è presente la potente funzione ai_forecast, che consente di estrapolare nel futuro un set di dati di serie temporali, come i dati di utilizzo di Databricks. È possibile calibrare la quantità di dati inseriti nella funzione, visualizzare i risultati in un grafico e produrre rapidamente una previsione della spesa di Databricks.

Quando utilizzare la query

Anche in questo caso, questa query è perfetta da aggiungere a una dashboard di monitoraggio dei costi, così da avere un'idea di quale sarà la spesa futura e facilitare la pianificazione e la definizione del budget.

A cosa prestare attenzione

Questa query effettua previsioni basate su dati storici, quindi se la utilizzi per la pianificazione futura assicurati di considerare eventuali nuovi carichi di lavoro netti pianificati che non verrebbero previsti da questa stima.

Prova le query delle tabelle di sistema 

Eseguire queste query una volta ti mostra cosa è successo. Fissarle su una dashboard AI/BI cambia il modo in cui il tuo team gestisce la spesa. Inserisci ciascuna come dataset, collega i parametri dell'intervallo di date e dei tag, e rendi la dashboard il tuo punto di riferimento per la revisione settimanale dei costi. Da qui, i prossimi due passaggi: aggiungi ai preferiti il riferimento alle tabelle di sistema di Databricks per consultare il catalogo completo delle tabelle che puoi interrogare, ed esplora altre query di esempio per espandere il tuo toolkit oltre queste cinque. Non hai ancora un workspace? Inizia una prova gratuita.    

(Questo post sul blog è stato tradotto utilizzando strumenti basati sull'intelligenza artificiale) Post originale

Ricevi gli ultimi articoli nella tua casella di posta

Iscriviti al nostro blog e ricevi gli ultimi articoli direttamente nella tua casella di posta.