Dentro de uma Squad de engenharia de dados, as principais ações estão sempre relacionadas a dados. E os dados, podem ser representados de diversas maneiras.

Arquivos estruturados, que possuem delimitadores definidos, como arquivos CSV, TSV. Ou talvez, arquivos semi-estruturados como arquivos em formato JSON ou XML.

Os dados pode vir de banco de dados, ou arquivos do mainframe, ou talvez, chamadas em API’s. Tudo isso são meios por onde o dado irá fluir, e capturar esses dados, em sua grande maioria, é apenas definir como estes estão estruturados para que possam ser convertidos em tabelas.

Neste sentindo, eu construí uma esteira de dados por onde é possível automatizar essas etapas. Nessa esteira, as etapas de enriquecimento de dados, qualidade (QA), transformações e a geração final do Data Mart são definidas em regras e padrões, e o sistema apenas utiliza essa ‘roupagem’ para definir a estrutura de cada arquivo que passa pela esteira de dados. Assim é possível montar as tabelas que serão usadas pelos time de Analytics.

A esteira separa os dados em etapas, a etapa RAW, representa o dado da forma que ele chegou, sem nenhuma modificação. Dando a veracidade a informação. Depois, este arquivo, passa pela etapa de Stage onde sofre tratamento como enriquecimento, transformações e QA, antes de ir para a etapa, que a o Data Mart.

O processo de QA sofre etapas de regras do dado e regras de negócio. Essas regras definem padrões que dizem se o arquivo pode ou não ser considerado adequado para ingestão. Tudo automatizado de forma a separar o joio do trigo. Dessa forma, o engenheiro consegue analisar separadamente cada arquivo problemático, dando vazão as entregas, e gerando valor para empresa.

O sistema foi montando para atender D-1, pois cada etapa precisa passar por condições que afastam as analises em real time, sendo etapas em batch que possuem tempo de resposta entre 5 a 10 minutos para concluir a esteira.

O projeto será apresentado em etapas com explicação e detalhamento do processo, toda a documentação será disponibilizada no github.

A partir do próximo post, falarei sobre o script que importa os dados para o HDFS de maneira organizada oferecendo um controle de fluxo. Além das primeiras etapas do processo de QA.

Acompanhem meu Github.