Referência de tabelas do sistema de computação

Importante

Esta tabela do sistema está em Visualização pública. Para acessar a tabela, o esquema deve ser habilitado em seu system catálogo. Para obter mais informações, consulte Habilitar esquemas de tabela do sistema.

Este artigo fornece um guia de referência para as tabelas do sistema de computação. Você pode usar estas tabelas para monitorar a atividade e as métricas de computação polivalente e de trabalhos em 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.

Esquema da tabela de cluster

A tabela de cluster é uma tabela de dimensões de mudança lenta que contém o histórico completo de configurações de computação ao longo do tempo para computação para todos os fins e trabalhos.

Caminho da tabela: Esta tabela do sistema está localizada em system.compute.clusters

Nome da coluna Tipo de dados Description Exemplo
account_id string ID da conta onde este cluster foi criado. 23e22ba4-87b9-
4cc2-9770-d10b894b7118
workspace_id string ID do espaço de trabalho onde este cluster 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 definido de trabalhadores. Este campo é válido apenas para clusters de dimensionamento automático. 1
max_autoscale_workers bigint O número máximo definido de trabalhadores. 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 Conjunto 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

Esquema de tabela de tipos de nó

A tabela de tipos de nó captura os tipos de nó atualmente disponíveis com suas informações básicas de hardware.

Caminho da tabela: Esta tabela do sistema está localizada em system.compute.node_types.

Nome da coluna Tipo de dados Description Exemplo
account_id string ID da conta onde este cluster foi criado. 23e22ba4-87b9-4cc2-9770-d10b894b7118
node_type string Identificador exclusivo 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

Esquema da tabela de linha do tempo do nó

A tabela de linha do tempo do nó captura dados de utilização de recursos no nível do nó com granularidade de minuto. Cada registro contém dados para um determinado minuto de tempo por instância.

Caminho da tabela: Esta tabela do sistema está localizada em system.compute.node_timeline.

Nome da coluna Tipo de dados Description Exemplo
account_id string ID da conta onde este recurso de computação está sendo executado. 23e22ba4-87b9-4cc2-9770-d10b894b7118
workspace_id string ID do espaço de trabalho onde este recurso de computação está sendo executado. 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 na tabela de clusters. Isso pode resultar em junções da system.billing.usage tabela que não correspondem aos registros na tabela de clusters. Todos os recursos de computação ativos foram preenchidos.
  • Essas tabelas incluem apenas registros para computação de todos os fins e trabalhos. Eles não contêm registros para computação sem servidor, computação Delta Live Tables ou armazéns SQL.
  • Os nós executados por menos de 10 minutos podem não aparecer na node_timeline tabela.

Consultas de amostra

Você pode usar as seguintes consultas de exemplo para responder a perguntas comuns:

Nota

Alguns desses exemplos unem a tabela de cluster com a system.billing.usage tabela. 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.

Junte-se a registos de cluster com os registos de faturação mais recentes

Esta consulta pode ajudá-lo a compreender os gastos ao longo do tempo. Depois de atualizar o usage_start_time para o período de faturamento mais atual, ele pega as atualizações mais recentes dos registros de faturamento para ingressar nos dados de 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;