Imprimir este capítuloImprimir este capítulo

Arquitetura

1. Cloud - AWS

1.2. Amazon EMR

Arquitetura-emr

Assim como na arquitetura anterior, temos ilustrado no diagrama acima o ambiente corporativo que envia os dados das suas origens para o serviço S3, que consiste no repositório físicos dos arquivos que são armazenados em formato de objetos dentro de um Bucket. Para realizar essa importação, o 4insights disponibiliza uma serie de plug-ins para diversas ferramentas de ETL (Pentaho, Talend e outras) que vão extrair os dados das origens e envia-los ao S3 no formato Parquet e ira utilizar o catalogo criado no 4insights para definir quais colunas serão mapeadas para os arquivos. Ao final do carregamento dos dados pro S3 o 4insights é acionado para criar as tabelas no Glue Data Catalog, que neste momento será utilizado para mapear as tabelas apontando para os arquivos, dessa forma já possível realizar as consultas o Athena, que consiste num serviço de consultas usando SQL padrão sem a necessidade de um servidor.
Após identificarmos a primeira parte da arquitetura, seguimos para a construção do Data Warehouse, que irá conter os dados organizados em formato Dimensional e utilizará o Hive e Presto na estrutura de Hadoop da AWS. O Glue será utilizado como o metastore, o mesmo contém uma descrição da tabela e dos dados subjacentes nos quais foi criado, incluindo os nomes de partição, os tipos de dados etc para os Bancos de Dados, e posteriormente possibilitará a consulta das  informações carregadas via Athena sem a necessidade do Cluster(EMR) estar no ar, criando assim uma estrutura robusta e com custo acessível onde a estrutura Hadoop fica totalmente no ambiente Cloud. A ideia é construir um Data Warehouse, possibilitando a análise de forma mais intuitiva e flexível, ajudando a empresa a tomar as decisões importantes. Nesta proposta o Data Warehouse é alimentado pelo Data Lake, sendo assim todo o processamento fica no ambiente AWS. As configurações necessárias para essa arquitetura serão detalhadas no decorrer deste tópico.


Implementação 

Para a implementação dessa arquitetura é utilizado um script de implantação usando o serviço CloudFormation que é responsável por criar e configurar os recursos descritos no desenho de arquitetura, tais como:

  • EC2: Será criado uma maquina virtual que irá conter o console do 4insights que poderá ser acessado posteriormente via navegador.
  • RDS: Será criada uma instancia MySQL que irá conter as informações cadastradas no console do 4insights.
  • Bucket (DataLake): Será criado um bucket que irá conter os arquivos destinados ao Data Lake.
  • Glue Catalog: Serão criados databases destinados ao Data Lake, Hive e Presto.
  • Bucket (Data Warehouse): Será criado um bucket que irá conter os backups das execuções realizadas.
  • EMR: Será criado um cluster do EMR que é responsável por realizar  e simplificar a execução das cargas na estrutura de Big Data.

Faça download do script do CloudFormation clicando aqui.

CloudFormation EMR / Redshift

Para utilização de um ambiente com as duas arquiteturas emr e redshift desenvolvemos um único scrip do cloudFormation.

Faça download do script  clicando aqui.

Para iniciar o processo de implementação é necessário primeiramente configurar a VPC (Virtual Private Cloud) para realizar o isolamento da rede e deve respeitar os seguintes requisitos:

  • Configurar 3 subnets's. Sendo 2 subnet's privadas, ambas em zonas de disponibilidades (AZ) diferentes.
  • 1 Subnet pública contendo um NAT para habilitar o acesso a internet das Subnet's privadas (O NAT só é necessário caso os recursos que estarão nas subnet's privadas necessitem de internet, caso contrário não a necessidade deste componente). Obs.: Essa subnet só tem necessidade caso o cliente precise acessar o console do 4insights pela internet, caso tenha uma VPN configurada não a necessidade desta subnet para a implementação desta arquitetura.

Após a configuração da VPC, é necessário a criação a criação de um Key Pair para ser associado na criação da criação da EC2 (Elastic Compute Cloud) onde será implantado o console do 4insights.

Para finalizar a implementação basta navegar até o painel do serviço CloudFormation e selecionar o arquivo e preencher os parâmetros de acordo com seu ambiente, conforma as imagens abaixo:

Na primeira parte é necessário preencher as informações relacionadas ao console do 4insights, tais como VPC, Subnet, Tipo da Instancia e etc.


Continuação dos parâmetros desta seção.

Na próxima seção é necessário preencher as informações relacionadas ao ambiente de Data Lake, deverá ser informado o nome do bucket e o nome da base de dados onde ficaram as tabelas do Data Lake.


Na próxima seção é necessário preencher as informações relacionadas ao EMR, tais como VPC, Subnet, Tipo da Instancia e Data Warehouse etc.


Na seção final é necessário preencher as informações de acesso do console do 4insights.


Ao preencher todas as informações clique no botão "Next" e ao final do processo não esqueça de habilitar a opção "I acknowledge that AWS CloudFormation might create IAM resources.".


Ao clicar no botão "Create", basta somente esperar o ambiente ser criado.


Depois que o ambiente for construído, selecione o Stack e clique na aba "Outputs" e localize a linha "4InsightsConsoleURL".



Clique no link e será aberto o 4Insights Console

Obs.: Após a criação do ambiente é possível que demore pelo menos de 5 a 10 minutos para a instalação do console na maquina virtual.