O que é o Delta Lake?
Delta Lake é a camada de armazenamento otimizada que fornece a base para tabelas em um lakehouse no Databricks. O Delta Lake é o software de código aberto que estende arquivos de dados Parquet com um log de transações baseado em arquivo para transações ACID e tratamento de metadados escalonável. O Delta Lake é totalmente compatível com as APIs do Apache Spark e foi desenvolvido para uma integração estreita com o Streaming Estruturado, permitindo que você use facilmente uma só cópia de dados para operações de lote e de streaming e fornecendo processamento incremental em escala.
Delta Lake é o formato padrão para todas as operações no Azure Databricks. A menos que seja especificado de outra forma, todas as tabelas no Azure Databricks são tabelas Delta. Originalmente, o Databricks desenvolveu o protocolo Delta Lake e continua contribuindo ativamente para o projeto de código aberto. Muitas das otimizações e dos produtos na Plataforma Databricks são baseadas nas garantias fornecidas pelo Apache Spark e pelo Delta Lake. Para obter informações sobre otimizações no Azure Databricks, veja Recomendações de otimização no Azure Databricks.
Para obter informações de referência sobre os comandos SQL do Delta Lake, confira 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. Confira Protocolo do log de transações Delta.
Introdução ao Delta Lake
Todas as tabelas no Azure Databricks são tabelas Delta por padrão. Se você estiver usando DataFrames Apache Spark ou SQL, obterá todos os benefícios do Delta Lake apenas salvando seus dados no lakehouse com as configurações padrão.
Para obter 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 recomendações de melhores práticas para o Delta Lake.
Convertendo e ingerindo dados no Delta Lake
O Azure Databricks fornece vários produtos para acelerar e simplificar o carregamento de dados no lakehouse.
- Delta Live Tables:
- COPY INTO
- Carregador Automático
- Adicionar interface do usuário de dados
- Converter incrementalmente dados Parquet ou Iceberg em Delta Lake
- Conversão única de dados Parquet ou Iceberg em Delta Lake
- Parceiros terceirizados
Para obter uma lista completa de opções de ingestão, veja Ingerir dados em um Databricks lakehouse.
Atualizando e modificando tabelas do Delta Lake
As transações atômicas com o Delta Lake fornecem muitas opções para atualizar dados e metadados. O Databricks recomenda que você evite interagir diretamente com arquivos de log de transações e dados nos diretórios de arquivos do Delta Lake para evitar corromper as tabelas.
- O Delta Lake dá suporte a upserts usando a operação de mesclagem. Confira Executar upsert em uma tabela do Delta Lake usando mesclagem.
- O Delta Lake fornece várias opções de substituições seletivas com base em filtros e partições. Confira Substituir dados seletivamente com o Delta Lake.
- Você pode atualizar o esquema de tabela manual ou automaticamente sem re-escrever dados. Confira Atualizar o esquema de tabela do Delta Lake.
- Habilite o mapeamento de colunas para renomear ou excluir colunas sem reescrever dados. Confira Renomear e remover colunas usando o mapeamento de colunas do Delta Lake.
Cargas de trabalho incrementais e de streaming no Delta Lake
O Delta Lake é otimizado para Streaming Estruturado no Azure Databricks. O Delta Live Tables estende recursos nativos com a implantação simplificada de infraestrutura, o dimensionamento aprimorado e as dependências de dados gerenciados.
- Leituras e gravações do streaming de tabela Delta
- Usar o feed de dados de alterações do Delta Lake no Azure Databricks
Consultando versões anteriores de uma tabela
Cada gravação em uma tabela Delta cria uma versão da tabela. Você pode usar o log de transações para examinar modificações em sua tabela e consultar versões anteriores da tabela. Confira Trabalhar com o histórico de tabelas do Delta Lake.
Aprimoramentos de esquema do Delta Lake
O Delta Lake valida o esquema na gravação, garantindo que todos os dados gravados em uma tabela correspondam aos requisitos definidos.
- Imposição do esquema
- Restrições no Azure Databricks
- Colunas geradas pelo Delta Lake
- Enriquecer tabelas do Delta Lake com metadados personalizados
Gerenciando arquivos e indexando dados com o Delta Lake
O Azure Databricks define muitos parâmetros padrão para o Delta Lake que afetam o tamanho dos arquivos de dados e o número de versões de tabela mantidas no histórico. O Delta Lake usa uma combinação de análise de metadados e de layout de dados físicos para reduzir o número de arquivos verificados para atender a qualquer consulta.
- Usar clustering líquido para tabelas Delta
- Ignorar dados no Delta Lake
- Otimizar o layout do arquivo de dados
- Remover arquivos de dados não utilizados com o vacuum
- Configurar o Delta Lake para controlar o tamanho do arquivo de dados
Configurando e revisando configurações do Delta Lake
O Azure Databricks armazena todos os dados e os metadados para tabelas do Delta Lake no armazenamento de objetos de nuvem. Muitas configurações podem ser definidas no nível da tabela ou na sessão do Spark. Você pode examinar os detalhes da tabela Delta para descobrir quais opções estão configuradas.
- Examinar os detalhes da tabela do Delta Lake com describe detail
- Referência de propriedades da tabela Delta
Pipelines de dados que usam o Delta Lake e o Delta Live Tables
O Azure Databricks incentiva os usuários a aproveitar uma arquitetura de medalhão para processar dados por meio de 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 implantação e do dimensionamento automatizados da infraestrutura.
Compatibilidade de recursos do 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 controle de versão do Delta Lake, confira Como o Azure Databricks gerencia a compatibilidade de recursos do Delta Lake?.
Documentação da API do Delta Lake
Na maioria das operações de leitura e gravação nas tabelas Delta, é possível usar as APIs do Spark SQL ou DataFrame do Apache Spark.
Para instruções SQL específicas do Delta Lake, consulte Instruções do Delta Lake.
O Azure Databricks garante a compatibilidade binária com as APIs do Delta Lake no Databricks Runtime. Para exibir a versão da API do Delta Lake empacotada em cada versão do Databricks Runtime, consulte a seção Ambiente do sistema no artigo relevante nas notas sobre a versão do Databricks Runtime. Para obter a documentação sobre APIs do Delta Lake para Python, Scala e Java, confira a Documentação do Software de Código Aberto (OSS) do Delta Lake.