A importância da engenharia para uma cultura Data-driven

Não dedicar o esforço correto de engenharia vai dificultar (e muito) a sua jornada.

Matheus Dias
Accenture Digital Product Dev
5 min readOct 28, 2021

--

*Este artigo foi escrito em colaboração com Christiano Milfont e Erika Medeiros

No mundo atual, vemos a transformação digital afetando muitas empresas. E além de mudar a forma com que estão acostumadas a construir, evoluir e gerir suas operações, essa transformação também leva a refletirem sobre sua cultura e a forma com que as decisões são tomadas. Junto disso, a força dos dados tem construído o que atualmente é chamado de cultura Data-driven, ou seja, permitir que os dados que as empresas possuem possam ser analisados e inferidos até que possam gerar insights para tomada de decisões sobre as operações.

A cultura Data-driven é o sonho de toda empresa. Todo C-level gostaria de um ambiente no qual as decisões sobre os rumos do negócio e investimentos em iniciativas e projetos possam ser planejadas, metrificadas e fundamentadas por dados, para que os riscos de erros sejam mitigados ou pelo menos que eles afetem cada vez menos o negócio.

Quando falamos de dados, existem alguns pilares que são importantes para permitir que eles sejam disponibilizados e finalmente analisados:

  • Segurança
  • Consistência
  • Disponibilidade
  • Escalabilidade
  • Governança

O modelo organizacional das empresas geralmente representa o business em sub-níveis diferentes, chamados de setores. Por exemplo: em um simples e-commerce existem áreas/setores de pagamento, catálogo de produtos, logística, marketing, SAC, entre outros. Todos eles representam partes de um business, com focos e funções diferentes.

Em um processo de análise de dados é necessário olhar para os dados de todos esses setores ou áreas para compreender o comportamento e obter os insights da operação como um todo, além de obter o valor que cada um agrega para o negócio individualmente. O valor da empresa é resultado da sinergia entre todos as áreas, mesmo que hajam níveis de impacto diferentes entre elas.

Dessa forma, para a métrica alvo ser melhorada deve-se explorar os dados das áreas do business nas quais um ou mais atributos/etapas possam ser otimizadas para impactar positivamente nela. Este processo é chamado de mineração de dados.

Dado este cenário, chegamos ao nosso problema: Como unir todos esses dados e permitir que sejam consumidos, respeitando os pilares citados acima?

O que é um Data Lake?

É um armazenamento durável, distribuído, escalável e imutável que tem como principal função hospedar os dados estruturados e não estruturados de diferentes origens, permitindo que esses dados sejam consumidos de forma distribuída por aplicações e/ou usuários.

É muito comum encontrar empresas que possuem dados em grandes volumes, variedades e velocidades, isso é o que chamamos de ambientes de Big Data.

Processamento de dados

É de responsabilidade dos engenheiros de dados identificarem e desenvolverem a melhor forma de processar e ingerir esses dados no Data Lake, e este processo é chamado de ETL (extract, transform and load).

Em um ambiente de Big Data, os processos de ETL se tornam mais difíceis do que parecem, isso se dá pelo fato de que será necessário processar um grande volume de dados de forma resiliente, segura, performática e escalável. E além disso, por muitas vezes o processamento em lote pode não ser o ideal pelo fato de existirem inputs de grandes volumes de dados em baixos períodos de tempo (muitos MB’s/segundo), por isso surge a necessidade de tratar dados no modelo de streaming, ou seja, permitir que os dados não esperem para serem processados e sejam diretamente enviados para um canal que serve como input para um processo de ETL que fica em constante execução.

Mover e transformar dados numa estrutura de Big Data requer a construção de pipelines robustos que garantam o monitoramento e rastreabilidade eficientes de inúmeros processos de ETL que funcionam em paralelo e necessitam de escalabilidade. São para cenários como este que existem ferramentas que auxiliam na criação da estrutura necessária para suportar as ETL’s, que no final das contas serão códigos que tratam/normalizam os dados e os prepara para serem colocados no Data Lake em um formato que garanta performance e eficiência de custo (ter um Data Lake não é barato).

Atualmente, além dos serviços dos provedores de Cloud, existem muitas ferramentas open-source que foram criadas para suportar e auxiliar as ETL’s.

Alguns exemplos de ferramentas open-souce:

  • Apache Spark
  • Apache Kafka
  • Apache AirFlow
  • Apache NiFi
  • Apache Hive
  • Apache Beam
  • Apache DataFlow,
  • etc

Algumas dessas ferramentas possuem distribuições focadas em abstração de implementação e otimização de performance criadas por empresas que as servem como produtos SaaS ou PaaS, como por exemplo, a plataforma Databricks.

Os dados precisam atender os padrões de qualidade (requisitos técnicos e de negócio), considerando alguns atributos como:

  • Duplicidade
  • Consistência
  • Precisão
  • Integridade
  • Conformidade
  • Completude
  • Atualização

Quando o objetivo de manter os dados em um repositório único for atingido, surgirão outros desafios, tais como:

  • Democratizar o uso dos dados etorná-los úteis
  • Garantir a qualidade dos dados ao longo do tempo

A democratização do acesso aos dados alavanca a cultura data driven, afinal, não basta que os dados estejam organizados e disponíveis, é importante que sejam úteis e insights sejam obtidos para agregar valor para o negócio.

E a engenharia?

Engenharia, em seu significado global, é: "a aplicação do conhecimento científico, econômico, social e prático, com o intuito de inventar, desenhar, construir, manter e melhorar estruturas, máquinas, aparelhos, sistemas, materiais e processos."

Essa descrição já fala por si só, ou seja, a engenharia é responsável por definir e desenvolver todo o processamento de dados, desde a decisão de qual ferramenta usar, qual metodologia de ingestão, qual tipo de armazenamento, entre outras, dados os requisitos do business.

É papel do engenheiro (neste caso o de Software), que é mais conhecido como Engenheiro de Dados nesses cenários, a responsabilidade pela solução como um todo. E além de garantir que o processo funcione, ele deve garantir que todos os pilares sejam aplicados à solução, seguindo as boas práticas de engenharia/arquitetura de software, infraestrutura e monitoramento. Ou seja, são as pessoas que tornam possível o desenvolvimento da cultura Data-driven.

Conclusão

No final das contas podemos notar que para o desenvolvimento de uma cultura Data-driven escalável, segura, consistente, disponível e governada, precisamos aplicar a engenharia para processar, armazenar e servir esses dados. Não dedicar o esforço correto de engenharia vai dificultar (e muito) a sua jornada.

E você? Já começou a implementar a sua cultura data-driven? Deixe aqui os seus comentários. E se você quiser trabalhar em um time que está sempre buscando evoluir a partir de dados, é só dar uma olhada aqui e se candidatar a alguma de nossas vagas. Vamos aprender juntos!

--

--