Cinco tarefas de engenharia de dados automatizadas pela Refinaria de Dados da Tail

Cinco tarefas de engenharia de dados automatizadas pela Refinaria de Dados da Tail
83

Quando trabalhamos com grandes volumes de dados, a área de Engenharia de Dados é responsável por diversas tarefas que envolvem a arquitetura necessária para manter tudo funcionando. Algumas dessas tarefas são: disponibilizar os dados para serem consumidos pelos Cientistas de Dados ou Analistas de Dados; depois que as análises são feitas e os insights são obtidos é necessário criar o programa e agendar a execução do seu pipeline em produção; é preciso monitorar as execuções para saber se estão executando e se o cluster de máquinas está aguentando todo o volume processado.

A Refinaria de Dados da Tail possui diversas funcionalidades que auxiliam o trabalho de uma equipe de  Engenharia de Dados. A seguir apresento cinco tarefas que automatizamos para reduzir o tempo entre a experimentação e prototipação do pipeline, até o seu deploy e monitoramento, assim reduzindo o esforço e tempo da equipe de Engenharia de Dados.

 

1- Acesso self-service ao dados

Uma primeira dificuldade de quem quer usar a engenharia de dados é ter acesso a eles. Muitas vezes os dados estão distribuídos em várias fontes diferentes como: banco de dados, arquivos no bucket de algum cloud, arquivos de log e planilhas Excel. Os dados podem ainda ter formatos variados como csv, json e txt, então é necessário ter acesso aos dados em suas respectivas fontes e saber como manipular cada um desses formatos.

A Refinaria de Dados da Tail permite que o cliente crie seu Data Lake, e após os dados serem carregados para dentro do Data Lake, independente da sua origem ou formato, esses dados são disponibilizados de forma consolidada em um único local, em um formato único e com uma pré limpeza de acordo com os tipos dos dados detectados automaticamente pela nossa plataforma, para serem utilizados pelos Cientistas de Dados ou Analistas de Dados.

Cada novo datastore carregado no Data Lake passa automaticamente a fazer parte do catálogo de dados da empresa, onde são armazenadas meta-informações sobre os dados carregados, incluindo a base legal do dado adicionado, o que é muito importante para que a empresa se mantenha compatível com a LGPD.

O acesso aos dados é realizado por meio de pipelines, com uma ideia similar a de notebooks como Jupyter Notebook ou Apache Zeppelin, no qual disponibilizamos células que deixam de forma transparente qual o formato original do dado armazenado no datastore, facilitando tanto a leitura como a escrita nos datastores.

Para as pessoas que manipulam os dados, mas ainda não sabem quais funções usar para transformar, filtrar, agregar ou juntar datastores, temos células que servem como guias para facilitar a análise exploratória dos dados, e para quem já possui conhecimento da parte técnica e quer fazer algumas explorações mais avançadas temos também uma célula que permite executar consultas Spark SQL.

O acesso self-service independente da fonte ou formato dos dados, é muito importante para os usuários não técnicos que possuem permissão para acessar os dados e que ainda estão na fase exploratória de conhecer os dados disponíveis para tentar gerar novos insights. Essa é uma das facilidades que nossos clientes possuem desde o momento em que seus dados começam a ser carregados no Data Lake.

 

2- Geração automática da amostra do datastore

O volume dos datastores variam de KBs a TBs, mas é uma dificuldade para  qualquer pessoa processar grandes volumes de dados de forma rápida durante seus experimentos. Por isso, é muito comum que a área de Engenharia de Dados prepare amostras dos dados para disponibilizar apenas uma parte desses datastores. Mas precisamos tomar um cuidado, porque em muitos casos essa amostra não pode ser apenas os registros do começo ou final do datastore, a amostra precisa fornecer uma representatividade dos dados.

Para disponibilizar uma amostra aleatória dos dados, a Refinaria de Dados gera automaticamente um datastore de amostra para cada um dos datastores do Data Lake, essa amostra é atualizada toda vez que há uma mudança nos registros do datastore. Com isso Cientistas de Dados ou Analistas de Dados pode fazer suas experimentações em cima dessa amostra aleatória.

Além disso, também disponibilizamos um ambiente ligado ao nosso cluster que permite a execução interativa para realizar a exploração dos dados, evitando que o processamento fique concentrado em um computador local, o que em muitas ocasiões deixa o computador lento ou até impossibilita o seu uso até que a execução tenha terminado.

O fato das amostras ficarem disponíveis dentro do próprio Data Lake sempre prontas para uso, aumenta também a confidencialidade e segurança dos dados, uma vez que Cientistas de Dados podem fazer explorações dentro da própria plataforma, sem necessidade de fazer cópias locais dos dados para experimentações.

 

3- Agendamento da execução de pipelines

Um desafio para qualquer Engenheiro de Dados é receber um pipeline (como um Jupyter Notebook ou Apache Zeppelin) e ter que executar em produção. O deploy em produção é uma tarefa que demanda muito tempo e trabalho da área de Engenharia de Dados, porque às vezes é necessário criar uma máquina Docker ou Kubernete para disponibilizar o ambiente, tem que pegar o código do notebook e criar um programa, tem que agendar a periodicidade da execução, acompanhar se está funcionando, entre outros.

Na Refinaria de Dados da Tail, após a criação dos pipelines, o próprio usuário consegue agendar sua execução, definir sua periodicidade de execução e até encadear a execução de vários pipelines. Disponibilizamos acesso a todas as execuções que estão agendadas, um histórico para saber em qual fase está da execução do pipeline e também um log da execução propriamente dita, na qual é possível identificar caso ocorra algo errado.

Essa tarefa por si só, ajuda muitas empresas que antes demoravam meses entre a prototipação e o deploy de seus pipelines em produção, e que agora conseguem terminar a prototipação e já executar os pipelines para obter um feedback muito mais rápido se os resultados obtidos realmente fazem sentido ou se devem voltar para a fase de prototipação.

 

4- Data Lineage

Utilizamos um Data Lake porque queremos gerar insights a partir de várias fontes da Engenharia de dados diferentes, mas cada datastore pode ter sido importado de uma fonte ou gerados a partir da junção de dados de vários datastore, eles podem ter uma ou mais base legais conforme a LGPD, os datastores podem ser carregados continuamente via carga batch ou gerados a partir de um pipeline, o schema do datastore pode mudar com o passar do tempo.

O controle dessas diversas variáveis é muito importante e ajuda a responder perguntas como “Qual a origem dos dados? Quais mudanças ocorreram no datastore com o passar do tempo? Qual a base legal que a empresa possui para utilizar esses dados?”.

Todos os datastores armazenados no Data Lake da Refinaria de Dados da Tail possuem um Data Lineage que registra ao longo do tempo se o datastore foi criado a partir de uma carga de dados ou a partir da união de outros datastore, as modificações estruturais no schema, como os dados foram adicionados ou removidos, qual sua base legal, entre outras informações.

Isso permite responder perguntas sobre como seu datastore evoluiu com o passar do tempo, mas também traz outros benefícios como a reprodutibilidade dos experimentos porque podemos saber como estava o datastore em um determinado momento.

 

5- Exportar dados para o BigQuery e Data Studio

Quando Cientista de Dados ou Analista de Dados desenvolve seus pipelines, em muitos casos são utilizados gráficos para apresentar as informações obtidas, e a Refinaria de Dados possui gráficos que ajudam a visualizar essas informações durante a exploração dos dados, mas nem sempre queremos ver gráficos dentro de um pipeline, em muitos casos queremos criar dashboards que organizam diversos gráficos.

Muitas empresas utilizam o Data Studio do Google Cloud Platform para criar dashboards a partir das análises realizadas e um dos trabalhos da equipe de Engenheira de Dados é disponibilizar o acesso aos dados gerados pelos pipelines para serem acessados via Data Studio.

Uma das saídas de dados disponíveis no pipeline é gravar os dados resultantes das análises em um datastore do tipo BigQuery no Data Lake da Refinaria de Dados. E para que nossos clientes consigam criar seus dashboards, a Tail disponibilizou um plug-in que permite acessar via Data Studio todos os datastores que estão em seu Data Lake.

Essa integração transparente entre a Refinaria de Dados da Tail e o Data Studio permite criar dashboards que serão continuamente atualizados.

 

As soluções da Tail podem automatizar diversas tarefas, não só da área de Engenheira de Dados, mas de todas as pessoas envolvidas no processo de análise de dados, solicite uma demonstração para nossos especialistas.

 

 

Post escrito por Rafael Sakurai (@rafaelsakurai), líder técnico na equipe de engenharia de Big Data da Tail e editor responsável pelo conteúdo de IA, ML e Engenharia de Dados do InfoQ Brasil. Trabalha com desenvolvimento de aplicações corporativas a mais de 15 anos, possui interesse em desenvolvimento de soluções distribuídas, aprendizado de máquinas e ciência de dados.