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 |
Sì | 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 |
Sì | 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 |
Sì | 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 |
Sì | 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 |
Sì | 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 |
Sì | 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 |
Sì | 365 giorni | Regional |
Processi (anteprima pubblica) | Tiene traccia di tutti i processi creati nell'account. | system.lakeflow.jobs |
Sì | 365 giorni | Regional |
Attività di processo (anteprima pubblica) | Tiene traccia di tutte le attività di processo eseguite nell'account. | system.lakeflow.job_tasks |
Sì | 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 |
Sì | 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 |
Sì | 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 |
Sì | 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 |
Sì | 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 |
Sì | 90 giorni | Regional |
Eventi di cleanroom (anteprima pubblica) | Acquisisce gli eventi correlati alle cleanroom. | system.access.clean_room_events |
Sì | 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 |
Sì | 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 |
Sì | 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
sutrue
. 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 inTrigger.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
esystem.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.