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! 🙂


Jefferson Soares

Olá! Sou Jefferson. Trabalho com: Dados, Dashboards, SQL, SAS, Python e muito mais! Criei esse cantinho para postar alguns conhecimentos. :)

4 1 vote
Article Rating
Subscribe
Notify of
guest
0 Comentários
Inline Feedbacks
View all comments