O que é Delta Lake?
O Delta Lake é a camada de armazenamento otimizada que fornece a base para as tabelas em um lakehouse no Databricks. O Delta Lake é um software de código aberto que amplia os arquivos de dados Parquet com um registro de transações baseado em arquivo para transações ACID e manipulação de metadados dimensionável. O Delta Lake é totalmente compatível com as APIs do Apache Spark e foi desenvolvido para uma forte integração com a transmissão estruturada, permitindo que o senhor use facilmente uma única cópia de dados para operações de lotes e transmissão e fornecendo processamento incremental em escala.
Delta Lake é o formato default para todas as operações em Databricks. A menos que especificado de outra forma, todas as tabelas em Databricks são tabelas Delta. A Databricks desenvolveu originalmente o protocolo Delta Lake e continua a contribuir ativamente com o projeto de código aberto. Muitas das otimizações e produtos da plataforma Databricks se baseiam nas garantias fornecidas por Apache Spark e Delta Lake. Para obter informações sobre otimizações em Databricks, consulte Recomendações de otimização em Databricks.
Para obter informações de referência sobre os comandos SQL do Delta Lake, consulte as instruções do Delta Lake.
O log de transações do Delta Lake tem um protocolo aberto bem definido que pode ser usado por qualquer sistema para ler o log. Consulte Protocolo de log de transações delta.
Introdução ao Delta Lake
Todas as tabelas no Databricks são tabelas Delta por padrão. Independentemente de você estar usando DataFrames do Apache Spark ou SQL, você obtém todos os benefícios do Delta Lake apenas salvando seus dados no lakehouse com as configurações padrão.
Para exemplos de operações básicas do Delta Lake, como criar tabelas, ler, gravar e atualizar dados, consulte Tutorial: Delta Lake.
O Databricks tem muitas práticas recomendadas para o Delta Lake.
Convertendo e ingerindo dados para o Delta Lake
O Databricks oferece diversos produtos para acelerar e simplificar o carregamento de dados em seu lakehouse.
Delta Live Tables:
Converta gradualmente dados de Parquet ou Iceberg em Delta Lake
Conversão única de dados de Parquet ou Iceberg em Delta Lake
Para obter uma lista completa das opções de ingestão, consulte Ingerir dados em um lakehouse da Databricks.
Atualizando e modificando tabelas do Delta Lake
As transações atômicas com Delta Lake fornecem muitas opções para atualizar dados e metadados. O Databricks recomenda que você evite a interação direta com os arquivos de dados e os arquivos de registro de transações nos diretórios de arquivos do Delta Lake para evitar a corrupção de suas tabelas.
O Delta Lake suporta upserts usando o site merge operações. Consulte Upsert em uma tabela Delta Lake usando merge.
O Delta Lake oferece várias opções para substituições seletivas com base em filtros e partições. Consulte Substituição seletiva de dados com o Delta Lake.
O senhor pode atualizar manual ou automaticamente o esquema da tabela sem reescrever os dados. Consulte Atualizar o esquema da tabela Delta Lake.
Habilite o mapeamento de colunas para renomear ou excluir colunas sem reescrever os dados. Consulte Renomear e soltar colunas com o mapeamento de colunas do Delta Lake.
Cargas de trabalho incrementais e de streaming no Delta Lake
O Delta Lake é otimizado para Structured Streaming em Databricks. O Delta Live Tables amplia os recursos nativos com implementação de infraestrutura simplificada, dimensionamento aprimorado e dependências de dados gerenciadas.
Consultando versões anteriores de uma tabela
Cada gravação em uma tabela Delta cria uma nova versão da tabela. Você pode usar o log de transações para revisar as modificações em sua tabela e consultar as versões anteriores da tabela. Consulte Trabalhar com o histórico da tabela Delta Lake.
Melhorias no esquema do Delta Lake
O Delta Lake valida o esquema durante a gravação, assegurando que todos os dados gravados em uma tabela estejam em conformidade com os requisitos que você definiu.
Gerenciando arquivos e indexando dados com o Delta Lake
O Databricks define diversos parâmetros padrão para o Delta Lake que influenciam o tamanho dos arquivos de dados e a quantidade de versões de tabela mantidas no histórico O Delta Lake usa uma combinação de análise de metadados e layout de dados físicos para reduzir o número de arquivos verificados para atender a qualquer consulta.
Configuração e revisão das configurações do Delta Lake
O Databricks armazena todos os dados e metadados das tabelas do Delta Lake no armazenamento de objetos na nuvem. Muitas configurações podem ser definidas na tabela ou na sessão do Spark. Você pode revisar os detalhes da tabela Delta para descobrir quais opções estão configuradas.
Pipelines de dados usando Delta Lake e Delta Live Tables
O Databricks incentiva os usuários a utilizar uma arquitetura medalhão para processar dados com uma série de tabelas à medida que os dados são limpos e enriquecidos. O Delta Live Tables simplifica as cargas de trabalho de ETL por meio da execução otimizada e da implementação e dimensionamento automatizados da infraestrutura.
Compatibilidade do recurso Delta Lake
Nem todos os recursos do Delta Lake estão em todas as versões do Databricks Runtime. Para obter informações sobre o versionamento do Delta Lake, consulte Como a Databricks gerencia a compatibilidade de recursos do Delta Lake?
Documentação da API do Delta Lake
Para a maioria das operações de leitura e gravação em tabelas Delta, você pode usar as APIs Spark SQL ou Apache Spark DataFrame.
Para obter instruções SQL específicas do Delta Lake, consulte Instruções do Delta Lake.
A Databricks garante a compatibilidade binária com as APIs do Delta Lake no Databricks Runtime. Para view o pacote de versão da API do Delta Lake em cada versão do Databricks Runtime, consulte a seção Ambiente do sistema nos artigos relevantes nas notas do Databricks Runtime sobre a versão. Para obter a documentação sobre as APIs do Delta Lake para Python, Scala e Java, consulte a documentação do OSS Delta Lake.