Guia Fundamental de Engenharia de Dados na AWS

Por
Emanuel Betcel
29/5/2024

A Engenharia de Dados já é uma esfera vital no cenário atual de Marketing Digital, e a Amazon Web Services (AWS) se destaca como uma das principais plataformas para trabalhar com dados em cloud. Mesmo para profissionais cuja stack principal reside em outra nuvem, a popularidade e a abrangência do que ela oferece tornam o aprendizado de suas ferramentas e serviços altamente recomendável. O provedor oferece uma vasta gama de serviços que vão desde soluções de armazenamento até ferramentas analíticas avançadas, que permitem processar e analisar grandes volumes de dados com eficiência. Sendo assim, entender a AWS pode abrir portas para oportunidades de carreira inovadoras e melhorar significativamente a capacidade de entregar soluções de dados robustas e escaláveis.

Este artigo traz algumas das principais ferramentas, apresentando uma visão geral de como é a engenharia de dados na AWS.

Armazenamento

Amazon S3 (Simple Storage Service) é o principal serviço de armazenamento de objetos oferecido pela Amazon Web Services (AWS). Com ele, os usuários podem armazenar todo tipo de arquivo, como parquet, csv ou até uma imagem. Do ponto de vista da Engenharia de Dados, os principais casos de uso para o S3 são construir data lakes, onde diferentes tipos de dados estruturados e não estruturados são armazenados, fornecendo a escalabilidade, o custo-benefício e a flexibilidade necessária. Também podemos usar ferramentas como o Athena, como veremos a seguir, para consultar os dados.

Funções

AWS Lambda é um serviço de computação sem servidor e function as a service. Ele permite que você execute códigos em resposta a eventos, como chamadas de API, uploads de arquivos, alterações em bancos de dados ou outros eventos definidos por você. A principal vantagem do Lambda é não precisar se preocupar em gerenciar servidores ou clusters. É possível simplesmente escrever o código focando na lógica e deixar a infraestrutura a cargo do Lambda. Você pode usá-lo para processar logs, transformar dados, executar ETL (Extração, Transformação e Carga) e muito mais.

Orquestração de Workflow

O AWS Step Functions é um serviço de workflow, ou seja, uma sequência automatizada de tarefas de dados simplificadas que pode ser usado na orquestração de aplicações distribuídas, automação de processos e em pipelines de dados e machine learning. No contexto de Engenharia, é comum ter que usar mais de um processo em um pipeline. Por exemplo, um uso comum dessa ferramenta é executar duas Lambdas em paralelo e usar o output delas para uma terceira função. O step function oferece funcionalidade similar ao Airflow, porém mais simplificada.

Orquestração de microsserviços - Combine funções do Lambda para criar uma aplicação baseada na Web
fonte: https://aws.amazon.com/pt/step-functions/use-cases/

Cloud Data Warehouse

O serviço de warehouse da AWS, estrutura  onde os dados são integrados e centralizados, se chama Amazon Redshift. Ele é projetado e otimizado para processar e analisar grandes volumes de dados de maneira eficiente. Internamente o Redshift utiliza uma arquitetura de colunas, otimizadas para consultas analíticas. Do ponto de vista de infraestrutura também é possível aumentar ou diminuir o tamanho do cluster do Redshift de acordo com as necessidades de armazenamento e processamento de dados da empresa, sem a necessidade de reparos ou reinicialização.

Consultas

Quando há  dados armazenados em S3, Data warehouses, ERP, em um RDS (serviço de banco de dados relacional da AWS) ou em algum outro local, o Athena é um serviço que pode ser usado para realizar consultas diretamente e usando SQL. Além da query engine serverless em SQL que ele concede, também é possível usar uma engine de Apache Spark caso seja necessário mais velocidade no processamento de alta volumetria de dados. Tudo isso de forma flexível e com os custos variando de acordo com o uso, sendo muito útil como ferramenta para consulta de dados diretamente em uma ou mais fontes sem necessariamente mover para um sistema de banco de dados.

Hadoop/Spark

Fonte: https://spark.apache.org/

Elastic MapReduce ou Amazon EMR é o serviço que permite usar Spark na AWS sem a necessidade de gerenciar a infraestrutura dos clusters. Mesmo com outras plataformas especializadas, como o Databricks, ainda é uma excelente solução para workloads de big data.

Streaming 

O Kinesis é a ferramenta de streaming de dados totalmente gerenciada da AWS, para situações onde é necessário ingestão, processamento e análise de dados em tempo real, e é uma alternativa ao Apache Kafka, por exemplo.

Serviço de ETL (não somente)

O AWS Glue é um serviço de ETL totalmente gerenciado pela AWS, sem servidor e escalável que pode ser utilizado para integração de dados.

O serviço permite extrair dados de várias fontes, descobrir metadados e catalogar, limpar, enriquecer, mover e organizar dados de maneira confiável entre diferentes tipos de armazenamento (como data lakes, data warehouses e bancos de dados). Ele combina a velocidade e o poder do Apache Spark com diversas outras ferramentas que facilitam o trabalho.

Um de seus componentes importantes é o Glue Data Catalog, que armazena metadados, como informações sobre bancos de dados, tabelas e crawlers.

As tabelas no Data Catalog fazem referência aos metadados descobertos por crawlers, que varrem arquivos em um bucket S3 e identificam colunas e seus tipos. Com esse mesmo serviço é possível rodar um crawler nos seus dados e usar essas informações nos processos de ETL,, organizando dados, facilitando a busca, melhorando a governança, permitindo descobertas rápidas e otimizando os ETLs.

 AWS Glue é um serviço de ETL totalmente gerenciado pela AWS
Fonte: https://docs.aws.amazon.com/glue/latest/dg/catalog-and-crawler.html

IAM e CloudWatch

Além dos serviços citados anteriormente, também vale destacar a necessidade do uso do IAM (Identity and Access Management) para controlar os acessos aos recursos usados nos pipelines e aos dados. Um outro serviço que provavelmente será bastante utilizado ao desenvolver soluções na AWS é o CloudWatch, onde é possível monitorar e consultar os logs das pipelines para melhorar a performance e depurar erros.

Por fim, ressalto que é importante conhecer os serviços da AWS e as suas aplicações, assim como também colocar em prática projetos na plataforma para consolidar o aprendizado. Os benefícios de ter pelo menos um conhecimento básico são ótimos e muito do conhecimento adquirido em outras clouds como o Google Cloud e o Microsoft Azure, podem ser reaproveitados. Diversos materiais de estudo feitos pela própria AWS estão disponíveis em locais como https://docs.aws.amazon.com/ e https://aws.amazon.com/training/, sendo boas fontes de consulta, estudo e preparação para certificações.

Compartilhe