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
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.