Övervaka kostnader med hjälp av systemtabeller
Den här artikeln beskriver hur du kan använda tabellen system.billing.usage
på egen hand eller kopplas till andra systemtabeller för att få en bild av ditt kontos Azure Databricks-användning. Följande funktionsspecifika artiklar är också tillgängliga:
- Övervaka serverlösa beräkningskostnader
- Övervaka jobbkostnader och prestanda
- Övervaka modellens driftkostnader
Hur man läser användningstabellen
Användare med behörighet att komma åt systemtabellsdata kan visa och utföra frågor på kontots faktureringsloggar, som finns på system.billing.usage
. Varje faktureringspost innehåller kolumner som tillskriver användningsbeloppet till de specifika resurser, identiteter och produkter som ingår.
- Kolumnen
usage_metadata
innehåller en struct med information om de resurser eller objekt som ingår i användningen. - Kolumnen
identity_metadata
innehåller information om användaren eller tjänsthuvudprincipen som orsakade användningen. - Kolumnen
custom_tags
innehåller taggar som tillämpas på beräkningsresursen som är associerad med användningen. Detta inkluderar även taggar som lagts till av budgetprinciper så att du kan tillskriva serverlös användning. - Kolumnerna
billing_origin_product
ochproduct_features
ger dig information om exakt vilken produkt och vilka funktioner som används.
En fullständig referens för användningstabellen finns i tabellreferens för fakturerbart användningssystem.
Operationalisera faktureringsdata
Databricks rekommenderar att du använder AI/BI-instrumentpaneler för att skapa kostnadsövervakningspaneler med hjälp av faktureringsdata från systemtabeller. Du kan skapa en ny instrumentpanel, eller så kan kontoadministratörer importera en fördefinierad, anpassningsbar instrumentpanel för kostnadsövervakning. Se Användningsöversikter.
Du kan också lägga till aviseringar i dina frågor som hjälper dig att hålla dig informerad om användningsdata. Se Skapa en avisering.
Exempelfrågor
Följande frågor innehåller exempel på hur du kan använda system.billing.usage
tabelldata för att få insikter om ditt kontos användning.
- Hur många DPU:er för varje produkt har använts under den här månaden?
- Vilka jobb förbrukade flest DPU:er?
- Hur mycket användning kan tillskrivas resurser med en specifik tagg?
- Visa mig de produkter där användningen växer
- Vad är användningstrenden för All Purpose Compute (Photon)?
- Vad är DBU-förbrukningen för en materialiserad vy eller en strömmande tabell?
- Vad är DBU-förbrukningen för en serverlös DLT-pipeline?
- Vad är den dagliga trenden för DBU-förbrukning?
Hur många DPU:er för varje produkt har använts under den här månaden?
SELECT
billing_origin_product,
usage_date,
sum(usage_quantity) as usage_quantity
FROM system.billing.usage
WHERE
month(usage_date) = month(NOW())
AND year(usage_date) = year(NOW())
GROUP BY billing_origin_product, usage_date
Vilka jobb förbrukade flest DPU:er?
SELECT
usage_metadata.job_id as `Job ID`, sum(usage_quantity) as `Usage`
FROM
system.billing.usage
WHERE
usage_metadata.job_id IS NOT NULL
GROUP BY
`Job ID`
ORDER BY
`Usage` DESC
Hur mycket användning kan tillskrivas resurser med en specifik tagg?
Du kan dela upp kostnader på olika sätt. Det här exemplet visar hur du delar upp kostnader med en anpassad tagg. Se till att ersätta den anpassade taggens nyckel och värde i frågan.
SELECT
sku_name, usage_unit, SUM(usage_quantity) as `Usage`
FROM
system.billing.usage
WHERE
custom_tags [:key] = :value
GROUP BY 1, 2
Visa mig de produkter där användningen växer
SELECT
after.billing_origin_product, before_dbus, after_dbus, ((after_dbus - before_dbus)/before_dbus * 100) AS growth_rate
FROM
(SELECT
billing_origin_product, sum(usage_quantity) as before_dbus
FROM
system.billing.usage
WHERE
usage_date BETWEEN "2024-04-01" and "2024-04-30"
GROUP BY
billing_origin_product
) as before
JOIN
(SELECT
billing_origin_product, sum(usage_quantity) as after_dbus
FROM
system.billing.usage
WHERE
usage_date
BETWEEN
"2024-05-01" and "2024-05-30"
GROUP BY
billing_origin_product
) as after
WHERE
before.billing_origin_product = after.billing_origin_product
SORT BY
growth_rate DESC
Vad är användningstrenden för All Purpose Compute (Photon)?
SELECT
sku_name,
usage_date,
sum(usage_quantity) as `DBUs consumed`
FROM
system.billing.usage
WHERE
year(usage_date) = year(CURRENT_DATE)
AND
sku_name = "ENTERPRISE_ALL_PURPOSE_COMPUTE_(PHOTON)"
AND
usage_date > "2024-04-15"
GROUP BY
sku_name, usage_date
Vad är DBU-förbrukningen för en materialiserad vy eller en strömmande tabell?
För att hämta DBU-användningen och SKU:n för en specifik materialiserad vy eller strömmande tabell skickar du en fråga till den fakturerbara användningssystemtabellen för poster där usage_metadata.dlt_pipeline_id
är inställt på ID:t för pipelinen som är associerad med den materialiserade vyn eller den strömmande tabellen. Du hittar pipeline-ID:t på fliken Information i Katalogutforskaren när du visar den materialiserade vyn eller strömningstabellen. Om du vill begränsa förbrukningen efter datum anger du ett startdatum, slutdatum eller ett datumintervall. Följande fråga hämtar DBU-användningen för pipelinen med ID 00732f83-cd59-4c76-ac0d-57958532ab5b
och ett användningsstartdatum för 2024-05-30
:
SELECT
sku_name,
usage_date,
SUM(usage_quantity) AS `DBUs`
FROM
system.billing.usage
WHERE
usage_metadata.dlt_pipeline_id = :dlt_pipeline_id
AND usage_start_time > :usage_start_time
GROUP BY
ALL
Vad är DBU-förbrukningen för en serverlös DLT-pipeline?
Om du vill hämta DBU-användningen och SKU:n för en serverlös DLT-pipeline skickar du en fråga till den fakturerbara användningssystemtabellen för poster där usage_metadata.dlt_pipeline_id
är inställt på pipelinens ID. Du hittar pipeline-ID:t på fliken Pipeline-detaljer när du visar en pipeline i användargränssnittet för Delta Live Tables. Om du vill begränsa förbrukningen efter datum anger du ett startdatum, slutdatum eller ett datumintervall. Följande fråga hämtar DBU-användningen från december 2024 för pipelinen med ID 00732f83-cd59-4c76-ac0d-57958532ab5b
.
SELECT
sku_name,
usage_date,
SUM(usage_quantity) AS `DBUs`
FROM
system.billing.usage
WHERE
usage_metadata.dlt_pipeline_id = :dlt_pipeline_id
AND usage_start_time >= :usage_start_time
AND usage_end_time < :usage_end_time
GROUP BY
ALL
Vad är den dagliga trenden för DBU-förbrukning?
SELECT
usage_date as `Date`, sum(usage_quantity) as `DBUs Consumed`
FROM
system.billing.usage
WHERE
sku_name = "STANDARD_ALL_PURPOSE_COMPUTE"
GROUP BY
usage_date
ORDER BY
usage_date ASC
Exempel på användning av tabellsammanfogningar
I följande exempel visas hur du kan ansluta användningstabellen till andra systemtabeller för att få ytterligare insikter.
- Tilldela kostnader till ägaren av beräkningen
- Utöka användning med ett jobbnamn
- Kombinera prissättningen med användningstabeller
- Beräkna tilläggskostnaderna för användning under föregående kalendermånad
Tilldela kostnader till datorägaren
Om du vill minska beräkningskostnaderna kan du använda den här frågan för att ta reda på vilka klusterägare i ditt konto som använder de flesta DBU:er.
SELECT
u.record_id record_id,
c.cluster_id cluster_id,
max_by(c.owned_by, c.change_time) owned_by,
max(c.change_time) change_time,
any_value(u.usage_start_time) usage_start_time,
any_value(u.usage_quantity) usage_quantity
FROM
system.billing.usage u
JOIN system.compute.clusters c
WHERE
u.usage_metadata.cluster_id is not null
and u.usage_start_time >= '2023-01-01'
and u.usage_metadata.cluster_id = c.cluster_id
and c.change_time <= u.usage_start_time
GROUP BY 1, 2
ORDER BY cluster_id, usage_start_time desc;
Utöka användning med ett jobbnamn
with 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
usage.*,
coalesce(usage_metadata.job_name, jobs.name) as job_name
FROM system.billing.usage
LEFT JOIN jobs ON usage.workspace_id=jobs.workspace_id AND usage.usage_metadata.job_id=jobs.job_id
WHERE
billing_origin_product="JOBS"
Koppla prissättningen till användningstabeller
Tabellen list_prices
innehåller listpriser över tid för varje tillgänglig SKU. Du kan ansluta till tabellen usage
för att visa listkostnaden för viss användning.
Följande fråga returnerar till exempel den totala kostnaden som tillskrivs en viss tagg under en månad:
SELECT
SUM(usage.usage_quantity * list_prices.pricing.effective_list.default)
as `Total Dollar Cost`
FROM system.billing.usage
JOIN system.billing.list_prices ON list_prices.sku_name = usage.sku_name
WHERE usage.custom_tags [:key] = :value
AND usage.usage_end_time >= list_prices.price_start_time
AND (list_prices.price_end_time IS NULL OR usage.usage_end_time < list_prices.price_end_time)
AND usage.usage_date BETWEEN "2024-05-01" AND "2024-05-31"
Beräkna tilläggskostnaderna för användning under föregående kalendermånad
Den här frågan tillämpar en enkel procentsats på all användning under perioden. Observera att detta kan skilja sig något från den faktiska intäktsgenereringen på grund av hur rättigheter för vissa tillägg hanteras. Ersätt extraavgiften med ditt kontos pris.
SELECT SUM(usage.usage_quantity * list_prices.pricing.effective_list.default) * :add_on_rate as `Total Add-On Dollar Cost`
FROM system.billing.usage
JOIN system.billing.list_prices ON list_prices.sku_name = usage.sku_name
WHERE usage.usage_end_time >= list_prices.price_start_time
AND (list_prices.price_end_time IS NULL OR usage.usage_end_time < list_prices.price_end_time)
AND usage.usage_date BETWEEN "2024-02-01" AND "2024-02-29"