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

Visualização

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

Este artigo fornece ao senhor uma visão geral das tabelas do sistema compute, incluindo os esquemas e exemplos de consultas. Há duas tabelas de sistema de cluster disponíveis no momento: clusters e node_types.

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 cluster ao longo do tempo para todos os fins e para o Job clusters.

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, DLT, 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

Limitações conhecidas

  • clusters 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 cluster da tabela clusters. Todos os clusters ativos foram preenchidos.

  • A tabela clusters inclui apenas registros para all-purpose e Job clusters. Ele não contém o site Delta Live Tables clusters ou o depósito SQL.

Consultas de amostra

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

Observação

Esses 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 de um cluster 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;