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


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

Внимание

Эта системная таблица находится в общедоступной предварительной версии. Чтобы получить доступ к таблице, в каталоге должна быть включена system схема. Дополнительные сведения см. в разделе "Включение схем системной таблицы".

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

  • clusters: записывает конфигурации вычислений в учетную запись.
  • node_types: включает одну запись для каждого из доступных типов узлов, включая сведения о оборудовании.
  • node_timeline: включает поминутные записи метрик использования вычислительных ресурсов.

Схема таблицы кластера

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

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

Имя столбца Тип данных Description Пример
account_id строка Идентификатор учетной записи, в которой был создан этот кластер. 23e22ba4-87b9-
4cc2-9770-d10b894b7118
workspace_id строка Идентификатор рабочей области, в которой был создан этот кластер. 1234567890123456
cluster_id строка Идентификатор кластера, для которого связана эта запись. 0000-123456-crmpt124
cluster_name строка Определяемое пользователем имя кластера. My cluster
owned_by строка Имя пользователя владельца кластера. По умолчанию создателю кластера, но его можно изменить с помощью API кластеров. sample_user@email.com
create_time TIMESTAMP Метка времени изменения в этом определении вычислений. 2023-01-09 11:00:00.000
delete_time TIMESTAMP Метка времени удаления кластера. Значение равно null , если кластер не удаляется. 2023-01-09 11:00:00.000
driver_node_type строка Имя типа узла драйвера. Это соответствует имени типа экземпляра из поставщика облачных служб. Standard_D16s_v3
worker_node_type строка Имя типа рабочего узла. Это соответствует имени типа экземпляра из поставщика облачных служб. Standard_D16s_v3
worker_count bigint Количество рабочих ролей. Определяется только для кластеров фиксированного размера. 4
min_autoscale_workers bigint Минимальное число рабочих ролей. Это поле допустимо только для кластеров автомасштабирования. 1
max_autoscale_workers bigint Максимальное число рабочих ролей. Это поле допустимо только для кластеров автомасштабирования. 1
auto_termination_minutes bigint Настроенная длительность автотерминации. 120
enable_elastic_disk boolean Состояние включения диска автомасштабирования. true
tags map Определяемые пользователем теги для кластера (не включают теги по умолчанию). {"ResourceClass":"SingleNode"}
cluster_source строка Указывает создателя кластера: UI, API, JOBи т. д. UI
init_scripts array Набор путей для скриптов инициализации. "/Users/example@email.com
/files/scripts/install-python-pacakges.sh"
aws_attributes struct Определенные параметры AWS. null
azure_attributes struct Определенные параметры Azure. {
"first_on_demand": "0",
"availability": "ON_DEMAND_AZURE",
"spot_bid_max_price": "—1"
}
gcp_attributes struct Параметры GCP. Это поле будет пустым. null
driver_instance_pool_id строка Идентификатор пула экземпляров, если драйвер настроен поверх пула экземпляров. 1107-555555-crhod16-pool-DIdnjazB
worker_instance_pool_id строка Идентификатор пула экземпляров, если рабочая роль настроена поверх пула экземпляров. 1107-555555-crhod16-pool-DIdnjazB
dbr_version строка Среда выполнения Databricks кластера. 14.x-snapshot-scala2.12
change_time TIMESTAMP Метка времени изменения определения вычислений. 2023-01-09 11:00:00.000
change_date Дата Дата изменения. Используется для хранения. 2023-01-09

Схема таблицы типов узлов

Таблица типов узла записывает доступные в настоящее время типы узлов с базовой информацией о оборудовании.

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

Имя столбца Тип данных Description Пример
account_id строка Идентификатор учетной записи, в которой был создан этот кластер. 23e22ba4-87b9-4cc2-9770-d10b894b7118
node_type строка Уникальный идентификатор для типа узла. Standard_D16s_v3
core_count двойной точности Количество виртуальных ЦП для экземпляра. 48.0
memory_mb длинный Общая память для экземпляра. 393216
gpu_count длинный Количество gpu для экземпляра. 0

Схема таблицы временной шкалы узла

Таблица временной шкалы узла записывает данные об использовании ресурсов на уровне узла в минуту детализации. Каждая запись содержит данные за определенную минуту на экземпляр.

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

Имя столбца Тип данных Description Пример
account_id строка Идентификатор учетной записи, в которой выполняется этот вычислительный ресурс. 23e22ba4-87b9-4cc2-9770-d10b894b7118
workspace_id строка Идентификатор рабочей области, в которой выполняется этот вычислительный ресурс. 1234567890123456
cluster_id строка Идентификатор вычислительного ресурса. 0000-123456-crmpt124
instance_id строка Идентификатор конкретного экземпляра. i-1234a6c12a2681234
start_time TIMESTAMP Время начала записи в формате UTC. 2024-07-16T12:00:00Z
end_time TIMESTAMP Время окончания записи в формате UTC. 2024-07-16T13:00:00Z
driver boolean Является ли экземпляр драйвером или рабочим узлом. true
cpu_user_percent двойной точности Процент времени, затраченного ЦП в пользовательской области. 34.76163817234407
cpu_system_percent двойной точности Процент времени, затраченного ЦП на ядро. 1.0895310279488264
cpu_wait_percent двойной точности Процент времени, затраченного ЦП на ожидание ввода-вывода. 0.03445157400629276
mem_used_percent двойной точности Процент памяти вычислений, используемой в течение периода времени (включая память, используемую фоновыми процессами, выполняемыми на вычислительных ресурсах). 45.34858216779041
mem_swap_percent двойной точности Процент использования памяти, который связан с переключением памяти. 0.014648443087939
network_sent_bytes bigint Количество байтов, отправляемых в сетевом трафике. 517376
network_received_bytes bigint Число полученных байтов из сетевого трафика. 179234
disk_free_bytes_per_mount_point map Использование диска сгруппировано по точке подключения. Это эфемерное хранилище, подготовленное только во время выполнения вычислений. {"/var/lib/lxc":123455551234,"/":

123456789123,"/local_disk0":123412341234}
node_type строка Имя типа узла. Это будет соответствовать имени типа экземпляра из поставщика облачных служб. Standard_D16s_v3

Известные ограничения

  • Вычислительные ресурсы, помеченные как удаленные до 23 октября 2023 г., не отображаются в таблице кластеров. Это может привести к присоединению из system.billing.usage таблицы, не соответствующей записям в таблице кластеров. Все активные вычислительные ресурсы были заполнены.
  • Эти таблицы включают только записи для вычислений всех целей и заданий. Они не содержат записи для бессерверных вычислений, вычислений Delta Live Tables или хранилищ SQL.
  • Узлы, выполняющиеся менее 10 минут, могут не отображаться в node_timeline таблице.

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

Для ответов на распространенные вопросы можно использовать следующие примеры запросов:

Примечание.

Некоторые из этих примеров объединяют таблицу кластера с таблицей system.billing.usage . Так как записи выставления счетов — это межрегиональная и межрегиональная запись кластера, записи выставления счетов соответствуют только записям кластера, в котором запрашиваются запросы. Чтобы просмотреть записи из другого региона, выполните запрос в этом регионе.

Присоединение записей кластера с последними записями выставления счетов

Этот запрос поможет вам понять расходы с течением времени. После обновления usage_start_time до самого текущего периода выставления счетов он захватывает последние обновления записей выставления счетов для соединения с данными кластеров.

Каждая запись связана с владельцем кластера во время конкретного запуска. Таким образом, если владелец кластера изменится, затраты будут свернуты до правильного владельца на основе времени использования кластера.

SELECT
  u.record_id,
  c.cluster_id,
  c.owned_by,
  c.change_time,
  u.usage_start_time,
  u.usage_quantity
FROM
  system.billing.usage u
  JOIN system.compute.clusters c
  JOIN (SELECT u.record_id, c.cluster_id, max(c.change_time) change_time
    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 date_trunc('HOUR', c.change_time) <= date_trunc('HOUR', u.usage_start_time)
    GROUP BY all) config
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 u.record_id = config.record_id
  and c.cluster_id = config.cluster_id
  and c.change_time = config.change_time
ORDER BY cluster_id, usage_start_time desc;

Затраты на атрибуты владельцу кластера

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

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;

Определение вычислительных ресурсов с самым высоким средним использованием и пиковым использованием

Определите вычисления всех целей и заданий, которые имеют наибольшее среднее использование ЦП и максимальное пиковое использование ЦП.

SELECT
        distinct cluster_id,
driver,
avg(cpu_user_percent + cpu_system_percent) as `Avg CPU Utilization`,
max(cpu_user_percent + cpu_system_percent) as `Peak CPU Utilization`,
        avg(cpu_wait_percent) as `Avg CPU Wait`,
        max(cpu_wait_percent) as `Max CPU Wait`,
        avg(mem_used_percent) as `Avg Memory Utilization`,
        max(mem_used_percent) as `Max Memory Utilization`,
avg(network_received_bytes)/(1024^2) as `Avg Network MB Received per Minute`,
avg(network_sent_bytes)/(1024^2) as `Avg Network MB Sent per Minute`
FROM
        node_timeline
WHERE
        start_time >= date_add(now(), -1)
GROUP BY
        cluster_id,
        driver
ORDER BY
        3 desc;