Monitorare l'utilizzo con le tabelle di sistema

Questo articolo illustra il concetto di tabelle di sistema in Azure Databricks ed evidenzia le risorse che è possibile usare per sfruttare al meglio i dati delle tabelle di sistema.

Cosa sono le tabelle di sistema?

Le tabelle di sistema sono un archivio analitico ospitato in Azure Databricks dei dati operativi dell'account presenti nel catalogo system. Le tabelle di sistema possono essere usate per l'osservabilità cronologica nell'account.

Nota

Per la documentare su system.information_schema vedere Schema di informazioni.

Requisiti

  • Per accedere alle tabelle di sistema, l'area di lavoro deve essere abilitata per Unity Catalog. Per altre informazioni, vedere Abilitare gli schemi di tabella di sistema.

  • Le tabelle di sistema non sono disponibili nelle aree seguenti:

    • Aree di Azure Cina
    • Aree di Azure per enti pubblici
    • India occidentale
    • Svizzera occidentale

Quali tabelle di sistema sono disponibili?

Attualmente, Azure Databricks ospita le seguenti tabelle di sistema:

Tabella Descrizione Ubicazione Supporta lo streaming Periodo di conservazione gratuito Include dati globali o regionali
Log di controllo (anteprima pubblica) Include record per tutti gli eventi di controllo delle aree di lavoro nella propria area. Per un elenco degli eventi di controllo disponibili, vedere Riferimento sul log di diagnostica. system.access.audit 365 giorni Regionale per gli eventi a livello di area di lavoro. Globale per gli eventi a livello di account.
Derivazione della tabella (anteprima pubblica) Include una voce per ogni evento di lettura o scrittura in una tabella o un percorso di Unity Catalog. system.access.table_lineage 365 giorni Regional
Derivazione della colonna (anteprima pubblica) Include una voce per ogni evento di lettura o scrittura in una colonna di Unity Catalog (ma non include eventi che non dispongono di un'origine). system.access.column_lineage 365 giorni Regional
Utilizzo fatturabile Include voci per tutti gli utilizzi fatturabili nell'account. Ogni voce di utilizzo è un'aggregazione oraria dell'utilizzo fatturabile di una risorsa. system.billing.usage 365 giorni Generale
Prezzi Un log cronologico dei prezzi degli SKU. Una voce viene aggiunta ogni volta che viene apportata una modifica al prezzo di uno SKU. system.billing.list_prices No Illimitato Generale
Cluster (anteprima pubblica) Una tabella di dimensioni a modifica lenta che contiene la cronologia completa delle configurazioni di calcolo nel tempo per qualsiasi cluster. system.compute.clusters N/D Regional
Sequenza di nodo (anteprima pubblica) Acquisisce le metriche di utilizzo delle risorse di calcolo dei processi e multifunzione. system.compute.node_timeline 30 giorni Regional
Tipi di nodo (anteprima pubblica) Acquisisce i tipi di nodo attualmente disponibili con le relative informazioni hardware di base. system.compute.node_types No N/D Regional
Eventi dei warehouse SQL (anteprima pubblica) Acquisisce gli eventi correlati ai warehouse SQL. Ad esempio, l'avvio, l'arresto, l'esecuzione, l'aumento e la riduzione delle prestazioni. system.compute.warehouse_events 365 giorni Regional
Processi (anteprima pubblica) Tiene traccia di tutti i processi creati nell'account. system.lakeflow.jobs 365 giorni Regional
Attività di processo (anteprima pubblica) Tiene traccia di tutte le attività di processo eseguite nell'account. system.lakeflow.job_tasks 365 giorni Regional
Sequenza temporale dell’esecuzione del processo (anteprima pubblica) Tiene traccia dell'ora di inizio e di fine delle esecuzioni del processo. system.lakeflow.

job_run_timeline
365 giorni Regional
Sequenza temporale dell’esecuzione delle attività (anteprima pubblica) Tiene traccia delle ore di inizio e di fine e delle risorse di calcolo usate per le esecuzioni delle attività di processo. system.lakeflow.

job_task_run_timeline
365 giorni Regional
Eventi a imbuto del Marketplace (anteprima pubblica) Include i dati dell’imbuto e delle impression degli utenti per gli annunci. system.marketplace.listing_

funnel_events
365 giorni Regional
Accesso agli annunci sul Marketplace (anteprima pubblica) Include informazioni sul consumatore per i dati delle richieste completate o eventi di recupero dei dati negli annunci. system.marketplace.listing_

access_events
365 giorni Regional
Ottimizzazione predittiva (anteprima pubblica) Tiene traccia della cronologia operativa della funzionalità di ottimizzazione predittiva. system.storage.predictive_

optimization_operations_history
No 180 giorni Regional
Eventi dell’assistente di Databricks (anteprima pubblica) Tiene traccia dei messaggi utente inviati all'Assistente di Databricks. system.access.assistant_events No 365 giorni Regional
Cronologia delle query (anteprima pubblica) Acquisisce le voci per tutte le query eseguite nei warehouse SQL. system.query.history 90 giorni Regional
Eventi di cleanroom (anteprima pubblica) Acquisisce gli eventi correlati alle cleanroom. system.access.clean_room_events 365 giorni Regional
Utilizzo dell’endpoint di gestione dei modelli (anteprima pubblica) Acquisisce i conteggi dei token per ogni richiesta a un endpoint di gestione del modello e le relative risposte. system.serving.endpoint_usage 90 giorni Regional
Dati dell’endpoint di gestione dei modelli (anteprima pubblica) Una tabella di dimensioni a modifica lenta che archivia i metadati per ogni modello esterno servito in un endpoint di gestione del modello. system.serving.served_entities 365 giorni Regional

Le tabelle di utilizzo fatturabile e dei prezzi sono gratuite da usare. Anche le tabelle in anteprima pubblica sono gratuite da usare durante l'anteprima, ma potrebbero incorrere in un addebito in futuro.

Nota

È possibile visualizzare altre tabelle di sistema nell'account oltre a quelle elencate in precedenza. Tali tabelle sono attualmente in anteprima privata e sono vuote per impostazione predefinita. Se si è interessati a usare una di queste tabelle, contattare il team dell'account di Databricks.

Abilitare gli schemi di tabella di sistema

Poiché le tabelle di sistema sono gestite da Unity Catalog, per abilitarle è necessaria almeno un'area di lavoro abilitata da Unity Catalog nel proprio account e l’accesso a tabelle di sistema. Le tabelle di sistema includono i dati di tutte le aree di lavoro nell'account, ma è possibile accedervi solo da un'area di lavoro abilitata per Unity Catalog.

Le tabelle di sistema sono abilitate a livello di schema. Se si abilita uno schema di sistema, si abilitano tutte le tabelle all'interno di tale schema. Quando vengono rilasciati nuovi schemi, un amministratore dell'account deve abilitare manualmente lo schema.

Le tabelle di sistema devono essere abilitate da un amministratore dell'account. È possibile abilitare le tabelle di sistema usando l'API SystemSchemas.

Nota

Lo schema billing è abilitato per impostazione predefinita. Gli altri schemi devono essere abilitati manualmente.

Elencare gli schemi di sistema disponibili

Usare il comando curl seguente per elencare gli schemi di sistema disponibili:

curl -v -X GET -H "Authorization: Bearer <PAT Token>" "https://adb-<xxx>.azuredatabricks.net/api/2.0/unity-catalog/metastores/<metastore-id>/systemschemas"

Quanto segue è un output di esempio del comando GET:

{"schemas":[{"schema":"access","state":"<AVAILABLE OR EnableCompleted>"},{"schema":"billing","state":"<AVAILABLE OR EnableCompleted>"},{"schema":"information_schema","state":"<AVAILABLE OR EnableCompleted>"}]}

state: AVAILABLE: lo schema di sistema è disponibile ma non è ancora stato abilitato.

state: EnableCompleted: lo schema di sistema è stato abilitato ed è visibile in Esplora cataloghi.

Abilitare uno schema di sistema

Usare il comando curl seguente per attivare uno schema di sistema:

curl -v -X PUT -H "Authorization: Bearer <PAT Token>" "https://adb-<xxx>.azuredatabricks.net/api/2.0/unity-catalog/metastores/<metastore-id>/systemschemas/<SCHEMA_NAME>"

Se lo schema di sistema è abilitato correttamente, viene restituito il codice di risultato 200.

Se si tenta di abilitare nuovamente uno schema di sistema, viene restituito quanto segue: "error_code":"SCHEMA_ALREADY_EXISTS","message":"Schema <schema-name> already exists".

Disabilitare uno schema di sistema

Usare il comando curl seguente per disabilitare uno schema di sistema:

curl -v -X DELETE -H "Authorization: Bearer <PAT Token>" "https://adb-<xxx>.azuredatabricks.net/api/2.0/unity-catalog/metastores/<metastore-id>/systemschemas/<SCHEMA_NAME>"

Concedere l'accesso alle tabelle di sistema

L'accesso alle tabelle di sistema è regolato da Unity Catalog. Nessun utente ha accesso a questi schemi di sistema per impostazione predefinita. Per concedere l'accesso, un utente che è sia un amministratore del metastore che un amministratore dell'account deve concedere le autorizzazioni USE e SELECT sugli schemi di sistema. Vedere Gestire i privilegi in Unity Catalog.

Le tabelle di sistema sono di sola lettura e non possono essere modificate.

Nota

Se l'account è stato creato dopo il 9 novembre 2023, potrebbe non essere disponibile un amministratore del metastore per impostazione predefinita. Per altre informazioni, vedere Configurare e gestire Unity Catalog.

Le tabelle di sistema contengono dati per tutte le aree di lavoro nell'account?

Le tabelle di sistema contengono dati operativi per tutte le aree di lavoro nell'account distribuito all'interno della stessa area cloud. Le tabelle di sistema di fatturazione contengono dati a livello di account.

Anche se è possibile accedere alle tabelle di sistema solo tramite un'area di lavoro di Unity Catalog, le tabelle includono anche i dati operativi per le aree di lavoro non relative al catalogo Unity nell'account.

Dove vengono archiviati i dati della tabella di sistema?

I dati della tabella di sistema dell'account vengono archiviati in un account di archiviazione ospitato in Azure Databricks nella stessa area del metastore. I dati sono condivisi in modo sicuro con l'utente usando la condivisione Delta.

Ogni tabella ha un periodo di conservazione dei dati gratuito. Per informazioni sull'estensione del periodo di conservazione, contattare il team dell'account Azure Databricks.

Dove si trovano le tabelle di sistema in Esplora cataloghi?

Le tabelle di sistema nell'account si trovano in un catalogo denominato system, incluso in ogni metastore di Unity Catalog. Nel catalogo system verranno visualizzati schemi come access e billing che contengono le tabelle di sistema.

Considerazioni sull’esecuzione dello streaming delle tabelle di sistema

Azure Databricks usa la Delta Sharing per condividere i dati delle tabelle di sistema con i clienti. Tenere presenti le seguenti considerazioni quando si esegue lo streaming con la Delta Sharing:

  • Se si usa lo streaming con le tabelle di sistema, impostare l'opzione skipChangeCommits su true. In questo modo il processo di streaming non viene interrotto dalle eliminazioni nelle tabelle di sistema. Vedere Ignorare gli aggiornamenti e le eliminazioni.
  • Trigger.AvailableNow non è supportato con lo streaming di Delta Sharing. Verrà convertito in Trigger.Once.

Se si usa un trigger nel processo di streaming e si determina che non raggiunge la versione più recente della tabella di sistema, Databricks consiglia di aumentare la frequenza pianificata del processo.

Leggere le modifiche incrementali dallo streaming delle tabelle di sistema

spark.readStream.option("skipChangeCommits", "true").table("system.billing.usage")

Problemi noti

  • Attualmente non è disponibile alcun supporto per il monitoraggio in tempo reale. I dati vengono aggiornati nel corso della giornata. Se non viene visualizzato un log per un evento recente, controllare più tardi.

  • Per abilitare le tabelle di sistema, potrebbe essere necessario concedere l'accesso alla rete all'endpoint di archiviazione Blob delle tabelle di sistema. Per visualizzare un elenco degli endpoint di archiviazione delle tabelle di sistema di ogni area, consultare Indirizzi IP degli endpoint di archiviazione.

  • Gli schemi di sistema system.operational_data e system.lineage sono deprecati e conterranno tabelle vuote.

  • Lo schema della tabella di sistema __internal_logging viene usato per supportare la registrazione del payload usando tabelle di inferenza. Questo schema è visibile agli amministratori dell'account, ma non può essere abilitato e non deve essere usato per i flussi di lavoro dei clienti.