top of page

Conceitos básicos e importantes para arquitetura de dados

  • Foto do escritor: Eduardo Nepomuceno da Rocha
    Eduardo Nepomuceno da Rocha
  • 14 de mai. de 2025
  • 8 min de leitura

Saber lidar com processamento de dados se tornou uma necessidade que vai além dos profissionais especialistas na área atualmente. É claro que expectativas são diferentes de acordo com o perfil. Não se espera que um desenvolvedor full-stack tenha o mesmo nível de compreensão de um ETL que um cientista de dados. No entanto, é importante que todos os profissionais envolvidos em desenvolvimento de software estejam familiarizados com os termos mais comuns em dados e inteligência artificial, devido à complexidade dos sistemas atuais. Esse artigo focará no primeiro tema.


Componentes de arquitetura de dados


Costuma-se dividir a arquitetura de dados em camadas. Com essa visão, a arquitetura passa a ter camadas de armazenamento, processamento e comum. Dados também podem ser estruturados ou não. O mais comum é o dado estruturado, com linhas e colunas, mas ele pode ser semi, como um JSON, ou mesmo não estruturado, como um documento de texto.


  • Camada de armazenamento:

    • Data Lakes, Data Warehouses, bancos de dados operacionais. Algumas ferramentas comuns são Amazon S3, Amazon Redshift, Google Cloud Storage, Snowflake, Apache HDFS.

  • Camada de processamento:

    • ETL e processamento em tempo real. Algumas ferramentas comuns são Apache Spark, AWS Glue, Apache Kafka e Databricks.

  • Camada de consumo:

    • BI(Business Intelligence), Data Science e Machine Learning. São exemplos: Tableau, Power BI, Looker, Python.


Padrões de arquitetura


Dados podem ser processados em lotes, dentro de intervalos regulares(Batch) ou em tempo real. Existem algumas arquieturas padrões no mercado, que atendem a cada tipo.


  • Arquitetura Lambda

    • Uma camada batch e uma de speed.

    • A camada batch processa os dados em tempos regulares, enquanto a camada speed processa os dados continuamente.

    • Existe uma camada serving, que consome os dados.

    • A camada Serving tem a última versão da camada batch, e é atualizada a partir da camada speed.

    • Camada muito utilizada em monitoramento de sistemas e sensores IoT.


Exemplo de arquitetura Lambda
Exemplo de arquitetura Lambda
  • Arquitetura Kappa

    • É focada em apenas um único pipeline de processamento de dados em tempo real.

    • Comum em ambientes cujo histórico de dados é acessível, como redes sociais.


Fluxo de dados da arquietura Kappa
Fluxo de dados da arquietura Kappa

Modelagem de dados


  • Modelo relacional: Orientado à transação, tentando reduzir redundâncias.

  • Modelagem nas formas normais:

    • Primeira forma normal: Para alcançá-la, todos os atributos da tabela devem ser atômicos, ou seja, conter apenas valores únicos e indivisíveis.

    • Segunda forma normal: Para chegar a ela, devem ser removidas as dependências parciais de chaves candidatas. São criadas tabelas separadas de cada entidade identificada e depois associadas entre elas por meio de chaves estrangeiras.

    • Terceira forma normal: Visa eliminar a dependência transitiva. Para isso, um atributo dependerá indiretamente de outro atributo por meio de um atributo intermediário.

  • Modelo dimensional: Mais comum em data house. Composto de três elementos principais.

    • Fato (elemento 1): Assunto central, agrega medidas e n dimensões.

    • Dimensões (elemento 2): Sempre relacionadas a um fato (ou mais de um). São formas de visualização da informação.

    • Medidas (elemento 3): Características numéricas, que são atributos na tabela fato.

  • Chave substituta: Uma entidade possui uma chave primária no modelo operacional. Pode ser carregada n vezes no modelo dimensional. Quando uma entidade é alterada, o modelo dimensional é carregado novamente, o que altera as chaves. Caso comum quando, por exemplo, você altera a chave estrangeira do seu lado. Esse tipo de ação faz o banco perder o histórico do produto, pois não se atualiza simplesmente. Para isso, é utilizada a chave estrangeira.

    • Slow Changing Dimensions - SDC Type 2: Mantém histórico de mudanças. Quando um valor muda, o novo registro é incluído. O novo registro recebe uma chave substituta(SK)

    • Outros tipos de Slow Changing Dimensions: Tipo 1(sobrescreve e não mantém histórico), Tipo 2(adiciona nova coluna), Tipo 4(adiciona os dados históricos em outra tabela)

  • Modelo Snowflake: Modelos são normalizados. Tabelas não devem ter informações repetidas, não é admitida redundância.


Armazenamento de dados


  • Data Warehousing: É um armazém de dados analíticos. No mais das vezes irá tratar dados oriundos de um banco SQL. É projetado pra armazenar dados históricos, os dados analíticos informativos para uma empresa:

    • Dados estruturados, suporte a SQL, modelagem relacional, grande volume de dados.

    • Produtos: Snowflake, Redshift(AWS), BigQuery(CGP)

  • Data Lakes: Não falamos aqui de banco de dados, mas de um local que armazena grandes estruturas de dados. Os usuários de um Data Warehouse no geral são analistas, que precisam e dados analisados. O Data Lake foca no ELT(dados carregados no estado bruto e tratados por demanda).

  • Data Lakehouse: Solução híbrida, que busca a flexibilidade do data lake mais desempenho analítico de um Data WareHouse.


Governança de dados


É o conjunto de políticas, processos e controles de uma empresa, responsáveis por assegurar qualidade, segurança e conformidade de dados. Alguns conceitos essenciais são apresentados a seguir.

  • Metadados: Informações sobre dados, tais como origem, estrutura e significado.

  • Catalogação: Organiza e centraliza o acesso aos dados.

  • Linhagem de dados: Rastreia o histórico e percurso de dados ao longo dos sistemas.

  • Gestão de dados mestre(Master Data Management-MDM): Prática de patronizar dados mestre. São os dados críticos a uma organização

  • Qualidade de dados: São dimensões de qualidade alguns dados.

    • Precisão

    • Completude(grau)

    • Consistência

    • Atualidade

    • Confiabilidade

    • Relevância


Processamento de dados


Dados raramente são processados na própria fonte de dados por questões de desempenho de maneira geral. Existem os casos de processamento no local de produção (Edge computing), como carros autônomos.


  • ELT x ELT

    • ELT significa "Extract, Transform, Load", enquanto ELT significa "Extract, Load, Transform".

    • Ferramentas de ETL: Apachi NiFi, Talend AWS, Glue, entre outras.

    • Ferramentas focadas em orquestração ETL: Airflow, Luigi, Dagster.

    • Ferramentas de ELT: Dbt, Fivetran, Airbyte.

  • Batch x Streaming:

    • Como falado, o streaming é o processamento de dados à medida que eles são produzidos, enquanto o processamento em lote opera sobre um conjunto de dados gerados e um intervalo de tempo, processando-os em conjunto.

    • Exemplos de batch: Processamento de folhas de pagamento, relatórios financeiros, etc.

    • Exemplos de Streaming: Transações financeiras em tempos reais, processamento de eventos de jogos online, dados de dispositivos wearables, sensores IoT de maneira geral.

    • Tecnologias de Streaming: Apache Kafka, Apache Flink e AWS Kinesis.

  • Fundamentos de Streaming e componentes:

    • Produtores: Entidades ou aplicações que geram e enviam os dados para o sistema de streaming: Sensores IoT e aplicações web.

    • Brokers: Sistemas intermediários que recebem os dados dos produtores e distribuem aos consumidores. Exemplos: Apache Kafka, AWS Kinesis e Rabbit MQ (no geral serviços de mensageria).

    • Topics: Assuntos.

    • Mensagem: Dados

    • Assinatura: Um consumidor irá assinar um determinado tópico.

    • A necessidade de ter um broker se deve a questões como disponibilidade, escalabilidade, baixa latência, gestão de fluxo de dados complexos, garantia de entrega e ordem, monitoramento e gerenciamento, suporte a fluxos complexos

    • Processamento distribuído: Divisão de dados entre múltiplas máquinas que trabalham de maneira simultânea.

      • Cluster: Conjunto de computadores em rede, que trabalham buscando realizar o mesmo objetivo.

        • Nós (nodes): É cada computador da rede, autônomo.

        • Gestor (Master): Responsável por coordenar o cluster

        • Workers: Computadores que, de fato, executam as tarefas e se comunicam com o master. A definição de master e worker dentro do cluster é aleatória

      • Ferramentas: Apache Hadoop, Apache Spark, Amazon Redshift.

  • Escalabilidade e performance:

    • Técnicas de otimização de queries:

      • Indexação: Permite encontrar dados de maneira mais célere. Um índice irá armazenar uma cópia ordenada de um ou mais campos da tabela de dados. Junto a essa cópia, ele tem um ponteiro para onde se localiza a informação no banco de dados. Oferece como vantagem a velocidade de busca. As chaves estrangeiras também têm seu desempenho otimizado pelo join. No entanto, como descantagem, temos mais espaço de armazenamento em uso.

      • Escrita de consultas eficientes: São as boas práticas SQL. Por exemplo: Prefira junções a subqueries, limite e filtre resultados.

    • Escalabilidade: Capacidade de aumentar um sistema horizontalmente (mais instâncias) ou verticalmente (mais recursos)

    • Balanceamento de carga e distribuição de dados: Distribuir de forma igualitária as solicitações ou cargas de trabalho entre múltiplos servidores

      • Algumas técnicas: Least Connections, Weighted Round Robin, Consistent Hashing

  • Particionamento de dados: Dividir grandes conjuntos de dados em partes menores e mais gerenciáveis. O particionamento horizontal se baseia em determinadas linhas, enquanto o vertical se baseia em colunas.

  • Data Warehouses: Particionamento, distribuição de dados por nós e replicação são as técnicas mais notadas pra esse tópico. Dados podem ser particionados por meio de DISTKEY(chave de distribuição) ou SORTKEY(ordem de armazenamento dos dados)

  • Cluster de tabelas: Agrupar tabelas relacionadas juntas, tabelas com relações no mesmo nó.


APIs e integrações


O modelo mais comum das aplicações hoje é o modelo de microsserviços com APIs REST, desiginando funções bem específicas para cada microsserviço. O conceito de arquitetura orientada a evento também está em evidência, criando sistemas que reagem a eventos em tempo real. Exemplos de ferramentas: AWS Lambda, AWZ ECS, Azure Functions, Cloud Functions, etc.


Integração contínua e entrega contínua


Cultura cada vez mais comum. Temos um pipeline de CI/CD para dados, que automatiza o processo de teste e validação. Essencial no processo de deploy. Além disso, conceitos de observabilidade e monitoramento são complementares, garantindo maior confiabilidade e qualidade de código.


Segurança e compliance


  • Tipos de autenticação: Dois fatores(2FA), baseada em token(JWT), OAuth 2.0, baseada em chave SSH, federada(SS), Multi-Factor(MFA) e outras.

  • Políticas de acesso - autorização: AWS Identity and Access Management(IAM), Azure Entra ID (Antigo Azure Active Directory - AAD), Google Cloud IAM.

  • Mascaramento e tokenização: Mascaramento é o processo de substituir os dados temporariamente, enquanto tokenização substitui dados reais por um token único.

  • Crpitografia: Processo de converter informações em um formato ilegível, garantindo que apenas partes autorizadas com a chave correta consigam acessá-la.

  • Backup: Pode ser completo, incremental ou diferencial.


Observabilidade e monitoramento de dados


Monitorar dados é rastreá-los continuamente, gerando alertas sobre falhas, erros de processamento, etc. A observabilidade busca entendê-los. Alguns dos componentes da observabilidade são logs(registros de eventos do sistema), métricas(tempos, recursos) e traces (rastreamentos de fluxo de dados ou de transições para identificar eventuais gargalos).

  • Ferramentas comuns de observabilidade e monitoramento: AWS CLoudWatch, Azure Monitor, Google Cloud Operations.

  • Ferramentas de maior foco em monitoramento: AWS Trusted Advisor, Azure Service Health, Google Cloud MOnitoring.

  • Ferramentas com maior foco em observabilidade: AWS X-Ray, Azure Application Insights e Google Cloud Trace.


Conceitos básicos de arquietura de dados na nuvem


  • Serviços gerenciados e não gerenciados: Serviço gerenciado é gerenciado pela própria nuvem, enquanto o usuário lida com configurações básicas apenas. Não gerenciado exige que o usuário saiba lidar com gerenciamento e escalabilidade.

  • Serviços Servless: Serviço sem servidor. Não nos preocupamos com número de nós, CPU, escalabilidade, etc. São definidos de maneira automática conforme damanda. Estão em alta.

  • Serviços gerenciados para dados:

    • Data Warehousing: Amazon Redshift, Azure Synapse Analytics, BiqQuery(CGP).

    • Processamento de dados: AWS Glue (baseado em Spark), Azure Data Factory, Google Cloud Dataflow (baseado em Hadoop e Spark).

    • Armazenamento: Amazon S3, Azure Blob Storage, Google Cloud Storage.

    • Visualização de dados: Amazon QuickSight, Power BI, Looker Studio(CGP).

    • Machine Learning e inteligência artificial: Amazon SageMaker, Azure Machine Learning, AI Platform(CGP)

    • Integração de dados e API: AWS AppFlow, Azure API Management, Apigee API Management(CGP).

    • Busca e indexação de dados: Amazon OpenSearch Service, Azure AI Search, Google Cloud Search.

  • Escalabilidade na nuvem: A maioria dos serviços na nuvem trabalha com escalabilidade automática (auto-scaling), que dá capacidade ao sistema para gerenciá-lo conforme exigência de desempenho. Ele pode ser vertical ou horizontal. O segundo é mais comum.

  • Regiões e estrutura geral de nuvem: Bom estudar mais detalhadamente posteriormente, mas basicamente é o local no qual o serviço na nuvem é executado. Essa proposta traz mais proximidade ao usuário e escalabilidade local. Tem vantagems como alta disponibilidade, mas ao mesmo tempo é caro replicar recursos em múltiplas regiões.

  • Preocupações com desempenho e latência: É preciso estar atento ao código, às zonas de disponibilidade e tentar eventualmente ter os serviços numa mesma região. Essas são algumas das práticas básicas.


Conforme foi dito no início do texto, o objetivo aqui é apresentar uma visão bem básica dos conceitos mais elementares de dados, para servir como base para um aprofundamento necessário conforme o desejo do profissional.



Comentários


bottom of page