Поделиться через


Справочник по системной таблице выставления счетов

В этой статье представлен обзор оплачиваемой системной таблицы использования, включая схему и примеры запросов. В системных таблицах данные об использовании учетной записи централизованно и перенаправлены во все регионы, поэтому вы можете просматривать глобальное использование вашей учетной записи из любого региона, в котором находится ваша рабочая область.

Сведения об использовании этой таблицы для отслеживания затрат на задание см. в разделе "Мониторинг затрат на задания" с помощью системных таблиц.

Стратегии анализа бессерверного использования см. в статье "Мониторинг затрат на бессерверные вычисления".

Путь к таблице: эта системная таблица расположена по адресу system.billing.usage.

Схема таблицы использования с выставлением счетов

В таблице системы использования с выставлением счетов используется следующая схема:

Имя столбца Тип данных Description Пример
record_id строка Уникальный идентификатор для этой записи 11e22ba4-87b9-4cc2
-9770-d10b894b7118
account_id строка Идентификатор учетной записи, для который был создан отчет 23e22ba4-87b9-4cc2
-9770-d10b894b7118
workspace_id строка Идентификатор рабочей области, с которым было связано это использование 1234567890123456
sku_name строка Имя номера SKU STANDARD_ALL_PURPOSE_COMPUTE
cloud строка Облачное использование относится к этому. Возможные значения: AWS, AZUREи GCP. AWS, AZURE или GCP
usage_start_time TIMESTAMP Время начала, соответствующее этой записи использования. Сведения о часовом поясе записываются в конце значения, +00:00 представляющего часовой пояс UTC. 2023-01-09 10:00:00.000+00:00
usage_end_time TIMESTAMP Время окончания, соответствующее этой записи об использовании. Сведения о часовом поясе записываются в конце значения, +00:00 представляющего часовой пояс UTC. 2023-01-09 11:00:00.000+00:00
usage_date Дата Дата записи об использовании, это поле можно использовать для ускорения агрегирования по дате. 2023-01-01
custom_tags map Теги, примененные к этому использованию. Включает теги вычислительных ресурсов, теги заданий, настраиваемые теги рабочей области и теги политики бюджета. { “env”: “production” }
usage_unit строка Единица измерения этого использования. Возможные значения включают базы данных. DBU
usage_quantity десятичное Количество единиц, потребляемых для этой записи. 259.2958
usage_metadata struct Предоставленные системой метаданные об использовании, включая идентификаторы для вычислительных ресурсов и заданий (если применимо). См. раздел "Анализ метаданных об использовании". {cluster_id: null;
instance_pool_id: null;
notebook_id: null;
job_id: null;
node_type: null}
identity_metadata struct Предоставленные системой метаданные об удостоверениях, участвующих в использовании. См. раздел "Анализ метаданных удостоверения". {run_as: [email protected]}
record_type строка Указывает, является ли запись исходной, отменой или повтором. Значение равно ORIGINAL , если запись не связана с исправлением. См. статью " Анализ записей исправления". ORIGINAL
ingestion_date Дата Дата приема записи в таблицу usage . 2024-01-01
billing_origin_product строка Продукт, который был создан на основе использования. За некоторые продукты можно выставлять счета по разным номерам SKU. Возможные значения см. в разделе "Просмотр сведений о продукте, связанном с использованием". JOBS
product_features struct Сведения о конкретных возможностях продукта, используемых. Возможные значения см. в разделе " Функции продукта".
usage_type строка Тип использования, который относится к продукту или рабочей нагрузке для выставления счетов. Возможные значения: COMPUTE_TIME или STORAGE_SPACE, NETWORK_BYTES, API_CALLS, TOKEN или GPU_TIME. STORAGE_SPACE

Анализ метаданных использования

Значения, usage_metadata которые вы узнаете о ресурсах, участвующих в записи об использовании.

Значение Тип данных Description
cluster_id строка Идентификатор кластера, связанного с записью об использовании
warehouse_id строка Идентификатор хранилища SQL, связанного с записью об использовании
instance_pool_id строка Идентификатор пула экземпляров, связанного с записью об использовании
node_type строка Тип экземпляра вычислительного ресурса
job_id строка Идентификатор задания, связанного с записью об использовании. Возвращает значение только для бессерверных вычислений или заданий, в противном случае возвращается null.
job_run_id строка Идентификатор выполнения задания, связанного с записью об использовании. Возвращает значение только для бессерверных вычислений или заданий, в противном случае возвращается null.
job_name строка Имя задания, связанного с записью об использовании. Возвращает значение только для заданий, выполняемых на бессерверных вычислениях, в противном случае возвращается null.
notebook_id строка Идентификатор записной книжки, связанной с использованием. Возвращает значение только бессерверных вычислений для использования записных книжек, в противном случае возвращается null.
notebook_path строка Путь к хранилищу рабочей области записной книжки, связанной с использованием. Возвращает значение только бессерверных вычислений для использования записных книжек, в противном случае возвращается null.
dlt_pipeline_id строка Идентификатор конвейера Delta Live Tables, связанного с записью использования
dlt_update_id строка Идентификатор обновления конвейера Delta Live Tables, связанного с записью использования
dlt_maintenance_id строка Идентификатор задач обслуживания конвейера Delta Live Tables, связанных с записью использования
run_name строка Уникальный идентификатор модели Foundation Для тонкой настройки модели, связанной с записью об использовании
endpoint_name строка Имя конечной точки или конечной точки поиска вектора модели, связанной с записью об использовании
endpoint_id строка Идентификатор конечной точки или конечной точки поиска вектора модели, связанной с записью об использовании
central_clean_room_id строка Идентификатор центрального чистого помещения, связанного с записью об использовании

Анализ метаданных удостоверения

Столбец identity_metadata поможет определить, кто отвечает за бессерверную запись выставления счетов. Столбец содержит run_as значение, которое атрибутит использование удостоверения. Удостоверение, записанное в identity_metadata.run_as , зависит от продукта, связанного с использованием.

См. следующую таблицу для identity_metadata.run_as поведения:

Тип рабочей нагрузки Удостоверение run_as
Вычисления заданий Пользователь или субъект-служба, определенный в параметре run_as . По умолчанию задания выполняются как удостоверение владельца задания, но администраторы могут изменить это на другого пользователя или субъекта-службы.
Бессерверные вычисления для заданий Пользователь или субъект-служба, определенный в параметре run_as . По умолчанию задания выполняются как удостоверение владельца задания, но администраторы могут изменить это на другого пользователя или субъекта-службы.
Бессерверные вычисления для записных книжек Пользователь, выполняющий команды записной книжки (в частности, пользователь, создавший сеанс записной книжки). Для общих записных книжек это включает использование другими пользователями, предоставляя доступ к одному сеансу записной книжки.
Конвейеры разностных динамических таблиц Пользователь, разрешения которого используются для запуска конвейера Delta Live Tables. Это можно изменить, передав владение конвейером.
Тонкое настройка модели Foundation Пользователь или субъект-служба, инициирующий выполнение обучения по тонкой настройке.

Анализ записей исправлений

Таблица billing.usage поддерживает исправления. Исправления возникают, когда любое поле записи об использовании неправильно и должно быть исправлено.

При исправлении Azure Databricks добавляет две новые записи в таблицу. Запись отзыва отрицает исходную неправильную запись, а затем запись перепрописи содержит исправленную информацию. Записи исправления определяются с помощью record_type поля:

  • RETRACTION: используется для отмены исходного неправильного использования. Все поля идентичны ORIGINAL записи, кроме usage_quantityотрицательного значения, которое отменяет исходное количество использования. Например, если количество использования исходной записи было 259.4356, то запись отзыва будет иметь количество -259.4356использования.
  • RESTATEMENT: запись, содержащая правильные поля и количество использования.

Например, следующий запрос возвращает правильное количество почасового использования, связанное с , job_idдаже если исправление было сделано. Агрегируя количество использования, запись отзыва отрицает исходную запись и возвращаются только значения перебора.

SELECT
  usage_metadata.job_id, usage_start_time, usage_end_time,
  SUM(usage_quantity) as usage_quantity
FROM system.billing.usage
GROUP BY ALL
HAVING usage_quantity != 0

Примечание.

Для исправлений, в которых исходная запись об использовании не должна быть написана, исправление может добавлять только запись отзыва и не выполнять повторную запись.

Просмотр сведений о продукте, связанном с использованием

Некоторые продукты Databricks выставляются по одному общему номеру SKU. Чтобы отличить использование, billing_origin_product product_features столбцы обеспечивают более подробное представление о конкретном продукте и функциях, связанных с использованием.

В столбце billing_origin_product показан продукт Databricks, связанный с записью об использовании. Допустимые значения:

  • JOBS
  • DLT
  • SQL
  • ALL_PURPOSE
  • MODEL_SERVING
  • INTERACTIVE
  • MANAGED_STORAGE
  • VECTOR_SEARCH
  • LAKEHOUSE_MONITORING
  • PREDICTIVE_OPTIMIZATION
  • ONLINE_TABLES
  • FOUNDATION_MODEL_TRAINING

Столбец product_features — это объект, содержащий сведения о конкретных возможностях продукта, используемых и включающий следующие пары "ключ-значение":

  • jobs_tier: значения включают LIGHT, CLASSICили null
  • sql_tier: значения включают CLASSIC, PROили null
  • dlt_tier: значения, включая CORE, ADVANCEDPROилиnull
  • is_serverless: значения включают true или , или falsenull
  • is_photon: значения включают true или , или falsenull
  • serving_type: включаютMODEL, GPU_MODELFOUNDATION_MODELFEATUREилиnull

Примеры запросов

С помощью следующих примеров запросов можно ответить на распространенные вопросы об использовании с выставлением счетов:

Что такое ежедневный тренд потребления 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

Сколько баз данных каждого продукта было использовано в течение этого месяца?

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

Какие задания потребляли большинство баз данных?

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
  `DBUs` 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 "2023-04-01" and "2023-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
     "2023-05-01" and "2023-05-30"
   GROUP BY
     billing_origin_product
  ) as after
WHERE
  before.billing_origin_product = after.billing_origin_product
SORT BY
  growth_rate DESC

Что такое тенденция использования всех вычислений (фотона)?

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 > "2023-04-15"
GROUP BY
  sku_name, usage_date

Что такое использование DBU материализованного представления или потоковой таблицы?

Чтобы получить номер SKU и использования DBU для определенного материализованного представления или потоковой таблицы, отправьте запрос в оплачиваемую системную таблицу использования для записей, где usage_metadata.dlt_pipeline_id задан идентификатор конвейера, связанного с материализованным представлением или потоковой таблицей. Идентификатор конвейера можно найти на вкладке "Сведения" в обозревателе каталогов при просмотре материализованного представления или потоковой таблицы. Чтобы дополнительно ограничить потребление по дате, укажите дату начала, дату окончания или диапазон дат. Следующий запрос извлекает использование DBU для конвейера с идентификатором 00732f83-cd59-4c76-ac0d-57958532ab5b и датой 2023-05-30начала использования:

SELECT
  sku_name,
  usage_date,
  SUM(usage_quantity) AS `DBUs`
FROM
  system.billing.usage
WHERE
  usage_metadata.dlt_pipeline_id = "00732f83-cd59-4c76-ac0d-57958532ab5b"
AND
  usage_start_time > "2023-05-30"
GROUP BY
  ALL

Что такое использование бессерверного конвейера DLT DBU?

Чтобы получить использование DBU и номер SKU для бессерверного конвейера DLT, отправьте запрос в оплачиваемую системную таблицу использования для записей, в которых usage_metadata.dlt_pipeline_id задан идентификатор конвейера. Идентификатор конвейера можно найти на вкладке "Сведения о конвейере" при просмотре конвейера в пользовательском интерфейсе разностных динамических таблиц. Чтобы дополнительно ограничить потребление по дате, укажите дату начала, дату окончания или диапазон дат. Следующий запрос извлекает использование DBU с декабря 2023 г. для конвейера с идентификатором 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 = "00732f83-cd59-4c76-ac0d-57958532ab5b"
AND
  usage_start_time >= "2023-12-01"
AND
  usage_end_time < "2024-01-01"
GROUP BY
  ALL