Compartilhar via


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

Este artigo fornece um guia de referência para as tabelas do sistema de computação. Você pode usar essas tabelas para monitorar a atividade e as métricas de computação sem servidor, computação de trabalhos e computação do Lakeflow Spark Declarative Pipelines em sua conta. As tabelas de computação incluem:

  • clusters: registra as configurações de computação em sua conta.
  • node_types: inclui um só registro para cada um dos tipos de nó disponíveis no momento, incluindo informações de hardware.
  • node_timeline: inclui registros minuto a minuto das métricas de utilização da computação.

Esquema de tabela de cluster

A tabela de cluster é uma tabela de dimensão lentamente mutável que contém o histórico completo das configurações de computação ao longo do tempo para computação de uso geral, computação de trabalhos, computação do Lakeflow Spark Declarative Pipelines e computação de manutenção de pipeline.

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

Nome da coluna Tipo de dados Descrição Exemplo
account_id cadeia ID da conta em que esse cluster foi criado. 23e22ba4-87b9-
4cc2-9770-d10b894b7118
workspace_id cadeia ID do workspace em que esse cluster foi criado. 1234567890123456
cluster_id cadeia ID do cluster para o qual esse registro está associado. 0000-123456-crmpt124
cluster_name cadeia Nome definido pelo usuário para o cluster. My cluster
owned_by cadeia Nome de usuário do proprietário do cluster. O padrão é o criador do cluster, mas isso 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 para essa 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 será null se o cluster não for excluído. 2023-01-09 11:00:00.000
driver_node_type cadeia 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 cadeia 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. Esse campo é válido apenas para clusters de dimensionamento automático. 1
max_autoscale_workers bigint O número máximo definido de trabalhos. Esse campo é válido apenas para clusters de dimensionamento automático. 1
auto_termination_minutes bigint A duração da autoterminação configurada. 120
enable_elastic_disk booliano Status de habilitação do disco de dimensionamento automático. true
tags mapa Marcas definidas pelo usuário para o cluster (não incluem marcas padrão). {"ResourceClass":"SingleNode"}
cluster_source cadeia Origem do cluster. Os valores UI ou API somente se aplicam à computação de propósito geral. Toda a computação do trabalho é registrada como JOB. Os pipelines são PIPELINE ou PIPELINE_MAINTENANCE. UI
init_scripts matriz Conjunto de caminhos para scripts de inicialização. "/Users/example@email.com
/files/scripts/install-python-pacakges.sh"
aws_attributes struct Configurações específicas do AWS. null
azure_attributes struct Configurações específicas do Azure. {
"first_on_demand": "0",
"availability": "ON_DEMAND_AZURE",
"spot_bid_max_price": "—1"
}
gcp_attributes struct Configurações específicas do GCP. Esse campo estará vazio. null
driver_instance_pool_id cadeia ID do pool de instâncias se o driver estiver configurado na parte superior de um pool de instâncias. 1107-555555-crhod16-pool-DIdnjazB
worker_instance_pool_id cadeia ID do pool de instâncias se o trabalho estiver configurado na parte superior de um pool de instâncias. 1107-555555-crhod16-pool-DIdnjazB
dbr_version cadeia O Databricks Runtime do cluster. 14.x-snapshot-scala2.12
change_time carimbo de data/hora Carimbo de data/hora da alteração para a definição de computação. 2023-01-09 11:00:00.000
change_date data Alterar data. Usado para retenção. 2023-01-09
data_security_mode cadeia O modo de acesso do recurso de computação. Consulte a referência do modo de acesso. USER_ISOLATION
policy_id cadeia ID da política de computação do cluster, se aplicável. 1234F35636110A5B

Referência do modo de acesso

A tabela a seguir converte os valores possíveis contidos na data_security_mode coluna. A coluna também pode ser null para determinados pipelines e clusters criados pelo sistema.

Valor Modo de acesso
USER_ISOLATION Standard
SINGLE_USER Dedicado

Os modos de acesso herdados são registrados com os seguintes valores:

Valor Modo de acesso
LEGACY_PASSTHROUGH Repasse de credenciais (compartilhada)
LEGACY_SINGLE_USER Passagem de credencial (usuário único)
LEGACY_TABLE_ACL Personalizado
NONE Sem isolamento compartilhado

Esquema de tabela de tipos de nó

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

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

Nome da coluna Tipo de dados Descrição Exemplo
account_id cadeia ID da conta em que esse cluster foi criado. 23e22ba4-87b9-4cc2-9770-d10b894b7118
node_type cadeia 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 Longo Memória total para a instância. 393216
gpu_count Longo Número de GPUs para a instância. 0

Esquema da tabela da 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 mínima. Cada registro contém dados para um determinado minuto de tempo por instância. Esta tabela captura cronogramas dos nós para a computação de uso geral, a computação de trabalhos, o Lakeflow Spark Declarative Pipelines e recursos de computação para manutenção de pipeline em sua conta.

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

Nome da coluna Tipo de dados Descrição Exemplo
account_id cadeia ID da conta em que esse recurso de computação está em execução. 23e22ba4-87b9-4cc2-9770-d10b894b7118
workspace_id cadeia ID do workspace em que esse recurso de computação está sendo executado. 1234567890123456
cluster_id cadeia ID do recurso de computação. 0000-123456-crmpt124
instance_id cadeia ID para a instância específica. i-1234a6c12a2681234
start_time carimbo de data/hora Hora de início do registro em UTC. 2024-07-16T12:00:00Z
end_time carimbo de data/hora Hora de término do registro em UTC. 2024-07-16T13:00:00Z
driver booliano Se a instância é um driver ou um nó de trabalho. true
cpu_user_percent duplo Porcentagem de tempo que a CPU passou no espaço do usuário. 34.76163817234407
cpu_system_percent duplo Porcentagem de tempo que a CPU passou no kernel. 1.0895310279488264
cpu_wait_percent duplo Porcentagem de tempo que a CPU gastou aguardando E/S. 0.03445157400629276
mem_used_percent duplo Porcentagem da memória da computação 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 mapa A utilização do disco agrupada por ponto de montagem. Esse é o armazenamento temporário provisionado somente enquanto a computação está em execução. {"/var/lib/lxc":123455551234,"/":
123456789123,"/local_disk0":123412341234}
node_type cadeia 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 que foram 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 tabela system.billing.usage não correspondentes aos registros na tabela de clusters. Todos os recursos de computação ativos foram preenchidos.
  • Essas tabelas incluem apenas registros para a Computação para Todas as Finalidades e a Computação de Trabalhos. Eles não contêm registros para computação sem servidor, para o Lakeflow Spark Declarative Pipelines ou para SQL Warehouses.
  • Os nodes que rodaram por menos de 10 minutos podem não aparecer na tabela node_timeline.

Consultas de exemplo

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

Observação

Alguns desses exemplos unem a tabela de cluster com a tabela system.billing.usage. Como os registros de cobrança são entre regiões e os registros de cluster são de regiões específicas, os registros de cobrança correspondem apenas aos registros de cluster da região em que você está consultando. Para ver registros de outra região, execute a consulta nessa região.

Unir registros de cluster com os registros de cobrança mais recentes

Essa consulta pode ajudá-lo a entender os gastos ao longo do tempo. Ao atualizar o usage_start_time para o período de cobrança mais atual, ele captura as atualizações mais recentes dos registros de cobrança para incorporar dados em clusters.

Cada registro é associado ao proprietário do cluster durante essa execução específica. Portanto, se o proprietário do cluster for alterado, 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;

Identificar os recursos de computação com a maior utilização média e pico de utilização

Identifique a computação para todas as finalidades e trabalhos que têm a maior utilização média da CPU e o maior pico de utilização da 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;