Referência de propriedades da tabela Delta

O Delta Lake reserva as propriedades da tabela Delta começando com delta.. Essas propriedades podem ter significados específicos e afetar os comportamentos quando essas propriedades 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 concorrente, causando falhas. A Databricks recomenda que o senhor modifique uma propriedade de tabela somente quando não houver operações de gravação concorrente na tabela.

Como as propriedades da tabela e as propriedades SparkSession interagem?

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

Algumas propriedades da 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 no nível SparkSession em vez do nível da tabela. Databricks recomenda o uso de configurações com escopo de tabela para a maioria das cargas de trabalho.

Para cada propriedade da tabela Delta, você pode definir um valor default para novas tabelas usando uma configuração SparkSession, substituindo o default integrado . Essa configuração afeta apenas as novas tabelas e não substitui nem substitui as propriedades definidas nas tabelas existentes. O prefixo utilizado na SparkSession é diferente das configurações utilizadas nas propriedades da tabela, conforme tabela a seguir:

Delta Lake conf

SparkSession conf

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 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 apenas anexada. Se apenas anexar, os registros existentes não podem ser excluídos e os valores existentes não podem ser atualizados.

Consulte Referência de propriedades da tabelaDelta .

Tipo de dados: Boolean

default: false

delta.autoOptimize.autoCompact

auto para Delta Lake otimizar automaticamente a disposição dos arquivos para esta tabela Delta.

Consulte Compactação automática para Delta Lake em Databricks.

Tipo de dados: Boolean

default: (nenhum)

delta.autoOptimize.optimizeWrite

true para que o Delta Lake otimize automaticamente a disposição dos arquivos para esta tabela Delta durante as gravações.

Consulte Gravações otimizadas para Delta Lake em Databricks.

Tipo de dados: Boolean

default: (nenhum)

delta.checkpoint.writeStatsAsJson

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

Consulte gerenciar estatísticas em nível de coluna em pontos de verificação.

Tipo de dados: Boolean

default: true

delta.checkpoint.writeStatsAsStruct

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

Consulte gerenciar estatísticas em nível de coluna em pontos de verificação.

Tipo de dados: Boolean

default: (nenhum)

delta.checkpointPolicy

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

Consulte Compatibilidade para tabelas com clusterslíquidos.

Tipo de dados: String

default: classic

delta.columnMapping.mode

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

Consulte Renomear e descartar colunas com mapeamento de coluna Delta Lake.

Observação: ativar delta.columnMapping.mode ativa automaticamente delta.randomizeFilePrefixes.

Tipo de dados: DeltaColumnMappingMode

default: none

delta.dataSkippingNumIndexedCols

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

Consulte Ignoração de dados para Delta Lake.

Tipo de dados: Int

default: 32

delta.dataSkippingStatsColumns

Uma lista separada por vírgulas de nomes de colunas nas quais o Delta Lake coleta estatísticas para aprimorar a funcionalidade de salto de dados. Esta propriedade tem precedência sobre delta.dataSkippingNumIndexedCols.

Consulte Ignoração de dados para Delta Lake.

Tipo de dados: String

default: (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 evita falhas em leitores obsoletos após compactações ou substituições de partições.

Este valor deve ser grande o suficiente para garantir que:

  • É maior que a duração mais longa possível de um Job se você executar VACUUM quando houver leitores ou gravadores concorrentes acessando a tabela Delta.

  • Se você executar uma query de transmissão que lê da tabela, essa query não para por mais tempo do que este valor. Caso contrário, a query pode não conseguir reiniciar, pois ainda deve ler arquivos antigos.

Consulte Configurar retenção de dados para queryviagem do tempo.

Tipo de dados: CalendarInterval

default: interval 1 week

delta.enableChangeDataFeed

true para ativar o feed de dados de alteração.

Consulte Habilitar feed de dados alterados.

Tipo de dados: Boolean

default: false

delta.enableDeletionVectors

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

Consulte O que são vetores de exclusão?.

Tipo de dados: Boolean

delta.isolationLevel

O grau em que uma transação deve ser isolada de modificações feitas por transações concorrentes.

Os valores válidos são Serializable e WriteSerializable.

Consulte níveis de isolamento e conflitos de gravação em Databricks.

Tipo de dados: String

default: WriteSerializable

delta.logRetentionDuration

Por quanto tempo a história de uma tabela Delta é mantida. As operações VACUUM substituem este limite de retenção.

Cada vez que um ponto de verificação é gravado, o Delta Lake limpa automaticamente as entradas logs anteriores ao intervalo de retenção. Se você definir essa propriedade com um valor grande o suficiente, muitas entradas logs serão retidas. Isso não deve afetar o desempenho, pois as operações nos logs são de tempo constante. As operações na história são paralelas, mas se tornarão mais caras à medida que o tamanho logs aumentar.

Consulte Configurar retenção de dados para queryviagem do tempo.

Tipo de dados: CalendarInterval

default: 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.

A Databricks não recomenda a configuração manual dessa propriedade.

Consulte Como o Databricks gerencia a compatibilidade de recursos do Delta Lake?.

Tipo de dados: Int

default: 1

delta.minWriterVersion

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

A Databricks não recomenda a configuração manual dessa propriedade.

Consulte Como o Databricks gerencia a compatibilidade de recursos do Delta Lake?.

Tipo de dados: Int

default: 2

delta.randomizeFilePrefixes

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

Tipo de dados: Boolean

default: 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

default: 2

delta.setTransactionRetentionDuration

A duração mais curta dentro da qual o novo Snapshot reterá identificadores de transação (por exemplo, SetTransactions). Quando um novo Snapshot vê um identificador de transação maior ou igual à duração especificada por esta propriedade, o Snapshot o considera expirado e o ignora. O identificador SetTransaction é usado ao tornar as gravações idempotentes. Consulte Gravações de tabelas idempotentes em foreachBatch para obter detalhes.

Tipo de dados: CalendarInterval

default: (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

default: (nenhum)

delta.tuneFileSizesForRewrites

true para sempre usar tamanhos de arquivo menores para todas as operações de otimização de provisão de dados na tabela Delta.

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

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

Tipo de dados: Boolean

default: (nenhum)