O blog da AWS
Evolução de um data warehouse: desafios na criação de um data lake na AWS
Por Alan Yukio Oka, Gerente de Produto e Marketing na BRLink, e Guilherme Pompeo, Head de Data & Analytics na CNA
Introdução
O CNA é uma rede de ensino de idiomas do país, com mais de 600 escolas no Brasil e mais de 40 anos de existência. Como parte de sua jornada de transformação digital e para apoiar sua cultura de decisão direcionada a dados, eles sentiram a necessidade de modernizar a infraestrutura de análise de dados. Queriam evoluir de um modelo já baseado em data warehouse para uma arquitetura mais ágil, escalável e alinhada com as novas demandas do negócio.
Desta necessidade surgiu o projeto Data Lake CNA com a BRLink.
O DESAFIO
A modernização do data warehouse para um modelo baseado na nuvem proporcionou inúmeros desafios no projeto. Mas levantamento destes desafios foi essencial para a criação da solução personalizada que conseguisse atender às necessidades do CNA. Estes foram os principais desafios:
- Infraestrutura: criação de uma infraestrutura ágil, robusta e sofisticada suficiente para atender as complexidades do CNA de uma forma economicamente eficiente e escalável;
- Velocidade: no processo de transformação de dados e disponibilização das informações nos dashboards para análise e tomada de decisões;
- Integração: flexibilidade para disponibilizar informações para consumo por outras soluções de inteligência artificial e machine learning já utilizadas pelo CNA;
- Flexibilidade: ingestão e transformação de dados de diversas fontes e formatos (base de dados, planilhas, documentos etc.)
- Confiabilidade: mais segurança no processo de ingestão de dados com monitoramento de todo o processo;
- Visibilidade de cada etapa do processo de integração e disponibilização dos dados;
- Governança: gerenciamento de cada etapa do processo (extração, transformação e carga) além de um controle de versionamento da solução utilizando o GIT (GIT é um sistema de controle de versão de arquivos. Com ele, podemos desenvolver projetos nos quais diversas pessoas podem contribuir simultaneamente, editando e criando arquivos e permitindo que os mesmos possam existir sem o risco de suas alterações serem sobrescritas).
A SOLUÇÃO
Para atender as necessidades e desafios do projeto, a equipe de engenharia de dados da BRLink teve como foco principal desenvolver uma arquitetura ágil para o processo de carga de dados. Os dados se encontravam em servidores on-premise e o envio para a nuvem da AWS precisava ser feita de maneira automatizada, escalável e com otimização de tempo e custos.
O primeiro passo foi utilizar uma estrutura de migração dos dados que utiliza recursos de serverless computing (com AWS Lambda, Amazon SQS e Amazon EventBridge) juntamente com o AWS Data Migration Service (DMS), de maneira orquestrada. Essa estrutura possibilita a criação de todos os recursos necessários para que o DMS possa se conectar a cada servidor on-premise do cliente e, assim, identificar todas as tabelas, os esquemas e base de dados que serão migrados, para então realizar a carga dos dados que estejam distribuídos nesses servidores, e trazê-los para dentro do Amazon S3, unificando todos os dados dentro do data lake do CNA.
Essa estrutura possibilita a identificação do fim de cada processo de migração para que os recursos que foram ativados do DMS sejam desativados. Essa funcionalidade também foi aplicada na arquitetura do projeto do CNA, o que possibilita que gastos desnecessários – como instâncias de replicação ativas fora da janela de replicação – não aconteçam.
Para o melhor funcionamento da estrutura, tratamento de erros, e para manter a entrega dos dados sempre dentro do esperado, utilizamos recursos de monitoramento, alimentados a partir dos logs gerados pelo Amazon CloudWatch, e métricas personalizadas, como identificação de erro de conexão e/ou na tarefa. Com esses logs é possível criar painéis de monitoramento no Grafana, com propósito de notificar o time de operações da BRLink ou a equipe do CNA sobre a saúde das execuções e das cargas de dados.
Passado a fase de migração dos dados, também é utilizado o AWS Lambda junto com o Amazon EventBridge para o agendamento da cópia dos dados “mornos”, ou seja, os dados migrados recentemente, para um outro bucket no Amazon S3, que contém todo o histórico de dados cada tabela, particionada por data, que podem ser utilizados para análises futuras.
Outro recurso de serverLess computing utilizado nesse projeto é o AWS Glue, que nesse caso tem o papel de mapear todas as tabelas que chegam ao bucket do Amazon S3 após o processo de migração, identificar seus esquemas e definições, organizar os meta-dados dentro de um catálogo e disponibilizar esses dados para serem consumidos pelo Amazon Athena e pelo Amazon Redshift Spectrum. Na nossa arquitetura, esse crawler é ativado pelo mesmo Amazon Lambda que deleta os recursos do AWS DMS após as transferências dos dados.
Conheça a arquitetura do projeto:
OS RESULTADOS
Dessa forma o cliente terá todos os dados unificados e atualizados automaticamente no data lake, utilizando a tecnologia do Amazon Redshift Spectrum, juntamente com os dados armazenados no Amazon S3, que é um ambiente com um custo de armazenamento bem menor que o Amazon Redshift em si.
Esses dados também podem ser persistidos dentro do cluster do Amazon Redshift, o que traz uma performance melhor na movimentação deles, inclusive para o desenvolvimento dos painéis na plataforma de business intelligence do cliente.
A utilização desses recursos em conjunto nos permite oferecer ao CNA uma solução automatizada e monitorada de ponta a ponta, na qual a maioria dos processos pelo qual o dado passa são ativados e desativados de maneira orquestrada e sem a interferência humana, possibilitando o melhor aproveitamento dos recursos com o menor custo possível.
A BRLink é um Parceiro AWS de nível Premier, o mais alto na AWS Partner Network. Faz parte de diversos programas, como Managed Service Provider, AWS Public Sector Partner e AWS Solution Provider Program. A BRLink têm sete especializações do programa AWS Service Delivery, e quatro Competências AWS: DevOps Consulting Competency, Migration Consulting Competency, Education Consulting Competency e Machine Learning Consulting Competency.