Sistema de apoio a decisão e Data Warehouse

Sistema de apoio a decisão e Data Warehouse

julho 1, 2019 Off Por felipe

Unidade 1

Unidade 2

Conheça o ElasticSearch

Conheça o Kibana

<


Unidade 3

Preparando o Ambiente

Como ambiente de trabalho para essa atividade pratica vamos utiliza o Ubuntu 18.04, caso não seja utilizado o mesmo ambiente, os comandos para preparar o ambiente não irão funcionar.

Para utilizar o Elasticsearch e o Kibana vamos precisar instalar o Docker, para isso, em seu terminal execute o seguinte comando:

sudo apt update

sudo apt install docker.io

Após instalado o Docker é necessario instalar o docker-compose, para isso execute o comando:

sudo apt install docker-compose

Será necessário para as requisições de inserção de dados e consultas na API do Elasticsearch o cURL, para isso, instalamos o mesmo com o comando:

sudo apt-get update

sudo apt-get install curl

Assim que instalado o Docker e docker-compose será necessário efetuar o download do materia de apoio que está abaixo.

Agora que você já fez o download, navegue pelo terminal até o diretório do material de apoio e execute o seguinte comando:

sudo sysctl -w vm.max_map_count=262144

E posteriormente o comando:

sudo docker-compose up

Assim o Docker irá efetuar o download das imagens do Elasticsearch e Kibana e então executar os containers, disponibilizando em localhost essas duas ferramentas.

Ambiente preparado, já podemos carregar os dados em nosso Elasticsearch, então vamos lá!

Inserindo dados no Elasticsearch

Após criar o ambiente com o Elasticsearch e o Kibana, podemos acessar em nosso navegador http://localhost:9200 e recebemos o resultado abaixo indicando que nosso Elasticsearch está rodando:

{   
"name" : "rbo4wlj",
"cluster_name" : "docker-cluster",
"cluster_uuid" : "AgppHvy9QUahlSrzyWmS5A",
"version" : {
"number" : "6.2.2",
"build_hash" : "10b1edd",
"build_date" : "2018-02-16T19:01:30.685723Z",
"build_snapshot" : false,
"lucene_version" : "7.2.1",
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"tagline" : "You Know, for Search"
}

Para começar, precisamos criar um index, que categoriza os dados da aplicação e agrupa os tipos. Para isso iremos utilizar o comando cURL do linux:

curl -X PUT http://127.0.0.1:9200/sales

Isso vai criar um index chamado sales, dentro dos index, podemos adicionar os types que seriam subcategorias para organizar e agrupar os documentos, e os documents que seriam o agrupamento dos dados, no nosso caso, seriam os dados pertinentes a venda.

Enviando a requisição abaixo, armazenamos os dados da venda de id 1 em um type chamado jan.

curl -X PUT http://127.0.0.1:9200/sales/jan/1 -H “Content-Type: application/json” -d

‘{

“Transaction_date”: “1/2/09 6:17”,

“Product”: “Product1”,

“Price”: “1200”,

“Payment_Type”: “Mastercard”,

“Name”: “carolina”,

“City”: “Basildon”,

“State”: “England”,

“Country”: “United Kingdom”,

“Account_Created”: “1/2/09 6:00”,

“Last_Login”: “1/2/09 6:08”,

“Latitude”: 51.5,

“Longitude”: -1.1166667

}’

Obs.: Para um fácil entendimento, as informações foram separadas em diversas linhas, mas ao enviar a requisição, as informações devem ser mantidas todas na mesma linha.

Para carga das vendas do mês de janeiro, está disponível no material de download um script chamado “sales.sh” que fará as inserções automáticas no elasticsearch, para executá-lo, basta acessar a parta pelo terminal e executar o comando “./sales.sh”

Assim que armazenado os dados no elasticsearch, podemos fazer uma consulta pela API do Elasticsearch, abaixo uma requisição para retornar as vendas feitas para a “Julia”.

curl http://localhost:9200/sales/_search?pretty -H “Content-Type: application/json” -d ‘{ “query”: { “match”: { “Name”: “Julia” } } }’

Obtemos o seguinte retorno:

{

“took” : 1,

“timed_out” : false,

“_shards” : {

“total” : 5,

“successful” : 5,

“skipped” : 0,

“failed” : 0

},

“hits” : {

“total” : 2,

“max_score” : 5.108163,

“hits” : [

{

“_index” : “sales”,

“_type” : “jan”,

“_id” : “748”,

“_score” : 5.108163,

“_source” : {

“Transaction_date” : “1/19/09 15:40”,

“Product” : “Product2”,

“Price” : “3600”,

“Payment_Type” : “Visa”,

“Name” : “Julia”,

“City” : “Ede”,

“State” : “Gelderland”,

“Country” : “Netherlands”,

“Account_Created” : “1/19/09 14:32”,

“Last_Login” : “2/15/09 10:33”,

“Latitude” : 52.0333333,

“Longitude” : 5.6666667

}

},

{

“_index” : “sales”,

“_type” : “jan”,

“_id” : “1053”,

“_score” : 5.001001,

“_source” : {

“Transaction_date” : “1/12/09 21:30”,

“Product” : “Product1”,

“Price” : “1200”,

“Payment_Type” : “Visa”,

“Name” : “Julia “,

“City” : “Madison”,

“State” : “WI”,

“Country” : “United States”,

“Account_Created” : “11/17/08 22:24”,

“Last_Login” : “3/1/09 10:14”,

“Latitude” : 43.07306,

“Longitude” : -89.40111

}

}

]

}

}

Como podemos observar, a Julia fez 2 compras no mês de janeiro, a compra numero 748 e a compra numero 1053.

Agora que os dados já então armazenados no Elasticsearch, podemos usar o Kibana para construir gráficos e construirmos um sistema de apoio a decisão.

Inserindo visualizações no Kibana

Para acessar o Kibana vamos acessar a url http://localhost:5601, e acessamos o menu “Dashboard”.

Para começar, precisamos definir um nome para nossa index principal. Para esse exemplo será colocado sales.

Assim que definido o nome clicamos em Next Step.

E então em Create index pattern.

Após criado a nossa index pattern, vamos até a dashboard e criaremos nossa primeira dashboard, clicando em Create a dashboard

Após criada clicamos em Save, para já definirmos um nome à ela.

Definimos um nome e colocamos uma descrição e então salvamos em “Save”.

Agora vamos criar nosso primeiro gráfico. Para isso vamos clicar em “Add”.

E clicamos em Add new Visualization.

Vamos criar um gráfico do tipo Pie, e escolhemos o index sales.

Em “Buckets” clicamos em “Split Slices” e configuramos da seguinte maneira:

E clicamos em Apply changes.

Então clicamos em Save, colocamos um nome e salvamos.

Ao Visualizar a Dashboard o grafico já está lá.

Podemos adicionar também um grafico de barras para ver o numero de produtos vendidos. Para isso vamos clicar em Add, Add new Visualization, Vertical Bar, escolhemos nossa index sales e configuramos da seguinte maneira.

Novamente salvamos e podemos visualiza-lo na Dashboard.

E assim podemos adicionar varias visualizações e criar um sistema de apoio a decisão moldado conforme nossas necessidades.