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

Visualização

Este recurso está em visualização pública.

Este artigo fornece aos senhores um guia de referência para as tabelas do sistema compute. O senhor pode usar essas tabelas para monitorar a atividade e as métricas de todos os propósitos e do Job compute em seu account:

  • clusters: Registra as configurações do compute no seu account.

  • node_types: Inclui um único registro para cada um dos tipos de nós atualmente disponíveis, incluindo informações de hardware.

  • node_timeline: Inclui registros minuto a minuto das métricas de utilização do seu compute.

Esquema de tabela de cluster

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

A tabela do sistema de clusters está localizada em system.compute.clusters e tem o seguinte esquema:

Nome da coluna

Tipo de dados

Descrição

Exemplo

account_id

string

ID do site account onde este cluster foi criado.

23e22ba4-87b9- 4cc2-9770-d10b894b7118

workspace_id

string

ID do site workspace onde este cluster foi criado.

1234567890123456

cluster_id

string

ID do cluster ao qual esse registro está associado.

0000-123456-xxxxxxxx

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. por padrão para o criador do cluster, mas pode ser alterado por meio do clusters API.

sample_user@email.com

create_time

timestamp

Registro de data e hora da alteração desta definição do site compute.

2023-01-09 11:00:00.000

delete_time

timestamp

Registro de data e 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ó de driver. Isso corresponde ao nome do tipo de instância do provedor cloud.

i3.xlarge

worker_node_type

string

worker nome do tipo de nó. Isso corresponde ao nome do tipo de instância do provedor cloud.

i3.xlarge

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 definido. Esse campo é válido somente para autoscale clusters.

1

max_autoscale_workers

bigint

O número máximo de trabalhadores definido. Esse campo é válido somente para autoscale clusters.

1

auto_termination_minutes

bigint

A duração configurada da autoterminação.

120

enable_elastic_disk

boolean

Status de ativação do disco de autoescala.

true

tags

map

Definido pelo usuário tags para o cluster (não inclui default tags).

{"ResourceClass":"SingleNode"}

cluster_source

string

Indica o criador do cluster: UI, API, JOB, etc.

UI

init_scripts

matriz

Conjunto de caminhos para o script de inicialização.

"/Users/example@email.com /files/scripts/install-python-pacakges.sh"

aws_attributes

struct

Configurações específicas do AWS.

{ "ebs_volume_count": null, "availability": "SPOT_WITH_FALLBACK", "first_on_demand": "0", "spot_bid_price_percent": "100" }

azure_attributes

struct

Configurações específicas do Azure.

null

gcp_attributes

struct

Configurações específicas do GCP. Esse campo estará vazio.

null

driver_instance_pool_id

string

ID do pool de instâncias se o driver estiver configurado em um pool de instâncias.

1107-555555-crhod16-pool-DIdnjazB

worker_instance_pool_id

string

ID da instância pool se a worker estiver configurada em cima de uma instância pool.

1107-555555-crhod16-pool-DIdnjazB

dbr_version

string

O site Databricks Runtime do cluster.

14.x-snapshot-scala2.12

change_time

timestamp

Registro de data e hora da alteração na definição do site compute.

2023-01-09 11:00:00.000

change_date

Data

Data de alteração. Usado para retenção.

2023-01-09

Esquema da tabela de tipos de nós

A tabela de tipos de nós captura os tipos de nós atualmente disponíveis com suas informações básicas de hardware. A tabela do sistema de tipos de nós está localizada em system.compute.node_types e tem o seguinte esquema:

Nome da coluna

Tipo de dados

Descrição

Exemplo

account_id

string

ID do site account onde este cluster foi criado.

23e22ba4-87b9-4cc2-9770-d10b894b7118

node_type_name

string

Identificador exclusivo do tipo de nó.

i3.xlarge

core_count

double

Número de vCPUs para a instância.

48.0

memory_mb

long

Memória total da 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 recurso em nível de nó com granularidade de minutos. Cada registro contém dados para um determinado minuto de tempo por instância.

A tabela do sistema de linha do tempo do nó está localizada em system.compute.node_timeline e tem o seguinte esquema:

Nome da coluna

Tipo de dados

Descrição

Exemplo

account_id

string

ID do site account onde esse recurso compute está sendo executado.

23e22ba4-87b9-4cc2-9770-d10b894b7118

workspace_id

string

ID do site workspace onde esse recurso compute está sendo executado.

1234567890123456

cluster_id

string

ID do recurso compute.

0000-123456-crmpt124

instance_id

string

ID para a instância específica.

i-1234a6c12a2681234

start_time

timestamp

começar o tempo para o registro.

2024-07-16T12:00:00Z

end_time

timestamp

Hora de término para registro.

2024-07-16T13:00:00Z

driver

boolean

Se a instância é um driver ou um nó worker.

true

cpu_user_percent

double

Porcentagem do tempo que a CPU passou no espaço do usuário.

34.76163817234407

cpu_system_percent

double

Porcentagem do tempo que a CPU passou no kernel.

1.0895310279488264

cpu_wait_percent

double

Porcentagem do tempo que a CPU gastou esperando por E/S.

0.03445157400629276

mem_used_percent

double

Porcentagem da memória do site computeque foi usada durante o período (incluindo a memória usada por processos em segundo plano em execução no site compute).

45.34858216779041

mem_swap_percent

double

Porcentagem de uso de memória atribuída à memória swap.

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. Esse provisionamento de armazenamento é efêmero e ocorre somente enquanto o site compute estiver 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 cloud.

i3.xlarge

Limitações conhecidas

  • compute Os recursos que foram marcados como excluídos antes de 23 de outubro de 2023 não aparecem na tabela clusters. Isso pode fazer com que a união da tabela system.billing.usage não corresponda aos registros da tabela clusters. Todos os recursos ativos do compute foram preenchidos.

  • Essas tabelas incluem apenas registros para todos os fins e para o Job compute. Eles não contêm registros para os armazéns serverless compute, Delta Live Tables compute, ou SQL.

  • Os nós que foram executados por menos de 10 minutos podem não aparecer na tabela node_timeline.

Consultas de amostra

O senhor pode usar os seguintes exemplos de consultas para responder a perguntas comuns:

Observação

Alguns desses exemplos join a tabela cluster com a tabela system.billing.usage. Como os registros de faturamento são inter-regionais e os registros de cluster são específicos da região, os registros de faturamento só correspondem aos registros de cluster da região em que o senhor está consultando. Para ver os registros de outra região, execute a consulta nessa região.

Unir os registros de cluster com os registros de faturamento mais recentes

Essa consulta pode ajudar o senhor a entender os gastos ao longo do tempo. Quando o usuário atualiza usage_start_time para o período de faturamento mais atual, ele obtém as atualizações mais recentes dos registros de faturamento para join 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 transferidos para o proprietário correto com base na época em que 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 o senhor deseja reduzir os custos do compute, pode usar essa consulta para descobrir quais proprietários do cluster no seu account 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;

Identifique o recurso compute com a maior média de utilização e pico de utilização

Identifique o site compute que tem a maior média de utilização 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;