Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Penting
Tabel sistem ini berada dalam Pratinjau Umum.
Halaman ini menjelaskan cara menggunakan tabel sistem ruang kerja untuk memantau ruang kerja di akun Azure Databricks Anda. Setiap baris dalam tabel mewakili status ruang kerja aktif terbaru yang diketahui di akun Anda, termasuk metadata dan status siklus hidup.
Tabel ini paling berguna ketika digabungkan dengan tabel sistem lainnya. Anda dapat menggunakannya untuk mendapatkan statistik agregat tentang keandalan, performa, dan biaya di seluruh ruang kerja di akun Anda.
Nota
Tabel hanya menyertakan ruang kerja yang saat ini ada di akun Anda. Setelah ruang kerja dibatalkan, barisnya dihapus dari tabel sistem ruang kerja.
Jalur tabel: Tabel ini terletak di system.access.workspaces_latest
Skema tabel ruang kerja
| Nama kolom | Jenis data | Deskripsi | Contoh |
|---|---|---|---|
account_id |
string | ID akun Databricks | 0722779a-fd4e-49c1-a7a6-8417a97cf9ea |
workspace_id |
string | ID ruang kerja Databricks | '2274721051152826' |
workspace_name |
string | Nama ruang kerja yang dapat dibaca manusia | Adonan-re-mi |
workspace_url |
string | URL ruang kerja | https://dough-re-mi-pizza.cloud.databricks.com/ |
create_time |
stempel waktu | Penanda waktu ketika ruang kerja dibuat, dengan presisi hingga detik. | 2025-03-05 15:47 |
status |
enum | Status ruang kerja. Untuk pembuatan ruang kerja, diatur ke PROVISIONING pada awalnya. Lanjutkan untuk memeriksa status sampai statusnya adalah RUNNING. |
NOT_PROVISIONED, , PROVISIONINGRUNNING, , FAILED,BANNED |
Contoh pertanyaan
Bagian berikut menyertakan sampel kueri SQL menggunakan tabel sistem ruang kerja.
- Ruang kerja mana yang sedang beroperasi?
- Ruang kerja mana yang memiliki pengeluaran tertinggi?
- Pekerjaan mana di seluruh akun saya yang paling mahal?
Ruang kerja mana yang sedang berjalan?
Kueri di bawah ini memperlihatkan semua ruang kerja yang saat ini dalam status RUNNING di akun Anda.
SELECT
workspace_id,
workspace_name,
workspace_url,
create_time
FROM
system.access.workspaces_latest
WHERE
status = "RUNNING";
Ruang kerja mana yang memiliki pengeluaran tertinggi?
Kueri ini menghitung 10 ruang kerja teratas di akun Anda berdasarkan pengeluaran dalam 30 hari terakhir.
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;
Pekerjaan mana di seluruh akun saya yang paling mahal?
Kueri ini menghitung 10 pekerjaan termahal teratas di akun Anda dalam 30 hari terakhir.
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;