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


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

Внимание

Эта функция предоставляется в режиме общедоступной предварительной версии.

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

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

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

Системная таблица кластеров находится system.compute.clusters по адресу и имеет следующую схему:

Имя столбца Тип данных Description Пример
account_id строка Идентификатор учетной записи, в которой был создан этот кластер. 23e22ba4-87b9-4cc2-9770-d10b894b7118
workspace_id строка Идентификатор рабочей области, в которой был создан этот кластер. 1234567890123456
cluster_id строка Идентификатор кластера, для которого связана эта запись. 0000-123456-xxxxxxxx
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_name строка Уникальный идентификатор для типа узла. Standard_D16s_v3
core_count двойной точности Количество виртуальных ЦП для экземпляра. 48.0
memory_mb длинный Общая память для экземпляра. 393216
gpu_count длинный Количество gpu для экземпляра. 0

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

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

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

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

Примечание.

Эти примеры объединяют таблицу кластера с таблицей 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;