Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a:
Databricks SQL
Databricks Runtime
Use a ANALYZE TABLE declaração para:
- Calcular métricas de armazenamento sobre uma tabela específica, ou
- Recolha estatísticas estimadas sobre uma tabela específica ou todas as tabelas de um esquema especificado.
Executa COMPUTE STORAGE METRICS numa tabela para devolver o tamanho total de armazenamento.
Separadamente, as estatísticas estimadas são usadas pelo otimizador de consultas para gerar um plano de consulta ótimo. A otimização preditiva corre ANALYZE automaticamente em tabelas geridas pelo Unity Catalog para recolher esta informação. A Databricks recomenda habilitar a otimização preditiva para todas as tabelas gerenciadas pelo Unity Catalog para simplificar a manutenção de dados e reduzir os custos de armazenamento. Consulte Otimização preditiva para tabelas gerenciadas do Unity Catalog.
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 de opções ou um caminho. Se a tabela não puder ser encontrada, o Azure Databricks gerará um erro de TABLE_OR_VIEW_NOT_FOUND .
-
Opcionalmente, limita o comando a um subconjunto de partições.
Para tabelas Delta Lake, esta cláusula não é suportada.
DELTAAplica-se a:
Databricks SQL
Databricks Runtime 14.3 LTS e superiorRecalcula as estatísticas armazenadas no log Delta para as colunas configuradas para coleta de estatísticas em uma tabela Delta.
Quando a
DELTApalavra-chave é especificada, as estatísticas normais para o otimizador de consulta não são coletadas.O Databricks recomenda executar
ANALYZE TABLE table_name COMPUTE DELTA STATISTICSdepois de definir novas colunas para permitir o salto de dados, a fim de atualizar as estatísticas de todas as linhas de uma tabela. Para um desempenho otimizado, executeANALYZE TABLE table_name COMPUTE STATISTICSpara atualizar o plano de consulta após a conclusão da atualização do log Delta.[ NOSCAN | PARA 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.NÃO SCANEAR
Recolha apenas o tamanho da tabela em bytes (o que não exige varrer toda a tabela).
PARA COLUMNS col [, ...] PARA TODOS COLUMNS
Colete estatísticas para cada coluna especificada ou, de forma alternativa, para todas as colunas, bem como estatísticas da tabela.
As estatísticas de coluna não são suportadas em combinação com a cláusula
PARTITION.
{ DE
|NO } 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 EM COMPUTAÇÃO
Aplica-se a:
Runtime Databricks 18.0 e superiores
O ANALYZE TABLE … COMPUTE STORAGE METRICS comando calcula métricas de tamanho total de armazenamento para uma tabela. Ao contrário de ANALYZE TABLE … COMPUTE STATISTICS, que otimiza o desempenho das consultas, este comando fornece uma divisão detalhada do armazenamento para análise e otimização de custos.
Description
Calcula métricas de tamanho total de armazenamento para uma tabela específica. Este comando devolve informações completas de armazenamento, incluindo bytes totais, bytes ativos, bytes que podem ser comprimidos e bytes de retrocesso no tempo, juntamente com o número de ficheiros associado para cada categoria.
Use este comando para identificar tabelas grandes ou não utilizadas, otimizar custos de armazenamento e compreender porque é que o tamanho total de armazenamento difere do tamanho da tabela ativa. Isto é particularmente útil para administradores de plataforma que precisam de analisar padrões de armazenamento em múltiplas tabelas ou acompanhar alterações de armazenamento ao longo do tempo.
Métricas de saída
O comando devolve as seguintes métricas numa única linha:
| Campo | Descrição |
|---|---|
total_bytes |
Tamanho total de armazenamento para a tabela. Isto é igual a delta log + bytes ativos + bytes passíveis de limpeza + bytes de salto temporal. |
total_num_files |
Número total de ficheiros, incluindo ficheiros de registo delta, ficheiros ativos, ficheiros aspiráveis e ficheiros de viagem no tempo. |
active_bytes |
Tamanho dos ficheiros de dados referenciados ativamente pela tabela (igual a sizeInBytes). |
num_active_files |
Número total de ficheiros referenciados ativamente pela tabela. |
vacuumable_bytes |
Tamanho dos dados que podem ser removidos através da execução de VACUUM ou da ativação da otimização preditiva. |
num_vacuumable_files |
Número de ficheiros elimináveis. |
time_travel_bytes |
Tamanho dos dados históricos usados para rollbacks e operações de viagem no tempo . Também conhecidos como bytes com lapidação ou bytes de segurança. |
num_time_travel_files |
Número de ficheiros utilizados para viagens no tempo. |
Detalhes
- O comando utiliza uma abordagem de lista recursiva para calcular a informação de armazenamento. O tempo de execução é tipicamente de poucos minutos, mas pode demorar até várias horas para tabelas muito grandes.
- Este comando funciona tanto para tabelas geridas pelo Unity Catalog como para tabelas externas.
- As métricas de armazenamento são calculadas no momento em que o comando é executado e não são armazenadas no Unity Catalog nem devolvidas por
DESCRIBE EXTENDED. - Para acompanhar as alterações de armazenamento ao longo do tempo, execute este comando periodicamente e armazene os resultados numa tabela. Execute este comando num ciclo através de várias tabelas para analisar padrões de armazenamento em todo o seu património de dados.
Considerações sobre tipos de tabela
-
Visualizações materializadas e tabelas de streaming:
total_bytesinclui o tamanho da tabela e os metadados associados. Aactive_bytesmétrica exclui as porções da tabela aspiráveis e sujeitas a viagem no tempo. -
Clones superficiais:
total_bytesinclui apenas os próprios metadados do clone e ficheiros de registo delta, excluindo ficheiros da tabela de origem.active_bytesé igual a zero, pois o clone faz referência aos ficheiros de dados da tabela de origem. - Tabelas convertidas: Tabelas que foram recentemente convertidas de externas para geridas podem incluir dados tanto em locais geridos como externos. Por exemplo, os dados permanecem na localização externa durante a janela de rollback. Consulte Converter uma tabela externa em uma tabela gerenciada do Catálogo Unity.
Exemplos
Os exemplos seguintes demonstram como usar ANALYZE TABLE para calcular métricas de armazenamento e recolher estatísticas.
EXEMPLOS DE MÉTRICAS DE ARMAZENAMENTO COMPUTACIONAL
> 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
O resultado mostra:
- Armazenamento total: 5,37 GB em 1.250 ficheiros
- Dados ativos: 4,29 GB em 1.000 ficheiros (versão atual da tabela)
- Dados aspiráveis: 805 MB em 150 ficheiros (podem ser recuperados com VACUUM)
- Dados de viagem no tempo: 268 MB em 100 ficheiros (para consultas históricas)
EXEMPLOS DE ESTATÍSTICAS DE CÁLCULO
> 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;