Pular para o conteúdo principal

Delta referência das propriedades da tabela

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

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

As propriedades da tabela Delta são definidas por tabela. Se uma propriedade for definida em uma tabela, essa é a configuração que é 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 do SparkSession em vez de no nível da tabela. A Databricks recomenda o uso de configurações com escopo de tabela para a maioria das cargas de trabalho.

Para cada propriedade da tabela Delta, o senhor pode definir um valor default para novas tabelas usando uma configuração SparkSession, substituindo a integrada default. Essa configuração afeta somente as novas tabelas e não substitui nem substitui as propriedades definidas nas tabelas existentes. O prefixo usado na SparkSession é diferente das configurações usadas nas propriedades da tabela, conforme mostrado na 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:

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

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

Delta propriedades da tabela

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

Propriedade

delta.appendOnly true para que essa tabela Delta seja somente anexada. Se somente anexar, os registros existentes não podem ser excluídos e os valores existentes não podem ser atualizados. Consulte a referência das propriedades da tabela Delta. Tipo de dados: Boolean padrão: false

delta.autoOptimize.autoCompact auto para Delta Lake para otimizar automaticamente a disposição dos arquivos para essa tabela Delta. Consulte Compactação automática para Delta Lake em Databricks. Tipo de dados: Boolean padrão: (nenhum)

delta.autoOptimize.optimizeWrite true para Delta Lake para otimizar automaticamente a disposição dos arquivos para essa tabela Delta durante as gravações. Consulte Gravações otimizadas para Delta Lake em Databricks. Tipo de dados: Boolean padrão: (nenhum)

delta.checkpoint.writeStatsAsJson true para que o Delta Lake grave 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 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. 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 pontos de controle clássicos do Delta Lake. v2 para pontos de verificação v2. Consulte Compatibilidade para tabelas com clustering líquido. Tipo de dados: String padrão: classic

delta.columnMapping.mode Se o mapeamento de colunas está ativado para as colunas da tabela Delta e as colunas correspondentes do Parquet que usam nomes diferentes. Consulte Renomear e soltar colunas com o mapeamento de colunas do Delta Lake. Nota: Ativar delta.columnMapping.mode ativa automaticamente delta.randomizeFilePrefixes. Tipo de dados: DeltaColumnMappingMode padrão: none

delta.dataSkippingNumIndexedCols O número de colunas do Delta Lake para coletar estatísticas sobre a omissão de dados. Um valor de -1 significa coletar estatísticas para todas as colunas. Consulte Data skipping para o Delta Lake. Tipo de dados: Int padrã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 ignorar dados. Essa propriedade tem precedência sobre delta.dataSkippingNumIndexedCols. Consulte Data skipping para o Delta Lake. Tipo de dados: String padrão: (nenhum)

delta.deletedFileRetentionDuration A duração mais curta para o Delta Lake manter os 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. Esse valor deve ser grande o suficiente para garantir que: - É maior do que a duração mais longa possível de um trabalho se o senhor executar VACUUM quando houver leitores ou gravadores concorrente acessando a tabela Delta. - Se o senhor executar uma consulta de transmissão que leia da tabela, essa consulta não será interrompida por mais tempo do que esse valor. Caso contrário, talvez a consulta não consiga ser reiniciada, pois ela ainda deve ler arquivos antigos. Consulte Configurar a retenção de dados para consultas de viagem do tempo. Tipo de dados: CalendarInterval padrão: interval 1 week

delta.enableChangeDataFeed true para ativar o feed de dados de alteração. Consulte Habilitar o feed de dados de alteração. Tipo de dados: Boolean padrão: 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 padrão: Depende das configurações de administração do site workspace e da versão do site Databricks Runtime. Consulte Ativar vetores de exclusão automaticamente

delta.isolationLevel O grau em que uma transação deve ser isolada das 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 padrão: WriteSerializable

delta.logRetentionDuration Por quanto tempo o histórico de uma tabela Delta é mantido. VACUUM operações anulam esse limite de retenção. Sempre que um ponto de verificação é gravado, o site Delta Lake limpa automaticamente as entradas do log mais antigas do que o intervalo de retenção. Se o senhor definir essa propriedade com um valor suficientemente grande, muitas entradas do site log serão mantidas. Isso não deve afetar o desempenho, pois as operações contra o log são de tempo constante. As operações na história são paralelas, mas se tornarão mais caras à medida que o tamanho do log aumentar. Consulte Configurar a retenção de dados para consultas de viagem do tempo. Tipo de dados: CalendarInterval padrão: interval 30 days

delta.minReaderVersion A versão mínima necessária do leitor de protocolo para um leitor que permita a leitura dessa tabela Delta. A Databricks não recomenda a configuração manual dessa propriedade. Consulte Como Databricks o Delta Lake senhor pode gerenciar a compatibilidade do recurso? Tipo de dados: Int padrão: 1

delta.minWriterVersion A versão mínima exigida do gravador de protocolo para um gravador que permite gravar nessa tabela Delta. A Databricks não recomenda a configuração manual dessa propriedade. Consulte Como Databricks o Delta Lake senhor pode gerenciar a compatibilidade do recurso? Tipo de dados: Int padrã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 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 o novo Snapshot manterá os identificadores de transação (por exemplo, SetTransactions). Quando um novo Snapshot vê um identificador de transação mais antigo ou igual à duração especificada por essa propriedade, o Snapshot o considera expirado e o ignora. O identificador SetTransaction é usado ao tornar as gravações idempotentes. Consulte as gravações da tabela Idempotent 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 menores para todas as operações de otimização de disposição de dados na tabela Delta. false 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 padrão: (nenhum)