Partilhar via


Referência de propriedades da tabela Delta

Delta Lake reserva as propriedades da tabela Delta que começam com delta. Essas propriedades podem ter significados específicos e afetar comportamentos quando essas propriedades são definidas.

Nota

Todas as operações que definem ou atualizam as propriedades da tabela entram em conflito com outras operações de gravação simultâneas, fazendo com que elas falhem. O Databricks recomenda que você modifique uma propriedade de tabela somente quando não houver operações de gravação simultâneas na tabela.

Como as propriedades da tabela e as propriedades SparkSession interagem?

As propriedades da tabela delta são definidas para cada tabela. Se uma propriedade estiver definida em uma tabela, essa é a configuração seguida por padrão.

Algumas propriedades de tabela têm configurações SparkSession associadas que sempre têm precedência sobre as propriedades da tabela. Alguns exemplos incluem as configurações spark.databricks.delta.autoCompact.enabled e spark.databricks.delta.optimizeWrite.enabled, que ativam a compactação automática e as gravações otimizadas ao nível do SparkSession, em vez de ao nível da tabela. O Databricks recomenda o uso de configurações com escopo de tabela para a maioria das cargas de trabalho.

Para cada propriedade de tabela Delta, você pode definir um valor padrão para novas tabelas usando uma configuração SparkSession, substituindo o padrão interno. Essa configuração afeta apenas novas tabelas e não substitui as propriedades definidas em tabelas existentes. O prefixo usado no SparkSession é diferente das configurações usadas nas propriedades da tabela, conforme mostrado na tabela a seguir:

Conferência do Delta Lake Configuração da SparkSession
delta.<conf> spark.databricks.delta.properties.defaults.<conf>

Por exemplo, para definir a delta.appendOnly = true propriedade para todas as novas tabelas Delta Lake criadas em uma sessão, defina o seguinte:

SET spark.databricks.delta.properties.defaults.appendOnly = true

Para modificar as propriedades de tabelas existentes, use SET TBLPROPERTIES.

Propriedades da tabela delta

As propriedades disponíveis da tabela Delta incluem o seguinte:

Propriedade
delta.appendOnly
true para que esta tabela Delta seja somente anexo. Se somente acrescentar, os registros existentes não poderão ser excluídos e os valores existentes não poderão ser atualizados.
Consulte Referência de Propriedades da Tabela Delta.
Tipo de dados: Boolean
Predefinição: false
delta.autoOptimize.autoCompact
auto para que o Delta Lake otimize automaticamente o layout dos ficheiros para esta tabela Delta.
Consulte Compactação automática para Delta Lake no Azure Databricks.
Tipo de dados: Boolean
Padrão: (nenhum)
delta.autoOptimize.optimizeWrite
true para que o Delta Lake possa otimizar automaticamente o layout dos arquivos para esta tabela Delta durante escritas.
Consulte Escritas otimizadas para Delta Lake no Azure Databricks.
Tipo de dados: Boolean
Padrão: (nenhum)
delta.checkpoint.writeStatsAsJson
true para que o Delta Lake escreva estatísticas de arquivo em pontos de verificação no formato JSON para a coluna stats.
Tipo de dados: Boolean
Predefinição: false
delta.checkpoint.writeStatsAsStruct
true para Delta Lake gravar estatísticas de arquivo em pontos de verificação no formato de estrutura para a coluna stats_parsed e para gravar valores de partição como uma estrutura para partitionValues_parsed.
Tipo de dados: Boolean
Predefinição: true
delta.checkpointPolicy
classic para os postos de controle clássicos do Delta Lake. v2 para pontos de verificação v2.
Consulte Compatibilidade para tabelas com agrupamento líquido.
Tipo de dados: String
Predefinição: classic
delta.columnMapping.mode
Se o mapeamento de colunas está activado para as colunas da tabela Delta e as colunas correspondentes do Parquet que utilizam nomes diferentes.
Consulte Renomear e eliminar colunas com o mapeamento de colunas do Delta Lake.
Nota: Ativar delta.columnMapping.mode ativa automaticamente
delta.randomizeFilePrefixes.
Tipo de dados: DeltaColumnMappingMode
Predefinição: none
delta.dataSkippingNumIndexedCols
O número de colunas para as quais o Delta Lake coleta estatísticas para otimização de leituras dos dados. Um valor de -1 significa recolher estatísticas de todas as colunas.
Consulte Omissão de dados para Delta Lake.
Tipo de dados: Int
Predefinição: 32
delta.dataSkippingStatsColumns
Uma lista de nomes de colunas, separada por vírgulas, sobre as quais o Delta Lake reúne estatísticas para melhorar a funcionalidade de esquiva de dados. Esta propriedade tem precedência sobre delta.dataSkippingNumIndexedCols.
Consulte Omissão de dados para Delta Lake.
Tipo de dados: String
Padrão: (nenhum)
delta.deletedFileRetentionDuration
A duração mínima para que o Delta Lake mantenha arquivos de dados logicamente eliminados antes de os eliminar fisicamente. Isso é para evitar falhas em leitores obsoletos após compactações ou substituições de partição.
Este valor deve ser suficientemente grande para garantir que:
  • É maior do que a maior duração possível de um trabalho se você executar VACUUM quando há leitores ou escritores simultâneos acessando a tabela Delta.
  • Se você executar uma consulta de streaming que lê a partir da tabela, essa consulta não para por mais tempo do que esse valor. Caso contrário, a consulta pode não ser capaz de reiniciar, pois ainda deve ler arquivos antigos.

Consulte Configurar retenção de dados para consultas de viagem no tempo.
Tipo de dados: CalendarInterval
Predefinição: interval 1 week
delta.enableChangeDataFeed
true para ativar o feed de dados de alteração.
Consulte Ativar feed de dados de mudança.
Tipo de dados: Boolean
Predefinição: false
delta.enableDeletionVectors
true para habilitar exclusão de vetores e I/O preditivo para atualizações.
Consulte O que são vetores de exclusão?.
Tipo de dados: Boolean
Padrão: depende das configurações de administração do espaço de trabalho e da versão do Databricks Runtime. Consulte Vetores de eliminação com ativação automática
delta.enableTypeWidening
true para permitir a ampliação de tipos.
Consulte Alargamento de tipos.
Tipo de dados: Boolean
Predefinição: false
delta.isolationLevel
O grau em que uma transação deve ser isolada das modificações feitas por transações simultâneas.
Os valores válidos são Serializable e WriteSerializable.
Consulte Níveis de isolamento e conflitos de gravação no Azure Databricks.
Tipo de dados: String
Predefinição: WriteSerializable
delta.logRetentionDuration
Por quanto tempo o histórico de uma tabela Delta é mantido. VACUUM as operações sobrepõem-se a este limite de retenção.
Cada vez que um ponto de verificação é gravado, o Delta Lake limpa automaticamente as entradas de log que ultrapassam o intervalo de retenção. Se você definir essa propriedade para um valor grande o suficiente, muitas entradas de log serão mantidas. Isso não deve afetar o desempenho, pois as operações no registo são de tempo constante. As operações no histórico são paralelas, mas se tornarão mais caras à medida que o tamanho do registro aumentar.
Consulte Configurar retenção de dados para consultas de viagem no tempo.
Tipo de dados: CalendarInterval
Predefinição: interval 30 days
delta.minReaderVersion
A versão mínima necessária do leitor de protocolo para um leitor que permite ler a partir desta tabela Delta.
O Databricks recomenda não configurar manualmente essa propriedade.
Consulte Compatibilidade de recursos e protocolos do Delta Lake.
Tipo de dados: Int
Predefinição: 1
delta.minWriterVersion
A versão mínima necessária do escritor de protocolo para permitir a escrita nesta tabela Delta.
O Databricks recomenda não configurar manualmente essa propriedade.
Consulte Compatibilidade de recursos e protocolos do Delta Lake.
Tipo de dados: Int
Predefinição: 2
delta.randomizeFilePrefixes
true para Delta Lake para gerar um prefixo aleatório para um caminho de arquivo em vez de informações de partição.
Tipo de dados: Boolean
Predefinição: false
delta.randomPrefixLength
Quando delta.randomizeFilePrefixes é definido como true, o número de caracteres que Delta Lake gera para prefixos aleatórios.
Tipo de dados: Int
Predefinição: 2
delta.setTransactionRetentionDuration
A duração mais curta dentro da qual os novos instantâneos reterão identificadores de transação (por exemplo, SetTransactions). Quando um novo instantâneo vê um identificador de transação mais antigo ou igual à duração especificada por essa propriedade, o instantâneo o considera expirado e o ignora. O identificador SetTransaction é utilizado para tornar as escritas idempotentes. Veja detalhes sobre gravações idempotentes na tabela em foreachBatch.
Tipo de dados: CalendarInterval
Padrão: (nenhum)
delta.targetFileSize
O tamanho do arquivo de destino em bytes ou unidades superiores para ajuste de arquivo. Por exemplo
104857600 (bytes) ou 100mb.
Consulte Configurar o Delta Lake para controlar o tamanho do arquivo de dados.
Tipo de dados: String
Padrão: (nenhum)
delta.tuneFileSizesForRewrites
true para sempre usar tamanhos de arquivo mais baixos para todas as operações de otimização de layout de dados na tabela Delta.
false para nunca ajustar para tamanhos de ficheiro menores, ou seja, para impedir a ativação da deteção automática.
Consulte Configurar o Delta Lake para controlar o tamanho do arquivo de dados.
Tipo de dados: Boolean
Padrão: (nenhum)
delta.parquet.compression.codec (Disponível no Databricks Runtime 16.0 e posterior.)
O codec de compressão para uma tabela Delta.
ZSTD para usar a compressão Zstandard (Zstd) numa tabela Delta.
SNAPPY para usar a compactação Snappy numa tabela Delta.
  • Vários tipos de compressão são suportados, incluindo Zstandard e Snappy.
  • Essa propriedade garante que todas as gravações futuras na tabela usem o codec escolhido.
  • Essa configuração substitui o padrão de cluster/sessão (spark.sql.parquet.compression.codec).
  • O One-off DataFrame .write.option("compression", ...") ainda tem precedência.
  • Os ficheiros existentes não são reescritos automaticamente. Para recompactar com o formato de compactação escolhido, use OPTIMIZE table_name FULL (Databricks Runtime 16.0 e posterior).
  • Esta propriedade aplica-se apenas a tabelas Delta. As tabelas Iceberg gerenciadas não suportam a alteração do codec de compressão. Consulte Limitações da tabela Managed Iceberg.

Tipo de dados: String
Predefinição: ZSTD