Datamesh com AWS
O que é um Data Mesh?
Data Mesh é uma abordagem de arquitetura de dados em que a responsabilidade sobre os dados deixa de ser centralizada em um time único de engenharia ou BI e passa a ser distribuída entre os domínios de negócio. A ideia é tratar os dados como produtos, com dono, contrato, qualidade e formas de consumo bem definidas.
Em vez de um único time central controlar tudo, cada domínio produz e cuida dos seus dados, enquanto uma plataforma compartilhada fornece governança, descoberta e acesso seguro.
Exemplo prático com AWS
Um modelo simples de Data Mesh em AWS pode ser organizado assim:
- Uma conta central de plataforma, responsável por governança e catálogo.
- Contas produtoras, que armazenam os dados em Amazon S3.
- Contas consumidoras, que consultam os dados com Amazon Athena.
Arquitetura proposta
-
A conta central possui:
- AWS Lake Formation para definir permissões e governança.
- AWS Glue Data Catalog para registrar os metadados das tabelas.
-
As contas produtoras possuem:
- dados armazenados em S3;
- responsabilidade de publicar esses dados de forma estruturada e com qualidade mínima;
- possibilidade de registrar os datasets no Glue Catalog.
-
As contas consumidoras possuem:
- Amazon Athena para executar consultas SQL diretamente sobre os dados.
- acesso ao Glue Catalog para localizar os datasets e suas definições.
Nesse modelo, o consumidor não precisa copiar os dados para outra conta. Ele consulta os dados onde eles estão, com permissões controladas pela governança central.
Como isso funciona na prática
A ideia é que o dado seja descoberto e consumido de forma padronizada:
- o produtor publica os dados em S3;
- o catálogo de metadados no Glue passa a conhecer esses dados;
- o consumidor usa Athena para consultar os dados sem precisar gerenciar infraestrutura complexa;
- o Lake Formation controla quem pode ler, escrever ou transformar cada conjunto de dados.
Essa abordagem ajuda a reduzir duplicação, melhora a governança e deixa o acesso mais seguro.
SOR, SOT e SPEC
Esses conceitos costumam aparecer no contexto de Data Mesh porque ajudam a separar o dado bruto, o dado curado e o contrato de uso.
SOR — Source of Record
É a fonte original de verdade, ou seja, o sistema onde o dado nasce.
Exemplo:
- um sistema operacional;
- um banco transacional;
- um log de aplicação;
- um arquivo gerado por um processo externo.
O SOR representa o lugar onde o dado é criado ou atualizado pela primeira vez. Ele costuma ser o ponto mais operacional e, muitas vezes, não é ideal para análise direta.
SOT — System of Truth
É a representação organizada e confiável do dado, preparada para consumo.
Em outras palavras, o SOT é uma versão dos dados que já passou por limpeza, padronização, particionamento e modelagem mínima para facilitar análise.
Exemplo:
- um dataset consolidado em S3;
- uma tabela curada no Glue Catalog;
- uma visão preparada para consumo por BI ou analytics.
O SOT costuma ser mais estável e mais fácil de consultar do que o SOR.
SPEC — Specification
É o contrato de uso do dado. A SPEC descreve como o dataset deve ser interpretado, quais campos existem, quais regras de negócio valem, qual o significado de cada atributo, quando o dado é atualizado e quais limites de qualidade devem ser respeitados.
A SPEC é importante porque deixa claro para o consumidor o que ele pode esperar do dado.
Em resumo:
- SOR = onde o dado nasce;
- SOT = onde o dado é transformado e disponibilizado para consumo;
- SPEC = o contrato que define como esse dado deve ser entendido e usado.
Como o Glue entra nesse fluxo
O AWS Glue é uma ferramenta muito útil para transformar dados entre essas camadas.
1. Descoberta e catalogação
O Glue Crawler pode analisar arquivos em S3 e inferir o schema das tabelas. Isso ajuda a registrar os dados no Glue Catalog de forma automática.
2. Transformação dos dados
Com Glue ETL, é possível transformar os dados brutos em versões mais organizadas:
- limpar valores inválidos;
- padronizar colunas;
- aplicar joins;
- particionar por data;
- converter formatos;
- criar tabelas prontas para análise.
3. Publicação para consumo
Depois da transformação, o resultado pode ser salvo novamente em S3 e registrado no Glue Catalog. A partir daí, as contas consumidoras podem usar Athena para consultar esses datasets.
Exemplo de fluxo
Um fluxo típico seria:
- O produtor armazena dados brutos em S3.
- O Glue Crawler lê esses arquivos e cria ou atualiza o schema no Glue Catalog.
- Um job de Glue ETL transforma esses dados em uma versão curada, por exemplo:
- removendo valores nulos;
- aplicando tipos corretos;
- particionando por data;
- organizando o dataset para análise.
- O resultado é salvo em S3 como SOT.
- Uma SPEC é definida para esse dataset, descrevendo regras de negócio, schema esperado e políticas de acesso.
- O consumidor usa Athena para consultar os dados através do Glue Catalog.
Resumo
Um Data Mesh com AWS funciona bem quando há:
- domínio responsável pelo dado;
- catálogo compartilhado de metadados;
- governança centralizada com Lake Formation;
- acesso seguro e escalável via Athena;
- transformação dos dados com Glue para passar de uma versão bruta para uma versão curada e consumível.
Essa abordagem deixa a arquitetura mais distribuída, mas ainda com controle centralizado sobre segurança e padronização.