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.
Observação
No Databricks Runtime 13.3 e superior, o Databricks recomenda usar clustering líquido para layout de tabela Delta. O clustering não é compatível com a ordenação Z. Consulte Usar clustering líquido para tabelas.
Os dados que ignoram as informações são coletados automaticamente quando você grava dados em uma tabela Delta. O Delta Lake no Azure Databricks aproveita essas informações (valores mínimos e máximos, número de nulos e total de registros por arquivo) no momento da consulta para fornecer consultas mais rápidas.
Você precisa coletar as estatísticas para as colunas usadas nas instruções do ZORDER. Confira O que é ordenação Z?.
Especificar as colunas de estatísticas para o Delta
Para tabelas externas do Catálogo do Unity, o Delta Lake coleta estatísticas nas primeiras 32 colunas definidas em seu esquema de tabela por padrão. Para tabelas gerenciadas do Catálogo do Unity, o Delta Lake escolhe estatísticas que ignoram arquivos de forma inteligente usando a otimização preditiva e não tem um limite de 32 colunas. A otimização preditiva é executada ANALYZEautomaticamente, um comando para coletar estatísticas. 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.
Se você não estiver usando a otimização preditiva, poderá modificar o comportamento que limita as coleções de estatísticas a 32 colunas definindo uma das seguintes propriedades de tabela:
| Propriedade de tabela | Databricks Runtime com suporte | Descrição |
|---|---|---|
delta.dataSkippingNumIndexedCols |
Todas as versões com suporte do Databricks Runtime | Aumente ou diminua o número de colunas nas quais o Delta coleta estatísticas. Depende da ordem das colunas. |
delta.dataSkippingStatsColumns |
Databricks Runtime 13.3 LTS e superior | Especifique uma lista dos nomes de colunas para as quais o Delta Lake coleta estatísticas. Substitui dataSkippingNumIndexedCols. |
As propriedades da tabela podem ser configuradas na criação da tabela ou com instruções ALTER TABLE. Confira Referência de propriedades da tabela Delta. O exemplo a seguir substitui o comportamento de coleta de estatísticas padrão para definir a coleção de estatísticas em colunas nomeadas:
ALTER TABLE table_name SET TBLPROPERTIES('delta.dataSkippingStatsColumns' = 'col1, col2, col3')
A atualização dessas propriedades não recalcula automaticamente as estatísticas dos dados existentes. Na verdade, afeta o comportamento da coleta de estatísticas futuras ao adicionar ou atualizar dados na tabela. O Delta Lake não aproveita as estatísticas de colunas não incluídas na lista atual de colunas de estatísticas.
No Databricks Runtime 14.3 LTS e superior, se você tiver alterado as propriedades da tabela ou alterado as colunas especificadas para estatísticas, poderá disparar manualmente o recálculo de estatísticas para uma tabela Delta usando o seguinte comando:
ANALYZE TABLE table_name COMPUTE DELTA STATISTICS
Observação
As cadeias de caracteres longas são truncadas durante a coleta de estatísticas. Você pode optar por excluir colunas de cadeia de caracteres longas da coleção de estatísticas, especialmente se as colunas não forem usadas com frequência para filtrar consultas.
O que é ordenação Z?
Observação
O Databricks recomenda a utilização de clustering líquido para todas as novas tabelas Delta. Não é possível usar ZORDER em combinação com clustering líquido. Consulte Usar clustering líquido para tabelas.
A ordenação Z é uma técnica para colocar informações relacionadas no mesmo conjunto de arquivos. Essa colocalidade é usada automaticamente por algoritmos que ignoram dados do Delta Lake no Azure Databricks. Esse comportamento reduz drasticamente a quantidade de dados que o Delta Lake no Azure Databricks precisa ler. Para dados de ordem Z, especifique as colunas para ordenar na cláusula ZORDER BY:
OPTIMIZE events
WHERE date >= current_timestamp() - INTERVAL 1 day
ZORDER BY (eventType)
Se você espera que uma coluna seja comumente usada em predicados de consulta e se essa coluna tiver alta cardinalidade (ou seja, um grande número de valores distintos), use ZORDER BY.
Você pode especificar várias colunas para ZORDER BY como lista separada por vírgulas. No entanto, a eficácia da localidade diminui com cada coluna extra. A ordenação Z em colunas que não têm estatísticas coletadas nelas seria ineficaz e um desperdício de recursos. Isso ocorre porque ignorar dados requer estatísticas locais de coluna, como mínimo, máximo e contagem. Você pode configurar a coleta de estatísticas em determinadas colunas reordenando a colunas no esquema, ou pode aumentar o número de colunas nas quais as estatísticas são coletadas.
Observação
A ordenação Z não é idempotente, mas visa ser uma operação incremental. Não há garantia de que o tempo necessário à ordenação Z seja reduzido em várias execuções. No entanto, se nenhum dado novo tiver sido adicionado a uma partição que foi apenas de ordenação Z, outra ordenação Z dessa partição não terá nenhum efeito.
A ordenação Z tem como objetivo produzir arquivos de dados balanceados de maneira equilibrada em relação ao número de tuplas, mas não necessariamente ao tamanho dos dados no disco. As duas medidas são correlacionadas com mais frequência, mas pode haver situações em que esse não é o caso, levando à distorção nos tempos de tarefa de otimização.
Por exemplo, se você
ZORDER BYdatar e seus registros mais recentes forem todos muito mais amplos (por exemplo, matrizes mais longas ou valores de cadeia de caracteres) do que os anteriores, espera-se que asOPTIMIZEdurações da tarefa do trabalho sejam distorcidas, bem como os tamanhos de arquivo resultantes. No entanto, isso é apenas um problema para o comandoOPTIMIZEem si; isso não deve ter nenhum impacto negativo nas consultas subsequentes.