Referência de propriedades da tabela Delta
Delta Lake reserva propriedades da tabela Delta começando 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 .Consulte Gerir estatísticas a nível de coluna nos pontos de verificação. Tipo de dados: Boolean Predefinição: true |
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 .Consulte Gerir estatísticas ao nível de coluna nos pontos de verificação. Tipo de dados: Boolean Padrão: (nenhum) |
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: A ativação delta.columnMapping.mode ativa automaticamentedelta.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 separada por vírgulas de nomes de colunas nas quais o Delta Lake coleta estatísticas para aprimorar a funcionalidade de pular dados. Esta propriedade tem precedência sobre delta.dataSkippingNumIndexedCols .Consulte Pulo de dados para Delta Lake. Tipo de dados: String Padrão: (nenhum) |
delta.deletedFileRetentionDuration A duração mais curta para Delta Lake manter arquivos de dados logicamente excluídos antes de excluí-los 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:
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 vetores de exclusão e E/S preditiva 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.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 substituem esse limite de retenção.Cada vez que um ponto de verificação é gravado, o Delta Lake limpa automaticamente as entradas de log mais antigas do que 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 Como o Azure Databricks gere a compatibilidade de funcionalidades 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 Como o Azure Databricks gere a compatibilidade de funcionalidades 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, SetTransaction s). 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 SetTransaction identificador é usado ao tornar as gravações 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 a tamanhos de arquivo mais baixos, ou seja, impedir que a deteção automática seja ativada.Consulte Configurar o Delta Lake para controlar o tamanho do arquivo de dados. Tipo de dados: Boolean Padrão: (nenhum) |