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

Visualização

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

Este artigo fornece uma visão geral das tabelas do sistema compute , incluindo os esquemas e exemplos query. Existem duas tabelas de sistema clusters disponíveis agora: clusters e node_types.

esquema de tabela clusters

A tabela de cluster é uma tabela de dimensão de mudança lenta que contém a história completa das configurações de cluster ao longo do tempo para clusters multifuncionais e Job .

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

Nome da coluna

Tipo de dados

Descrição

Exemplo

account_id

string

ID da account onde este clusters foi criado.

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

workspace_id

string

ID do espaço de trabalho onde este clusters foi criado.

1234567890123456

cluster_id

string

ID dos clusters aos quais esse registro está associado.

0000-123456-xxxxxxxx

cluster_name

string

Nome definido pelo usuário para os clusters.

My cluster

owned_by

string

Nome de usuário do proprietário dos clusters . default é o criador do cluster, mas pode ser alterado por meio da API Clusters.

sample_user@email.com

create_time

timestamp

Carimbo de data/hora da alteração nesta definição compute .

2023-01-09 11:00:00.000

delete_time

timestamp

Carimbo de data/hora de quando os clusters foram excluídos. O valor será null se os clusters não forem excluídos.

2023-01-09 11:00:00.000

driver_node_type

string

Nome do tipo de nó do driver. Corresponde ao nome do tipo de instância do provedor clouds .

i3.xlarge

worker_node_type

string

nome do tipo de nó worker . Corresponde ao nome do tipo de instância do provedor clouds .

i3.xlarge

worker_count

grande

Número de worker. Definido apenas para clusters de tamanho fixo.

4

min_autoscale_workers

grande

O número mínimo definido de worker. Este campo é válido apenas para clusters autoscale .

1

max_autoscale_workers

grande

O número máximo definido de worker. Este campo é válido apenas para clusters autoscale .

1

auto_termination_minutes

grande

A duração da terminação automática configurada.

120

enable_elastic_disk

boolean

status de ativação do disco autoscale .

true

tags

map

Tags definidas pelo usuário para os clusters (não inclui tags default ).

{"ResourceClass":"SingleNode"}

cluster_source

string

Indica o criador dos clusters: UI, API, DLT, JOB, etc.

UI

init_scripts

variedade

Conjunto de caminhos para init script.

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

aws_attributes

struct

Configurações específicas da 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. 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 worker estiver configurado sobre um pool de instâncias.

1107-555555-crhod16-pool-DIdnjazB

dbr_version

string

O Databricks Runtime dos clusters.

14.x-snapshot-scala2.12

change_time

timestamp

Carimbo de data/hora da alteração na definição compute .

2023-01-09 11:00:00.000

change_date

Data

Alterar data. 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 tipo de nó está localizada em system.compute.node_types e possui o seguinte esquema:

Nome da coluna

Tipo de dados

Descrição

Exemplo

account_id

string

ID da account onde este clusters foi criado.

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

node_type_name

string

Identificador exclusivo para tipo de nó.

i3.xlarge

core_count

double

Número de vCPUs da instância.

48.0

memory_mb

long

Memória total da instância.

393216

gpu_count

long

Número de GPUs da instância.

0

Limitações conhecidas

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

  • A tabela de clusters inclui apenas registros para clusters multifuncionais e Job . Ele não contém clusters Delta Live Tables ou SQL warehouse.

queryde exemplo

Você pode usar o seguinte exemplo query para responder perguntas comuns sobre clusters:

Observação

Esses exemplos join a tabela clusters à tabela system.billing.usage. Como os registros de cobrança são interregionais e os registros clusters são específicos da região, os registros de cobrança correspondem apenas aos registros clusters da região na qual você está consultando. Para ver registros de outra região, execute a query nessa região.

Junte registros clusters com os registros de faturamento mais recentes

Esta query pode ajudá-lo a entender os gastos ao longo do tempo. Depois que você atualizar o usage_start_time para o período de faturamento mais atual, ele obterá as atualizações mais recentes dos registros de faturamento para join aos dados dos clusters.

Cada registro está associado ao proprietário clusters durante essa execução específica. Portanto, se o proprietário clusters mudar, os custos serão acumulados para o proprietário correto com base em quando os clusters foram usados.

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 clusters ao proprietário dos clusters

Se você deseja reduzir os custos compute , poderá usar esta query para descobrir quais proprietários clusters em sua 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;