O que é o Delta Lake?
Delta Lake é a camada de armazenamento otimizada que fornece a base para tables 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 seja especificado de outra forma, todos os tables no Azure Databricks são Delta tables. 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
Todos os tables no Azure Databricks são Delta tables por padrão. Se você estiver usando Apache Spark DataFrames ou SQL, você get 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 criação de tables, leitura, gravação e atualização de dados, consulte 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.
- Delta Live Tables:
- 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 list completa das opções de ingestão, consulte Ingest data into a Databricks lakehouse.
Atualização e modificação do Delta Lake tables
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 nos diretórios de arquivos Delta Lake para evitar corromper seus tables.
- O Delta Lake suporta upserts usando a operação de mesclagem. Veja Upsert no table 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.
- Pode update o seu tableschema manualmente ou automaticamente sem reescrever dados. Veja Update Delta Lake tableschema.
- Habilite o mapeamento de columns para renomear ou excluir columns sem reescrever dados. Ver Renomeie e remova columns com o mapeamento Delta Lake column.
Cargas de trabalho incrementais e de streaming no Delta Lake
O Delta Lake é otimizado para Streaming Estruturado no Azure Databricks. Delta Live Tables amplia os recursos nativos com implantação simplificada de infraestrutura, dimensionamento aprimorado e dependências de dados gerenciados.
- transmissão Delta table lê e escreve
- Usar o feed de dados de alteração do Delta Lake no Azure Databricks
Consultando versões anteriores de um table
Cada escrita em Delta table cria uma nova versão table. Você pode usar o log de transações para revisar modificações em seu table e consultar versões table anteriores. Consulte Trabalhar com o Delta Lake table história.
Aprimoramentos do Delta Lake schema
O Delta Lake valida schema durante a gravação, garantindo que todos os dados gravados em um table correspondam aos requisitos que você set.
- Schema execução
- Restrições no Azure Databricks
- Lago Delta gerou columns
- Enriqueça o Delta Lake tables com metadados personalizados
Gerenciando arquivos e indexando dados com o Delta Lake
O Azure Databricks define muitos padrões parameters para o Delta Lake que afetam o tamanho dos ficheiros de dados e o número de versões table 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 de líquidos para Delta tables
- Pulo de dados para Delta Lake
- Optimize layout do arquivo de dados
- Remove arquivos de dados não utilizados com vacuum
- 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 o Delta Lake tables no armazenamento de objetos na nuvem. Muitas configurações podem ser set, tanto a nível de table quanto dentro da sessão Spark. Você pode revisar os detalhes do Delta table para descobrir quais opções estão configuradas.
Pipelines de dados usando Delta Lake e Delta Live Tables
O Azure Databricks incentiva os utilizadores a aproveitar uma arquitetura de medalhão para processar dados por meio de uma série de tables à medida que os dados são limpos e enriquecidos. 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 no Delta tables, você pode usar Spark SQL ou Apache Spark DataFrame APIs.
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.