Na década de 1980, o Data Warehouse surgiu como uma solução para consolidar e organizar dados estruturados. Tal arquitetura, tipicamente baseada nos modelos propostos por Bill Inmon e Ralph Kimball, era sustentada por bancos de dados relacionais, tanto na origem dos dados, quanto no repositório final, com ferramentas de integração baseadas em SQL.
Os Data Warehouses tradicionais eram eficientes em suas funções, mas à medida que a variedade de fontes de dados e a velocidade das atualizações aumentavam, as limitações começaram a se tornar evidentes. O mundo dos negócios exigia respostas mais rápidas, análises em tempo real e a capacidade de lidar com dados não estruturados, cada vez mais comuns com o advento da internet. Foi nesse cenário que, em meados de 2010, surgiu a necessidade premente de uma abordagem mais moderna e flexível - arquiteturas baseadas em Data Lakes e/ou bancos colunares que viriam a se popularizar nos anos seguintes.
Durante a evolução desse ecossistema diferentes players se consolidaram, e muitos produtos foram desenvolvidos para atender essas demandas. Entretanto, ainda que todos eles sejam considerados “data stack”, o que separa os ditos como “modern”?
Modern Data Stack: Uma Visão Geral
O Modern Data Stack representa uma mudança de paradigma na gestão de dados. Consiste em uma combinação sinérgica de tecnologias e ferramentas que abrangem a coleta, armazenamento, processamento e visualização de dados. Ao contrário dos Data Warehouses tradicionais, o Modern Data Stack é projetado para ser escalável, ágil e capaz de lidar com a variedade de dados heterogêneos que as organizações enfrentam atualmente.
Além disso, ferramentas que o compõem possuem denominadores comuns, como serem Software as a Service para reduzir suas responsabilidades de manter infraestrutura, além de apresentar versões gratuitas para degustação ou mesmo open-source. Outra característica importante é a compatibilidade, pela simplicidade com que podem ser conectadas para combinar seus recursos. Desta forma, com uma arquitetura baseada nessas soluções, é possível desenvolver produtos de dados escaláveis em muito menos tempo.
A Figura 1 apresenta um exemplo de arquitetura com as principais etapas definidas como: Extração de Dados, Armazenamento, Transformação, Orquestração, Monitoramento com garantia de qualidade, e Visualização. As ferramentas utilizadas na arquitetura são: Airbyte, Snowflake, DBT, Apache Airflow, Great Expectations e Apache Superset.
Figura 1: exemplo de arquitetura com as ferramentas Airbyte, Snowflake, DBT, Apache Airflow, Great Expectations e Superset.
Extração de dados
Plataformas modernas incorporam métodos robustos para a coleta de dados, incluindo integração fácil com fontes variadas, desde bancos de dados relacionais até dados não estruturados.
Exemplos de ferramentas que se enquadram nesses requisitos são:
Armazenamento
Neste contexto, ferramentas de armazenamento em nuvem atendem às demandas de organizar e gerir esses dados. Alguns exemplos são Amazon Redshift da AWS, Snowflake e Databricks, este último com dados fisicamente presentes em serviços de armazenamento de objetos como Storage Accounts na Azure, S3 também da AWS ou Cloud Storage do GCP.
Transformação
Dados são tipicamente extraídos e recebidos de forma bruta. Na intenção de prepará-los para consumo, transformações são necessárias, como limpezas, adição de novas métricas, agregações, e etc.
Dbt é um excelente representante dessa categoria, facilitando a criação de documentação e linhagem de dados. Totalmente compatível com o Git para controle de versões e colaboração, utiliza a linguagem SQL.
Orquestração
A fim de orquestrar seus pipelines de dados, ou seja, criar dependências entre etapas de transformações e agendar execuções, ferramentas como Apache Airflow, Prefect e Dagster podem ser utilizadas.
Monitoramento com garantia de qualidade
De pouco valerá ter fluxos robustos desenvolvidos se não houver meios eficientes de monitoramento e garantia da qualidade dos dados. Para isso, Great Expectations e Soda podem ser grandes aliados.
Visualização
Com os dados uma vez coletados e tratados, uma das formas mais comuns para disponibilizá-los a usuários finais é através de ferramentas de visualização. No contexto do modern data stack, Power BI da Microsoft, Tableau, Looker, Metabase e Superset são ótimas opções.
A Figura 2.2 apresenta um outro exemplo de arquitetura, com as mesmas etapas descritas até aqui, mas agora utilizando as ferramentas: Databricks, Fivetran e Power BI.
Figura 2: exemplo de arquitetura com Databricks, Fivetran e Power BI.
Conclusão
Modern data stack é uma realidade bem-vinda que não pode passar despercebida a profissionais da área. Sua escalabilidade, integração e simplificação no uso possibilitam aos desenvolvedores otimizar suas tarefas e, consequentemente, gerar mais valor em um ambiente repleto de ferramentas mais agradáveis de se trabalhar.