Referência do sistema de computação tables
Importante
Este sistema table está na Pré-visualização Pública. Para aceder ao table, o schema tem de estar ativado no seu system
catalog. Para obter mais informações, consulte Habilitar os esquemas do sistema table.
Este artigo fornece um guia de referência para o sistema de computação tables. Você pode usar esses tables para monitorizar a atividade e as métricas de computação geral e de processos na sua conta.
-
clusters
: Regista as configurações de computação na sua conta. -
node_types
: Inclui um único registro para cada um dos tipos de nó atualmente disponíveis, incluindo informações de hardware. -
node_timeline
: Inclui registros minuto a minuto das métricas de utilização da computação.
Cluster tableschema
O cluster table é uma dimensão de mudança lenta table que contém o histórico completo das configurações de computação ao longo do tempo para computação geral e de trabalhos.
Table caminho: Este sistema table está localizado em system.compute.clusters
Column nome | Tipo de dados | Description | Exemplo |
---|---|---|---|
account_id |
string | ID da conta where este cluster foi criado. | 23e22ba4-87b9- 4cc2-9770-d10b894b7118 |
workspace_id |
string | ID do espaço de trabalho onde este cluster where foi criado. | 1234567890123456 |
cluster_id |
string | ID do cluster ao qual esse registro está associado. | 0000-123456-crmpt124 |
cluster_name |
string | Nome definido pelo usuário para o cluster. | My cluster |
owned_by |
string | Nome de usuário do proprietário do cluster. O padrão é o criador do cluster, mas pode ser alterado por meio da API de Clusters. | sample_user@email.com |
create_time |
carimbo de data/hora | Carimbo de data/hora da alteração a esta definição de computação. | 2023-01-09 11:00:00.000 |
delete_time |
carimbo de data/hora | Carimbo de data/hora de quando o cluster foi excluído. O valor é null se o cluster não for excluído. |
2023-01-09 11:00:00.000 |
driver_node_type |
string | Nome do tipo de nó do driver. Isso corresponde ao nome do tipo de instância do provedor de nuvem. | Standard_D16s_v3 |
worker_node_type |
string | Nome do tipo de nó de trabalho. Isso corresponde ao nome do tipo de instância do provedor de nuvem. | Standard_D16s_v3 |
worker_count |
bigint | Número de trabalhadores. Definido apenas para clusters de tamanho fixo. | 4 |
min_autoscale_workers |
bigint | O número mínimo de trabalhadores de set. Este campo é válido apenas para clusters de dimensionamento automático. | 1 |
max_autoscale_workers |
bigint | O número máximo de trabalhadores set. Este campo é válido apenas para clusters de dimensionamento automático. | 1 |
auto_termination_minutes |
bigint | A duração do encerramento automático configurado. | 120 |
enable_elastic_disk |
boolean | Status de ativação de disco de dimensionamento automático. | true |
tags |
map | Tags definidas pelo usuário para o cluster (não inclui tags padrão). | {"ResourceClass":"SingleNode"} |
cluster_source |
string | Indica o criador do cluster: UI , API , JOB , etc. |
UI |
init_scripts |
matriz | Set de caminhos para scripts init. | "/Users/example@email.com /files/scripts/install-python-pacakges.sh" |
aws_attributes |
estruturar | Configurações específicas da AWS. | null |
azure_attributes |
estruturar | Configurações específicas do Azure. | { "first_on_demand": "0", "availability": "ON_DEMAND_AZURE", "spot_bid_max_price": "—1" } |
gcp_attributes |
estruturar | Configurações específicas do GCP. Este campo estará vazio. | null |
driver_instance_pool_id |
string | ID do pool de instâncias se o driver estiver configurado sobre um pool de instâncias. | 1107-555555-crhod16-pool-DIdnjazB |
worker_instance_pool_id |
string | ID do Pool de Instâncias se o trabalhador estiver configurado sobre um pool de instâncias. | 1107-555555-crhod16-pool-DIdnjazB |
dbr_version |
string | O Databricks Runtime do cluster. | 14.x-snapshot-scala2.12 |
change_time |
carimbo de data/hora | Carimbo de data/hora da alteração na definição de computação. | 2023-01-09 11:00:00.000 |
change_date |
data | Data de alteração. Usado para retenção. | 2023-01-09 |
tipos de nós tableschema
O tipo de nó table captura os tipos de nó atualmente disponíveis com suas informações básicas de hardware.
Table caminho: Este sistema table está localizado em system.compute.node_types
.
Column nome | Tipo de dados | Description | Exemplo |
---|---|---|---|
account_id |
string | ID da conta where este cluster foi criado. | 23e22ba4-87b9-4cc2-9770-d10b894b7118 |
node_type |
string | Exclusivo identifier para o tipo de nó. | Standard_D16s_v3 |
core_count |
duplo | Número de vCPUs para a instância. | 48.0 |
memory_mb |
long | Memória total para a instância. | 393216 |
gpu_count |
long | Número de GPUs para a instância. | 0 |
Linha do tempo do nó tableschema
A linha temporal do nó table captura dados de utilização de recursos ao nível dos nós com uma granularidade de minuto. Cada registro contém dados para um determinado minuto de tempo por instância.
Table caminho: Este sistema table está localizado em system.compute.node_timeline
.
Column nome | Tipo de dados | Description | Exemplo |
---|---|---|---|
account_id |
string | ID da conta where este recurso de computação está em execução. | 23e22ba4-87b9-4cc2-9770-d10b894b7118 |
workspace_id |
string | ID do espaço de trabalho where este recurso de computação está em execução. | 1234567890123456 |
cluster_id |
string | ID do recurso de computação. | 0000-123456-crmpt124 |
instance_id |
string | ID para a instância específica. | i-1234a6c12a2681234 |
start_time |
carimbo de data/hora | Hora de início do registo em UTC. | 2024-07-16T12:00:00Z |
end_time |
carimbo de data/hora | Hora de fim do registo em UTC. | 2024-07-16T13:00:00Z |
driver |
boolean | Se a instância é um driver ou nó de trabalho. | true |
cpu_user_percent |
duplo | Percentagem de tempo que a CPU passou no userland. | 34.76163817234407 |
cpu_system_percent |
duplo | Porcentagem de tempo que a CPU passou no kernel. | 1.0895310279488264 |
cpu_wait_percent |
duplo | Percentagem de tempo que a CPU passou à espera de E/S. | 0.03445157400629276 |
mem_used_percent |
duplo | Porcentagem da memória do computador que foi usada durante o período de tempo (incluindo a memória usada por processos em segundo plano em execução na computação). | 45.34858216779041 |
mem_swap_percent |
duplo | Porcentagem de uso de memória atribuída à troca de memória. | 0.014648443087939 |
network_sent_bytes |
bigint | O número de bytes enviados no tráfego de rede. | 517376 |
network_received_bytes |
bigint | O número de bytes recebidos do tráfego de rede. | 179234 |
disk_free_bytes_per_mount_point |
map | A utilização do disco agrupada por ponto de montagem. Trata-se de um armazenamento efêmero provisionado apenas enquanto a computação está em execução. | {"/var/lib/lxc":123455551234,"/": 123456789123,"/local_disk0":123412341234} |
node_type |
string | O nome do tipo de nó. Isso corresponderá ao nome do tipo de instância do provedor de nuvem. | Standard_D16s_v3 |
Limitações conhecidas
- Os recursos de computação marcados como excluídos antes de 23 de outubro de 2023 não aparecem nos clusters table. Isso pode resultar em junções dos registros no
system.billing.usage
table que não correspondem nos clusters table. Todos os recursos de computação ativos foram preenchidos. - Esses tables incluem apenas registos para computação geral e de tarefas. Eles não contêm registros para computação sem servidor, computação Delta Live Tables ou armazéns SQL.
- Os nós que funcionaram por menos de 10 minutos podem não aparecer no
node_timeline
table.
Consultas de amostra
Você pode usar as seguintes consultas de exemplo para responder a perguntas comuns:
- Join registros de cluster com os registros de faturamento mais recentes
- Atribuir custos ao proprietário do cluster
- Identificar os recursos de computação com maior utilização média e pico de utilização
Nota
Alguns desses exemplos join o cluster table com o system.billing.usage
table. Como os registros de faturamento são inter-regionais e os registros de cluster são sepcificos por região, os registros de faturamento correspondem apenas aos registros de cluster para a região na qual você está consultando. Para ver registros de outra região, execute a consulta nessa região.
Join registos de cluster com os registos de faturamento mais recentes
Esta consulta pode ajudá-lo a compreender os gastos ao longo do tempo. Depois de update o usage_start_time
para o período de faturação mais atual, o sistema captura as atualizações mais recentes dos registos de faturação para join nos dados em clusters.
Cada registro é associado ao proprietário do cluster durante essa execução específica. Portanto, se o proprietário do cluster mudar, os custos serão acumulados para o proprietário correto com base em quando o cluster foi usado.
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;
Atribuir custos ao proprietário do cluster
Se você estiver procurando reduzir os custos de computação, poderá usar essa consulta para descobrir quais proprietários de cluster em sua conta estão usando mais DBUs.
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;
Identificar os recursos de computação com maior utilização média e pico de utilização
Identifique a computação polivalente e de tarefas que tem a maior utilização média da CPU e a maior utilização da CPU de pico.
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;