Pipelines e o Processo de Engenharia de Dados

Processo de Engenharia de Dados.
Processo de Engenharia de Dados.
Como os Pipelines de Dados são usados nas arquiteturas modernas e porque a Engenharia de Dados e considerada uma etapa tão crucial no mundo de hoje.

Dando continuidade à nossa série de posts que começamos no nosso artigo Engenharia de Dados: uma abordagem menos técnica, onde em um primeiro momento falamos do que vem à nossa mente quando pensando em Engenharia de Dados, como organizar os dados está impactando em uma mudança de comportamento, a importância do papel que o Engenheiro de Dados desempenha nas organizações, e por fim falamos sobre como a demanda por profissionais com este background está em alta.

Hoje seguiremos rumo ao próximo tópico, falando sobre os Pipelines de Dados, e porque o processo de Engenharia de Dados é considerado uma etapa tão importante no mundo de hoje.

Mas calma aí… O que seria um Pipeline?

Eu mesmo ouvia isso e já pensava logo em um gasoduto, ou uma tubulação… porém vamos juntos tentar entender melhor.

Fonte: Google Imagens + Autor

Realmente, quando fazemos uma tradução direta da palavra Pipeline, não temos uma resposta clara do que a termo significa quando trata-se de dados. Tampouco faria sentido a princípio lembrar de uma tubulação ou gasoduto. Mas o que tubulações e conexões entre aplicações têm em comum? Elas iniciam em uma determinada fonte e têm um determinado destino ou consumo final, certo? Exatamente!

Fazendo uma analogia

Então, desta forma, imagine uma tubulação de água que sai, por exemplo, da sua caixa d’água e leva a água até a torneira da cozinha. Assim conseguimos entender melhor a associação da palavra Pipeline traduzida diretamente do inglês com o seu significado no nosso contexto: estamos levando algo de uma fonte para um determinado consumo ou destino.

Agora que já ficou mais claro o termo Pipeline, vamos aprender de fato o que seria este processo.

Fonte: Source(fonte) > Data Pipeline(Pipeline de Dados) > Target(Destino) – ProProject

Um Pipeline de dados é uma série de etapas de processamento dos dados, consistindo em 3 elementos chaves, que seriam: a fonte dos dados, a etapa de processamento destes (podendo ser uma ou mais etapas) e, por fim, um destino para os dados.

Como a imagem acima nos mostra, os Pipelines permitem que a movimentação desses dados possa seguir um fluxo que pode ser, por exemplo, trazer dados de um sistema legado (nossa Source, ou fonte) para um Data Lake (nosso Target, ou destino), ou de um banco de dados para um sistema de processamento de pagamentos, por exemplo.

Exemplificando um Pipeline

Os Pipelines podem conter uma ou mais fontes e também seguir uma sequência de etapas, algumas podendo ser executadas de forma independente em paralelo e outras sendo executadas em série, uma operação após a outra, mas ao final tendo um mesmo destino dos dados.

Fonte: Pipeline de Dados em etapas mostrando a entrada e saída dos dados – DataQuest

Bem, até aqui passamos por todo o contexto dos Pipelines de dados e entendemos que dentro de um mesmo pipe podem haver várias operações.

Porém, dentro deste cenário, temos dois formatos de processos fundamentais no processamento des dados, sendo eles o ETL e o ELT. Ambos são bem similares, porém note que no ELT temos a inversão entre o T e o L. Descrevemos a seguir ambos os processos, abordando-os com mais detalhes de uso.

As organizações utilizam os processos de ETL e ELT para realizar extração de dados, transformações e carregamento desses dados em determinados destinos. O E é de Extrair, o T de Transformar e o L de Carregar (Load, em Inglês).

O ETL ou ELT pode melhorar a produtividade dos profissionais porque codifica e reutiliza os processos de movimentação de dados sem exigir grande habilidades técnicas para escrever códigos ou scripts, um exemplo disto é a ferramenta ADF (Azure Data Factory) da Microsoft, onde é possível criar Pipelines usando pouco ou quase nenhum código, ela é considerada uma ferramenta “low-code”.

O que são plataformas low code? (Imagem: Vitor Pádua/Tecnoblog)
Fonte: https://tecnoblog.net/responde/o-que-sao-plataformas-low-code/

Na imagem abaixo, “ELT Process“, temos um processo de ELT completo, onde lendo da esquerda para direita podemos ver o grupo de “Extract” que seria o nosso E do E – L – T. Onde iniciamos a etapa de extração dos dados indo em uma determinada fonte que no exemplo temos bancos de dados SQL, bancos de dados NoSQL, plataformas SaaS, arquivos XML e outros.

Na segunda etapa temos o movimento de “Load” que seria referente ao carregamento dos dados, podendo ser de um banco de dados para outro, de uma plataforma ou aplicação para um banco de dados, ou qualquer outra combinação.

No nosso exemplo estamos trazendo do E (Extract, ou Extração em português) para nossa etapa L (Load, ou Carregamento em português).

Após nosso carregamento, seguimos para etapa de “Transform” que seria responsável pela transformação dos dados que tendo como objetivo de, por exemplo tirar nulos, padronizar os dados para em seguida poderem ser analisados e entregues para uma área de Analytics (podendo os dados se tornar um painel, ou Dashboard) ou alimentar um modelo de Machine Learning.

Fonte: Processo de ETL de ponta a ponta – Qlik

Agora que conseguimos entender um processo de ponta a ponta, vamos adentrar nos detalhes do ETL e ELT.

Processo ETL

ETL significa Extrair > Transformar > Carregar


No processo ETL, a transformação de dados é realizada em uma área de preparação fora do Data Warehouse e todos os dados devem ser transformados antes do carregamento. Como resultado, a transformação de conjuntos de dados maiores pode levar muito tempo no início, mas a análise pode ocorrer imediatamente após a conclusão do processo de ETL.

Extract Transfrom Load - infographic
Fonte: https://www.sas.com/pt_br/insights/data-management/o-que-e-etl.html
  1. Um subconjunto predeterminado de dados é extraído da fonte.
  2. Os dados são transformados em uma área de preparação de alguma forma, como mapeamento de dados, aplicação de concatenações ou cálculos. Transformar os dados antes de serem carregados é necessário para lidar com as restrições dos armazéns de dados tradicionais.
  3. Os dados são carregados no sistema de armazenamento de dados de destino e estão prontos para serem analisados ​​por ferramentas de BI ou ferramentas de análise de dados .

Principais benefícios do ETL

  • A análise de dados em um único caso de uso predefinido pode ser um pouco mais estável e rápida com o processo ETL, pois o conjunto de dados já foi estruturado e transformado.
  • A conformidade com os padrões GDPR, LGPD, HIPAA e CCPA(detalhamos cada uma dessas siglas no paragrafo “Leis de privacidade de dados”) é mais fácil com ETL, pois os usuários podem omitir quaisquer dados confidenciais antes de carregá-los no sistema de destino.

Processo ELT

ELT significa Extrair > Carregar > Transformar


No processo ELT, a transformação de dados é realizada conforme a necessidade no próprio sistema de destino. Como resultado, a etapa de transformação leva pouco tempo, mas pode desacelerar os processos de consulta e análise se não houver poder de processamento suficiente na solução em nuvem.

Processo ELT (Extract-Load-Transform)
Fonte: https://blog.indicium.tech/etl-vs-elt-diferencas/
  1. Todos os dados são extraídos da fonte.
  2. Todos os dados são imediatamente carregados no sistema de destino (seja um Data Warehouse , Data Mart ou Data Lake). Isso pode incluir tipos de dados brutos, não estruturados, semiestruturados e estruturados.
  3. Os dados são transformados no sistema de destino e estão prontos para serem analisados ​​por ferramentas de BI ou ferramentas de análise de dados

Normalmente, o sistema de destino para ELT é um Data Lake, Data Mart, Data Warehouse ou Data Lakehouse baseado em nuvem. 

Plataformas baseadas em nuvem, como IBM Watson, Amazon Redshift, Snowflake, Azure Synapse, Databricks e Amazon EMR, oferecem armazenamento quase ilimitado e amplo poder de processamento. Isso permite que os usuários extraiam e carreguem todos e quaisquer dados de que possam precisar quase em tempo real. 

As plataformas de nuvem transformam os dados para qualquer caso de uso de BI, análise ou modelagem preditiva a qualquer momento. Principais benefícios do ELT

  • Análise de dados flexível e em tempo real.
  • Menor custo e menor manutenção.

Os processos de ETL/ELT continuam em evolução e é bem provável que mais à frente tenhamos algum novo processo para nos ajudar na construção de pipelines ou novos softwares que nos ajudam no dia a dia. Sabemos que o “low-code” tem se mostrado uma forte tendência no mercado, então com o passar dos anos teremos mais ferramentas do gênero aparecendo nas tecnologias.

Como podemos definir o processo de Engenharia de Dados?

Sabemos que a Engenharia de Dados em si é uma área muito nova e que está em constante evolução e muitos dos seus processos, temas, recursos estão em constante mudança para a exemplificação do processo iremos utilizar a definição do Dremio, que é uma plataforma de dados.

A engenharia de dados é o processo de projetar e construir sistemas que permitem que as pessoas coletem e analisem dados brutos de várias fontes e formatos. Esses sistemas capacitam as pessoas a encontrar aplicações práticas dos dados, que as empresas podem usar para prosperar.

Fonte: https://www.dremio.com/resources/guides/intro-data-engineering/

Mas logo em seguida temos outro questionamento: por que dar tanta importância para esta etapa?

Quando sua empresa está flutuando em dados sujos, as áreas de negócios e marketing não podem tomar decisões bem precisas e baseadas em dados. Em média, as organizações acreditam que 25% de seus dados são imprecisos, um fator que afeta os resultados.

Etapas do processo de Engenharia de Dados

Com base em diferentes cenários que podem existir e de acordo com o projeto de Engenharia de Dados, podemos ter etapas diferentes. Porém, para clareza de nossos exemplos vamos utilizar as etapas de desenvolvimento abaixo, que já são consideradas etapas bem criteriosas dentro do processo de Engenharia de Dados:

A) Coletando os dados

Na coleta de dados partimos para o que chamamos fonte dos dados, onde vamos verificar o que precisa ser levado e de que fora seria melhor para levarmos para dentro do nosso processo, digamos que temos um antigo sistema legado que possui um banco de dados, então este banco de dados precisa ser migrado para um ambiente em nuvem, onde será utilizado em uma nova solução analítica. Poderíamos muito bem pegar estes dados e gravá-los em um Data Lake para ser utilizado como um arquivo “Parquet” que daria uma boa otimização e poderia utilizar o mesmo arquivo em seguida para ser lido em um Databricks, por exemplo.

Fonte: flaticon

B) Limpando os dados

Limpar os dados é uma missão que pode gastar bastante tempo do Engenheiro de Dados, mas é algo que garante que os dados que serão realmente usados lá na frente estejam da maneira correta e estarão realmente prontos para uso, poupando o tempo de quem é responsável pela análise, sem ter que ficar “re-engenheirando“.

As categorias de limpezas vão desde ajustar dados que estão inconsistentes, preencher dados que estão nulos, isolar incongruências dentro dos datasets já construídos, sempre analisando a linhagem dos dados para saber a fonte daquele dado, se fazem sentido ou não aqueles dados não padrão que precisam ser limpos.

Limpar os dados é uma tarefa minuciosa que também exige a validação se não houve nenhuma anomalia nos dados durante a migração do sistema anterior.

C) Processando os dados

Processar os dados é a etapa onde já temos um dado praticamente no seu formato final, porém ainda de alguma forma precisamos processá-lo ou gravá-lo.

É uma etapa mais simples, mas pode exigir bastante investimento dependendo da quantidade de transformações necessárias para gerar as análises e lógicas para o negócio. Um ambiente bem provisionado deve ser pensado tanto em quando estão acontecendo os trabalhos da etapa anterior quanto durante o trabalho de processamento final.

Em alguns momentos realmente surgem jobs (trabalhos) que exigem um pouco mais do ambiente e teremos com certeza que chamar aquele amigo da infra para dar uma aumentada no cluster.

Fonte: data-collection-best-methods-practical-examples – iteratorshq

D) Monitorando trabalhos (jobs)

Monitoramento dos trabalhos executados… sim, finalmente chegamos até aqui. Então não vamos simplesmente deixar nossos trabalhos rodando e esquecer deles para sempre. O ideal é sempre observar os trabalhos, a forma que são executados, o tempo de execução, o que podemos fazer para otimizarmos. Afinal, esse é um dos lemas sempre presente dos dados.

Temos que entender que sempre vamos estar avançando e em breve ter evoluído em recursos, comandos e tecnologia. Inovar faz parte, e depois que seus trabalhos de processamento forem concluídos, você poderá obter inteligência de negócios e análise de seus dados.

Fonte: why-collecting-data-digitally-is-the-best-way-to-go-in-2016 – www.inc.com

O texto acima é onde falamos sobre os processos de engenharia de dados é uma adaptação da documentação https://docs.informatica.com/data-engineering/data-engineering-integration/10-4-1/user-guide/introduction-to-informatica-data-engineering-integration.html, onde passamos por uma introdução bem extensa do que seria a engenharia de dados e seus processos, em nosso artigo estamos resumindo e deixando o mais claro possível a nossa tradução.

Ronnan Lima

Leis de privacidade de dados

Fonte: Leis de privacidade dos dados
https://sectigostore.com/blog/data-privacy-laws-ccpa-hipaa-gdpr-glba-lgpd/

As siglas GDPR, LGPD, HIPAA e CCPA são todas leis de privacidade de dados. Elas visam proteger os dados pessoais das pessoas e estabelecer regras para o uso e armazenamento desses dados por parte de empresas e instituições.

  • O GDPR (General Data Protection Regulation) é uma lei da União Europeia que regulamenta a proteção de dados pessoais no bloco econômico. Ela foi criada para unificar as leis de privacidade de dados da UE e fornecer maior proteção aos cidadãos europeus.
  • A LGPD (Lei Geral de Proteção de Dados Pessoais) é uma lei brasileira que regulamenta a proteção de dados pessoais no país. Ela foi inspirada no GDPR e tem como objetivo proteger os dados pessoais dos cidadãos brasileiros.
  • O HIPAA (Health Insurance Portability and Accountability Act) é uma lei dos Estados Unidos que regulamenta a proteção de dados pessoais no setor de saúde. Ela estabelece regras para o uso e armazenamento de dados médicos e de saúde pelas instituições de saúde e seguradoras.
  • O CCPA (California Consumer Privacy Act) é uma lei da Califórnia, Estados Unidos, que regulamenta a proteção de dados pessoais no estado. Ela estabelece regras para o uso e armazenamento de dados pessoais.

Conclusão

Se você, meu caro amigo ou amiga, chegou até neste ponto, gostaria de lhe dar os parabéns, pois este artigo foi bastante longo e ainda pode conter diversas ramificações, pois alguns dos assuntos não abordados aqui de forma direta tiveram que ser incluídos como links exteriores, o que não é a melhor coisa, mas tentamos ser o mais objetivos possível e se fossemos abordar tudo de uma única vez o conteúdo ficaria extenso e talvez cansativo demais.

Então conseguimos entender o que são os Pipelines de Dados, e como existem processos importantes dentro deles, entendemos também que anteriormente tínhamos apenas o ETL que é o processo mais comum e ainda muito usado e que agora com as novas tecnologias de Cloud está crescendo um forte uso do ELT, onde é possível armazenar os dados e carregá-los antes de ter que transformar. Vimos também a importância das etapas do processo de Engenharia de Dados, e o porque a não limpeza correta dos dados pode afetar a nossa entrega final.

Está é a continuação de uma séria de posts que iniciou com o post Engenharia de Dados: uma abordagem menos técnica, esperamos que tenha gostado bastante do artigo e com toda certeza queremos que volte para ler mais sobre está série de postagens.

Espero ter despertado a sua curiosidade e conto com seu comentário para saber a sua opinião e que dúvidas ou sugestão teria sobre os temas que vimos aqui. E se estiver gostando da nossa comunidade, conheça um pouco mais sobre nós e nossos objetivos de fortalecer a comunidade brasileira de dados no post BRAINS – Brazilian AI Networks.

#NoBrains #NoGains 🧠

0 Shares:
3 comentários
Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Você também pode gostar