Referência de propriedades da tabela Delta

O Delta Lake reserva propriedades da tabela Delta começando com delta.. Essas propriedades podem ter significados específicos e afetam comportamentos quando são definidas.

Observação

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 nenhuma operação de gravação simultânea na tabela.

Como as propriedades da tabela interagem com as propriedades do SparkSession?

As propriedades da tabela Delta são definidas por tabela. Se uma propriedade for definida em uma tabela, essa será a configuração a ser seguida por padrão.

Algumas propriedades da tabela associaram configurações do SparkSession, 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 no nível do SparkSession em vez de fazê-lo no nível da tabela. O Databricks recomenda usar 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 tabelas novas usando uma configuração do SparkSession que substitui o padrão incorporado. Essa configuração afeta apenas as tabelas novas e não supera nem 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:

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

Por exemplo, para definir a propriedade delta.appendOnly = true 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 das 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 essa tabela Delta seja somente acréscimo. Se ela for somente acréscimo, os registros existentes não poderão ser excluídos e os valores existentes não poderão ser atualizados.

Confira Referência de propriedades da tabela Delta.

Tipo de dados: Boolean

Padrão: false
delta.autoOptimize.autoCompact

auto para o Delta Lake otimizar automaticamente o layout dos arquivos para esta tabela Delta.

Confira Compactação automática do Delta Lake no Azure Databricks.

Tipo de dados: Boolean

Padrão: (nenhum)
delta.autoOptimize.optimizeWrite

true para o Delta Lake otimizar automaticamente o layout dos arquivos para esta tabela Delta durante gravações.

Consulte Gravações otimizadas do Delta Lake no Azure Databricks.

Tipo de dados: Boolean

Padrão: (nenhum)
delta.checkpoint.writeStatsAsJson

true para o Delta Lake gravar estatísticas de arquivo em pontos de verificação no formato JSON para a coluna stats.

Confira Gerenciar estatísticas em nível de coluna nos pontos de verificação.

Tipo de dados: Boolean

Padrão: true
delta.checkpoint.writeStatsAsStruct

true para o Delta Lake gravar estatísticas de arquivo em pontos de verificação no formato struct para a coluna stats_parsed e gravar valores de partição como um struct para partitionValues_parsed.

Confira Gerenciar estatísticas em nível de coluna nos pontos de verificação.

Tipo de dados: Boolean

Padrão: (nenhum)
delta.checkpointPolicy

classic para pontos de verificação clássicos do Delta Lake. v2 para pontos de verificação v2.

Consulte Compatibilidade de tabelas com clustering líquido.

Tipo de dados: String

Padrão: classic
delta.columnMapping.mode

Se o mapeamento de coluna está habilitado para colunas de tabela Delta e as colunas Parquet correspondentes que usam nomes diferentes.

Confira Renomear e remover colunas usando o mapeamento de colunas do Delta Lake.

Observação: habilitar o delta.columnMapping.mode automaticamente habilita
delta.randomizeFilePrefixes.

Tipo de dados: DeltaColumnMappingMode

Padrão: none
delta.dataSkippingNumIndexedCols

O número de colunas para o Delta Lake coletar estatísticas sobre omissão de dados. Um valor de -1 significa coletar estatísticas para todas as colunas.

Consulte Ignorar dados no Delta Lake.

Tipo de dados: Int

Padrão: 32
delta.dataSkippingStatsColumns

Uma lista separada por vírgulas de nomes de colunas na qual o Delta Lake coleta estatísticas para aprimorar a funcionalidade de ignorar dados. Essa propriedade tem precedência sobre delta.dataSkippingNumIndexedCols.

Consulte Ignorar dados no Delta Lake.

Tipo de dados: String

Padrão: (nenhum)
delta.deletedFileRetentionDuration

A duração mais curta para o Delta Lake manter arquivos de dados excluídos logicamente antes de excluí-los fisicamente. Isso é para evitar falhas em leitores obsoletos após compactações ou substituições de partição.

Esse valor deve ser grande o suficiente para garantir que:

* Ele é maior do que a duração mais longa possível de um trabalho se você executa VACUUM quando há leitores ou gravadores simultâneos acessando a tabela Delta.
* Se você executar uma consulta de streaming que leia da tabela, essa consulta não será interrompida por mais tempo do que esse valor. Caso contrário, a consulta pode não ser capaz de reiniciar, pois ainda precisará ler arquivos antigos.

Consulte Configurar retenção de dados para consultas de viagem no tempo

Tipo de dados: CalendarInterval

Padrão: interval 1 week
delta.enableChangeDataFeed

true para habilitar o feed de dados de alterações.

Confira Habilitar o feed de dados de alterações.

Tipo de dados: Boolean

Padrão: false
delta.enableDeletionVectors

true para habilitar vetores de exclusão e E/S preditiva para atualizações.

Confira O que são vetores de exclusão?

Tipo de dados: Boolean

Padrão: depende das configurações do administrador do workspace e da versão do Databricks Runtime. Consulte Habilitar automaticamente os vetores de exclusão
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

Padrão: WriteSerializable
delta.logRetentionDuration

Por quanto tempo o histórico de uma tabela é mantido. As operações VACUUM substituem esse limite de retenção.

Sempre que um ponto de verificação é gravado, o Delta LAke limpa automaticamente as entradas de log mais antigas que o intervalo de retenção. Se você definir essa propriedade como um valor grande o suficiente, muitas entradas de log serão mantidas. Isso não deve afetar o desempenho, pois as operações no log são tempo constante. As operações no histórico são paralelas, mas se tornarão mais caras à medida que o tamanho do log aumentar.

Consulte Configurar retenção de dados para consultas de viagem no tempo

Tipo de dados: CalendarInterval

Padrão: interval 30 days
delta.minReaderVersion

A versão mínima do leitor de protocolo necessária para um leitor que permite ler desta tabela Delta.

O Databricks recomenda não configurar manualmente essa propriedade.

Confira Como o Azure Databricks gerencia a compatibilidade de recursos do Delta Lake?

Tipo de dados: Int

Padrão: 1
delta.minWriterVersion

A versão mínima do gravador de protocolo necessária para um gravador que permite gravar nesta tabela Delta.

O Databricks recomenda não configurar manualmente essa propriedade.

Confira Como o Azure Databricks gerencia a compatibilidade de recursos do Delta Lake?

Tipo de dados: Int

Padrão: 2
delta.randomizeFilePrefixes

true para o Delta Lake gerar um prefixo aleatório para um caminho de arquivo em vez de informações de partição.

Tipo de dados: Boolean

Padrão: false
delta.randomPrefixLength

Quando delta.randomizeFilePrefixes é definido como true, o número de caracteres que o Delta Lake gera para prefixos aleatórios.

Tipo de dados: Int

Padrão: 2
delta.setTransactionRetentionDuration

A duração mais curta em que os novos instantâneos manterão identificadores de transação (por exemplo, SetTransactions). Quando um novo instantâneo detecta 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 é usado ao tornar as gravações idempotentes. Confira Gravações da tabela idempotente no foreachBatch para obter detalhes.

Tipo de dados: CalendarInterval

Padrão: (nenhum)
delta.targetFileSize

O tamanho do arquivo de destino em bytes ou unidades mais altas para ajuste de arquivo. Por exemplo,
104857600 (bytes) ou 100mb.

Confira Configurar o Delta Lake para controlar o tamanho do arquivo de dados.

Tipo de dados: String

Padrão: (nenhum)
delta.tuneFileSizesForRewrites

true para usar sempre os tamanhos de arquivo mais baixos em todas as operações de otimização de layout de dados na tabela Delta.

false para nunca ajustar para tamanhos de arquivo mais baixos, ou seja, para impedir que a detecção automática seja ativada.

Confira Configurar o Delta Lake para controlar o tamanho do arquivo de dados.

Tipo de dados: Boolean

Padrão: (nenhum)