Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Importante
Questa tabella di sistema si trova in versione di anteprima pubblica.
Questa pagina illustra come usare la tabella di sistema delle aree di lavoro per monitorare le aree di lavoro nell'account Azure Databricks. Ogni riga della tabella rappresenta lo stato noto più recente di un'area di lavoro attiva nell'account, inclusi i metadati e lo stato del ciclo di vita.
Questa tabella è più utile quando viene unita ad altre tabelle di sistema. È possibile usarlo per ottenere statistiche aggregate sull'affidabilità, sulle prestazioni e sui costi tra le aree di lavoro nell'account.
Annotazioni
La tabella include solo le aree di lavoro attualmente presenti nell'account. Dopo l'annullamento di un'area di lavoro, la relativa riga viene rimossa dalla tabella di sistema delle aree di lavoro.
Percorso tabella: questa tabella si trova in system.access.workspaces_latest
Schema della tabella delle aree di lavoro
| Nome della colonna | Tipo di dati | Descrizione | Esempio |
|---|---|---|---|
account_id |
corda | ID dell'account Databricks | 0722779a-fd4e-49c1-a7a6-8417a97cf9ea |
workspace_id |
corda | ID dell'area di lavoro di Databricks | '2274721051152826' |
workspace_name |
corda | Nome leggibile dell'area di lavoro | pasta-re-mi |
workspace_url |
corda | URL dell'area di lavoro | https://dough-re-mi-pizza.cloud.databricks.com/ |
create_time |
Marca temporale | Timestamp di quando è stata creata l'area di lavoro (precisione seconda) | 2025-03-05 15:47 |
status |
enumerazione | Stato dell'area di lavoro. Per la creazione dell'area di lavoro, è inizialmente impostato su PROVISIONING. Continuare a controllare lo stato fino a quando lo stato è RUNNING. |
NOT_PROVISIONED, PROVISIONING, RUNNING, FAILEDBANNED |
Interrogazioni di esempio
Le sezioni seguenti includono query SQL di esempio che usano la tabella di sistema delle aree di lavoro.
- Quali aree di lavoro sono attualmente in funzione?
- Quali aree di lavoro hanno la spesa più elevata?
- Quali lavori nel mio account sono i più costosi?
Quali spazi di lavoro sono attualmente in esecuzione?
La query seguente mostra tutte le aree di lavoro attualmente nello stato RUNNING del tuo account.
SELECT
workspace_id,
workspace_name,
workspace_url,
create_time
FROM
system.access.workspaces_latest
WHERE
status = "RUNNING";
Quali aree di lavoro hanno la spesa più elevata?
Questa query calcola le prime 10 aree di lavoro nel tuo account in base alle spese degli ultimi 30 giorni.
WITH
-- apply date filter
usage_with_ws_filtered_by_date AS (
SELECT
w.workspace_id,
w.workspace_name,
w.workspace_url,
u.usage_quantity,
u.usage_unit,
u.sku_name,
u.usage_end_time,
u.cloud
FROM
system.billing.usage AS u NATURAL JOIN system.access.workspaces_latest AS w
WHERE
u.usage_date > DATE_ADD(CURRENT_DATE(), -30)
),
-- calc list priced usage in USD
prices AS (
SELECT
COALESCE(price_end_time, DATE_ADD(current_date, 1)) AS coalesced_price_end_time,
*
FROM
system.billing.list_prices
WHERE
currency_code = 'USD'
),
list_priced_usd AS (
SELECT
COALESCE(u.usage_quantity * p.pricing.default, 0) as usage_usd,
u.*
FROM
usage_with_ws_filtered_by_date as u
LEFT JOIN prices AS p
ON u.sku_name = p.sku_name
AND u.cloud = p.cloud
AND u.usage_unit = p.usage_unit
AND (u.usage_end_time BETWEEN p.price_start_time AND p.coalesced_price_end_time)
)
-- calc total usage in USD
SELECT
workspace_id,
workspace_name,
workspace_url,
round(sum(usage_usd), 2) AS usage_usd
FROM
list_priced_usd
GROUP BY
1,
2,
3
ORDER BY
4 DESC
limit 10;
Quali lavori nel mio account sono i più costosi?
Questa query calcola i 10 lavori più costosi nell'account negli ultimi 30 giorni.
with usage_with_cost AS (
SELECT
*,
t1.usage_quantity * list_prices.pricing.default as list_cost
FROM system.billing.usage t1
INNER JOIN system.billing.list_prices list_prices on
t1.cloud = list_prices.cloud and
t1.sku_name = list_prices.sku_name and
t1.usage_start_time >= list_prices.price_start_time and
(t1.usage_end_time <= list_prices.price_end_time or list_prices.price_end_time is null)
),
most_expensive_jobs_30d AS (
SELECT
workspace_id,
usage_metadata.job_id,
SUM(list_cost) as list_cost
FROM usage_with_cost
WHERE
usage_metadata.job_id IS NOT NULL
AND usage_date >= CURRENT_DATE() - INTERVAL 30 DAYS
GROUP BY ALL
ORDER BY list_cost DESC
LIMIT 100
),
latest_jobs AS (
SELECT
*,
ROW_NUMBER() OVER (PARTITION BY workspace_id, job_id ORDER BY change_time DESC) as rn
FROM system.lakeflow.jobs QUALIFY rn=1
)
SELECT
t1.workspace_id,
t2.workspace_name,
t3.name as job_name,
CONCAT(
t2.workspace_url, '/jobs/', t1.job_id
) as job_url,
t1.list_cost
FROM most_expensive_jobs_30d t1
LEFT JOIN system.access.workspaces_latest t2 using (workspace_id)
LEFT JOIN latest_jobs t3 USING (workspace_id, job_id)
ORDER BY list_cost DESC
LIMIT 10;