Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье объясняется, как использовать таблицу system.billing.usage самостоятельно или объединить с другими системными таблицами, чтобы понять использование Azure Databricks для вашей учетной записи. Также доступны следующие статьи, связанные с функциями:
- Мониторинг затрат на бессерверные вычислительные ресурсы
- Мониторинг затрат и производительности заданий
- Мониторинг затрат на обслуживание модели
Как читать таблицу использования
Пользователи с разрешениями на доступ к данным системной таблицы могут просматривать и запрашивать журналы выставления счетов своей учетной записи, расположенные по адресу system.billing.usage. Каждая запись выставления счетов содержит столбцы, которые относят объем использования к определенным ресурсам, учетным записям и продуктам.
- Столбец
usage_metadataсодержит структуру с информацией о ресурсах или объектах, участвующих в использовании. - Столбец
identity_metadataсодержит сведения о пользователе или учетной записи службы, ответственной за использование. - Столбец
custom_tagsсодержит теги, примененные к вычислительному ресурсу, связанному с использованием. К ним также относятся теги, добавленные бессерверными политиками бюджета, чтобы можно было использовать бессерверные атрибуты. - Столбцы
billing_origin_productиproduct_featuresпредоставляют сведения о точном продукте и функциях, используемых.
Полный справочник по таблице использования см. в справочнике по системной таблице выставления счетов.
Операционализация данных выставления счетов
Databricks рекомендует использовать панели мониторинга ИИ/BI для создания панелей мониторинга затрат, используя данные о выставлении счетов из системных таблиц. Вы можете создать новую панель мониторинга или администраторы учетных записей, которые могут импортировать предварительно созданную настраиваемую панель мониторинга затрат. См. панели мониторинга использования.
Вы также можете добавить оповещения в запросы, чтобы помочь вам оставаться в курсе данных об использовании. См. Создание оповещения.
Примеры запросов
В следующих запросах приведены примеры использования system.billing.usage данных таблицы для получения аналитических сведений об использовании учетной записи.
- Сколько учетных единиц (DBUs) каждого продукта использовано в течение этого месяца?
- Какие задания потребляли больше всего DBU?
- Какое количество использования можно отнести к ресурсам с определенным тегом?
- Показать мне продукты, где растет использование
- Каков тренд использования All Purpose Compute (Photon)?
- Каков расход ресурсов DBU для материализованного представления или потоковой таблицы?
- Каково потребление DBU у бессерверного конвейера?
- Какова ежедневная динамика потребления DBU?
- Отнесите затраты на владельца вычислительного ресурса
- Обогатите использование с именем задания
- Объедините цены с таблицами использования
- Оценить дополнительные затраты за использование в предыдущем календарном месяце
Сколько DBU каждого продукта использовано в течение этого месяца?
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
Какие задания потребляли больше всего DBUs?
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
Какую часть использования можно приписать ресурсам с определённым тегом?
Затраты можно разбить различными способами. В этом примере показано, как разбить затраты по пользовательскому тегу. Замените ключ и значение пользовательского тега в запросе.
SELECT
sku_name, usage_unit, SUM(usage_quantity) as `Usage`
FROM
system.billing.usage
WHERE
custom_tags [:key] = :value
GROUP BY 1, 2
Показать мне продукты, где растет потребление
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 "2025-04-01" and "2025-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
"2025-05-01" and "2025-05-30"
GROUP BY
billing_origin_product
) as after
WHERE
before.billing_origin_product = after.billing_origin_product
SORT BY
growth_rate DESC
Какова тенденция использования универсальной вычислительной системы (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 > "2025-04-15"
GROUP BY
sku_name, usage_date
Каково потребление DBU у материализованного представления или потоковой таблицы?
Чтобы получить использование DBU и номер SKU для определенного материализованного представления или потоковой таблицы, отправьте запрос в системную таблицу оплачиваемого использования (system.billing.usage). Введите метку времени в качестве параметра для запроса результатов после указанной даты.
Следующий запрос извлекает данные об использовании DBU для материализованного представления с полным именем <catalog>.<schema>.<table>: users.cost_tracking.mv1.
WITH pipeline_id (
SELECT
usage_metadata.dlt_pipeline_id as pipeline_id
FROM
system.billing.usage
WHERE
usage_metadata.uc_table_catalog = 'users'
AND usage_metadata.uc_table_schema = 'cost_tracking'
AND usage_metadata.uc_table_name = 'mv1'
LIMIT 1
)
SELECT
u.sku_name,
u.usage_date,
SUM(u.usage_quantity) AS `DBUs`
FROM
system.billing.usage u JOIN pipeline_id p
WHERE
u.usage_metadata.dlt_pipeline_id = p.pipeline_id
AND u.usage_start_time > :usage_start_time
GROUP BY
ALL
Каково потребление DBU в бессерверном конвейере?
Чтобы получить использование DBU и номер SKU для бессерверного конвейера, отправьте запрос в оплачиваемую системную таблицу использования для записей, в которых usage_metadata.dlt_pipeline_id задан идентификатор конвейера. Идентификатор конвейера можно найти на вкладке "Сведения о конвейере" при просмотре конвейера в пользовательском интерфейсе Декларативного конвейера Spark Lakeflow Spark. Чтобы ограничить потребление по дате, укажите дату начала, дату окончания или диапазон дат. Следующий запрос извлекает использование DBU с декабря 2024 г. для конвейера с идентификатором 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
Каков дневной тренд в потреблении DBU?
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
Отнесите затраты на владельца вычислительного ресурса
Если вы хотите сократить затраты на вычисления, вы можете присоединить usage таблицу к compute.clusters таблице, чтобы узнать, какие владельцы вычислительных ресурсов в вашей учетной записи используют больше всего DBUs.
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 >= '2025-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;
Улучшить использование, добавив имя задания
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"
Объедините ценовые данные с таблицами использования
Таблица list_prices включает цены по прейскуранту в зависимости от времени для каждого доступного SKU. Вы можете присоединиться к таблице usage, чтобы просмотреть стоимость размещения для определённого типа использования.
Например, следующий запрос возвращает общую стоимость, связанную с определенным тегом в течение месяца.
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 "2025-05-01" AND "2025-05-31"
оценить дополнительные затраты за использование в предыдущем календарном месяце
Этот запрос применяет простую процентную долю для всего использования за период. Обратите внимание, что это может немного отличаться от фактической монетизации из-за того, как управляются права для некоторых надстроек. Замените дополнительную ставку на основную ставку вашего аккаунта.
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 "2025-02-01" AND "2025-02-29"