Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Os dados chegam em contas do data lake em vários formatos. Esses formatos incluem formatos legíveis por humanos, como JSON, . Arquivos CSV ou XML e formatos binários compactados, como .tar ou .gz. Os dados de chegada também vêm em muitos tamanhos, desde alguns arquivos editados até uma exportação de uma tabela SQL inteira. Os dados também podem vir como um grande número de arquivos pequenos que são alguns kbs cada, como eventos em tempo real de uma solução de IoT.
Embora o Azure Data Lake Storage Gen2 dê suporte a armazenamento para todos os tipos de dados sem restrições, você deve considerar cuidadosamente seus formatos de dados para garantir a eficiência do pipeline de processamento e otimizar os custos.
Muitas organizações agora padronizam seu formato de ingestão e separam a computação do armazenamento. Por isso, o formato Delta Lake tornou-se o padrão preferencial para ingestão de dados até a camada de enriquecimento. Na camada de enriquecimento, sua equipe de aplicativo de dados pode fornecer dados em um formato que reflita seu caso de uso.
Observação
Use o Delta Lake para dar suporte a casos de uso em lote e streaming para ingestão inicial de dados até a camada de enriquecimento.
Este artigo fornece uma visão geral do Delta Lake, seu desempenho e como ele ajuda você a obter suporte de conformidade e como padronizar seus dados conforme eles fluem da origem para a camada de enriquecimento.
Lago Delta
O Delta Lake é uma camada de armazenamento de código aberto que traz transações ACID (atomicidade, consistência, isolamento e durabilidade) para cargas de trabalho de Big Data e Apache Spark. O Azure Databricks é compatível com o Delta Lake do Linux Foundation.
Recursos de chave do Delta Lake
| Característica | Descrição |
|---|---|
| Transações de ACID | Os Data Lakes normalmente são populados por meio de vários processos e pipelines, alguns dos quais gravam dados simultaneamente com as leituras. Os engenheiros de dados costumavam passar por um processo manual e propenso a erros para garantir a integridade dos dados antes que o Delta Lake e as transações entrassem em uso. O Delta Lake traz as familiares transações ACID aos data lakes. Ele fornece o nível de isolamento mais forte, serializabilidade. Para obter mais informações, consulte Explorando o Delta Lake: Analisando o log de transações. |
| Manipulação de metadados escalonável | No Big Data, até os metadados podem ser "Big Data". O Delta Lake trata metadados da mesma forma que outros dados. Ele usa o poder de processamento distribuído do Spark para lidar com todos os metadados. Por isso, o Delta Lake pode lidar facilmente com tabelas em escala petabyte com bilhões de partições e arquivos. |
| Viagem no tempo (controle de versão de dados) | A capacidade de "desfazer" uma alteração ou voltar para uma versão anterior é um recurso fundamental das transações. O Delta Lake fornece instantâneos de dados, permitindo que você reverta para versões anteriores de dados para fins de auditorias, reversões ou reprodução de experimentos. Saiba mais em Introdução à viagem no tempo do Delta Lake para data lakes de grande escala. |
| Formato Aberto | O Apache Parquet, o formato de linha de base do Delta Lake, permite aplicar esquemas eficientes de compactação e codificação. |
| Lote Unificado e Fonte e Coletor de Streaming | Uma tabela no Delta Lake é simultaneamente uma tabela de lotes e uma fonte e coletor de streaming. O streaming de ingestão de dados, o provisionamento de histórico em lotes e as consultas interativas funcionam imediatamente. |
| Imposição do Esquema | A imposição de esquema ajuda você a garantir que tenha os tipos de dados corretos e as colunas necessárias, evitando a inconsistência de dados causada por dados inválidos. Para obter mais informações, consulteConhecendo melhor o Delta Lake: imposição do esquema & Evolução |
| Evolução do Esquema | O Delta Lake permite que você faça alterações aplicadas automaticamente a um esquema de tabela, sem a necessidade de gravar a DDL de migração. Para obter mais informações, consulteConhecendo melhor o Delta Lake: imposição do esquema & Evolução |
| Histórico de Auditoria | O log de transações do Delta Lake registra detalhes sobre cada alteração feita em seus dados. Esses registros fornecem uma trilha de auditoria completa de todas as alterações. |
| Atualizações e Exclusões | O Delta Lake dá suporte a APIs Scala, Java, Python e SQL para várias funcionalidades. O suporte a operações de mesclagem, atualização e exclusão ajuda você a atender aos requisitos de conformidade. Para obter mais informações, consulte Anunciando a Versão Delta Lake 0.6.1, Anunciando a Versão Delta Lake 0.7 e upserts e exclusões simples e confiáveis em tabelas Delta Lake usando APIs Python (que inclui snippets de código para mesclagem, atualização e exclusão de comandos DML). |
| 100% compatível com a API do Apache Spark | Seus desenvolvedores podem usar o Delta Lake com alteração mínima em seus pipelines de dados existentes, pois ele é totalmente compatível com implementações existentes do Spark. |
Para obter mais informações, confira Projeto do Delta Lake.
Para obter a documentação completa, visite a Página de Documentação do Delta Lake
Desempenho
O uso de muitos arquivos pequenos geralmente resulta em desempenho abaixo do ideal e custos mais altos de operações de leitura/lista aumentadas. O Azure Data Lake Storage Gen2 é otimizado para arquivos maiores que permitem que seus trabalhos de análise sejam executados com mais rapidez e menor custo.
O Delta Lake inclui muitos recursos que podem ajudá-lo a otimizar o desempenho com o gerenciamento de arquivos.
Os exemplos incluem:
- O log de transações minimiza operações de lista dispendiosas.
- O Z-Ordering (clustering multidimensional) permite a propagação de predicados otimizada para filtro de consulta.
- As otimizações de cache e consulta nativas reduzem a quantidade necessária de escaneamento de armazenamento. Para obter mais informações, consulte Otimizar o desempenho com o cache.
- O OPTIMIZE agrupa arquivos pequenos em arquivos maiores.
Torne essas otimizações parte do processo de carregamento de dados para manter a atualização e o desempenho dos dados.
Particionamento do data lake
O particionamento de dados envolve a organização de dados em seu armazenamento de dados para que você possa gerenciar dados em grande escala e controlar o acesso a dados. O particionamento pode aprimorar a escalabilidade, reduzir a contenção e otimizar o desempenho.
Ao particionar seu data lake, verifique sua configuração:
- Não compromete a segurança
- Tem isolamento claro e está alinhado com seu modelo de autorização de dados
- Encaixa bem no processo de ingestão de dados
- Tem um caminho bem definido para acesso a dados ideal
- Dá suporte a tarefas de gerenciamento e manutenção
Práticas gerais
As práticas gerais para design de particionamento de dados são:
- Concentre-se nos aspectos de segurança com antecedência e planeje suas partições de dados juntamente com a autorização.
- Talvez você queira permitir a redundância de dados em troca de segurança.- Defina uma convenção de nomenclatura e siga-a.
- Você pode aninhar várias pastas, mas sempre mantê-las consistentes.
- Inclua um elemento de tempo em suas estruturas de pastas e nomes de arquivo.
- Não inicie sua estrutura de pastas com partições de datas. É melhor manter as datas no nível inferior da pasta.
- Não combine formatos de arquivo mistos ou produtos de dados diferentes em uma única estrutura de pastas.
Dica
Suas estruturas de pasta devem ter estratégias de particionamento que possam otimizar padrões de acesso e tamanhos de arquivo apropriados. Nas zonas selecionadas, planeje a estrutura com base na recuperação ideal, tenha cuidado ao escolher uma chave de partição com alta cardinalidade, o que leva ao particionamento excessivo, o que, por sua vez, leva a tamanhos de arquivo abaixo do ideal.
Para obter mais informações sobre zonas do data lake, consulte zonas e contêineres do Data Lake
Suporte de conformidade
O Delta Lake adiciona uma camada transacional para oferecer gerenciamento de dados estruturados em cima do seu data lake. Essa adição pode simplificar e acelerar drasticamente sua capacidade de localizar e remover informações pessoais (também conhecidas como "dados pessoais") mediante solicitação do consumidor. A camada transacional dá suporte a operações como DELETE, UPDATE e MERGE. Para obter mais informações, consulte As práticas recomendadas: conformidade com GDPR usando o Delta Lake.
Resumo
Aplique as padronizações de dados listadas neste artigo à sua plataforma. Comece com o formato Delta Lake e, em seguida, comece a adicionar processos para otimização e conformidade. Você pode decidir criar um serviço que executa algumas de suas rotas de otimização em um agendamento ou criar um serviço de conformidade que remova informações pessoais.