Pular para o conteúdo principal

Gravações transacionais no armazenamento em nuvem com o DBIO

important

Essa documentação foi descontinuada e pode não estar atualizada. O produto, serviço ou tecnologia mencionados neste conteúdo não são mais suportados. Consulte O que são garantias ACID em Databricks?

O pacote Databricks DBIO fornece gravações transacionais no armazenamento em nuvem para o Apache Spark Job. Isso resolve uma série de problemas de desempenho e correção que ocorrem quando o Spark é usado em uma configuração de nuvem nativa (por exemplo, gravando diretamente no serviço de armazenamento).

important

O protocolo commit não é respeitado quando o senhor acessa caminhos de uso de dados que terminam em *. Por exemplo, a leitura de dbfs:/my/path retornará somente as alterações confirmadas, enquanto a leitura de dbfs:/my/path/* retornará o conteúdo de todos os arquivos de dados no diretório, independentemente de seu conteúdo ter sido confirmado ou não. Esse é um comportamento esperado.

Com o DBIO transacional commit, os arquivos de metadados que começam com _started_<id> e _committed_<id> acompanham os arquivos de dados criados pelo Spark Job. Geralmente, você não deve alterar esses arquivos diretamente. Em vez disso, o senhor deve usar o comando VACUUM para limpá-los.

Limpe arquivos não confirmados

Para limpar os arquivos não confirmados que sobraram do Spark Job, use o comando VACUUM para removê-los. Normalmente, VACUUM acontece automaticamente após a conclusão do Spark trabalho, mas o senhor também pode executá-lo manualmente se um trabalho for abortado.

Por exemplo, VACUUM ... RETAIN 1 HOUR remove arquivos não confirmados com mais de uma hora.

important
  • Evite o site vacuum com um horizonte de menos de uma hora. Isso pode causar inconsistência nos dados.

Veja também vacuum.

SQL
-- recursively vacuum an output path
VACUUM '/path/to/output/directory' [RETAIN <N> HOURS]

-- vacuum all partitions of a catalog table
VACUUM tableName [RETAIN <N> HOURS]