ETL, serving layer e data processing. Se você trabalha na área de dados e desenvolvimento de software, já deve ter se deparado com pelo menos um desses termos utilizados como referência para etapas que ocorrem no fluxo de dados. Do input ao output, colocar tais etapas lado a lado nem sempre é algo compreendido por todos. Neste artigo, discutirei de forma bastante breve cada uma dessas fases, com destaque para os pontos em que mecanismos de inteligência artificial vêm sendo aplicados.
O acúmulo de dados nas empresas gerou a necessidade de agregar inteligência tecnológica. Quando o assunto gira em torno de dados, a inteligência envolve desde a organização e visualização, para extração de insights, até predições, análises probabilísticas e estatísticas. Para atingir esses fins, as companhias recorrem a profissionais capacitados para organizar as bases de dados (tipicamente engenheiros de dados), para extrair informações (cientistas e analistas de dados) e profissionais de backend, que performam a tarefa de estabelecer conexões para viabilizar tudo isso.
A primeira etapa reside em organizar as informações. Dados são tipicamente desorganizados, têm problemas de valores faltantes, variáveis inseridas com tipo errado, outliers, chaves inconsistentes entre bases e por aí vai. Para organizar tudo isso, deve-se antes extrair os dados de suas bases originais (Extract – “E” da sigla ETL) e levá-los para uma etapa de transformação (Transformation – “T” da sigla ETL). Nessa etapa de transformação, métodos supervisionados e não supervisionados de inteligência artificial podem ser utilizados para tarefas como detecção de outliers, preenchimento de valores faltantes e detecção de frequência (se forem dados temporais); também é possível estabelecer procedimentos como normalização, encoding e transformação logarítmica.
Após essas duas etapas (extração e transformação) é necessário armazenar (Loading – “L” da sigla ETL) os dados em algum banco (ou “bucket”) para que sejam acessados pelo processamento. Ao realizar isso, pode-se dizer que a etapa de “pré-processamento” dos dados foi finalizada, ou seja, eles foram organizados e passaram pelas transformações necessárias para entrarem numa etapa mais “rebuscada” de geração de informação. Para alguns, a etapa de ETL e disponibilização dos dados em um “data warehouse” é o suficiente para que as ferramentas de business intelligence (BI) acessem e gerem dashboards com informações relevantes, pulando direto para o “serving layer” da figura.
Caso ainda exista a necessidade de agregar e extrair mais informações das bases de dados fornecidas, inicia-se a etapa de modelagem/análise estatística. Essa é a fase na qual são utilizados métodos para extrair correlações ou gerar projeções. Aqui entra uma infinidade de modelos de machine learning, além dos mais tradicionais, que posteriormente são acessados para, por exemplo, criarem diferentes cenários, entenderem os efeitos de cada variável em uma terceira e extrapolarem os resultados para outros dados. Toda essa informação deve ser salva, gerando uma nova etapa de “loading”, para que possa ser acessada pela interface com o usuário (“user interface – UI”).
A interface está relacionada à etapa de “serving”, e diversas ferramentas disponíveis no mercado permitem a conexão do usuário com os dados processados. Ao configurar um dashboard, tipicamente o que se encontra por trás dele é um conjunto de APIs estruturadas para fazerem requisições para o banco de dados, extraírem os resultados e disponibilizá-los em gráficos e tabelas. Nessa fase final, a pessoa que consome as informações pode entender com mais clareza o que aqueles dados crus trouxeram de informação para a empresa.
Viajando da etapa de carregamento dos dados crus à disponibilização deles em uma interface intuitiva, várias etapas técnicas foram omitidas. Todo o estabelecimento de conexões, gatilhos, estrutura de workflows de modelagem, dimensionamento de máquinas, criação de outputs intermediários, geração de logs, monitoramento, entre outras, foram suprimidas para trazer uma visão simplificada do processo de estruturação de informações para consumo.
Apesar de simplista, a possibilidade de visualizar o processo e separar os papéis dos funcionários ao longo dessas etapas, é algo extremamente importante para decifrar gargalos de desenvolvimento e fragilidades do processo como um todo, criando um fluxo mais resiliente e seguro.
Por: Matheus Sesso Gay