Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье объясняется, как использовать таблицу системы использования с выставлением счетов для отслеживания затрат на использование бессерверных вычислений.
Вы можете отслеживать использование бессерверных вычислений для записных книжек и заданий, запрашивая оплачиваемую системную таблицу использования (system.billing.usage), которая включает атрибуты пользователей и рабочей нагрузки, связанные с бессерверными затратами на вычисления. К применимым полям относятся следующие:
- Столбец
identity_metadataсодержит полеrun_as, в котором показан пользователь или сервисный принципал, чьи учетные данные использовались для выполнения рабочей нагрузки. - Столбец
usage_metadataсодержит поля, описывающие рабочую нагрузку:job_run_id, ,job_namenotebook_idиnotebook_path.
- Столбец
custom_tags, который будет включать любые теги, унаследованные от бессерверных политик использования. См. раздел "Использование атрибутов с бессерверными политиками".
Замечание
Из-за нашей распределенной архитектуры может появиться несколько записей, связанных с данной бессерверной вычислительной рабочей нагрузкой в заданном временном интервале. Например, можно увидеть несколько записей с одинаковыми job_id, job_run_id или job_name но с различными значениями потребления DBU для каждого. Сумма этих DBU представляет собой почасовое потребление DBU для запуска задания в указанном временном интервале.
Дополнительные функции, выставленные как бессерверные
Существует несколько функций Azure Databricks, использующих бессерверные вычисления в фоновом режиме, но не требуют включения учетной записи для бессерверных вычислений для записных книжек, рабочих процессов и конвейеров Lakeflow.
В SKU бессерверных заданий учитываются следующие возможности:
-
Мониторинг качества данных: зарегистрировано в таблице выставления счетов со значением
billing_origin_productLAKEHOUSE_MONITORING. -
Прогнозная оптимизация: вход в таблицу выставления счетов со значением
billing_origin_productPREDICTIVE_OPTIMIZATION. -
Материализованные представления в Databricks SQL: при создании материализованного представления в хранилище SQL создается бессерверный конвейер для обработки обновлений. Записи выставления счетов для материализованного представления можно просматривать, запрашивая записи, где
billing_origin_product = 'SQL'иusage_metadata.dlt_pipeline_id IS NOT NULL. -
Детальное управление доступом в выделенных вычислительных ресурсах: можно определить, имея
billing_origin_productзначениеFINE_GRAINED_ACCESS_CONTROL. -
Lakeflow Connect: прием данных через управляемый коннектор регистрируется со значением
billing_origin_productLAKEFLOW_CONNECT. -
Поиск ИИ: зарегистрировано со значением
billing_origin_productVECTOR_SEARCH.
-
Чистые комнаты: конкретная чистая комната, связанная с использованием, регистрируется в
usage_metadata.central_clean_room_id. - Сетевые таблицы (прежние версии): зарегистрировано со значением
billing_origin_productONLINE_TABLES.
Использование бюджетов для мониторинга расходов
Администраторы учетных записей могут настроить бюджеты для группирования затрат и настройки оповещений. См. статью "Создание и мониторинг бюджетов".
Импорт панели мониторинга использования
Администраторы учетных записей могут импортировать панели мониторинга управления затратами в любую рабочую область с поддержкой каталога Unity в своей учетной записи. См. статью "Импорт панели мониторинга использования".
Поиск задания или записной книжки в пользовательском интерфейсе
Чтобы найти задачу или записную книжку в пользовательском интерфейсе на основе записи учета биллинга, скопируйте значение usage_metadata.job_id или usage_metadata.notebook_id из записи использования. Эти идентификаторы неизменяемы и могут использоваться, даже если имя задания или путь к записной книжке изменяется.
Для поиска работы в пользовательском интерфейсе с учетом его job_id:
- Скопируйте
job_idиз записи об использовании. В этом примере предположим, что идентификатор имеет значение700809544510906. - Перейдите в интерфейс Задания и конвейеры в той же рабочей области Azure Databricks, что и задание.
- Выберите фильтр Доступен для меня.
- Вставьте идентификатор (700809544510906) в строку поиска заданий фильтра .
Чтобы найти записную книжку в пользовательском интерфейсе на основании notebook_id, следуйте следующим инструкциям:
- Скопируйте
notebook_idиз записи об использовании. В этом примере предположим, что идентификатор имеет значение700809544510906. - Перейдите к пользовательскому интерфейсу Workspaces в той же рабочей области Azure Databricks, что и записная книжка.
- Щелкните любую записную книжку в списке.
- После открытия записной книжки просмотрите URL-адрес в адресной строке браузера. Оно должно выглядеть так:
https://<databricks-account-url>/?o=<workspace-ID>#notebook/<notebook ID>/command/<command ID>. - В адресной строке браузера замените идентификатор записной книжки идентификатором, скопированным на первом шаге, а затем удалите все после идентификатора записной книжки. Оно должно выглядеть так:
https://<databricks-account-url>/?o=<workspace ID>#notebook/700809544510906. - После открытия записной книжки нажмите кнопку "Общий доступ ", чтобы просмотреть владельца записной книжки.
Использование оповещений для отслеживания бессерверных расходов
Уведомления — это мощный способ оставаться в курсе ваших расходов на бессерверные технологии. С помощью оповещений вы можете получать уведомления при выполнении определенных условий в результатах запроса. Сведения о создании оповещений см. в статье "Создание оповещения".
Вы можете добавить оповещения в следующие запросы для мониторинга бюджетов. В каждом запросе замените {budget} на выбранный бюджет.
Оповещение, если расходы в любой рабочей области превышают пороговое значение за последние 30 дней
Вы можете настроить оповещение, чтобы оно срабатывало каждый раз, когда этот запрос возвращает строку. Замените {budget} выбранным бюджетом.
SELECT
t1.workspace_id,
SUM(t1.usage_quantity * list_prices.pricing.default) as list_cost
FROM system.billing.usage t1
INNER JOIN system.billing.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)
WHERE
t1.sku_name LIKE '%SERVERLESS%'
AND billing_origin_product IN ("JOBS", "INTERACTIVE")
AND t1.usage_date >= CURRENT_DATE() - INTERVAL 30 DAYS
GROUP BY
t1.workspace_id
HAVING
list_cost > {budget}
Оповещение, когда пользователь превышает пороговое значение за последние 30 дней
Вы можете настроить оповещение, чтобы оно срабатывало каждый раз, когда этот запрос возвращает строку. Замените {budget} выбранным бюджетом.
SELECT
t1.identity_metadata.run_as,
SUM(t1.usage_quantity * list_prices.pricing.default) as list_cost
FROM system.billing.usage t1
INNER JOIN system.billing.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)
WHERE
t1.sku_name LIKE '%SERVERLESS%'
AND billing_origin_product IN ("JOBS", "INTERACTIVE")
AND t1.usage_date >= CURRENT_DATE() - INTERVAL 30 DAYS
GROUP BY
t1.identity_metadata.run_as
HAVING
list_cost > {budget}
Оповещение о превышении порогового значения задания за последние 30 дней
Вы можете настроить оповещение, чтобы оно срабатывало каждый раз, когда этот запрос возвращает строку. Замените {budget} выбранным бюджетом.
SELECT
t1.workspace_id,
t1.usage_metadata.job_id,
SUM(t1.usage_quantity * list_prices.pricing.default) as list_cost
FROM system.billing.usage t1
INNER JOIN system.billing.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)
WHERE
t1.sku_name LIKE '%SERVERLESS%'
AND billing_origin_product IN ("JOBS")
AND t1.usage_date >= CURRENT_DATE() - INTERVAL 30 DAYS
GROUP BY
t1.workspace_id, t1.usage_metadata.job_id
HAVING
list_cost > {budget}
Примеры запросов
Используйте следующие запросы, чтобы получить аналитические сведения об бессерверном использовании в вашей учетной записи:
- Сортируйте бессерверные записные книжки по общим расходам
- Сортировка бессерверных заданий на основе общих расходов
- Отчет о потребленных DBU конкретным пользователем
- Отчет о потреблении вычислительных единиц в бессерверной архитектуре рабочими нагрузками, которые используют общий пользовательский тег
- Отчет об использованных в режиме производительности DBU
Сортировка бессерверных ноутбуков по общим расходам
Этот запрос возвращает список записных книжек и количество DBU, использованных каждой записной книжкой, в порядке убывания по потреблению DBU.
SELECT
usage_metadata.notebook_id,
usage_metadata. notebook_path,
SUM(usage_quantity) as total_dbu
FROM
system.billing.usage
WHERE
usage_metadata.notebook_id is not null
and billing_origin_product = 'INTERACTIVE'
and product_features.is_serverless
and usage_unit = 'DBU'
and usage_date >= DATEADD(day, -30, current_date)
GROUP BY
1,2
ORDER BY
total_dbu DESC
Сортировка бессерверных заданий на основе общих расходов
Этот запрос возвращает список заданий и количество DBU, потребляемых каждым заданием, в порядке убывания по потреблению DBU.
SELECT
usage_metadata.job_id,
usage_metadata.job_name,
SUM(usage_quantity) as total_dbu
FROM
system.billing.usage
WHERE
usage_metadata.job_id is not null
and usage_unit = 'DBU'
and usage_date >= DATEADD(day, -30, current_date)
and sku_name like '%JOBS_SERVERLESS_COMPUTE%'
GROUP BY
1,2
ORDER BY
total_dbu DESC
Отчет о потребленных DBU определенным пользователем
Этот запрос возвращает список блокнотов и заданий, которые используют серверные вычисления, запускаемые определенным пользователем или служебным принципалом, и количество DBU, потребляемых каждой рабочей нагрузкой.
SELECT
usage_metadata.job_id,
usage_metadata.job_name,
usage_metadata.notebook_id,
usage_metadata. notebook_path,
SUM(usage_quantity) as total_dbu
FROM
system.billing.usage
WHERE
identity_metadata.run_as = '<emailaddress@domain.com>'
and billing_origin_product in ('JOBS','INTERACTIVE')
and product_features.is_serverless
and usage_unit = 'DBU'
and usage_date >= DATEADD(day, -30, current_date)
GROUP BY
1,2,3,4
ORDER BY
total_dbu DESC
Отчет о потребленных бессерверных вычислительных единицах (DBUs) для рабочих нагрузок, которые имеют общий пользовательский тег.
Этот запрос возвращает список заданий, использующих бессерверные вычисления, которые используют один и тот же пользовательский тег, и количество баз данных, потребляемых каждой рабочей нагрузкой:
SELECT
usage_metadata.job_id,
usage_metadata.job_name,
usage_metadata.notebook_id,
usage_metadata. notebook_path,
SUM(usage_quantity) as total_dbu
FROM
system.billing.usage
WHERE
custom_tags.<key> = '<value>'
and billing_origin_product in ('JOBS','INTERACTIVE')
and product_features.is_serverless
and usage_unit = 'DBU'
and usage_date >= DATEADD(day, -30, current_date)
GROUP BY
1,2,3,4
ORDER BY
total_dbu DESC
Отчет о DBU, потреблённых в режиме производительности
Этот запрос суммирует использование бессерверных DBU по режиму производительности (PERFORMANCE_OPTIMIZED или STANDARD) и типу рабочей нагрузки (заданиям или конвейерам) за последние 30 дней:
SELECT
product_features.performance_target,
billing_origin_product,
SUM(usage_quantity) as total_dbu
FROM
system.billing.usage
WHERE
product_features.is_serverless
and billing_origin_product in ('JOBS','DLT')
and usage_unit = 'DBU'
and usage_date >= DATEADD(day, -30, current_date)
GROUP BY
1,2
ORDER BY
total_dbu DESC