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.
Você pode especificar agrupamentos em campos de cadeia de caracteres e ler tabelas Delta que usam agrupamentos no Databricks Runtime 16.4 LTS e superior.
Habilitar o agrupamento para uma tabela adiciona o recurso de tabela do gravador de collations-preview. Consulte Compatibilidade de recursos e protocolos do Delta Lake.
Observação
Por padrão, o Delta Lake define o agrupamento para campos de cadeia de caracteres como UTF8_BINARY.
Criar uma tabela com cotejamento no nível da coluna
Você pode criar uma nova tabela com agrupamento no nível da coluna usando o seguinte comando:
CREATE TABLE $tableName (
nonCollatedColName STRING,
collatedColName STRING COLLATE UNICODE,
structColName STRUCT<nestedFieldName: STRING COLLATE UNICODE>,
mapColName MAP<STRING, STRING COLLATE UNICODE>,
arrayColName ARRAY<STRING COLLATE UNICODE>
) USING delta
Alterar uma coluna de tabela para especificar o agrupamento
Você pode atualizar uma coluna existente para usar o agrupamento usando os seguintes comandos:
ALTER TABLE tableName ALTER COLUMN columnName TYPE newType
Para remover um agrupamento não padrão (se houver um):
ALTER TABLE tableName ALTER COLUMN columnName TYPE STRING COLLATE UTF8_BINARY
Para alterar o agrupamento de colunas para utf8_lcase:
ALTER TABLE tableName ALTER COLUMN columnName TYPE STRING COLLATE UTF8_LCASE
Alterar o agrupamento de uma tabela não atualiza automaticamente as estatísticas ou o layout de dados para dados gravados anteriormente. Para melhorar a ignoração de ficheiros em relação a dados históricos sob a nova ordenação, o Databricks recomenda o seguinte:
Execute o comando
ANALYZE table_name COMPUTE DELTA STATISTICSpara atualizar as estatísticas de exclusão de arquivos para arquivos de dados existentes.Para tabelas com agrupamento líquido habilitado, execute
OPTIMIZE FULL table_namepara atualizar o agrupamento líquido.Para tabelas que usam
ZORDER, faça o seguinte:Desative a otimização incremental na Sessão do Spark substituindo a configuração padrão do Spark pelo seguinte comando:
SET spark.databricks.optimize.incremental=falseExecute
OPTIMIZE table_name ZORDER BY zorder_columnpara reescrever todos os arquivos de dados existentes.
O agrupamento sempre será respeitado pelo Azure Databricks nos resultados da consulta.
Desativar agrupamento para uma tabela
Você deve desabilitar explicitamente o agrupamento para cada coluna de cadeia de caracteres em uma tabela antes de descartar o recurso de agrupamento.
Use a sintaxe a seguir para definir o agrupamento de uma coluna como UTF8_BINARY:
ALTER TABLE table_name
ALTER COLUMN column_name
TYPE STRING
COLLATE UTF8_BINARY
Para soltar o recurso de tabela, execute o seguinte comando:
ALTER TABLE table_name
DROP FEATURE collations-preview
Consulte Eliminar uma tabela Delta Lake e fazer downgrade do protocolo da tabela.
Evolução e agrupamento do esquema
A colação interage com a evolução do esquema usando as seguintes regras:
- Se já existir uma coluna de origem na tabela de destino, o agrupamento da coluna na tabela de destino permanecerá inalterado.
- Se uma coluna de origem tiver agrupamento especificado, a coluna adicionada à tabela de destino usará o agrupamento especificado.
- Se a tabela de destino não tiver o agrupamento habilitado quando uma coluna com agrupamento for adicionada, o recurso
collations-previewtabela será habilitado.
Limitações
Existem as seguintes limitações para tabelas com agrupamento habilitado:
- As tabelas delta criadas externamente com um agrupamento não reconhecido pelo Databricks Runtime lançam uma exceção quando consultadas.
- Não há suporte para Delta Sharing.
- As colunas agrupadas não podem ser usadas com restrições
CHECK. - As colunas geradas não podem usar agrupamento.
- As colunas agrupadas não podem ser usadas com colunas de índice de filtro bloom.
- Não há suporte para agrupamento em APIs OSS Delta Lake para Scala ou Python. Você deve usar APIs do Spark SQL ou DataFrame para habilitar o agrupamento.
- Não há suporte para a substituição dinâmica de partições em colunas agrupadas.
- As colunas agrupadas não podem ser referenciadas em consultas com estado de Streaming Estruturado.
- Leitores externos que não respeitam o recurso de tabela
collations-previewrecorrem ao agrupamento padrão deUTF8_BINARY. - Um
MAPnão pode ter uma chave que seja uma cadeia de caracteres agrupada. - O UniForm não funciona com agrupamentos.