referência de tabelas do sistema de computação
Este artigo fornece um guia de referência para as tabelas do sistema compute . Você pode usar essas tabelas para monitorar a atividade e as métricas de compute clássica de uso geral, compute de Job e compute de pipeline declarativa LakeFlow Spark em sua account. Essas tabelas compute clássicas incluem:
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.instance_eventsCaptura as transições de estado de instâncias compute clássicas.instance_pools: Registra as configurações pool instâncias em sua account.
esquema de tabela de clustering
A tabela cluster é uma tabela de dimensões de alteração lenta que contém o histórico completo das configurações compute ao longo do tempo para compute de propósito geral, compute de tarefas, compute de pipeline declarativa LakeFlow Spark e compute de manutenção pipeline .
Caminho da tabela : Esta tabela do sistema está localizada em system.compute.clusters
Nome da coluna | Tipo de dados | Descrição | Exemplo |
|---|---|---|---|
| string | ID do site account onde esse clustering foi criado. |
|
| string | ID do site workspace onde esse clustering foi criado. |
|
| string | ID do clustering ao qual esse registro está associado. |
|
| string | Nome definido pelo usuário para o clustering. |
|
| string | Nome de usuário do proprietário do clustering. por padrão para o criador do clustering, mas pode ser alterado por meio do clustering API. |
|
| carimbo de data/hora | Registro de data e hora da alteração desta definição do site compute. |
|
| carimbo de data/hora | Registro de data e hora de quando o clustering foi excluído. O valor é |
|
| string | Nome do tipo de nó do driver. Isso corresponde ao nome do tipo de instância do provedor de nuvem. |
|
| string | nome do tipo de nó de trabalho. Isso corresponde ao nome do tipo de instância do provedor de nuvem. |
|
| bigint | Número de trabalhadores. Definido apenas para clustering de tamanho fixo. |
|
| bigint | O número mínimo de trabalhadores definido. Esse campo é válido somente para o clustering de autoescala. |
|
| bigint | O número máximo de trabalhadores definido. Esse campo é válido somente para o clustering de autoescala. |
|
| bigint | A duração configurada da autoterminação. |
|
| boolean | Status de ativação do disco de autoescala. |
|
| map | Tags definidas pelo usuário para o clustering (não inclui tags default ). |
|
| string | Origem do agrupamento. Os valores |
|
| matriz | Conjunto de caminhos para o script de inicialização. |
|
| struct | Configurações específicas do AWS. Esse campo ficará vazio. |
|
| struct | Configurações específicas do Azure. Esse campo ficará vazio. |
|
| struct | Configurações específicas do GCP. |
|
| string | ID do pool de instâncias se o driver estiver configurado em um pool de instâncias. |
|
| string | ID do pool de instâncias se o worker estiver configurado em cima de uma instância pool. |
|
| string | O endereço Databricks Runtime do agrupamento. |
|
| carimbo de data/hora | Registro de data e hora da alteração na definição do site compute. |
|
| Data | Alterar data. Usado para retenção. |
|
| string | O modo de acesso do recurso compute. Consulte Referência do modo de acesso. |
|
| string | ID da política compute do clustering, se aplicável. |
|
Referência do modo de acesso
A tabela a seguir traduz os valores possíveis contidos na coluna data_security_mode. A coluna também pode ser null para determinados pipelines e clusters criados pelo sistema.
Valor | Modo de acesso |
|---|---|
| Standard |
| Dedicado |
Os modos de acesso antigos são registrados com os seguintes valores:
Valor | Modo de acesso |
|---|---|
| Passagem de credenciais (compartilhada) |
| Passagem de credenciais (usuário único) |
| Personalizado |
| Nenhum isolamento compartilhado |
Esquema de 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.
Caminho da tabela : Essa tabela do sistema está localizada em system.compute.node_types.
Nome da coluna | Tipo de dados | Descrição | Exemplo |
|---|---|---|---|
| string | ID do site account onde esse clustering foi criado. |
|
| string | Identificador exclusivo para o tipo de nó. |
|
| double | Número de vCPUs para a instância. |
|
| long | Memória total para a instância. |
|
| long | Número de GPUs para a instância. |
|
Esquema da tabela de cronograma do Node
A tabela de linha do tempo do nó captura dados de utilização de recursos em nível de nó com granularidade de minutos. Cada registro contém dados referentes a um determinado minuto de tempo por instância. Esta tabela captura os cronogramas dos nós para os recursos compute de propósito geral, compute de tarefas, compute de pipeline declarativa do LakeFlow Spark e compute de manutenção pipeline em sua account.
Caminho da tabela : Essa tabela do sistema está localizada em system.compute.node_timeline.
Nome da coluna | Tipo de dados | Descrição | Exemplo |
|---|---|---|---|
| string | ID do site account onde esse recurso compute está sendo executado. |
|
| string | ID do site workspace onde esse recurso compute está sendo executado. |
|
| string | ID do recurso compute. |
|
| string | ID da instância específica. |
|
| carimbo de data/hora | começar o tempo para o registro em UTC. |
|
| carimbo de data/hora | Hora de término do registro em UTC. |
|
| boolean | Se a instância é um driver ou um nó worker. |
|
| double | Porcentagem de tempo que a CPU passou na área do usuário. |
|
| double | Porcentagem de tempo que a CPU passou no kernel. |
|
| double | Porcentagem de tempo que a CPU passou esperando pela E/S. |
|
| double | Porcentagem da memória do site compute que foi usada durante o período (incluindo a memória usada por processos em segundo plano em execução no site compute). |
|
| double | Porcentagem de uso de memória atribuída à memória swap. |
|
| bigint | O número de bytes enviados no tráfego da rede. |
|
| bigint | O número de bytes recebidos do tráfego da rede. |
|
| 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. |
|
| string | O nome do tipo de nó. Isso corresponderá ao nome do tipo de instância do provedor de nuvem. |
|
| string | O endereço IP privado atribuído ao nó. |
|
Esquema da tabela de eventos de instância
Visualização
Esta tabela do sistema está em Pré-visualização Pública.
A tabela de eventos de instância registra as transições de estado de instâncias compute clássicas. Cada linha representa uma mudança de estado para uma única instância. Esta tabela inclui registros de compute de uso geral, compute de tarefas e compute de pipeline declarativa LakeFlow Spark de todos os espaços de trabalho implantados em sua account na mesma região cloud .
Caminho da tabela : Essa tabela do sistema está localizada em system.compute.instance_events.
Nome da coluna | Tipo de dados | Descrição | Exemplo |
|---|---|---|---|
| string | ID da account onde esta instância foi iniciada. |
|
| string | ID do workspace onde esta instância foi iniciada. |
|
| string | ID da instância. |
|
| carimbo de data/hora | Registro de data e hora do evento. |
|
| string | Tipo de evento. Os valores possíveis são |
|
| string | ID do pool de instâncias, caso a instância pertença a um pool. |
|
| string | ID do cluster no qual esta instância está localizada. Preenchido apenas quando |
|
| string | O nome do tipo de nó. Isso corresponde ao nome do tipo de instância do provedor cloud . |
|
| string | Estado da instância. Consulte Estados da instância. |
|
| string | Tipo de disponibilidade da instância. Os valores possíveis são |
|
Estados de instância
INSTANCE_LAUNCHINGA instância está sendo inicializada.INSTANCE_READYA instância está totalmente inicializada e pronta para uso, mas atualmente não está em uso.INSTANCE_PLACEDA instância está atualmente em uso (ingressou em um cluster).INSTANCE_TERMINATEDA instância foi encerrada.
Quando o cluster_id é preenchido?
O campo cluster_id só é preenchido quando a instância está no estado INSTANCE_PLACED . Para todos os outros estados (INSTANCE_LAUNCHING, INSTANCE_READY, INSTANCE_TERMINATED), cluster_id é null. Esse comportamento é consistente tanto para instâncias em pool quanto para instâncias fora do pool.
A tabela instance_events inclui apenas eventos de posicionamento para compute de pipeline declarativa Spark de uso geral, Job e LakeFlow . Os eventos de alocação para outras cargas de trabalho, como SQL Warehouse, não estão incluídos nesta tabela.
Esquema da tabela de pool de instâncias
Visualização
Esta tabela do sistema está em Pré-visualização Pública.
A tabela de pools de instâncias é uma tabela de dimensão de alteração lenta que contém o histórico completo das configurações pool instâncias ao longo do tempo. Quando uma configuração é alterada, uma nova linha é emitida, substituindo logicamente a anterior.
Caminho da tabela : Essa tabela do sistema está localizada em system.compute.instance_pools.
Nome da coluna | Tipo de dados | Descrição | Exemplo |
|---|---|---|---|
| string | ID da account onde este pool de instâncias foi criado. |
|
| string | ID do workspace onde este pool de instâncias foi criado. |
|
| string | ID do pool de instâncias. |
|
| carimbo de data/hora | Registro de data e hora da alteração na configuração do pool de instâncias. |
|
| carimbo de data/hora | Carimbo de data/hora da criação do pool de instâncias. |
|
| carimbo de data/hora | Registro de data e hora da exclusão do pool de instâncias. O valor é |
|
| string | Nome do pool de instâncias definido pelo usuário. |
|
| map | tags definidas pelo usuário para o pool de instâncias (não inclui tags default ). |
|
| string | Tipo de nó usado para instâncias no pool. Isso corresponde ao nome do tipo de instância do provedor cloud . |
|
| bigint | O número de minutos que as instâncias do Parado no cache pool são encerradas automaticamente após ficarem inativas. |
|
| bigint | Número mínimo de instâncias Parado a serem mantidas no pool de instâncias. |
|
| bigint | Número máximo de instâncias pendentes a serem mantidas no pool, incluindo instâncias usadas por clusters e instâncias do Parado. |
|
| boolean | Dimensionamento automático do armazenamento local: quando ativado, as instâncias neste pool adquirem dinamicamente espaço em disco adicional quando os workers Spark estão com pouco espaço em disco. |
|
| struct | A especificação dos discos que estão conectados a todos os contêineres do Spark. |
|
| matriz | Imagem Docker personalizada pré-carregada no pool. |
|
| string | Versão da imagem Spark pré-carregada para o pool, se definida. |
|
| struct | Atributos relacionados ao pool de instâncias em execução na AWS. |
|
| struct | Atributos relacionados ao pool de instâncias em execução no Azure. |
|
| struct | Atributos relacionados ao pool de instâncias em execução no GCP. |
|
Limitações conhecidas
- compute recurso que foram marcados como excluídos antes de 23 de outubro de 2023 não aparecem na tabela de agrupamento. Isso pode fazer com que a união da tabela
system.billing.usagenão corresponda aos registros da tabela de clustering. Todos os recursos ativos do compute foram preenchidos. - Estas tabelas incluem apenas registros para computação de uso geral e compute de tarefas. Eles não contêm registros para compute serverless ou para o banco de dados SQL .
- Os nós que foram executados por menos de 10 minutos podem não aparecer na tabela
node_timeline.
Exemplos de consultas
Você pode usar os exemplos de consultas a seguir para responder perguntas comuns:
- unir os registros de agrupamento com os registros de faturamento mais recentes
- Identifique o recurso compute com a maior média de utilização e pico de utilização
- Obtenha a versão mais recente de cada pool de instâncias.
- Calcular o tempo de inatividade e o tempo de parada da instância.
Alguns desses exemplos join a tabela de clustering com a tabela system.billing.usage. Como os registros de faturamento são inter-regionais e os registros de clustering são específicos da região, os registros de faturamento só correspondem aos registros de clustering da região em que o usuário está consultando. Para ver registros de outra região, execute a consulta nessa região.
unir os registros de agrupamento com os registros de faturamento mais recentes
Essa consulta pode ajudar você a entender os gastos ao longo do tempo. Depois que 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 em dados de clustering.
Cada registro está associado ao proprietário do clustering durante essa execução específica. Portanto, se o proprietário do clustering mudar, os custos serão transferidos para o proprietário correto com base na época em que o clustering 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;
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;
Obtenha a versão mais recente de cada pool de instâncias.
A tabela instance_pools é do tipo SCD2, onde, em vez de atualizar os registros existentes, um novo registro é criado sempre que uma alteração é feita. Para obter a versão mais recente, pegue a entrada com o maior change_time.
SELECT *
FROM system.compute.instance_pools
QUALIFY row_number() OVER (
PARTITION BY workspace_id, instance_pool_id
ORDER BY change_time DESC
) = 1;
Calcular o tempo de inatividade e o tempo de parada da instância.
Esta consulta calcula o tempo total de parado e o tempo ativo para cada instância usando transições de estado da tabela instance_events .
WITH instance_states AS (
SELECT
*,
event_time AS start_time,
lead(event_time) OVER (
PARTITION BY workspace_id, instance_id
ORDER BY event_time
) AS end_time
FROM system.compute.instance_events
WHERE event_type IN ('INSTANCE_LAUNCHING', 'STATE_TRANSITION')
)
SELECT
workspace_id,
instance_id,
instance_pool_id,
sum(if(state = 'INSTANCE_READY',
TIMESTAMPDIFF(SECOND, start_time, end_time), 0)) / 60 AS idle_minutes,
sum(if(state = 'INSTANCE_PLACED',
TIMESTAMPDIFF(SECOND, start_time, end_time), 0)) / 60 AS active_minutes
FROM instance_states
GROUP BY workspace_id, instance_id, instance_pool_id;