Monitorare l'utilizzo con le tabelle di sistema

Importante

Questa funzionalità è disponibile in anteprima pubblica. Attualmente non sono previsti addebiti per l'uso di questa funzionalità. In futuro, alcuni di questi utilizzi potrebbero comportare un addebito.

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.

Che 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 system catalogo. Le tabelle di sistema possono essere usate per l'osservabilità cronologica nell'account.

Nota

Per la documentazione su system.information_schema, vedere Schema delle informazioni.

Requisiti

Per accedere alle tabelle di sistema, l'area di lavoro deve essere abilitata per Il catalogo unity. Per altre informazioni, vedere Abilitare gli schemi di tabella di sistema.

Quali tabelle di sistema sono disponibili?

Attualmente, Azure Databricks ospita tabelle di sistema per:

Tabella Descrizione Ubicazione Supporta lo streaming Conservazione Includere dati globali o regionali
Log di controllo Include record per tutti gli eventi di controllo delle aree di lavoro nella propria area. Per un elenco degli eventi di controllo disponibili, vedere Informazioni di riferimento sul log di diagnostica. system.access.audit 365 giorni Area per gli eventi a livello di area di lavoro. Globale per gli eventi a livello di account.
Derivazione tabella Include un record per ogni evento di lettura o scrittura in una tabella o un percorso del catalogo Unity. system.access.table_lineage 365 giorni A livello di area
Derivazione delle colonne Include un record per ogni evento di lettura o scrittura in una colonna del catalogo Unity ( ma non include eventi che non dispongono di un'origine). system.access.column_lineage 365 giorni A livello di area
Utilizzo fatturabile Include record per tutti gli utilizzi fatturabili nell'account. Ogni record 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. Un record viene aggiunto ogni volta che viene apportata una modifica al prezzo di uno SKU. system.billing.list_prices No N/D Generale
Clusters (Cluster) Tabella delle dimensioni a modifica lenta che contiene la cronologia completa delle configurazioni del cluster nel tempo per qualsiasi cluster. system.compute.clusters None A livello di area
Tipi di nodo Acquisisce i tipi di nodo attualmente disponibili con le relative informazioni hardware di base. system.compute.node_types No N/D A livello di area
Eventi di SQL Warehouse 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 A livello di area
Eventi a imbuto del Marketplace Include i dati relativi all'impression e all'imbuto degli utenti per le presentazioni. system.marketplace.listing_

funnel_events
365 giorni A livello di area
Accesso alla presentazione nel Marketplace Include informazioni sull'utente per i dati delle richieste completate o ottenere eventi di dati nelle presentazioni. system.marketplace.listing_

access_events
365 giorni A livello di area
Ottimizzazione predittiva Tiene traccia della cronologia operativa della funzionalità di ottimizzazione predittiva. system.storage.predictive_

optimization_operations_history
No 180 giorni A livello di area

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 Databricks.

Abilitare gli schemi di tabella di sistema

Poiché le tabelle di sistema sono regolate da Unity Catalog, è necessario avere almeno un'area di lavoro abilitata per Unity Catalog nell'account per abilitare e accedere alle 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.

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"

Di seguito è riportato un esempio di output del GET comando :

{"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 200 del risultato.

Se si tenta di riabilitare 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. Per impostazione predefinita, nessun utente ha accesso alle tabelle di sistema. Per concedere l'accesso, un amministratore del metastore o un altro utente con privilegi deve concedere USE e SELECT autorizzazioni per gli schemi di sistema. Vedere Gestire i privilegi nel catalogo unity.

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 il catalogo Unity.

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

Le tabelle di log di controllo e derivazione contengono dati operativi per tutte le aree di lavoro nell'account distribuito all'interno della stessa area cloud. La tabella del sistema di fatturazione (system.billing.usage) contiene i dati per tutte le aree di lavoro nell'account, indipendentemente dall'area in cui vengono distribuite.

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 Unity Catalog nell'account.

Dove si trovano le tabelle di sistema?

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

Nota

Durante le tabelle di sistema Anteprima pubblica, Azure Databricks manterrà tutti i dati delle tabelle di sistema.

Considerazioni per le tabelle di sistema di streaming

L'accesso alle tabelle di sistema è supportato dalla condivisione delta. Tenere presenti le considerazioni seguenti quando si esegue lo streaming con la condivisione Delta:

  • Se si usa lo streaming con le tabelle di sistema, impostare l'opzione skipChangeCommit 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 il flusso di condivisione Delta. Verrà convertito in Trigger.Once.
  • Se si usa un trigger nel processo di streaming e si trova che il processo non viene aggiornato alla versione più recente della tabella di sistema, Databricks consiglia di aumentare la frequenza pianificata del processo.

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 dell'endpoint di archiviazione delle tabelle di sistema di ogni area, vedere Archiviazione indirizzi IP degli endpoint.

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