Compartilhar via


Padronização de dados

Os dados chegam em contas de 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. Devido a isso, 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 aplicativo de dados pode servir dados em um formato que reflita seu caso de uso.

Observação

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 e como padronizar seus dados à medida que fluem da origem 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

Recurso Descrição
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 as familiares transações ACID aos data lakes. Ele fornece o nível de isolamento mais forte, a capacidade de serialização. Para obter mais informações, consulte Mergulhando no Delta Lake: Descompactando o log de transações.
Manipulação de metadados escalonável No big data, até mesmo os 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. Devido a isso, o Delta Lake pode facilmente lidar com tabelas em escala de petabytes 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 é 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 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 para 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 em lote e uma fonte e coletor de streaming. O streaming de ingestão de dados, o preenchimento histórico de lotes e as consultas interativas funcionam prontamente.
Imposiçã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 de dados incorretos. Para obter mais informações, consulteConhecendo melhor o Delta Lake: imposição do esquema e 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 DDL de migração. Para obter mais informações, consulteConhecendo melhor o Delta Lake: imposição do esquema e 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 oferece 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 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 a API do Apache Spark Seus desenvolvedores podem usar o Delta Lake com alterações mínimas em seus pipelines de dados existentes, já que ele é totalmente compatível com as 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 Lago Delta

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.

Os exemplos incluem:

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

Faça dessas otimizações parte do seu 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, certifique-se de sua configuração:

  • Não compromete a segurança
  • Tem isolamento claro e se alinha ao 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 gerenciamento 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 antecipadamente e projete suas partições de dados junto 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 cumpra-a.
  • Você pode aninhar várias pastas, mas sempre mantê-las consistentes.
  • Inclua um elemento time em suas estruturas de pastas e nomes de arquivos.
  • 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.

Dica

Suas estruturas de pastas devem ter estratégias de particionamento que possam otimizar padrões de acesso e tamanhos de arquivo apropriados. Nas zonas coletadas, 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 aquém do ideal.

Para obter mais informações sobre zonas de data lake, consulte Zonas e contêineres de data lake

Suporte de conformidade

O Delta Lake adiciona uma camada transacional para fornecer gerenciamento de dados estruturados sobre 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 oferece suporte a 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 uma agenda ou criar um serviço de conformidade que remova informações pessoais.

Próximas etapas