Imprimir o livro todoImprimir o livro todo

Arquitetura

Neste livro iremos detalhar a arquitetura do 4insights, quais recursos ele utiliza e de qual forma elas se comunicam, essa documentação é voltada à parte técnica e definição de ambiente.

Site: 4Insights
Curso: 4Insights
Livro: Arquitetura
Impresso por: Usuário visitante
Data: Monday, 25 Nov 2024, 06:50

1. Cloud - AWS

Uma das arquiteturas mais utilizadas pelos clientes do 4insights é a usando a Amazon Web Services (AWS), pois possui uma gama de serviços que são compatíveis e integrados, e neste tópico iremos detalhar como funciona e como implantar a arquitetura, iremos iniciar esse documento ilustrando de forma visual, em formato de um diagrama a arquitetura completa desta sugestão, que consiste na elaboração de uma arquitetura utilizando o 4insights para criar um Data Warehouse usando o Amazon Redshift ou
Amazon EMR.

Arquitetura Data Warehouse

Para essa primeira proposta consiste na criação de um ambiente onde será possível construir um repositório de dados em seu formato natural (Data Lake), possibilitando o consumo dos dados num repositório único, que podem ser usados não só pela área de TI, como todas áreas que queiram realizar algum tipo de análise nos dados da companhia. Esse repositório será criado utilizando os serviços S3 (Simple Storage Service), Athena e Glue, que serão detalhados no decorrer desse tópico. Também será construído um Data Warehouse que irá conter os dados organizados em formato Dimensional, 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, diminuindo o custo com servidores locais, pois toda a arquitetura é escalável, e paga somente de acordo com a utilização, sendo possível aumentar a capacidade de acordo com a necessidade. Para criação do Data Warehouse demonstraremos duas maneiras que também serão detalhadas no decorrer deste tópico, uma delas utilizado o serviço Amazon Redshift e Spectrum, a outra utilizando a estrutura de Big Data da AWS
(EMR – Elastic Mapreduce). O 4insights nesta proposta tem um papel fundamental, pois é nele que iremos criar o catalogo das tabelas do Data Lake garantindo assim a governança e rastreabilidade dos recursos que estão disponíveis para consultas, e também que criamos a modelagem com o grande diferencial de ser conectada ao Data Warehouse físico, dessa forma toda a modelagem que é criada no 4insights é transformada no processo de carga dos dados, e nele também criamos o agendamento e o fluxo das cargas que podem ser feitas em formato Batch ou em Near Real-Time. Por último, é possível criar DataSet's agregados, transformando e calculando os dados do Data Warehouse através da funcionalidade de SelfService, essa arquitetura é recomendada para os clientes que queiram uma estrutura robusta é com custo acessível onde o BI fica totalmente no ambiente Cloud.




1.1. Amazon Redshift


Inicialmente temos ilustrado no diagrama acima o ambiente corporativo 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 seria 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 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 um servidor.

Após identificarmos a primeira parte da arquitetura seguimos para a construção do Data Warehouse que utiliza o Redshift com Banco de dados de Data Warehouse, que realiza consultas diretamente do seu Data Lake usando o Spectrum, que permite que seja executado consultas em fontes de dados externas, possibilitando a integração entre todo o ambiente e os dados envolvidos.

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á criado um database destinado ao Data Lake.
  • Bucket (Data Warehouse): Será criado um bucket que irá conter os backups das execuções realizadas no Redshift.
  • Redshift: Será criado um cluster do Redshift que é responsável por realizar o carregamento do Data Warehouse.
  • IAM Role: Será criada uma IAM Role que é utilizado pelo Redshift para acessos os dados externos carregados no ambiente do Data Lake.

Faça download do script do CloudFormation 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 acessar o console do 4Insights pela internet, caso contrário não a necessidade deste componente), caso tenha uma VPN configurada  para acessar VPC o console fica acessível diretamente da rede interna.

Após a configuração da VPC, é necessário 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 ambiente de Data Warehouse.


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.


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.