Ícone do site Didática Tech

Engenharia de dados

Uma das áreas fundamentais para o bom funcionamento da Ciência de Dados é a Engenharia de Dados. Existem muitos processos operacionais que precisam acontecer entre a geração de um dado e sua efetiva utilização para tomada de decisão. Esses processos são responsabilidade da engenharia de dados, e sem ela, a ciência de dados não existiria. 

O cientista de dados espera receber uma base de dados minimamente organizada, para que possa dar início a suas análises. A Engenharia de Dados fará essa entrega, garantindo a disponibilidade dos dados, sejam eles estruturados ou não, e por mais que possa parecer trivial, este processo é complexo. Esta organização precisa levar a uma estrutura robusta, capaz de possibilitar diversas análises, inclusive a utilização simultânea dos dados não estruturados com os estruturados.

Tipos de Dados

Para entendermos a engenharia de dados, precisamos conhecer os Dados estruturados e Não estruturados. Eles são a razão da existência da área, e seu entendimento torna evidente a necessidade do termo “engenharia”.

Dados estruturados x Dados não estruturados

Conforme indicado em sua nomenclatura, os dados estruturados possuem uma estrutura definida, com organização pré-estabelecida, seguindo regras fixas determinadas em projeto; sendo que para que um novo dado seja colocado na base, os critérios atribuídos deverão ser verificados para permitir sua inserção.

Esta organização é comum de ser encontrada no Business Intelligence (Inteligência de Negócios), muito utilizado para análises do passado e, também, na ciência de dados, com o machine learning (aprendizado de máquina), na previsão de dados desconhecidos.

Dados estruturados costumam estar armazenados em bancos de dados relacionais, que podem ser vistos como tabelas, evidenciando suas relações. Normalmente encontramos esta estrutura em empresas, sendo armazenados desta forma dados cadastrais de clientes e fornecedores, informações das vendas da empresa, registros de acessos de clientes, etc.

Nos Dados não estruturados a realidade é oposta. Toda essa organização apresentada acima simplesmente não existe. Os dados poderão ser encontrados nos mais diversos formatos, e o conteúdo existente em cada um será de possibilidades distintas.

Poderemos encontrar vídeos, postagens em redes sociais, arquivos de áudio, e assim por diante, oferecendo bastante oportunidade à ciência de dados e à inteligência artificial. Como grande responsável pela utilização destes dados em larga escala, encontramos o Big Data, que possui dados variados, com grande volume e sendo gerados em alta velocidade.

Nos casos onde uma determinada estrutura é encontrada, mas seu formato não pode ser definido, o nome “semiestruturados” será utilizado. Normalmente esta estrutura aparecerá em situações pontuais.

Estimativas indicam que hoje mais de 80% da geração mundial de dados é de dados não estruturados. Todos nós, ao utilizarmos a internet, por exemplo, contribuímos para criação desses dados, não sendo apenas interações com empresas que os geram. A quantidade de opiniões em sites, textos para a faculdade, utilização de GPS, postagens quaisquer nas redes sociais, etc. é muito grande, e essa massa de dados só vem aumentando.

Para que estes dados sejam utilizados da melhor maneira possível, é fundamental que estejam bem organizados. Sendo a maioria deles não estruturados, garantir uma boa organização e integração com os dados estruturados não é tarefa fácil.

Engenharia de Dados na prática

No artigo sobre Ciência de Dados utilizamos um exemplo de compras no cartão de crédito, e aqui ele será útil novamente para tornar mais clara a necessidade da engenharia de dados.

Vamos imaginar que alguém realize todas as suas compras com o cartão de crédito, e todos os meses receba a fatura do cartão, contendo dados de cada uma das compras realizadas num determinado período, bem como seu somatório.

Se não for feito nenhum tipo de análise nesses dados, eles não terão significado algum, servindo apenas para informar o valor devido ao banco, concernentes às compras feitas!

Porém numa simples relação de compras como esta, existe muita informação, e informação de qualidade, capaz de trazer revelações importantes sobre a pessoa e, mais ainda, até prever o seu comportamento futuro.

Quando alguém faz previsões sobre algo desconhecido, ou que ainda não aconteceu, é comum que se imagine algo mágico, sobrenatural ou simplesmente o evento é tachado de achismo. Mas aqui estamos falando de tecnologia, e é claro que não se trata de magia ou adivinhações!

Para prever o futuro, os algoritmos de machine learning utilizam a antiga e eficiente matemática, tão conhecida (e muitas vezes temida) de todos nós. Mas fique tranquilo, neste momento ela não será apresentada, e quando for, a didática adequada acabará com qualquer receio com sua utilização.

Os cálculos realizados pelo algoritmo indicarão a probabilidade de algo acontecer, ou não, existindo a chance de prevermos algo que não se confirme. Quanto maior for nossa base de dados, com grande qualidade na explicação dos fatos (de nada adianta muitos dados sobre futebol, se queremos fazer previsões em um jogo de basquete), melhores serão nossos resultados, podendo inclusive existir 100% de precisão em nossas previsões.

Voltando às compras com cartão de crédito, poderíamos realizar várias análises a partir destes gastos. Poderíamos selecionar as compras dos últimos cinco anos, e obviamente, a primeira necessidade para isso seria a existência desses dados históricos, portanto eles precisam estar devidamente armazenados.

O simples fato de apenas uma dessas faturas ter sido extraviada poderia comprometer toda a análise, ou ainda, levar à necessidade de uma busca complexa por uma segunda via, ou algo do tipo.

Você poderia agrupar todas as faturas em um único arquivo de Excel, por exemplo, facilitando toda a análise. Porém estamos falando de compras de cinco anos, das quais na grande maioria você nem lembraria. Alguém pode ter alterado alguma informação em sua planilha. Como garantir que os dados são verídicos, que existe integridade nos dados?

Estes detalhes são fundamentais para que a análise possa acontecer e seu resultado reflita a realidade, podendo assim ser utilizado para que você tome uma decisão importante sobre seu padrão de consumo.

Poderíamos também nessa fase buscar a automatização no armazenamento desses dados, para que novas faturas fossem guardadas automaticamente com as antigas, e seus dados devidamente extraídos; sendo que os processos que garantem a integridade das informações também necessitariam de automação.

Aqui cabem algumas indagações: e se a análise da qual falamos precisar acontecer em tempo real? A cada nova compra realizada com seu cartão de crédito, a análise deve acontecer novamente, tendo seu resultado atualizado. Este é apenas um exemplo, sendo que as possibilidades são muitas.

Esses novos dados recém gerados seriam, primeiramente, armazenados para, logo após, serem analisados? Ou, primeiramente seriam analisados, e só depois seriam armazenados com os demais? E depois da análise, o que acontece com o resultado gerado? Ele pode ser armazenado para posterior conferência? Pode ser enviado via e-mail ou SMS para alguém? Esse envio pode ser diário, semanal ou mensal? De que forma, e em que tipo de estrutura, todo o sistema será implementado?

A esta altura você já deve estar percebendo a complexidade da situação e se perguntando: mas não era apenas uma simples análise dos meus gastos com cartão de crédito? Considere que ainda estamos conversando apenas sobre os gastos com o cartão de crédito; nós poderíamos incluir, ainda, diversos gastos como em espécie (dinheiro), pagamentos via boletos, entre outros.

Após considerar todos as formas de gastos, poderíamos levar em conta também, os recebimentos de valores existentes. Como informaríamos isso tudo ao sistema? Como poderíamos garantir a integridade dessa informação também?

Bom, essa conversa poderia ainda ir muito longe, simulando os mais diversos cenários, visualizando inúmeros tipos de dados distintos e necessidades de armazenamentos e integrações complexas. Porém a ideia é simples, e creio que você já entendeu.

Todos esses processos serão realizados pela engenharia de dados, permitindo que os dados necessários fiquem totalmente disponíveis para sua devida utilização; que a infraestrutura fique pronta para receber análises; e que o resultado seja apresentado corretamente.

Infraestrutura de uma engenharia de dados

Também faz parte do papel da engenharia de dados fornecer soluções de infraestrutura adequadas, que possibilitem a completa execução de análises complexas nos dados. Vemos então que desde o recebimento e armazenamento dos dados, passando pela análise, até a entrega final do resultado, toda a infraestrutura de dados estará, assim, integrada.

São inúmeras as ferramentas que possibilitam a aplicação de análises nos dados. Não podemos ignorar o bom e velho Excel, que há muito tempo acompanha a muitos, seja para simples registros e controles, ou mesmo em análises mais elaboradas, com gráficos e tabelas dinâmicas.

Porém quando se trata da ciência de dados, normalmente o Excel não será umas das opções. Em muitos casos nem conseguiremos abrir alguns arquivos com o software, por conta do grande volume ou complexidade dos dados.

Entre as principais opções estão as linguagens de programação R e Python, que são linguagens open source (código aberto), não obrigando assim que gastemos valor algum para sua utilização, pois não será necessária a compra de uma licença.

Porém apesar de importante, este não é o principal fator que leva a grande utilização destas linguagens na área. Talvez os maiores responsáveis sejam a simplicidade na utilização, e a confiabilidade que encontramos. Mesmo os iniciantes já conseguem realizar análises interessantes, com resultados confiáveis.

Ambas as linguagens possuem uma comunidade desenvolvedora muita ativa, sendo que pessoas espelhadas por todo o globo colaboram com soluções, que podem ser utilizadas por todos de maneira eficiente e prática. Assim os scripts necessários conseguem – com poucas linhas de código – entregar excelentes resultados.

Há, ainda, outras linguagens que podem ser utilizadas, como Java, C, Scala, Julia, entre outras.

Os softwares SPSS e SAS também são excelentes opções. Estão há muito tempo no mercado e são desenvolvidos com boa interface gráfica, facilitando sua utilização. Estes softwares são pagos, e costumam possuir grandes empresas como clientes, muitas vezes conquistados pelo suporte contratado juntamente com o software, tendo assim todo apoio necessário para sua aplicação.

As ferramentas de Business Intelligence (Inteligência de Mercado), ainda que sejam mais conhecidas por suas análises do passado, sem previsões, não podem ser esquecidas. Impulsionadas pelo Self Service BI, que possibilita o desenvolvimento de análises complexas com poucos cliques, sem a necessidade de código, e com foco no usuário final, que é quem realmente está interessado no resultado da análise, vem ganhando grande destaque no mercado.

Um dos pontos positivos deste destaque está na atenção que estas ferramentas vêm recebendo de seus desenvolvedores, com atualizações muito interessantes, inclusive possibilitando sua utilização também na ciência de dados. Normalmente elas são muito utilizadas na visualização de dados, onde está o seu ponto forte, através da criação de dashboards. O Microsoft Power BITableau e QlikView são algumas opções.

Como podemos ver, o desenvolvimento das análises é muito abrangente e são muitas as suas opções, cabendo à engenharia de dados entender a situação e definir a melhor opção a ser utilizada, considerando, também, as ferramentas utilizadas nas outras etapas.

Como aprender ciência de dados

Acabamos de ver muitos detalhes sobre a engenharia de dados, e ainda existem muitas outras questões importantes para conhecermos dentro da ciência de dados. Com este objetivo, montamos alguns cursos aqui no site, com opções gratuitas e completas, focando sempre no aprendizado do aluno, com muita didática e simplicidade. Clique aqui e confira.

Leia também:

Sair da versão mobile