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 |
---|---|---|---|
|
string |
ID do site account onde este cluster foi criado. |
|
|
string |
ID do site workspace onde este cluster foi criado. |
|
|
string |
ID do cluster ao qual esse registro está associado. |
|
|
string |
Nome definido pelo usuário para o cluster. |
|
|
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. |
|
|
timestamp |
Registro de data e hora da alteração desta definição do site compute. |
|
|
timestamp |
Registro de data e hora de quando o cluster foi excluído. O valor é |
|
|
string |
Nome do tipo de nó de driver. Isso corresponde ao nome do tipo de instância do provedor cloud. |
|
|
string |
worker nome do tipo de nó. Isso corresponde ao nome do tipo de instância do provedor cloud. |
|
|
bigint |
Número de trabalhadores. Definido apenas para clusters de tamanho fixo. |
|
|
bigint |
O número mínimo de trabalhadores definido. Esse campo é válido somente para autoscale clusters. |
|
|
bigint |
O número máximo de trabalhadores definido. Esse campo é válido somente para autoscale clusters. |
|
|
bigint |
A duração configurada da autoterminação. |
|
|
boolean |
Status de ativação do disco de autoescala. |
|
|
map |
Definido pelo usuário tags para o cluster (não inclui default tags). |
|
|
string |
Indica o criador do cluster: |
|
|
matriz |
Conjunto de caminhos para o script de inicialização. |
|
|
struct |
Configurações específicas do AWS. |
|
|
struct |
Configurações específicas do Azure. |
|
|
struct |
Configurações específicas do GCP. Esse campo estará vazio. |
|
|
string |
ID do pool de instâncias se o driver estiver configurado em um pool de instâncias. |
|
|
string |
ID da instância pool se a worker estiver configurada em cima de uma instância pool. |
|
|
string |
O site Databricks Runtime do cluster. |
|
|
timestamp |
Registro de data e hora da alteração na definição do site compute. |
|
|
Data |
Data de alteração. Usado para retenção. |
|
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 |
---|---|---|---|
|
string |
ID do site account onde este cluster foi criado. |
|
|
string |
Identificador exclusivo do tipo de nó. |
|
|
double |
Número de vCPUs para a instância. |
|
|
long |
Memória total da instância. |
|
|
long |
Número de GPUs para a instância. |
|
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;