Continuando a serie do pipeline de dados, iremos adicionar ao nosso ambiente uma ferramenta de visualização de dados da Apache, o Apache Superset.
Iremos aproveitar a estrutura criada na etapa 2, onde criamos um arquivo docker-compose com a extensão .yaml.
Nesse arquivo adicionaremos o contêiner disponibilizado pela própria Apache dentro do docker hub. Também criaremos um volume para a persistência dos dados e adicionaremos ele a rede, para podermos fixar seu IP. Depois disso, com o contêiner em execução, criaremos o usuário admin, as roles e carregaremos alguns exemplos que o próprio programa trás.
Vamos lá? 🙂
Apache Superset
Antes de entrarmos na construção do ambiente quero falar um pouco sobre a ferramenta.
O Apache Superset é uma ferramenta para visualização de dados em Big Data. Ela é bem simples de instalar e é bem rica no que tange a criação dos dashboards.
Ela trabalha de forma hierárquica, onde primeiro adicionamos o Database, depois a tabela. Daí podemos criar os charts e depois compor um dashboard com esses charts.
A ferramenta também nos permite criar filtros, campos calculados, regras de acesso etc.
Eu recomendo ler um pouco mais sobre a documentação, que na parte de utilização é bem rica, mas carece na parte de instalação. O contêiner que iremos montar, por exemplo, não existe na documentação, encontrei por acaso em pesquisas e facilitou muito.
Até existe uma forma de utilizar docker-compose para criarmos o ambiente, mas aí todo o processo entra em conflito, pois as networks do docker são distintas e a comunicação com o banco MySQL no contêiner é prejudicada. Se você encontrou um modo de construir essa comunicação, adoraria saber contato@thedataengineer.com.br 🙂
O contêiner é uma imagem oficial da Apache, e não há perigo do usuário (como acontece com outras imagens) retirar o conteúdo.
Documentação do Apache Superset: https://superset.apache.org/docs/intro
No próximo e ultimo post irei demostrar como fazemos para criar um dashboad dentro da ferramenta, consumindo os dados que carregamos sobre o Covid 19 na postagem 2.
Bora instalar a ferramenta! 😀
Instalação
Para a instalação iremos aproveitar nosso arquivo anterior e adicionaremos o serviço “superset”.
Também fixaremos um IP e um volume para persistir os dados.
Arquivo:
version: "3.3"
services:
streamsets:
image: streamsets
networks:
net-data-pipeline:
ipv4_address: 172.16.0.11
ports:
- "18630:18630"
volumes:
- streamsets-data:/opt/streamsets
mysql-db:
image: mysql-db
networks:
net-data-pipeline:
ipv4_address: 172.16.0.10
ports:
- "3306:3306"
volumes:
- mysql-data:/var/lib/mysql
superset:
image: apache/incubator-superset
networks:
net-data-pipeline:
ipv4_address: 172.16.0.12
ports:
- "8080:8080"
volumes:
- superset-data:/app
volumes:
streamsets-data:
mysql-data:
superset-data:
networks:
net-data-pipeline:
driver: bridge
ipam:
driver: default
config:
- subnet: 172.16.0.0/24
Agora que temos o arquivo, vamos salva-lo com o nome “env-docker-compose.yaml”.
Depois, no terminal, dentro do diretório onde salvamos o arquivo, digitamos o seguinte comando:
$ docker-compose -f env-docker-compose.yaml up
Isso fará com que o todos os contêineres do nosso ambiente iniciem.
Uma vez que todos os contêineres tenham iniciado, vamos:
- Criar o usuário e senha padrão (admin/admin).
- Criar o banco de dados da aplicação.
- Carregar os exemplos (esse passo não é necessário no ambiente de produção).
- Criar as roles, que são regras de acesso.
Todos os passos são explicados dentro do docker hub da imagem, e são bem simples de executar.
Caso queira dar uma olhada: https://hub.docker.com/r/apache/incubator-superset
Ok, vamos ao que interessa.
Primeiro, vamos verificar o nome do contêiner onde está o Superset, isso é bem simples, podemos fazer com o comando abaixo:
$ docker container ls
Abaixo, na coluna “NAMES”, temos o nome do contêiner, iremos utiliza-lo na execução dos comandos.
No caso, o nome é “db-env_superset_1”, mais o seu pode ser diferente, fique atento!
Feito isso, executaremos os comandos abaixo:
Cria usuário:
$ docker exec -it db-env_superset_1 superset fab create-admin --username admin --firstname Superset --lastname Admin --email admin@superset.com --password admin
Cria banco de dados:
$ docker exec -it db-env_superset_1 superset db upgrade
Carrega exemplos:
$ docker exec -it db-env_superset_1 superset load_examples
Cria roles:
$ docker exec -it db-env_superset_1 superset init
O Apache Superset utiliza SQLalchemy para conexão nas bases de dados, vocês podem conferir a lista nesse link: https://superset.apache.org/docs/databases/installing-database-drivers
Agora vamos acessar o endereço: http://172.16.0.12:8080/, onde podemos realizar o login utilizando a senha e usuário padrão (admin/admin).
Pronto! O Apache Superset está instalado! Abaixo a tela inicial:
Agora podemos entrar em um dos dashboads de exemplo: http://172.16.0.12:8080/superset/dashboard/9/
Bacana né?
Conclusão
Essa ferramenta é bem legal de usar, no próximo post irei conectar no MySQL e produzir um dashboard das informações de Covid 19.
Até a próxima! 🙂