Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье приведено справочное руководство по таблицам вычислительной системы. Эти таблицы можно использовать для мониторинга активности и метрик классических вычислений всех назначений, вычислений заданий и конвейеров Lakeflow в вашей учетной записи. К этим классическим таблицам вычислений относятся следующие:
-
clusters: сохраняет конфигурации вычислений в вашей учетной записи. -
node_types: включает одну запись для каждого из доступных типов узлов, включая сведения о оборудовании. -
node_timeline: включает поминутные записи метрик использования вычислительных ресурсов. -
instance_events: записывает переходы состояния классических вычислительных экземпляров. -
instance_pools: записывает конфигурации пула экземпляров в учетной записи.
Схема таблицы кластера
Таблица кластера — это таблица с медленно изменяющимися измерениями, которая содержит полную историю конфигураций вычислений со временем для вычислений всех целей, вычислений заданий, вычислений конвейеров Lakeflow и вычислений обслуживания конвейеров.
Путь к таблице: эта системная таблица расположена по адресу system.compute.clusters
| Имя столбца | Тип данных | Описание | Пример |
|---|---|---|---|
account_id |
строка | Идентификатор учетной записи, в которой был создан этот кластер. | 23e22ba4-87b9-4cc2-9770-d10b894b7118 |
workspace_id |
строка | Идентификатор рабочей области, в которой был создан этот кластер. | 1234567890123456 |
cluster_id |
строка | Идентификатор кластера, для которого связана эта запись. | 0000-123456-crmpt124 |
cluster_name |
строка | Определяемое пользователем имя кластера. | My cluster |
owned_by |
строка | Имя пользователя владельца кластера. По умолчанию назначается создателю кластера, но его можно изменить с помощью Clusters API. | sample_user@email.com |
create_time |
метка времени | Метка времени изменения этого вычислительного определения. | 2023-01-09 11:00:00.000 |
delete_time |
метка времени | Метка времени, когда был удалён кластер. Значение равно null , если кластер не удаляется. |
2023-01-09 11:00:00.000 |
driver_node_type |
строка | Имя типа узла драйвера. Это соответствует имени типа экземпляра у облачного провайдера. | Standard_D16s_v3 |
worker_node_type |
строка | Имя типа рабочего узла. Это соответствует имени типа экземпляра у облачного провайдера. | Standard_D16s_v3 |
worker_count |
Бигинт | Количество работников. Определяется только для кластеров фиксированного размера. | 4 |
min_autoscale_workers |
Бигинт | Минимальное число рабочих. Это поле действительно только для кластеров автоматического масштабирования. | 1 |
max_autoscale_workers |
Бигинт | ** Установленное максимальное число рабочих. Это поле действительно только для кластеров автоматического масштабирования. | 1 |
auto_termination_minutes |
Бигинт | Настроенная длительность автоматического завершения. | 120 |
enable_elastic_disk |
булевый | Состояние включения функции автомасштабирования диска. | true |
tags |
карта | Определяемые пользователем теги для кластера (не включают теги по умолчанию). | {"ResourceClass":"SingleNode"} |
cluster_source |
строка | Источник кластера. Значения UI или API применяются только к универсальным вычислительным ресурсам. Все вычисления задания регистрируются как JOB. Трубопроводы PIPELINE или PIPELINE_MAINTENANCE. |
UI |
init_scripts |
массив | Набор путей для скриптов инициализации. | "/Users/example@email.com/files/scripts/install-python-pacakges.sh" |
aws_attributes |
Структура | Определенные параметры AWS. | null |
azure_attributes |
Структура | Azure определенных параметров. | {"first_on_demand": "0","availability": "ON_DEMAND_AZURE","spot_bid_max_price": "—1"} |
gcp_attributes |
Структура | Специфические параметры 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 |
метка времени | Метка времени изменения вычислительного определения. | 2023-01-09 11:00:00.000 |
change_date |
Дата | Изменить дату. Используется для хранения. | 2023-01-09 |
data_security_mode |
строка | Режим доступа вычислительного ресурса. См. справочник по режиму доступа. | USER_ISOLATION |
policy_id |
строка | Идентификатор политики вычислений кластера, если это применимо. | 1234F35636110A5B |
Справочник по режиму доступа
В следующей таблице приведены возможные значения, содержащиеся в столбце data_security_mode . Столбец также может быть null для определённых конвейеров и кластеров, создаваемых системой.
| Ценность | Режим доступа |
|---|---|
USER_ISOLATION |
Стандарт |
SINGLE_USER |
Преданные |
Устаревшие режимы доступа записываются со следующими значениями:
| Ценность | Режим доступа |
|---|---|
LEGACY_PASSTHROUGH |
Сквозная передача учетных данных (совместное использование) |
LEGACY_SINGLE_USER |
Сквозная передача учетных данных (один пользователь) |
LEGACY_TABLE_ACL |
Обычай |
NONE |
Отсутствие общей изоляции |
Схема таблицы типов узлов
Таблица типов узла записывает доступные в настоящее время типы узлов с базовой информацией о оборудовании.
Путь к таблице: эта системная таблица расположена по адресу system.compute.node_types.
| Имя столбца | Тип данных | Описание | Пример |
|---|---|---|---|
account_id |
строка | Идентификатор учетной записи, в которой был создан этот кластер. | 23e22ba4-87b9-4cc2-9770-d10b894b7118 |
node_type |
строка | Уникальный идентификатор для типа узла. | Standard_D16s_v3 |
core_count |
двойной | Количество виртуальных процессоров для экземпляра. | 48.0 |
memory_mb |
длинный | Общий объем памяти для экземпляра. | 393216 |
gpu_count |
длинный | Количество графических процессоров для этого экземпляра. | 0 |
Схема таблицы временной шкалы узла
Таблица временной шкалы узла фиксирует данные об использовании ресурсов на уровне узла с минутной детализацией. Каждая запись содержит данные за определённую минуту для каждого экземпляра. В этой таблице записываются временные шкалы узлов для вычислительных ресурсов, вычислений заданий, конвейеров Lakeflow и вычислительных ресурсов обслуживания конвейеров в вашей учетной записи.
Путь к таблице: эта системная таблица расположена по адресу system.compute.node_timeline.
| Имя столбца | Тип данных | Описание | Пример |
|---|---|---|---|
account_id |
строка | Идентификатор учетной записи, в которой выполняется этот вычислительный ресурс. | 23e22ba4-87b9-4cc2-9770-d10b894b7118 |
workspace_id |
строка | Идентификатор рабочей области, в которой выполняется этот вычислительный ресурс. | 1234567890123456 |
cluster_id |
строка | Идентификатор вычислительного ресурса. | 0000-123456-crmpt124 |
instance_id |
строка | Идентификатор конкретного экземпляра. | i-1234a6c12a2681234 |
start_time |
метка времени | Время начала записи в UTC. | 2024-07-16T12:00:00Z |
end_time |
метка времени | Время окончания записи в формате UTC. | 2024-07-16T13:00:00Z |
driver |
булевый | Является ли экземпляр драйвером или рабочим узлом. | 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 |
Бигинт | Количество байтов, отправляемых в сетевом трафике. | 517376 |
network_received_bytes |
Бигинт | Число полученных байтов из сетевого трафика. | 179234 |
disk_free_bytes_per_mount_point |
карта | Использование диска сгруппировано по точке подключения. Это эфемерное хранилище, подготовленное только во время выполнения вычислений. | {"/var/lib/lxc":123455551234,"/":123456789123,"/local_disk0":123412341234} |
node_type |
строка | Имя типа узла. Это соответствует имени типа экземпляра у облачного провайдера. | Standard_D16s_v3 |
private_ip |
строка | Частный IP-адрес, назначенный узлу. | 10.0.0.42 |
Схема таблицы событий экземпляра
Important
Эта системная таблица находится в общедоступной предварительной версии.
Таблица событий экземпляра фиксирует переходы состояния классических вычислительных экземпляров. Каждая строка представляет собой изменение состояния для одного экземпляра. Эта таблица содержит записи для всех целевых вычислений, вычислений заданий и конвейеров Lakeflow из всех рабочих областей в учетной записи, развернутой в одном облачном регионе.
Путь к таблице: эта системная таблица расположена по адресу system.compute.instance_events.
| Имя столбца | Тип данных | Описание | Пример |
|---|---|---|---|
account_id |
строка | Идентификатор учетной записи, в которой запускается этот экземпляр. | 23e22ba4-87b9-4cc2-9770-d10b894b7118 |
workspace_id |
строка | Идентификатор рабочей области, в которой запускается этот экземпляр. | 1234567890123456 |
instance_id |
строка | Идентификатор экземпляра. | i-0a1b2c3d4e5f67890 |
event_time |
метка времени | Метка времени события. | 2024-01-15 10:30:00.000 |
event_type |
строка | Тип события. Возможные значения: INSTANCE_LAUNCHING и STATE_TRANSITION. |
STATE_TRANSITION |
instance_pool_id |
строка | Идентификатор пула экземпляров, если экземпляр принадлежит пулу. | 1107-555555-pool-abcd1234 |
cluster_id |
строка | Идентификатор кластера, на который помещается этот экземпляр. Заполняется, только если state является INSTANCE_PLACED. Дополнительные сведения см. в cluster_id. |
0000-123456-xxxxxxxx |
node_type |
строка | Имя типа узла. Это соответствует имени типа экземпляра у облачного провайдера. | Standard_D16s_v3 |
state |
строка | Состояние экземпляра. См. состояния экземпляра. | INSTANCE_PLACED |
availability_type |
строка | Тип доступности экземпляра. Возможные значения: ON_DEMAND и SPOT (AWS, Azure) или ON_DEMAND и PREEMPTIBLE (GCP). |
ON_DEMAND |
Состояния экземпляра
-
INSTANCE_LAUNCHING: инициализируется экземпляр. -
INSTANCE_READY: экземпляр полностью инициализирован и готов к использованию, но в настоящее время не используется. -
INSTANCE_PLACED: экземпляр в настоящее время используется (присоединен к кластеру). -
INSTANCE_TERMINATED: экземпляр завершается.
Когда заполняется cluster_id?
Поле cluster_id заполняется только в том случае, если экземпляр находится в INSTANCE_PLACED состоянии. Для всех остальных состояний (INSTANCE_LAUNCHING, INSTANCE_READY, INSTANCE_TERMINATED) cluster_id имеет значение null. Это поведение согласовано как для экземпляров, так и для экземпляров, не относящихся к пулу.
Таблица instance_events включает только события размещения для вычислений всех целей, заданий и конвейеров Lakeflow. События размещения для других рабочих нагрузок, таких как хранилища SQL, не включены в эту таблицу.
Схема таблицы пулов экземпляров
Important
Эта системная таблица находится в общедоступной предварительной версии.
Таблица пулов экземпляров — это таблица медленно изменяющихся измерений, содержащая полную историю конфигураций пула экземпляров с течением времени. При изменении конфигурации создается новая строка, логически заменяющая предыдущую.
Путь к таблице: эта системная таблица расположена по адресу system.compute.instance_pools.
| Имя столбца | Тип данных | Описание | Пример |
|---|---|---|---|
account_id |
строка | Идентификатор учетной записи, в которой был создан пул экземпляров. | 23e22ba4-87b9-4cc2-9770-d10b894b7118 |
workspace_id |
строка | Идентификатор рабочей области, в которой был создан пул экземпляров. | 1234567890123456 |
instance_pool_id |
строка | Идентификатор пула экземпляров. | 1107-555555-pool-abcd1234 |
change_time |
метка времени | Метка времени изменения конфигурации пула экземпляров. | 2024-01-15 10:30:00.000 |
create_time |
метка времени | Метка времени создания пула экземпляров. | 2024-01-10 08:00:00.000 |
delete_time |
метка времени | Метка времени удаления пула экземпляров. Значение заключается в том null , что пул экземпляров не удаляется. |
null |
instance_pool_name |
строка | Определяемое пользователем имя пула экземпляров. | My instance pool |
tags |
карта | Определяемые пользователем теги для пула экземпляров (не включают теги по умолчанию). | {"team":"data-engineering"} |
node_type |
строка | Тип узла, используемый для экземпляров в пуле. Это соответствует имени типа экземпляра у облачного провайдера. | Standard_D16s_v3 |
idle_instance_autotermination_minutes |
Бигинт | Количество минут, в течение которых экземпляры простоя в кэше пула автоматически завершаются после того, как они неактивны. | 120 |
min_idle_instances |
Бигинт | Минимальное количество неактивных экземпляров, которые следует поддерживать в пуле экземпляров. | 2 |
max_capacity |
Бигинт | Максимальное количество находящихся на рассмотрении экземпляров для хранения в пуле, включая как экземпляры, используемые кластерами, так и простаивающие экземпляры. | 10 |
enable_elastic_disk |
булевый | Автоматическое масштабирование локального хранилища: при включении экземпляры в этом пуле динамически получают дополнительное место на диске, когда рабочие роли Spark работают с низким объемом места на диске. | true |
disk_spec |
Структура | Спецификация дисков, подключенных ко всем контейнерам Spark. | {"disk_type": "PREMIUM_LRS","disk_count": 2,"disk_size": 100} |
preloaded_docker_images |
массив | Пользовательские образы Docker, предварительно загруженные в пул. | [] |
preloaded_spark_version |
строка | Предварительно загруженная версия образа Spark для пула, если определена. | 14.3.x-scala2.12 |
aws_attributes |
Структура | Атрибуты, связанные с пулами экземпляров, работающими в AWS. | null |
azure_attributes |
Структура | Атрибуты, связанные с пулами экземпляров, работающими на Azure. | {"availability": "ON_DEMAND_AZURE","spot_bid_max_price": -1} |
gcp_attributes |
Структура | Атрибуты, связанные с пулами экземпляров, работающими в GCP. | null |
Известные ограничения
- Вычислительные ресурсы, помеченные как удаленные до 23 октября 2023 г., не отображаются в таблице кластеров. Это может привести к тому, что соединения из таблицы
system.billing.usageмогут не совпадать с записями в таблице кластеров. Все активные вычислительные ресурсы были дозагружены. - Эти таблицы включают только записи для универсальных и рабочих вычислений. Они не содержат записи для бессерверных вычислительных ресурсов или хранилищ 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
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;
Получение последней версии каждого пула экземпляров
Таблица instance_pools — это тип SCD2, где вместо обновления существующих записей создается новая запись при каждом изменении. Чтобы получить последнюю версию, выполните запись с наибольшим change_time.
SELECT *
FROM system.compute.instance_pools
QUALIFY row_number() OVER (
PARTITION BY workspace_id, instance_pool_id
ORDER BY change_time DESC
) = 1;
Вычисление простоя экземпляра и активного времени
Этот запрос вычисляет общее время простоя и активное время для каждого экземпляра с помощью переходов состояния из instance_events таблицы.
WITH instance_states AS (
SELECT
*,
event_time AS start_time,
lead(event_time) OVER (
PARTITION BY workspace_id, instance_id
ORDER BY event_time
) AS end_time
FROM system.compute.instance_events
WHERE event_type IN ('INSTANCE_LAUNCHING', 'STATE_TRANSITION')
)
SELECT
workspace_id,
instance_id,
instance_pool_id,
sum(if(state = 'INSTANCE_READY',
TIMESTAMPDIFF(SECOND, start_time, end_time), 0)) / 60 AS idle_minutes,
sum(if(state = 'INSTANCE_PLACED',
TIMESTAMPDIFF(SECOND, start_time, end_time), 0)) / 60 AS active_minutes
FROM instance_states
GROUP BY workspace_id, instance_id, instance_pool_id;