Partilhar via


Padronização de dados

Os dados chegam às contas do data lake em vários formatos. Esses formatos incluem formatos legíveis por humanos, como JSON, . CSV, ou arquivos XML, e formatos binários compactados, como .tar ou .gz. Os dados que chegam 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 pequenos arquivos que são alguns kbs cada, como eventos em tempo real de uma solução IoT.

Embora o Azure Data Lake Storage Gen2 ofereça suporte ao 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 causa disso, o formato Delta Lake tornou-se o padrão preferido para a ingestão de dados até a camada de enriquecimento. A partir da camada de enriquecimento, sua equipe de aplicativos de dados pode fornecer dados em um formato que reflita seu caso de uso.

Nota

Use o Delta Lake para oferecer 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, além de como padronizar seus dados à medida que fluem da fonte para a camada de enriquecimento.

Delta Lake

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 Synapse Analytics e o Azure Databricks são compatíveis com o Linux Foundation Delta Lake.

Principais características do Lago Delta

Funcionalidade Description
Transações ACID Os data lakes são normalmente preenchidos por meio de vários processos e pipelines, alguns dos quais gravam dados simultaneamente com 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 transações ACID familiares para data lakes. Ele fornece o nível de isolamento mais forte, serializabilidade. Para obter mais informações, consulte Mergulhando no Delta Lake: descompactando o log de transações.
Tratamento escalável de metadados Em big data, até mesmo metadados podem ser "big data". O Delta Lake trata os metadados da mesma forma que outros dados. Ele usa o poder de processamento distribuído do Spark para lidar com todos os metadados. Por causa disso, o Delta Lake pode facilmente lidar com tabelas em escala de petabytes com bilhões de partições e arquivos.
Viagem no tempo (versionamento de dados) A capacidade de "desfazer" uma alteração ou voltar a uma versão anterior é uma característica fundamental das transações. O Delta Lake fornece instantâneos de dados, permitindo que você reverta para versões anteriores de dados para auditorias, reversões ou reprodução de experimentos. Saiba mais em Introducing Delta Lake Time Travel for Large Scale Data Lakes.
Formato aberto O Apache Parquet, o formato de linha de base do Delta Lake, permite aplicar esquemas eficientes de compressão e codificação.
Lote unificado e fonte de streaming e coletor Uma tabela no Delta Lake é simultaneamente uma tabela em lote e uma fonte e um coletor de streaming. O streaming de ingestão de dados, o preenchimento do histórico de lotes e as consultas interativas funcionam prontamente.
Aplicação do esquema A imposição de esquema ajuda a garantir que você tenha tipos de dados corretos e colunas necessárias, o que evita a inconsistência de dados incorretos. Para obter mais informações, consulte Mergulhando no Delta Lake: Schema Enforcement & Evolution
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 escrever DDL de migração. Para obter mais informações, consulte Mergulhando no Delta Lake: Schema Enforcement & Evolution
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 Delta Lake suporta 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 Atualizações e exclusões simples e confiáveis em tabelas Delta Lake usando APIs Python (que inclui trechos de código para mesclar, atualizar e excluir comandos DML).
100% compatível com Apache Spark API Seus desenvolvedores podem usar o Delta Lake com alterações mínimas em seus pipelines de dados existentes, uma vez que é totalmente compatível com as implementações existentes do Spark.

Para obter mais informações, consulte Projeto 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 com o aumento das operações de leitura/lista. O Azure Data Lake Storage Gen2 é otimizado para arquivos maiores que permitem que seus trabalhos de análise sejam executados mais rapidamente e com menor custo.

O Delta Lake inclui muitos recursos que podem ajudá-lo a otimizar o desempenho com o gerenciamento de arquivos.

Exemplos incluem:

  • O log de transações minimiza operações LIST dispendiosas.
  • Z-Ordering (clustering multidimensional) permite a redução otimizada de predicados para seus filtros de consulta.
  • O cache nativo e as otimizações de consulta reduzem a quantidade de verificação de armazenamento necessária. Para obter mais informações, consulte Otimizar o desempenho com cache.
  • OTIMIZE aglutina pequenos arquivos em arquivos maiores.

Faça com que essas otimizações façam parte do seu processo de carregamento de dados para manter a atualização e o desempenho dos dados.

Particionamento de 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 aos dados. A criação de partições pode melhorar a escalabilidade, reduzir a contenção e otimizar o desempenho.

Ao particionar seu data lake, certifique-se de sua configuração:

  • Não compromete a segurança
  • Tem isolamento claro e alinha-se com o seu modelo de autorização de dados
  • Adapta-se bem ao seu processo de ingestão de dados
  • Tem um caminho bem definido para acesso ideal aos dados
  • Suporta tarefas de gestão e manutenção

Práticas gerais

As práticas gerais para o design de particionamento de dados são:

  • Concentre-se em sua implicação de segurança com antecedência e projete suas partições de dados juntamente com a autorização.
  • Você pode querer permitir redundância de dados em troca de segurança.- Defina uma convenção de nomenclatura e aderir a ela.
  • Você pode aninhar várias pastas, mas sempre mantê-las consistentes.
  • Inclua um elemento time em suas estruturas de pasta e nomes de arquivo.
  • Não inicie sua estrutura de pastas com partições de data. É 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.

Gorjeta

Suas estruturas de pastas 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, que por sua vez leva a tamanhos de arquivo subótimos.

Para obter mais informações sobre zonas de data lake, consulte Data lake zones and containers

Suporte de conformidade

O Delta Lake adiciona uma camada transacional para fornecer gerenciamento de dados estruturados sobre seu data lake. Esta adição pode simplificar e acelerar drasticamente a sua capacidade de localizar e remover informações pessoais (também conhecidas como "dados pessoais") mediante solicitação do consumidor. A camada transacional suporta operações como DELETE, UPDATE e MERGE. Para obter mais informações, consulte Práticas recomendadas: conformidade com o 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 execute algumas de suas rotas de otimização em um cronograma ou criar um serviço de conformidade que remova informações pessoais.

Próximos passos