Referencia de tablas del sistema de proceso
Importante
Esta tabla del sistema está en versión preliminar pública. Para acceder a la tabla, el esquema debe estar habilitado en el catálogo system
. Para obtener más información, consulte Habilitación de esquemas de tabla del sistema.
En este artículo se proporciona una guía de referencia para las tablas del sistema de proceso. Puede usar estas tablas para supervisar la actividad y las métricas del proceso de todos los fines y trabajos en la cuenta:
clusters
: registra las configuraciones de proceso en su cuenta.node_types
: incluye un único registro para cada uno de los tipos de nodo disponibles actualmente, incluida la información de hardware.node_timeline
: incluye registros minuto a minuto de las métricas de uso del proceso.
Esquema de la tabla de clústeres
La tabla de clústeres es una tabla de dimensiones de variación lenta que contiene el historial completo de configuraciones de proceso a lo largo del tiempo para el proceso de todos los fines y trabajos.
Ruta de acceso de tabla: esta tabla del sistema se encuentra en system.compute.clusters
Nombre de la columna | Tipo de datos | Descripción | Ejemplo |
---|---|---|---|
account_id |
cadena | Identificador de la cuenta donde se creó este clúster. | 23e22ba4-87b9- 4cc2-9770-d10b894b7118 |
workspace_id |
cadena | Identificador del área de trabajo donde se creó el clúster. | 1234567890123456 |
cluster_id |
cadena | Identificador del clúster para el que está asociado este registro. | 0000-123456-crmpt124 |
cluster_name |
cadena | Nombre del clúster definido por el usuario. | My cluster |
owned_by |
cadena | Nombre de usuario del propietario del clúster. El valor predeterminado es el creador del clúster, pero se puede cambiar a través de la API de clústeres. | sample_user@email.com |
create_time |
timestamp | Marca de tiempo del cambio a esta definición de proceso. | 2023-01-09 11:00:00.000 |
delete_time |
timestamp | Marca de tiempo de cuándo se eliminó el clúster. El valor es null si el clúster no se elimina. |
2023-01-09 11:00:00.000 |
driver_node_type |
cadena | Nombre del tipo de nodo de controlador. Esto coincide con el nombre de tipo de instancia del proveedor de nube. | Standard_D16s_v3 |
worker_node_type |
cadena | Nombre del tipo de nodo de trabajo. Esto coincide con el nombre de tipo de instancia del proveedor de nube. | Standard_D16s_v3 |
worker_count |
bigint | Número de trabajadores. Se define solo para clústeres de tamaño fijo. | 4 |
min_autoscale_workers |
bigint | Número mínimo establecido de trabajos. Este campo solo es válido para clústeres de escalado automático. | 1 |
max_autoscale_workers |
bigint | Número máximo de trabajos. Este campo solo es válido para clústeres de escalado automático. | 1 |
auto_termination_minutes |
bigint | Duración de la autoterminación configurada. | 120 |
enable_elastic_disk |
boolean | Estado de habilitación del disco de escalado automático. | true |
tags |
map | Etiquetas definidas por el usuario para el clúster (no incluye etiquetas predeterminadas). | {"ResourceClass":"SingleNode"} |
cluster_source |
string | Indica el creador del clúster: UI , API , JOB , etc. |
UI |
init_scripts |
array | Conjunto de rutas de acceso para scripts de inicialización. | "/Users/example@email.com /files/scripts/install-python-pacakges.sh" |
aws_attributes |
struct | Configuración específica de AWS. | null |
azure_attributes |
struct | Configuración específica de Azure. | { "first_on_demand": "0", "availability": "ON_DEMAND_AZURE", "spot_bid_max_price": "—1" } |
gcp_attributes |
struct | Configuración específica de GCP. Este campo estará vacío. | null |
driver_instance_pool_id |
string | Identificador del grupo de instancias si el controlador está configurado sobre un grupo de instancias. | 1107-555555-crhod16-pool-DIdnjazB |
worker_instance_pool_id |
cadena | Identificador del grupo de instancias si el trabajo está configurado sobre un grupo de instancias. | 1107-555555-crhod16-pool-DIdnjazB |
dbr_version |
cadena | Databricks Runtime del clúster. | 14.x-snapshot-scala2.12 |
change_time |
timestamp | Marca de tiempo del cambio en la definición de proceso. | 2023-01-09 11:00:00.000 |
change_date |
date | Fecha de cambio. Se usa para la retención. | 2023-01-09 |
Esquema de tabla de tipos de nodos
La tabla de tipos de nodos captura los tipos de nodos disponibles actualmente con su información básica de hardware.
Ruta de acceso de tabla: esta tabla del sistema se encuentra en system.compute.node_types
.
Nombre de la columna | Tipo de datos | Descripción | Ejemplo |
---|---|---|---|
account_id |
cadena | Identificador de la cuenta donde se creó este clúster. | 23e22ba4-87b9-4cc2-9770-d10b894b7118 |
node_type |
cadena | Identificador único para este tipo de nodo. | Standard_D16s_v3 |
core_count |
doble | Número de vCPU de la instancia. | 48.0 |
memory_mb |
long | Memoria total de la instancia. | 393216 |
gpu_count |
long | Número de GPU de la instancia. | 0 |
Esquema de tabla de escala de tiempo de nodo
La tabla de escala de tiempo del nodo captura los datos de uso de recursos de nivel de nodo en granularidad de minuto. Cada registro contiene datos durante un minuto determinado de tiempo por instancia.
Ruta de acceso de tabla: esta tabla del sistema se encuentra en system.compute.node_timeline
.
Nombre de la columna | Tipo de datos | Descripción | Ejemplo |
---|---|---|---|
account_id |
string | Identificador de la cuenta donde se ejecuta este recurso de proceso. | 23e22ba4-87b9-4cc2-9770-d10b894b7118 |
workspace_id |
string | Identificador del área de trabajo donde se ejecuta este recurso de proceso. | 1234567890123456 |
cluster_id |
string | Identificador del recurso de proceso. | 0000-123456-crmpt124 |
instance_id |
string | Identificador de la instancia específica. | i-1234a6c12a2681234 |
start_time |
timestamp | Hora de inicio del registro en UTC. | 2024-07-16T12:00:00Z |
end_time |
timestamp | Hora de finalización del registro en UTC. | 2024-07-16T13:00:00Z |
driver |
boolean | Si la instancia es un controlador o un nodo de trabajo. | true |
cpu_user_percent |
doble | Porcentaje de tiempo que la CPU pasó en userland. | 34.76163817234407 |
cpu_system_percent |
doble | Porcentaje de tiempo que la CPU pasó en el kernel. | 1.0895310279488264 |
cpu_wait_percent |
doble | Porcentaje de tiempo que la CPU ha dedicado a esperar la E/S. | 0.03445157400629276 |
mem_used_percent |
doble | Porcentaje de la memoria del proceso que se usó durante el período de tiempo (incluida la memoria usada por los procesos en segundo plano que se ejecutan en el proceso). | 45.34858216779041 |
mem_swap_percent |
doble | Porcentaje de uso de memoria que se atribuye al intercambio de memoria. | 0.014648443087939 |
network_sent_bytes |
bigint | Número de bytes enviados en el tráfico de red. | 517376 |
network_received_bytes |
bigint | Número de bytes recibidos del tráfico de red. | 179234 |
disk_free_bytes_per_mount_point |
map | Uso del disco agrupado por punto de montaje. Este es el almacenamiento efímero aprovisionado solo mientras se ejecuta el proceso. | {"/var/lib/lxc":123455551234,"/": 123456789123,"/local_disk0":123412341234} |
node_type |
string | Nombre del tipo de nodo. Esto coincidirá con el nombre de tipo de instancia del proveedor de nube. | Standard_D16s_v3 |
Restricciones conocidas
- Los recursos de proceso que se marcaron como eliminados antes del 23 de octubre de 2023 no aparecen en la tabla de clústeres. Esto puede dar lugar a combinaciones de la tabla
system.billing.usage
que no coincidan con los registros de la tabla de clústeres. Se han rellenado todos los recursos de proceso activos. - Estas tablas solo incluyen registros para el proceso de todos los fines y trabajos. No contienen registros para el proceso sin servidor, el proceso delta Live Tables ni los almacenes de SQL.
- Es posible que los nodos que se ejecutan durante menos de 10 minutos no aparezcan en la tabla
node_timeline
.
Consultas de ejemplo
Puede usar las siguientes consultas de ejemplo para responder a preguntas comunes:
- Unión de registros de clústeres con los registros de facturación más recientes
- Costos de atributo al propietario del clúster
- Identificación de los recursos de proceso con el uso medio más alto y el uso máximo
Nota:
Algunos de estos ejemplos unen la tabla de clúster con la tabla system.billing.usage
. Dado que los registros de facturación son entre regiones y registros específicos de clústeres, los registros de facturación solo coinciden con los registros de clúster de la región en la que se consulta. Para ver los registros de otra región, ejecute la consulta en esa región.
Unión de registros de clústeres con los registros de facturación más recientes
Esta consulta puede ayudarle a comprender el gasto a lo largo del tiempo. Una vez que actualice usage_start_time
al período de facturación más reciente, toma las actualizaciones más recientes de los registros de facturación para unirse a los datos de clústeres.
Cada registro está asociado al propietario del clúster durante esa ejecución concreta. Por lo tanto, si cambia el propietario del clúster, los costos se acumulan al propietario correcto en función de cuándo se usó el clúster.
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;
Costos de atributo al propietario del clúster
Si quiere reducir los costos de proceso, puede usar esta consulta para averiguar qué propietarios de clúster de la cuenta usan la mayoría de las DBU.
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;
Identificación de los recursos de proceso con el uso medio más alto y el uso máximo
Identifique el proceso de uso completo y los trabajos que tienen el uso medio de CPU más alto y el uso máximo de CPU.
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;