Aller au contenu principal

Référence de la table système des Workspace

info

Aperçu

Cette table système est en aperçu public.

Cette page explique comment utiliser la table système des Workspaces pour surveiller les Workspaces de votre compte Databricks. Chaque ligne du tableau représente le dernier état connu d'un Workspace actif dans votre compte, y compris les métadonnées et l'état du cycle de vie.

Cette table est la plus utile lorsqu'elle est jointe à d'autres tables système. Vous pouvez l'utiliser pour obtenir des statistiques agrégées sur la fiabilité, la performance et le coût à travers les Workspaces de votre compte.

remarque

Le tableau ne comprend que les Workspace actuellement dans votre compte. Après l'annulation d'un Workspace, sa ligne est supprimée de la table système des Workspaces.

Chemin de la table : Cette table se trouve à l'emplacement system.access.workspaces_latest

Schéma de la table Workspaces

Nom de colonne

Type de données

Description

Exemple

account_id

chaîne

ID du compte Databricks

0722779a-fd4e-49c1-a7a6-8417a97cf9ea

workspace_id

chaîne

ID du Workspace Databricks

2 274 721 051 152 826

workspace_name

chaîne

Le nom lisible par l'homme de votre Workspace

do-ré-mi

workspace_url

chaîne

URL du Workspace

https://dough-re-mi-pizza.cloud.databricks.com/

create_time

Horodatage

Timestamp de la création du Workspace (précision à la seconde)

05 mars 2025 15 h 47

status

énumération

Le statut du Workspace. Pour la création du Workspace, il est initialement défini sur PROVISIONING. Continuez à vérifier le statut jusqu’à ce que le statut soit RUNNING.

NOT_PROVISIONED, PROVISIONING, RUNNING, FAILED, BANNED

Nom de colonne

Type de données

Description

Exemple

account_id

chaîne

ID du compte Databricks

0722779a-fd4e-49c1-a7a6-8417a97cf9ea

workspace_id

chaîne

ID du Workspace Databricks

2 274 721 051 152 826

workspace_name

chaîne

Le nom lisible par l'homme de votre Workspace

do-ré-mi

workspace_url

chaîne

URL du Workspace

https://dough-re-mi-pizza.cloud.databricks.com/

create_time

Horodatage

Timestamp de la création du Workspace (précision à la seconde)

05 mars 2025 15 h 47

status

énumération

Le statut du Workspace. Pour la création du Workspace, il est initialement défini sur PROVISIONING. Continuez à vérifier le statut jusqu’à ce que le statut soit RUNNING.

NOT_PROVISIONED, PROVISIONING, RUNNING, FAILED, BANNED

Exemples de query

Les sections suivantes incluent des exemples de query SQL utilisant la table système des Workspaces.

Quels espaces de travail sont en cours d'exécution ?

La query ci-dessous montre tous les workspaces actuellement à l'état RUNNING dans votre compte.

SQL
SELECT
workspace_id,
workspace_name,
workspace_url,
create_time
FROM
system.access.workspaces_latest
WHERE
status = "RUNNING";

Quels Workspace ont les dépenses les plus élevées ?

Cette query calcule les 10 meilleurs workspaces de votre compte par dépenses au cours des 30 derniers jours.

SQL
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;

Quels jobs de mon compte sont les plus chers ?

Cette requête calcule les 10 Jobs les plus coûteux de votre compte au cours des 30 derniers jours.

SQL
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;