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 por 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 e spark.databricks.delta.optimizeWrite.enabled
, que ativam a spark.databricks.delta.autoCompact.enabled
compactação automática e as gravações otimizadas no nível SparkSession em vez do 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 ou substitui 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:
Lago Delta conf | Conf 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 da tabela de tabelas existentes, use SET TBLPROPERTIES.
Propriedades da tabela delta
As propriedades disponíveis da tabela Delta incluem o seguinte:
Property |
---|
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 Delta Lake para otimizar automaticamente o layout dos arquivos 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 Delta Lake para otimizar automaticamente o layout dos arquivos para esta tabela Delta durante as gravações.Consulte Gravações otimizadas para Delta Lake no Azure Databricks. Tipo de dados: Boolean Padrão: (nenhum) |
delta.checkpoint.writeStatsAsJson true para Delta Lake para escrever estatísticas de arquivo em pontos de verificação no formato JSON para a stats coluna.Consulte Gerenciar estatísticas em nível de coluna em 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 struct para a stats_parsed coluna e para gravar valores de partição como um struct para partitionValues_parsed .Consulte Gerenciar estatísticas em nível de coluna em 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á habilitado para colunas de tabela Delta e as colunas correspondentes do Parquet que usam nomes diferentes. Consulte Renomear e soltar colunas com o mapeamento de colunas 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 o Delta Lake coletar estatísticas sobre o salto de dados. Um valor de -1 meios para coletar estatísticas para todas as colunas.Consulte Pulo 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: - É 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 habilitar o feed de dados de alteração.Consulte Ativar feed de dados de alteração. 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 exclusão de 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 log 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 log 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 gravador de protocolo para um gravador que permite gravar 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 a tabela Idempotent escreve em foreachBatch para obter detalhes.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) |