O que é o Delta Lake na Databricks?
Delta Lake é a camada de armazenamento otimizada que fornece a base para as tabelas em um lakehouse em Databricks. O Delta Lake é um software de código aberto que amplia os arquivos de dados Parquet com um log de transações baseado em arquivo para transações ACID e manipulação de metadados dimensionável. Delta Lake é totalmente compatível com o site Apache Spark APIs, e foi desenvolvido para uma forte integração com a transmissão estruturada, permitindo que o senhor utilize facilmente uma única cópia de dados para operações de lotes e transmissão e proporcionando 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 no Databricks são tabelas Delta Lake. A Databricks originalmente desenvolveu 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 em Databricks, consulte Recomendações de otimização no Databricks.
Para obter informações de referência sobre Delta Lake SQL comando, consulte Delta Lake statements.
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.
Como começar a usar o Delta Lake
Todas as tabelas no Databricks são tabelas Delta Lake 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 default.
Para exemplos de operações básicas Delta Lake , como criação de tabelas, leitura, gravação e atualização de dados, consulte o tutorial: Criar e gerenciar tabelas Delta Lake.
Para obter recomendações e práticas recomendadas da Databricks sobre o uso do Delta Lake, consulte Práticas recomendadas: Delta Lake.
Conversão e ingestão de dados para o Delta Lake
O Databricks possui diversos recursos para acelerar e simplificar o carregamento de dados para sua lakehouse.
-
- Tutorial: Crie um pipeline ETL com Lakeflow Spark Declarative Pipelines
- Crie um pipeline ETL de ponta a ponta usando o Lakeflow Spark Declarative Pipelines.
-
- Configure a ingestão incremental do Amazon S3.
- Configure a ingestão incremental de dados do armazenamento em nuvem usando o Auto Loader e os pipelines declarativos do Lakeflow Spark.
-
- Tabelas de streaming
- Use tabelas de transmissão para ingestão somente de acréscimos e transmissão de baixa latência no Lakeflow Spark Declarative Pipelines.
-
- Comece a usar o COPY INTO para carregar dados
- Carregue dados de forma incremental e idempotente do armazenamento em nuvem usando SQL.
-
- O que é o Auto Loader?
- Ingerir arquivos do armazenamento em nuvem de forma incremental, à medida que chegam.
-
- Criar ou modificar uma tabela usando o upload de arquivos
- Faça upload de arquivos e crie tabelas a partir da interface do usuário do Databricks.
-
- Clonar incrementalmente tabelas Parquet e Apache Iceberg para o Delta Lake.
- Clonar incrementalmente tabelas Parquet ou Apache Iceberg para o Delta Lake.
-
- Converter para Delta Lake
- Conversão única de mesas Parquet ou Apache Iceberg para Delta Lake.
-
- Parceiros tecnológicos
- Conecte parceiros e ferramentas de terceiros ao seu lakehouse Databricks.
Para obter uma lista completa das opções de ingestão, consulte Conectores padrão em LakeFlow Connect.
Atualização e modificação das tabelas do Delta Lake
As transações atômicas com o Delta Lake permitem que você use várias opções para atualizar dados e metadados. Para evitar corromper suas tabelas, a Databricks recomenda que você evite interagir diretamente com arquivos de dados e de log de transações nos diretórios de arquivos do Delta Lake.
-
- Upsert em uma tabela Delta Lake usando merge
- Insira ou atualize dados em uma tabela do Delta Lake usando a operação de merge.
-
- Sobrescrever dados seletivamente com Delta Lake
- Sobrescrever subconjuntos de dados com base em filtros e partições.
-
- Atualizar esquemas de tabela com evolução do esquema
- Atualize o esquema da sua tabela manualmente ou automaticamente sem sobrescrever os dados.
-
- Renomeie e solte colunas com mapeamento de coluna Delta Lake
- Renomeie ou exclua colunas sem sobrescrever os dados.
Cargas de trabalho incrementais e de transmissão no Delta Lake
O Delta Lake é otimizado para transmissão estructurada no Databricks. O Lakeflow Spark Declarative Pipelines amplia as funcionalidades integradas com implantação de infraestrutura simplificada, escalabilidade aprimorada e gerenciamento de dependências de dados.
-
- Leituras e gravações de transmissão da tabela Delta Lake
- Use as tabelas do Delta Lake como fontes e destinos para a transmissão estructurada com
readStreamewriteStream.
-
- Usar o feed de dados de alteração no Databricks
- Acompanhe as alterações em nível de linha entre versões de uma tabela Delta Lake ou Apache Iceberg v3.
Consultando versões anteriores de uma tabela
Cada gravação em uma tabela Delta Lake 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 a história da tabela.
Aprimoramentos no 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 que o senhor definiu.
-
- Imposição de esquema
- Valide a qualidade dos dados aplicando o esquema na gravação.
-
- Restrições no Databricks
- Aplicar restrições de integridade impostas e restrições informativas de chave primária, chave estrangeira e unicidade.
-
- Delta Lake colunas geradas
- Gerar automaticamente valores de coluna usando funções especificadas pelo usuário.
-
- Enriqueça as tabelas com metadados personalizados.
- Adicione comentários e metadados personalizados a tabelas e colunas para enriquecer o descobrimento de dados.
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.
-
- Usar clustering líquido para tabelas
- Simplifique a disposição dos dados e otimize o desempenho das consultas sem particionamento usando o clustering líquido.
-
- Ignorar dados
- Ignore arquivos irrelevantes no momento da consulta usando estatísticas de coluna, Z-order e disposição de dados otimizada.
-
- Otimizar a disposição do arquivo de dados
- Compacte arquivos de dados pequenos para melhorar o desempenho das consultas.
-
- Remova arquivos de dados não utilizados com vacuum
- Remova arquivos de dados obsoletos para reduzir os custos de armazenamento.
-
- Exclusão automática de linhas com tempo de vida automático
- Excluir automaticamente linhas de tabelas gerenciadas após um período de tempo configurável.
-
- Tamanho do arquivo de dados de controle
- Controle manualmente o tamanho do arquivo de destino ou ative o ajuste automático do tamanho do arquivo.
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 Lake para descobrir quais opções estão configuradas.
-
- Analise os detalhes da tabela com a descrição detalhada.
- Exibir configurações da tabela e metadados usando o comando
DESCRIBE DETAIL.
-
- Referência de propriedades da tabela
- Lista de referência das propriedades de tabela disponíveis para tabelas do Delta Lake.
pipeline de dados usando Delta Lake e LakeFlow Spark Declarative pipeline
O Databricks incentiva os usuários a aproveitarem uma arquitetura em medalhão para processar dados por meio de uma série de tabelas à medida que os dados são limpos e enriquecidos. O pipeline declarativoLakeFlow Spark simplifica as cargas de trabalho ETL por meio de execução otimizada e implantação e escalonamento automatizados de infraestrutura.
Delta Lake compatibilidade de recursos
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 site Delta Lake, consulte Delta Lake recurso compatibility and protocols.
Documentação da API do Delta Lake
Para a maioria das operações de leitura e gravação em tabelas Delta Lake, 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.
A Databricks garante a compatibilidade binária com as APIs do Delta Lake no Databricks Runtime. Para view o pacote da versão Delta Lake API em cada versão Databricks Runtime, consulte a seção Ambiente do sistema nos artigos relevantes nas Databricks Runtime notas 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.