Já ouviu falar do Streamsets? Não? E do Apache Superset? Também não?
Essas são ótimas opções para ter-se no ferramental de um engenheiro de dados, ainda mais quando falamos de ferramentas abertas!
A primeira ferramenta, Streamsets, é uma opção para ingestão de dados em batch e streaming, e que será abordada nessa primeira parte.
A segunda ferramenta, Apache Superset, é a opção da Apache para a visualização e exploração de dados. Ela é pouco conhecida, mas muito poderosa!
Motivação
Minha motivação aqui é criar um pipeline de dados completo, desde o consumo até a visualização dos dados.
Irei dividir esse pipeline em 4 partes.
Na primeira etapa irei instalar e configurar o Streamsets.
Na segunda etapa irei realizar a ingestão de dados em um banco de dados MySQL, utilizando o Streamsets.
Na terceira etapa irei instalar e configurar o Apache Superset.
Na ultima, irei consumir os dados de um banco MySQL, preparado na segunda etapa e então construir um dashboard com os dados.
Espero que gostem dessa serie, e caso tenham alguma sugestão, podem envia-la para contato@thedataengineer.com.br
O que é o Streamsets?
De forma resumida, o Streamsets é uma ferramenta de ingestão de dados onde podemos realizar o ETL tanto de dados em batch quanto de streaming.
Ele oferece uma interface super simples de utilizar e suas configurações são bem fáceis de se fazer.
Ele tem como pré-requisito o Java JDK 8.
Iremos realizar a instalação e configuração dessa ferramenta em um contêiner docker, que entendo ser uma maneira bem simples de testar a ferramenta, além de economizar um bom tempo com instalação de sistema operacional.
Caso você não queira ou não tenha familiaridade com o docker, você pode instalar uma distribuição linux no virtual box, a instalação ocorre da mesma maneira. 🙂
Bom, vamos lá!
Preparação do ambiente
Primeiro vamos fazer a preparação do ambiente em docker.
Caso você tenha escolhido instalar em uma maquina linux, deixarei o passo-a-passo no final da postagem.
Colocando de forma simples, podemos utilizar um Dockerfile com as configurações que queremos, assim como uma receita de bolo! E depois subir isso dentro de um contêiner docker.
Iremos utilizar uma imagem do Ubuntu, dentro dela configuraremos os passos necessários para a aplicação funcionar e um “entrypoint” para a execução do contêiner.
Abaixo nossas configurações do dockerfile.
FROM ubuntu:bionic
# Instalação de bibliotecas
RUN apt-get update -y && apt-get install -y ssh rsync net-tools vim openjdk-8-jdk wget
# Variável de ambiente do Java 8.
ENV JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
# Inclusão das informações no path
ENV PATH="/usr/lib/jvm/java-8-openjdk-amd64/bin:/opt/hadoop/bin:${PATH}"
# Diretório de trabalho
WORKDIR /opt
# Baixa a aplicação
RUN wget https://archives.streamsets.com/datacollector/3.18.1/tarball/activation/streamsets-datacollector-core-3.18.1.tgz
# Descompacta
RUN tar -xvzf streamsets-datacollector-core-3.18.1.tgz
# Renomeia a pasta
RUN mv streamsets-datacollector-3.18.1 streamsets
# Deleta arquivo
RUN rm streamsets-datacollector-core-3.18.1.tgz
# Executa a aplicação, "dc" significa "Data Collector"
ENTRYPOINT [ "/opt/streamsets/bin/streamsets","dc"]
Agora vamos realizar o build do script acima.
Renomeei o arquivo como streamsets.dockerfile, com o comando abaixo podemos criar a imagem docker.
$ docker build -f streamsets.dockerfile . -t streamsets
Agora vamos criar um volume para a persistência dos dados do Streamsets, se não perderemos as alterações que fizermos no futuro, bem como também qualquer pipeline criado. 🙂
$ docker volume create streamsets-data
Criada a imagem e o volume, está na hora de executar o contêiner!
$ docker run -v streamsets-data:/opt/streamsets -d streamsets
Com isso, precisamos acessar o ip do contêiner. Primeiro listamos os contêineres em execução, para pegarmos o id do contêiner.
$ docker container ls
Isso listará os contêineres em execução:
![](https://thedataengineer.com.br/wp-content/uploads/2020/12/Captura-de-tela-de-2020-12-06-17-44-01-1024x584.png)
Agora, com posse do id do contêiner, localizado na coluna “CONTAINER ID”, podemos inspecionar o mesmo e buscar o ip.
$ docker container inspect 0af7525902ce | grep IPAddress
![](https://thedataengineer.com.br/wp-content/uploads/2020/12/Captura-de-tela-de-2020-12-06-17-48-00-1024x584.png)
Em meu caso, o ip do contêiner é 172.17.0.2.
Então devemos acessar o seguinte endereço : ip-container:18630, onde roda a aplicação.
Abaixo o login padrão é admin e senha admin.
![](https://thedataengineer.com.br/wp-content/uploads/2020/12/Captura-de-tela-de-2020-12-06-17-52-03-1024x578.png)
Depois teremos a tela inicial, para criarmos os pipelines de dados.
![](https://thedataengineer.com.br/wp-content/uploads/2020/12/Captura-de-tela-de-2020-12-06-17-52-37-1024x578.png)
Instalando em uma máquina virtual
Instale uma distribuição do Ubuntu em uma maquina virtual, então no terminal dessa maquina você pode seguir os seguintes passos:
Aqui tem um vídeo que mostra como você pode fazer isso: https://www.youtube.com/watch?v=wGwikwPrACA
Primeiro deve-se instalar o Java JDK 8 e o wget.
$ apt-get install openjdk-8-jdk wget -y
Eu, particularmente, prefiro instalar minhas aplicações em /opt, mas pode-se fazer o download da aplicação no diretório de sua preferencia.
$ cd /opt
$ wget https://archives.streamsets.com/datacollector/3.18.1/tarball/activation/streamsets-datacollector-core-3.18.1.tgz
Depois realizaremos a descompactação do arquivo, renomeação e remoção do arquivo compactado.
$ tar -xvzf streamsets-datacollector-core-3.18.1.tgz
$ mv streamsets-datacollector-3.18.1 streamsets
$ rm streamsets-datacollector-core-3.18.1.tgz
Antes de iniciarmos a aplicação, vamos configurar a variável de ambiente do Java.
$ sudo "JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64" >> /etc/environment
$ source /etc/environment
Para iniciar o Streamsets, digite o comando abaixo:
$ /opt/streamsets/bin/streamsets dc
Agora, basta você pegar o ip da maquina virtual e seguir os passos de acesso.
Conclusão
Não existem muitas configurações a se fazer, basicamente devemos instalar o java, baixar a aplicação e executar seu binário.
Se você reparar no arquivo streamsets.dockerfile, basicamente são os passos para instalar o programa em uma maquina linux.
Na próxima etapa, onde faremos a ingestão de dados, teremos configurações mais interessantes, onde devemos instalar algumas coisas para podermos nos conectar com o banco destino.
Até o próximo tópico e espero que tenham gostado! 🙂