O que é o Delta Lake?
Delta Lake é a camada de armazenamento otimizada que fornece a base para tabelas em uma casa de lago em Databricks. Delta Lake é um software de código aberto que estende os arquivos de dados do Parquet com um log de transações baseado em arquivo para transações ACID e manipulação de metadados escaláveis. O Delta Lake é totalmente compatível com APIs do Apache Spark e foi desenvolvido para uma integração total com o Structured Streaming, permitindo que você use facilmente uma única cópia de dados para operações em lote e streaming e fornecendo processamento incremental em escala.
Delta Lake é o formato padrão para todas as operações no Azure Databricks. A menos que especificado de outra forma, todas as tabelas no Azure Databricks são tabelas Delta. A Databricks desenvolveu originalmente o protocolo Delta Lake e continua a contribuir ativamente para o projeto de código aberto. Muitas das otimizações e produtos na plataforma Databricks se baseiam nas garantias fornecidas pelo Apache Spark e Delta Lake. Para obter informações sobre otimizações no Azure Databricks, consulte Recomendações de otimização no Azure Databricks.
Para obter informações de referência sobre comandos Delta Lake SQL, consulte Instruções Delta Lake.
O log de transações Delta Lake tem um protocolo aberto bem definido que pode ser usado por qualquer sistema para ler o log. Consulte Delta Transaction Log Protocol.
Introdução ao Delta Lake
Por predefinição, todas as tabelas no Azure Databricks são tabelas Delta. Se você estiver usando Apache Spark DataFrames ou SQL, você obtém todos os benefícios do Delta Lake apenas salvando seus dados na lakehouse com as configurações padrão.
Para obter exemplos de operações básicas do Delta Lake, como criar tabelas, ler, escrever e atualizar dados, veja Tutorial: Delta Lake.
O Databricks tem muitas recomendações para melhores práticas para o Delta Lake.
Convertendo e ingerindo dados para Delta Lake
O Azure Databricks fornece vários produtos para acelerar e simplificar o carregamento de dados para a sua casa do lago.
- Mesas Delta Live:
- COPY INTO
- Carregador Automático
- Adicionar interface do usuário de dados
- Converter incrementalmente dados de Parquet ou Iceberg em Delta Lake
- Conversão única de dados de Parquet ou Iceberg para Delta Lake
- Parceiros terceiros
Para obter uma lista completa de opções de ingestão, consulte Ingerir dados em uma casa de lago Databricks.
Atualizando e modificando tabelas Delta Lake
As transações atômicas com o Delta Lake oferecem muitas opções para atualizar dados e metadados. O Databricks recomenda que você evite interagir diretamente com dados e arquivos de log de transações em diretórios de arquivos Delta Lake para evitar corromper suas tabelas.
- O Delta Lake suporta upserts usando a operação de mesclagem. Veja Upsert em uma tabela Delta Lake usando mesclagem.
- O Delta Lake oferece inúmeras opções para substituições seletivas com base em filtros e partições. Consulte Substituir dados seletivamente com o Delta Lake.
- Você pode atualizar manual ou automaticamente seu esquema de tabela sem reescrever dados. Consulte Atualizar esquema de tabela Delta Lake.
- Habilite o mapeamento de colunas para renomear ou excluir colunas sem reescrever dados. Consulte Renomear e soltar colunas com o mapeamento de colunas 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 amplia os recursos nativos com implantação simplificada de infraestrutura, dimensionamento aprimorado e dependências de dados gerenciados.
- O streaming de tabela delta lê e grava
- Usar o feed de dados de alteração do Delta Lake no Azure Databricks
Consultar versões anteriores de uma tabela
Cada escrita numa tabela Delta cria uma nova versão de tabela. Pode utilizar o registo de transações para rever as modificações à tabela e consultar versões de tabela anteriores. Veja Trabalhar com o histórico de tabelas do Delta Lake.
Aprimoramentos do esquema Delta Lake
O Delta Lake valida o esquema na gravação, garantindo que todos os dados gravados em uma tabela correspondam aos requisitos definidos.
- Aplicação do esquema
- Restrições no Azure Databricks
- Colunas geradas pelo Lago Delta
- Enriqueça tabelas 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 que são retidas 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 digitalizados para atender a qualquer consulta.
- Usar agrupamento líquido para tabelas Delta
- Pulo de dados para Delta Lake
- Otimizar o layout do arquivo de dados
- Remover arquivos de dados não utilizados com vácuo
- Configurar o Delta Lake para controlar o tamanho do arquivo de dados
Definindo e revisando as configurações do Delta Lake
O Azure Databricks armazena todos os dados e metadados para tabelas Delta Lake no armazenamento de objetos na nuvem. Muitas configurações podem ser definidas no nível da tabela ou dentro da sessão do Spark. Você pode revisar os detalhes da tabela Delta para descobrir quais opções estão configuradas.
- Revise os detalhes da tabela Delta Lake com detalhes descritos
- Referência de propriedades da tabela delta
Pipelines de dados usando Delta Lake e Delta Live Tables
O Azure Databricks incentiva os usuários a aproveitar uma arquitetura medallion 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 de execução otimizada e implantação e dimensionamento automatizados de infraestrutura.
Compatibilidade com recursos 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, consulte Como o Azure Databricks gerencia a compatibilidade de recursos do Delta Lake?.
Documentação da API Delta Lake
Para a maioria das operações de leitura e gravação em tabelas Delta, você pode usar APIs Spark SQL ou Apache Spark DataFrame .
Para instruções SQL específicas do Delta Lake, consulte Instruções do Delta Lake.
O Azure Databricks garante compatibilidade binária com APIs Delta Lake no Databricks Runtime. Para exibir a versão da API Delta Lake empacotada em cada versão do Databricks Runtime, consulte a seção Ambiente do sistema no artigo relevante nas notas de versão do Databricks Runtime. Para obter documentação sobre APIs Delta Lake para Python, Scala e Java, consulte a documentação do Delta Lake do OSS.