Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:
SQL do Databricks
Databricks Runtime
Use a ANALYZE TABLE instrução para:
- Computar métricas de armazenamento sobre uma tabela específica ou
- Colete estatísticas estimadas sobre uma tabela específica ou todas as tabelas em um esquema especificado.
Execute COMPUTE STORAGE METRICS em uma tabela para retornar o tamanho total do armazenamento.
Separadamente, as estatísticas estimadas são usadas pelo otimizador de consulta para gerar um plano de consulta ideal. A otimização preditiva é executada ANALYZE automaticamente em tabelas gerenciadas do Catálogo do Unity para coletar essas informações. O Databricks recomenda habilitar a otimização preditiva para todas as tabelas gerenciadas do Catálogo do Unity para simplificar a manutenção de dados e reduzir os custos de armazenamento. Consulte Otimização preditiva para tabelas gerenciadas do Catálogo do Unity.
Sintaxe
ANALYZE TABLE table_name COMPUTE STORAGE METRICS
ANALYZE TABLE table_name [ PARTITION clause ]
COMPUTE [ DELTA ] STATISTICS [ NOSCAN | FOR COLUMNS col1 [, ...] | FOR ALL COLUMNS ]
ANALYZE TABLES [ { FROM | IN } schema_name ] COMPUTE STATISTICS [ NOSCAN ]
Parâmetros
-
Identifica a tabela a ser analisada. O nome não deve incluir uma especificação temporal ou especificação de opções ou caminho. Se a tabela não puder ser encontrada, o Azure Databricks gerará um erro TABLE_OR_VIEW_NOT_FOUND.
Cláusula PARTITION
Como opção, limita o comando a um subconjunto de partições.
Não há suporte para essa cláusula nas tabelas do Delta Lake.
DELTAAplica-se a:
SQL do Databricks
Databricks Runtime 14.3 LTS e superiorRecomputa estatísticas armazenadas no log Delta para as colunas configuradas para coleta de estatísticas em uma tabela Delta.
Quando a palavra-chave
DELTAé especificada, as estatísticas normais do otimizador de consulta não são coletadas.O Databricks recomenda executar
ANALYZE TABLE table_name COMPUTE DELTA STATISTICSdepois de definir novas colunas para ignorar dados para atualizar estatísticas para todas as linhas em uma tabela. Para obter um desempenho otimizado, executeANALYZE TABLE table_name COMPUTE STATISTICSpara atualizar o plano de consulta após a conclusão da atualização de log delta.[ NOSCAN | FOR COLUMNS col [, ...] | PARA TODOS COLUMNS ]
Se nenhuma opção de análise for especificada,
ANALYZE TABLEcoletará o número de linhas e o tamanho da tabela em bytes.NOSCAN
Colete apenas o tamanho da tabela em bytes (o que não requer a verificação de toda a tabela).
FOR COLUMNS col [, ...] | PARA TODOS COLUMNS
Coleta estatísticas de coluna para cada coluna especificada ou, como alternativa, para todas as colunas, além de estatísticas de tabela.
Não há suporte para estatísticas de coluna em combinação com a cláusula
PARTITION.
{ FROM
|IN } schema_nameEspecifica o nome do esquema a ser analisado. Sem um nome de esquema,
ANALYZE TABLEScoleta todas as tabelas no esquema atual que o usuário atual tem permissão para analisar.
MÉTRICAS DE ARMAZENAMENTO DE COMPUTAÇÃO
Aplica-se a:
Databricks Runtime 18.0 e versões superiores
O ANALYZE TABLE … COMPUTE STORAGE METRICS comando calcula as métricas totais de tamanho de armazenamento de uma tabela. Ao contrário do ANALYZE TABLE … COMPUTE STATISTICS que otimiza o desempenho da consulta, esse comando fornece detalhamento de armazenamento para análise e otimização de custos.
Description
Calcula as métricas totais de tamanho de armazenamento para uma tabela específica. Esse comando retorna informações de armazenamento abrangentes, incluindo bytes totais, bytes ativos, bytes a vácuo e bytes de viagem no tempo, juntamente com o número associado de arquivos para cada categoria.
Use este comando para identificar tabelas grandes ou não utilizadas, otimizar os custos de armazenamento e entender por que o tamanho total do armazenamento difere do tamanho da tabela ativa. Isso é particularmente útil para administradores de plataforma que precisam analisar padrões de armazenamento em várias tabelas ou acompanhar alterações de armazenamento ao longo do tempo.
Métricas de saída
O comando retorna as seguintes métricas em uma única linha:
| Campo | Descrição |
|---|---|
total_bytes |
Tamanho total de armazenamento para a tabela. Isso é igual ao tamanho do log delta + bytes ativos + bytes a vácuo + bytes de viagem no tempo. |
total_num_files |
Número total de arquivos, incluindo arquivos de log delta, arquivos ativos, arquivos a vácuo e arquivos de viagem no tempo. |
active_bytes |
Tamanho dos arquivos de dados referenciados ativamente pela tabela (o mesmo que sizeInBytes). |
num_active_files |
Número total de arquivos referenciados ativamente pela tabela. |
vacuumable_bytes |
Tamanho dos dados que podem ser removidos executando VACUUM ou habilitando a otimização preditiva. |
num_vacuumable_files |
Número de arquivos vacuáveis. |
time_travel_bytes |
Tamanho dos dados históricos usados para operações de rollback e de viagem no tempo. Também conhecidos como bytes tombados ou bytes à prova de falhas. |
num_time_travel_files |
Número de arquivos usados para viagem no tempo. |
Detalhes
- O comando usa uma abordagem de lista recursiva para calcular informações de armazenamento. O tempo de execução normalmente é em minutos, mas pode levar até várias horas para tabelas muito grandes.
- Esse comando funciona para tabelas gerenciadas e externas do Catálogo do Unity.
- As métricas de armazenamento são computadas no momento em que o comando é executado e não são armazenadas no Catálogo do Unity ou retornadas por
DESCRIBE EXTENDED. - Para controlar as alterações de armazenamento ao longo do tempo, execute esse comando periodicamente e armazene os resultados em uma tabela. Execute esse comando em um loop em várias tabelas para analisar padrões de armazenamento em seu patrimônio de dados.
Considerações sobre o tipo de tabela
-
Exibições materializadas e tabelas de streaming:
total_bytesinclui o tamanho da tabela e os metadados associados. Aactive_bytesmétrica exclui as partes aspiráveis e que podem viajar no tempo da tabela. -
Clones rasos:
total_bytesinclui apenas os próprios metadados do clone e arquivos de log delta, excluindo arquivos de tabela de origem.active_bytesé igual a zero, pois o clone faz referência aos arquivos de dados da tabela de origem. - Tabelas convertidas: Tabelas que foram convertidas recentemente de externas para gerenciadas podem incluir dados em locais gerenciados e externos. Por exemplo, os dados permanecem no local externo durante a janela de reversão. Consulte Converter uma tabela externa em uma tabela gerenciada do Catálogo do Unity.
Exemplos
Os exemplos a seguir demonstram como usar ANALYZE TABLE para calcular as métricas de armazenamento e coletar estatísticas.
Exemplos de MÉTRICAS DE ARMAZENAMENTO DE COMPUTAÇÃO
> ANALYZE TABLE main.my_schema.my_table COMPUTE STORAGE METRICS;
total_bytes total_num_files active_bytes num_active_files vacuumable_bytes num_vacuumable_files time_travel_bytes num_time_travel_files
----------- --------------- ------------ ---------------- ---------------- -------------------- ----------------- ---------------------
5368709120 1250 4294967296 1000 805306368 150 268435456 100
A saída mostra:
- Armazenamento total: 5,37 GB em 1.250 arquivos
- Dados ativos: 4,29 GB em 1.000 arquivos (versão atual da tabela)
- Dados a vácuo: 805 MB em 150 arquivos (podem ser recuperados com VACUUM)
- Dados de viagem no tempo: 268 MB em 100 arquivos (para consultas históricas)
Exemplos de ESTATÍSTICAS DE COMPUTAÇÃO
> CREATE TABLE students (name STRING, student_id INT) PARTITIONED BY (student_id);
> INSERT INTO students PARTITION (student_id = 111111) VALUES ('Mark');
> INSERT INTO students PARTITION (student_id = 222222) VALUES ('John');
> ANALYZE TABLE students COMPUTE STATISTICS NOSCAN;
> DESC EXTENDED students;
col_name data_type comment
-------------------- -------------------- -------
name string null
student_id int null
... ... ...
Statistics 864 bytes
... ... ...
> ANALYZE TABLE students COMPUTE STATISTICS;
> DESC EXTENDED students;
col_name data_type comment
-------------------- -------------------- -------
name string null
student_id int null
... ... ...
Statistics 864 bytes, 2 rows
... ... ...
-- Note: ANALYZE TABLE .. PARTITION is not supported for Delta tables.
> ANALYZE TABLE students PARTITION (student_id = 111111) COMPUTE STATISTICS;
> DESC EXTENDED students PARTITION (student_id = 111111);
col_name data_type comment
-------------------- -------------------- -------
name string null
student_id int null
... ... ...
Partition Statistics 432 bytes, 1 rows
... ... ...
OutputFormat org.apache.hadoop...
> ANALYZE TABLE students COMPUTE STATISTICS FOR COLUMNS name;
> DESC EXTENDED students name;
info_name info_value
-------------- ----------
col_name name
data_type string
comment NULL
min NULL
max NULL
num_nulls 0
distinct_count 2
avg_col_len 4
max_col_len 4
histogram NULL
> ANALYZE TABLES IN school_schema COMPUTE STATISTICS NOSCAN;
> DESC EXTENDED teachers;
col_name data_type comment
-------------------- -------------------- -------
name string null
teacher_id int null
... ... ...
Statistics 1382 bytes
... ... ...
> DESC EXTENDED students;
col_name data_type comment
-------------------- -------------------- -------
name string null
student_id int null
... ... ...
Statistics 864 bytes
... ... ...
> ANALYZE TABLES COMPUTE STATISTICS;
> DESC EXTENDED teachers;
col_name data_type comment
-------------------- -------------------- -------
name string null
teacher_id int null
... ... ...
Statistics 1382 bytes, 2 rows
... ... ...
> DESC EXTENDED students;
col_name data_type comment
-------------------- -------------------- -------
name string null
student_id int null
... ... ...
Statistics 864 bytes, 2 rows
... ... ...
> ANALYZE TABLE some_delta_table COMPUTE DELTA STATISTICS;