SlideShare ist ein Scribd-Unternehmen logo
1 von 14
Downloaden Sie, um offline zu lesen
Construindo um data warehouse
com Pentaho e Docker
Wellington Marinho
wpmarinho@globo.com
Business Analytics
Estudo de Caso - EDW CENIPA
EDW CENIPA é um projeto opensource, criado para prover análises dinâmicas de ocorrências aeronáuticas,
ocorridas na aviação civil brasileira. O projeto utiliza técnicas e ferramentas de BI, explorando tecnologias
inovadoras e de baixo custo. Historicamente, plataformas de Business Intelligence são caras e inviáveis
para pequenos projetos. Esses projetos exigem qualificação especializada e custos altos de
desenvolvimento. Este trabalho tem a pretensão de quebrar um pouco esta barreira. O que não significa
pouca dedicação, empenho e esforço.
Todas as análises têm como base os dados abertos fornecidos pelo CENIPA, com histórico de ocorrências
dos últimos 10 anos:
• http://dados.gov.br/dataset/ocorrencias-aeronauticas-da-aviacao-civil-brasileira
Os gráficos foram inspirados no relatório disponibilizado no link:
• http://www.cenipa.aer.mil.br/cenipa/index.php/estatisticas/estatisticas/panorama.
Recursos
Seguem alguns serviços, ferramentas e plataformas que foram utilizados para desenvolver e implantar o projeto:
• Amazon Web Services - https://aws.amazon.com/ - Serviços de infraestrutura de nuvem
• Sistema Operacional Linux - CentOS 6 / Ubuntu 14
• GitHub - https://github.com/ - Serviço de Web Hosting Compartilhado para projetos que usam o controle de
versionamento
• Docker - https://www.docker.com/ - Plataforma aberta para construir e rodar aplicações distribuídas.
• Pentaho - http://www.pentaho.com/ e http://community.pentaho.com/ - Plataforma open source de Big Data,
Data Integration e Business Analytics
Requisitos
• Sistema Operacional com 2GB de RAM e 5GB de espaço em disco
• Docker v1.7.1
• CentOS: https://docs.docker.com/installation/centos/
• Ubuntu: https://docs.docker.com/installation/ubuntulinux/
• Mac : https://docs.docker.com/installation/mac/
• Docker Compose v1.4.2 - https://docs.docker.com/compose/install/
$ yum update -y
$ yum install -y docker
$ service docker start
$ usermod -a -G docker ec2-user
$ yum install -y git
$ pip install -U docker-compose
$ PATH=$PATH:/usr/local/bin
Instalação rápida no Amazon Linux AMI
Comandos básicos
$ docker info
$ docker --help
$ docker COMMAND --help
$ docker run --rm -it busybox echo "Olá, esse é meu primeiro container“
$ docker ps
$ docker images
$ docker build –t repositorio/imagem:tag .
$ docker build -t teste/myimage .
Criar um arquivo Dockerfile
Construir umaa imagem
FROM busybox
CMD ["echo", "Olá, esse é meu primeiro container"]
Criar um container
$ docker run --rm teste/myimage
Pentaho + Docker – Criando arquivo Dockerfile
FROM java:7
MAINTAINER Wellington Marinho wpmarinho@globo.com
# Init ENV
ENV BISERVER_VERSION 5.4
ENV BISERVER_TAG 5.4.0.1-130
ENV PENTAHO_HOME /opt/pentaho
# Apply JAVA_HOME
RUN . /etc/environment
ENV PENTAHO_JAVA_HOME $JAVA_HOME
ENV PENTAHO_JAVA_HOME /usr/lib/jvm/java-1.7.0-openjdk-amd64
ENV JAVA_HOME /usr/lib/jvm/java-1.7.0-openjdk-amd64
# Install Dependences
RUN apt-get update; apt-get install zip -y; 
apt-get install wget unzip git -y; 
apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*;
RUN mkdir ${PENTAHO_HOME};
# Download Pentaho BI Server
RUN /usr/bin/wget --progress=dot:giga http://downloads.sourceforge.net/project/pentaho/Business%20Intelligence%20Server/${BISERVER_VERSION}/biserver-ce-${BISERVER_TAG}.zip
-O /tmp/biserver-ce-${BISERVER_TAG}.zip; 
/usr/bin/unzip -q /tmp/biserver-ce-${BISERVER_TAG}.zip -d $PENTAHO_HOME; 
rm -f /tmp/biserver-ce-${BISERVER_TAG}.zip $PENTAHO_HOME/biserver-ce/promptuser.sh; 
sed -i -e 's/(exec ".*") start/1 run/' $PENTAHO_HOME/biserver-ce/tomcat/bin/startup.sh; 
chmod +x $PENTAHO_HOME/biserver-ce/start-pentaho.sh
RUN useradd -s /bin/bash -d ${PENTAHO_HOME} pentaho; chown -R pentaho:pentaho ${PENTAHO_HOME};
#Always non-root user
USER pentaho
WORKDIR /opt/pentaho
EXPOSE 8080
CMD ["sh", "/opt/pentaho/biserver-ce/start-pentaho.sh"]
Pentaho BI Server
$ docker build -t pentaho/biserver:5.4 .
$ docker run --rm -p 8080:8080 -it pentaho/biserver:5.4
Construir a imagem e rodar um containter
Abrir o navegador e abrir o Pentaho BI Server
GitHub
docker-pentaho
( Dockerfile / scripts )
pentaho-biserver:5.4
( imagem)
edw-cenipa
( Dockerfile / scripts )
BI SERVER / PDI
PROJETO EDW
pentaho-kettle:5.4
( imagem)
BI SERVER
PDI
Docker Hub
Jenkins + Docker Compose
Amazon EC2
BI SERVER
Amazon EC2
PDI
Amazon RDS
Postgresql / Redshift
ETL
Fontes de Dados
Arquitetura
Projeto EDW CENIPA
Instalação do Projeto
$ wget -O - https://raw.githubusercontent.com/wmarinho/edw_cenipa/master/easy_install | sh
Verificar execução dos containers
$ docker ps
O projeto possui 3 containers:
• edwcenipa_db_1 - Container com Banco de Dados PostgreSQL
• edwcenipa_pdi_1 - Container com instlação do Pentaho Data Integrator (Kettle) para download e
carga dados para o DW
• edwcenipa_biserver_1 - Container com instalação do Pentaho Business Analytics (BI Server)
Verificar logs
$ docker logs -f edwcenipa_pdi_1
$ docker logs -f edwcenipa_biserver_1
A instalação pode levar mais de 30 minutos, dependo da configuração do servidor e da largura de banda da Internet. A instalação
completa é de aproximadamente 3GB.
Dashboards – Ocorrências aeronáuticas
http://localhost/pentaho/plugin/cenipa/api/ocorrencias
Docker Compose
docker-composse.yml - Orquestra a execução de múltiplos containers
pdi:
image: image_cenipa/pdi
links:
- biserver:edw_biserver
volumes:
- /data/stage:/tmp/stage
environment:
- PGHOST=172.17.42.1
- PGUSER=pgadmin
- PGPASSWORD=pgadmin.
- PENTAHO_DI_JAVA_OPTIONS=-Xmx2014m -XX:MaxPermSize=256m
stdin_open: true
tty: true
biserver:
image: image_cenipa/biserver
ports:
- "80:8080"
links:
- db:edw_db
environment:
- PGUSER=pgadmin
- PGPASSWORD=pgadmin.
- INSTALL_PLUGIN=saiku
- CUSTOM_LAYOUT=y
stdin_open: true
tty: true
db:
image: wmarinho/postgresql:9.3
ports:
- "5432:5432"
stdin_open: false
tty: true
Pentaho + Docker + Amazon
Com o comando abaixo e as devidas credenciais de acesso, é possível subir o ambiente na Amazon em menos de 10
minutos. LEMBRE-SE de substituir as variáveis antes de executar o comando (verificar os parâmetros no AWS
console).
Essa é uma configuração adequada para este projeto, a um custo aproximado de US$ 80,00/mês
(http://calculator.s3.amazonaws.com/index.html)
$ SUBNET_ID=
$ SGROUP_IDS=
$ KEY_NAME=
$ aws ec2 run-instances 
--image-id ami-e3106686 
--instance-type c4.large 
--subnet-id ${SUBNET_ID} 
--security-group-ids ${SGROUP_IDS} 
--key-name ${KEY_NAME} 
--associate-public-ip-address 
--user-data "https://raw.githubusercontent.com/wmarinho/edw_cenipa/master/aws/user-data.sh" 
--count 1
Obrigado!
Projetos:
https://github.com/wmarinho/edw_cenipa
https://github.com/wmarinho/docker-pentaho
https://hub.docker.com/r/wmarinho/pentaho/

Weitere ähnliche Inhalte

Was ist angesagt?

Power bi overview of static row level security
Power bi overview of static row level securityPower bi overview of static row level security
Power bi overview of static row level securityManishK55
 
OutSystems 新機能紹介: Reactive Web
OutSystems 新機能紹介: Reactive WebOutSystems 新機能紹介: Reactive Web
OutSystems 新機能紹介: Reactive WebTsuyoshi Kawarasaki
 
VMware Horizon へ YubiKey を使って認証をキメる話
VMware Horizon へ YubiKey を使って認証をキメる話VMware Horizon へ YubiKey を使って認証をキメる話
VMware Horizon へ YubiKey を使って認証をキメる話Wataru Unno
 
Python
PythonPython
PythonTiago
 
Base de dados tic 10º ano
Base de dados   tic 10º anoBase de dados   tic 10º ano
Base de dados tic 10º anoEste FC Juniores
 
Do you know what your Drupal is doing Observe it! (DrupalCon Prague 2022)
Do you know what your Drupal is doing Observe it! (DrupalCon Prague 2022)Do you know what your Drupal is doing Observe it! (DrupalCon Prague 2022)
Do you know what your Drupal is doing Observe it! (DrupalCon Prague 2022)sparkfabrik
 
Share point における id管理と認証・認可
Share point における id管理と認証・認可Share point における id管理と認証・認可
Share point における id管理と認証・認可Naohiro Fujie
 
Rodando uma API Com Django Rest Framework no Google Cloud
Rodando uma API Com Django Rest Framework  no Google CloudRodando uma API Com Django Rest Framework  no Google Cloud
Rodando uma API Com Django Rest Framework no Google CloudAlvaro Viebrantz
 
Power BI Consultants | Power BI Solutions | Power BI Service
Power BI Consultants | Power BI Solutions | Power BI ServicePower BI Consultants | Power BI Solutions | Power BI Service
Power BI Consultants | Power BI Solutions | Power BI ServiceAdmin iLink
 
락플레이스 OpenShift Q&A 토크쇼 발표자료
락플레이스 OpenShift Q&A 토크쇼 발표자료락플레이스 OpenShift Q&A 토크쇼 발표자료
락플레이스 OpenShift Q&A 토크쇼 발표자료rockplace
 
Utilizando views, stored procedures e triggers
Utilizando views, stored procedures e triggersUtilizando views, stored procedures e triggers
Utilizando views, stored procedures e triggersDaniel Maia
 
External dependencies ,pre init hook & post init hook in odoo
External dependencies ,pre init hook & post init hook in odooExternal dependencies ,pre init hook & post init hook in odoo
External dependencies ,pre init hook & post init hook in odooCeline George
 
Aula 6 emu8086
Aula 6   emu8086Aula 6   emu8086
Aula 6 emu8086LCCIMETRO
 
Sansanがメッセージング (SQS) でスケーラビリティを手に入れた話
Sansanがメッセージング (SQS) でスケーラビリティを手に入れた話Sansanがメッセージング (SQS) でスケーラビリティを手に入れた話
Sansanがメッセージング (SQS) でスケーラビリティを手に入れた話Atsushi Kambara
 

Was ist angesagt? (20)

Power bi overview of static row level security
Power bi overview of static row level securityPower bi overview of static row level security
Power bi overview of static row level security
 
Oracle Database (CDB) on Docker を動かしてみる
Oracle Database (CDB) on Docker を動かしてみるOracle Database (CDB) on Docker を動かしてみる
Oracle Database (CDB) on Docker を動かしてみる
 
Vue Vuex 101
Vue Vuex 101Vue Vuex 101
Vue Vuex 101
 
はじめての vSRX on AWS
はじめての vSRX on AWSはじめての vSRX on AWS
はじめての vSRX on AWS
 
OutSystems 新機能紹介: Reactive Web
OutSystems 新機能紹介: Reactive WebOutSystems 新機能紹介: Reactive Web
OutSystems 新機能紹介: Reactive Web
 
VMware Horizon へ YubiKey を使って認証をキメる話
VMware Horizon へ YubiKey を使って認証をキメる話VMware Horizon へ YubiKey を使って認証をキメる話
VMware Horizon へ YubiKey を使って認証をキメる話
 
Python
PythonPython
Python
 
Base de dados tic 10º ano
Base de dados   tic 10º anoBase de dados   tic 10º ano
Base de dados tic 10º ano
 
Do you know what your Drupal is doing Observe it! (DrupalCon Prague 2022)
Do you know what your Drupal is doing Observe it! (DrupalCon Prague 2022)Do you know what your Drupal is doing Observe it! (DrupalCon Prague 2022)
Do you know what your Drupal is doing Observe it! (DrupalCon Prague 2022)
 
Share point における id管理と認証・認可
Share point における id管理と認証・認可Share point における id管理と認証・認可
Share point における id管理と認証・認可
 
Oracle Integration Cloud 概要(20200507版)
Oracle Integration Cloud 概要(20200507版)Oracle Integration Cloud 概要(20200507版)
Oracle Integration Cloud 概要(20200507版)
 
Rodando uma API Com Django Rest Framework no Google Cloud
Rodando uma API Com Django Rest Framework  no Google CloudRodando uma API Com Django Rest Framework  no Google Cloud
Rodando uma API Com Django Rest Framework no Google Cloud
 
Power BI Consultants | Power BI Solutions | Power BI Service
Power BI Consultants | Power BI Solutions | Power BI ServicePower BI Consultants | Power BI Solutions | Power BI Service
Power BI Consultants | Power BI Solutions | Power BI Service
 
락플레이스 OpenShift Q&A 토크쇼 발표자료
락플레이스 OpenShift Q&A 토크쇼 발표자료락플레이스 OpenShift Q&A 토크쇼 발표자료
락플레이스 OpenShift Q&A 토크쇼 발표자료
 
Curso javascript básico
Curso javascript básicoCurso javascript básico
Curso javascript básico
 
Utilizando views, stored procedures e triggers
Utilizando views, stored procedures e triggersUtilizando views, stored procedures e triggers
Utilizando views, stored procedures e triggers
 
External dependencies ,pre init hook & post init hook in odoo
External dependencies ,pre init hook & post init hook in odooExternal dependencies ,pre init hook & post init hook in odoo
External dependencies ,pre init hook & post init hook in odoo
 
Node.js e Express
Node.js e ExpressNode.js e Express
Node.js e Express
 
Aula 6 emu8086
Aula 6   emu8086Aula 6   emu8086
Aula 6 emu8086
 
Sansanがメッセージング (SQS) でスケーラビリティを手に入れた話
Sansanがメッセージング (SQS) でスケーラビリティを手に入れた話Sansanがメッセージング (SQS) でスケーラビリティを手に入れた話
Sansanがメッセージング (SQS) でスケーラビリティを手に入れた話
 

Andere mochten auch

Building a data warehouse with Pentaho and Docker
Building a data warehouse with Pentaho and DockerBuilding a data warehouse with Pentaho and Docker
Building a data warehouse with Pentaho and DockerWellington Marinho
 
Criando Indicadores de Negócios com o Pentaho na Globo.com
Criando Indicadores de Negócios com o Pentaho na Globo.comCriando Indicadores de Negócios com o Pentaho na Globo.com
Criando Indicadores de Negócios com o Pentaho na Globo.comPentahoBrasil
 
ETL with WSO2 Enterprise Middleware Platform
ETL with WSO2 Enterprise Middleware Platform ETL with WSO2 Enterprise Middleware Platform
ETL with WSO2 Enterprise Middleware Platform WSO2
 
Webinar: Conhecendo a solução Pentaho, líder em Business Analytics
Webinar: Conhecendo a solução Pentaho, líder em Business AnalyticsWebinar: Conhecendo a solução Pentaho, líder em Business Analytics
Webinar: Conhecendo a solução Pentaho, líder em Business AnalyticsRicardo Gouvêa
 
Modelo de Dados: Entendendo e “re-”construindo...
Modelo de Dados: Entendendo e “re-”construindo...Modelo de Dados: Entendendo e “re-”construindo...
Modelo de Dados: Entendendo e “re-”construindo...Wesley Seidel
 
Deep learning with Tensorflow in R
Deep learning with Tensorflow in RDeep learning with Tensorflow in R
Deep learning with Tensorflow in Rmikaelhuss
 
BEEVA | Introducción a Docker
BEEVA | Introducción a DockerBEEVA | Introducción a Docker
BEEVA | Introducción a DockerBEEVA_es
 
Curso Gratuito Online Desmistificando BI (Business Intelligence) Open Source ...
Curso Gratuito Online Desmistificando BI (Business Intelligence) Open Source ...Curso Gratuito Online Desmistificando BI (Business Intelligence) Open Source ...
Curso Gratuito Online Desmistificando BI (Business Intelligence) Open Source ...Caio Moreno
 
Third Nature - Open Source Data Warehousing
Third Nature - Open Source Data WarehousingThird Nature - Open Source Data Warehousing
Third Nature - Open Source Data Warehousingmark madsen
 

Andere mochten auch (10)

Building a data warehouse with Pentaho and Docker
Building a data warehouse with Pentaho and DockerBuilding a data warehouse with Pentaho and Docker
Building a data warehouse with Pentaho and Docker
 
Criando Indicadores de Negócios com o Pentaho na Globo.com
Criando Indicadores de Negócios com o Pentaho na Globo.comCriando Indicadores de Negócios com o Pentaho na Globo.com
Criando Indicadores de Negócios com o Pentaho na Globo.com
 
Oficina Pentaho
Oficina PentahoOficina Pentaho
Oficina Pentaho
 
ETL with WSO2 Enterprise Middleware Platform
ETL with WSO2 Enterprise Middleware Platform ETL with WSO2 Enterprise Middleware Platform
ETL with WSO2 Enterprise Middleware Platform
 
Webinar: Conhecendo a solução Pentaho, líder em Business Analytics
Webinar: Conhecendo a solução Pentaho, líder em Business AnalyticsWebinar: Conhecendo a solução Pentaho, líder em Business Analytics
Webinar: Conhecendo a solução Pentaho, líder em Business Analytics
 
Modelo de Dados: Entendendo e “re-”construindo...
Modelo de Dados: Entendendo e “re-”construindo...Modelo de Dados: Entendendo e “re-”construindo...
Modelo de Dados: Entendendo e “re-”construindo...
 
Deep learning with Tensorflow in R
Deep learning with Tensorflow in RDeep learning with Tensorflow in R
Deep learning with Tensorflow in R
 
BEEVA | Introducción a Docker
BEEVA | Introducción a DockerBEEVA | Introducción a Docker
BEEVA | Introducción a Docker
 
Curso Gratuito Online Desmistificando BI (Business Intelligence) Open Source ...
Curso Gratuito Online Desmistificando BI (Business Intelligence) Open Source ...Curso Gratuito Online Desmistificando BI (Business Intelligence) Open Source ...
Curso Gratuito Online Desmistificando BI (Business Intelligence) Open Source ...
 
Third Nature - Open Source Data Warehousing
Third Nature - Open Source Data WarehousingThird Nature - Open Source Data Warehousing
Third Nature - Open Source Data Warehousing
 

Ähnlich wie Construindo um data warehouse com Pentaho e Docker

Integração Contínua com Cruise Control e phpUnderControl
Integração Contínua com Cruise Control e phpUnderControlIntegração Contínua com Cruise Control e phpUnderControl
Integração Contínua com Cruise Control e phpUnderControlDiego Tremper
 
Docker do básico a orquestração (PHPeste2016)
Docker do básico a orquestração (PHPeste2016)Docker do básico a orquestração (PHPeste2016)
Docker do básico a orquestração (PHPeste2016)Wellington Silva
 
Dockerizando aplicações em uma fintech o bom, o mau e o feio as surpresas
Dockerizando aplicações em uma fintech  o bom, o mau e o feio as surpresasDockerizando aplicações em uma fintech  o bom, o mau e o feio as surpresas
Dockerizando aplicações em uma fintech o bom, o mau e o feio as surpresasRafael Gomes
 
Containers com docker #CPRecife4
Containers com docker #CPRecife4Containers com docker #CPRecife4
Containers com docker #CPRecife4David Ruiz
 
Docker - Tutorial for beginners
Docker - Tutorial for beginnersDocker - Tutorial for beginners
Docker - Tutorial for beginnersRafael Chiavegatto
 
Dockerizando aplicações em uma Fintech
Dockerizando aplicações em uma FintechDockerizando aplicações em uma Fintech
Dockerizando aplicações em uma FintechRafael Gomes
 
TDC2018SP | Trilha Testes II - Descomplicando a montagem de ambientes de Test...
TDC2018SP | Trilha Testes II - Descomplicando a montagem de ambientes de Test...TDC2018SP | Trilha Testes II - Descomplicando a montagem de ambientes de Test...
TDC2018SP | Trilha Testes II - Descomplicando a montagem de ambientes de Test...tdc-globalcode
 
Descomplicando a montagem de ambientes de Testes com Docker - TDC 2018 - São ...
Descomplicando a montagem de ambientes de Testes com Docker - TDC 2018 - São ...Descomplicando a montagem de ambientes de Testes com Docker - TDC 2018 - São ...
Descomplicando a montagem de ambientes de Testes com Docker - TDC 2018 - São ...Renato Groff
 
Mercurianos - .Net na Prática - Da instalação até o debug da nossa API em um ...
Mercurianos - .Net na Prática - Da instalação até o debug da nossa API em um ...Mercurianos - .Net na Prática - Da instalação até o debug da nossa API em um ...
Mercurianos - .Net na Prática - Da instalação até o debug da nossa API em um ...Eliel Simoncelo
 
Integração Contínua com CruiseControl e phpUnderControl
Integração Contínua com CruiseControl e phpUnderControlIntegração Contínua com CruiseControl e phpUnderControl
Integração Contínua com CruiseControl e phpUnderControlManuel Lemos
 
Integracao Contínua com CruiseControl e phpUnderControl
Integracao Contínua com CruiseControl e phpUnderControlIntegracao Contínua com CruiseControl e phpUnderControl
Integracao Contínua com CruiseControl e phpUnderControlDiego Tremper
 
Source-to-container no mundo real
Source-to-container no mundo realSource-to-container no mundo real
Source-to-container no mundo realEvandro Silvestre
 
Orquestrando ambientes com docker e kubernetes
Orquestrando ambientes com docker e kubernetes	Orquestrando ambientes com docker e kubernetes
Orquestrando ambientes com docker e kubernetes Rhuan Karlus Silva
 
Docker para Desenvolvedores - Developers-BR - Agosto-2018
Docker para Desenvolvedores - Developers-BR - Agosto-2018Docker para Desenvolvedores - Developers-BR - Agosto-2018
Docker para Desenvolvedores - Developers-BR - Agosto-2018Renato Groff
 
Integração Contínua com CruiseControl e phpUnderControl
Integração Contínua com CruiseControl e phpUnderControlIntegração Contínua com CruiseControl e phpUnderControl
Integração Contínua com CruiseControl e phpUnderControlDiego Tremper
 
Docker para Desenvolvedores - Developers-BR - Julho-2018
Docker para Desenvolvedores - Developers-BR - Julho-2018Docker para Desenvolvedores - Developers-BR - Julho-2018
Docker para Desenvolvedores - Developers-BR - Julho-2018Renato Groff
 
Re pensando-virtualização-através-linux containers
Re pensando-virtualização-através-linux containersRe pensando-virtualização-através-linux containers
Re pensando-virtualização-através-linux containersFrancisco Gonçalves
 
Desenvolvendo para WordPress com Docker, Git e WP-CLI
Desenvolvendo para WordPress com Docker, Git e WP-CLIDesenvolvendo para WordPress com Docker, Git e WP-CLI
Desenvolvendo para WordPress com Docker, Git e WP-CLIRudá Almeida
 
Workshop react + adonis.js
Workshop react + adonis.jsWorkshop react + adonis.js
Workshop react + adonis.jsDenis Velrino
 

Ähnlich wie Construindo um data warehouse com Pentaho e Docker (20)

Integração Contínua com Cruise Control e phpUnderControl
Integração Contínua com Cruise Control e phpUnderControlIntegração Contínua com Cruise Control e phpUnderControl
Integração Contínua com Cruise Control e phpUnderControl
 
Docker do básico a orquestração (PHPeste2016)
Docker do básico a orquestração (PHPeste2016)Docker do básico a orquestração (PHPeste2016)
Docker do básico a orquestração (PHPeste2016)
 
Dockerizando aplicações em uma fintech o bom, o mau e o feio as surpresas
Dockerizando aplicações em uma fintech  o bom, o mau e o feio as surpresasDockerizando aplicações em uma fintech  o bom, o mau e o feio as surpresas
Dockerizando aplicações em uma fintech o bom, o mau e o feio as surpresas
 
Containers com docker #CPRecife4
Containers com docker #CPRecife4Containers com docker #CPRecife4
Containers com docker #CPRecife4
 
Docker - Tutorial for beginners
Docker - Tutorial for beginnersDocker - Tutorial for beginners
Docker - Tutorial for beginners
 
Dockerizando aplicações em uma Fintech
Dockerizando aplicações em uma FintechDockerizando aplicações em uma Fintech
Dockerizando aplicações em uma Fintech
 
TDC2018SP | Trilha Testes II - Descomplicando a montagem de ambientes de Test...
TDC2018SP | Trilha Testes II - Descomplicando a montagem de ambientes de Test...TDC2018SP | Trilha Testes II - Descomplicando a montagem de ambientes de Test...
TDC2018SP | Trilha Testes II - Descomplicando a montagem de ambientes de Test...
 
Descomplicando a montagem de ambientes de Testes com Docker - TDC 2018 - São ...
Descomplicando a montagem de ambientes de Testes com Docker - TDC 2018 - São ...Descomplicando a montagem de ambientes de Testes com Docker - TDC 2018 - São ...
Descomplicando a montagem de ambientes de Testes com Docker - TDC 2018 - São ...
 
Mercurianos - .Net na Prática - Da instalação até o debug da nossa API em um ...
Mercurianos - .Net na Prática - Da instalação até o debug da nossa API em um ...Mercurianos - .Net na Prática - Da instalação até o debug da nossa API em um ...
Mercurianos - .Net na Prática - Da instalação até o debug da nossa API em um ...
 
Integração Contínua com CruiseControl e phpUnderControl
Integração Contínua com CruiseControl e phpUnderControlIntegração Contínua com CruiseControl e phpUnderControl
Integração Contínua com CruiseControl e phpUnderControl
 
Integracao Contínua com CruiseControl e phpUnderControl
Integracao Contínua com CruiseControl e phpUnderControlIntegracao Contínua com CruiseControl e phpUnderControl
Integracao Contínua com CruiseControl e phpUnderControl
 
Source-to-container no mundo real
Source-to-container no mundo realSource-to-container no mundo real
Source-to-container no mundo real
 
Debug de cabo a rabo
Debug de cabo a raboDebug de cabo a rabo
Debug de cabo a rabo
 
Orquestrando ambientes com docker e kubernetes
Orquestrando ambientes com docker e kubernetes	Orquestrando ambientes com docker e kubernetes
Orquestrando ambientes com docker e kubernetes
 
Docker para Desenvolvedores - Developers-BR - Agosto-2018
Docker para Desenvolvedores - Developers-BR - Agosto-2018Docker para Desenvolvedores - Developers-BR - Agosto-2018
Docker para Desenvolvedores - Developers-BR - Agosto-2018
 
Integração Contínua com CruiseControl e phpUnderControl
Integração Contínua com CruiseControl e phpUnderControlIntegração Contínua com CruiseControl e phpUnderControl
Integração Contínua com CruiseControl e phpUnderControl
 
Docker para Desenvolvedores - Developers-BR - Julho-2018
Docker para Desenvolvedores - Developers-BR - Julho-2018Docker para Desenvolvedores - Developers-BR - Julho-2018
Docker para Desenvolvedores - Developers-BR - Julho-2018
 
Re pensando-virtualização-através-linux containers
Re pensando-virtualização-através-linux containersRe pensando-virtualização-através-linux containers
Re pensando-virtualização-através-linux containers
 
Desenvolvendo para WordPress com Docker, Git e WP-CLI
Desenvolvendo para WordPress com Docker, Git e WP-CLIDesenvolvendo para WordPress com Docker, Git e WP-CLI
Desenvolvendo para WordPress com Docker, Git e WP-CLI
 
Workshop react + adonis.js
Workshop react + adonis.jsWorkshop react + adonis.js
Workshop react + adonis.js
 

Construindo um data warehouse com Pentaho e Docker

  • 1. Construindo um data warehouse com Pentaho e Docker Wellington Marinho wpmarinho@globo.com
  • 3. Estudo de Caso - EDW CENIPA EDW CENIPA é um projeto opensource, criado para prover análises dinâmicas de ocorrências aeronáuticas, ocorridas na aviação civil brasileira. O projeto utiliza técnicas e ferramentas de BI, explorando tecnologias inovadoras e de baixo custo. Historicamente, plataformas de Business Intelligence são caras e inviáveis para pequenos projetos. Esses projetos exigem qualificação especializada e custos altos de desenvolvimento. Este trabalho tem a pretensão de quebrar um pouco esta barreira. O que não significa pouca dedicação, empenho e esforço. Todas as análises têm como base os dados abertos fornecidos pelo CENIPA, com histórico de ocorrências dos últimos 10 anos: • http://dados.gov.br/dataset/ocorrencias-aeronauticas-da-aviacao-civil-brasileira Os gráficos foram inspirados no relatório disponibilizado no link: • http://www.cenipa.aer.mil.br/cenipa/index.php/estatisticas/estatisticas/panorama.
  • 4. Recursos Seguem alguns serviços, ferramentas e plataformas que foram utilizados para desenvolver e implantar o projeto: • Amazon Web Services - https://aws.amazon.com/ - Serviços de infraestrutura de nuvem • Sistema Operacional Linux - CentOS 6 / Ubuntu 14 • GitHub - https://github.com/ - Serviço de Web Hosting Compartilhado para projetos que usam o controle de versionamento • Docker - https://www.docker.com/ - Plataforma aberta para construir e rodar aplicações distribuídas. • Pentaho - http://www.pentaho.com/ e http://community.pentaho.com/ - Plataforma open source de Big Data, Data Integration e Business Analytics
  • 5. Requisitos • Sistema Operacional com 2GB de RAM e 5GB de espaço em disco • Docker v1.7.1 • CentOS: https://docs.docker.com/installation/centos/ • Ubuntu: https://docs.docker.com/installation/ubuntulinux/ • Mac : https://docs.docker.com/installation/mac/ • Docker Compose v1.4.2 - https://docs.docker.com/compose/install/ $ yum update -y $ yum install -y docker $ service docker start $ usermod -a -G docker ec2-user $ yum install -y git $ pip install -U docker-compose $ PATH=$PATH:/usr/local/bin Instalação rápida no Amazon Linux AMI
  • 6. Comandos básicos $ docker info $ docker --help $ docker COMMAND --help $ docker run --rm -it busybox echo "Olá, esse é meu primeiro container“ $ docker ps $ docker images $ docker build –t repositorio/imagem:tag . $ docker build -t teste/myimage . Criar um arquivo Dockerfile Construir umaa imagem FROM busybox CMD ["echo", "Olá, esse é meu primeiro container"] Criar um container $ docker run --rm teste/myimage
  • 7. Pentaho + Docker – Criando arquivo Dockerfile FROM java:7 MAINTAINER Wellington Marinho wpmarinho@globo.com # Init ENV ENV BISERVER_VERSION 5.4 ENV BISERVER_TAG 5.4.0.1-130 ENV PENTAHO_HOME /opt/pentaho # Apply JAVA_HOME RUN . /etc/environment ENV PENTAHO_JAVA_HOME $JAVA_HOME ENV PENTAHO_JAVA_HOME /usr/lib/jvm/java-1.7.0-openjdk-amd64 ENV JAVA_HOME /usr/lib/jvm/java-1.7.0-openjdk-amd64 # Install Dependences RUN apt-get update; apt-get install zip -y; apt-get install wget unzip git -y; apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*; RUN mkdir ${PENTAHO_HOME}; # Download Pentaho BI Server RUN /usr/bin/wget --progress=dot:giga http://downloads.sourceforge.net/project/pentaho/Business%20Intelligence%20Server/${BISERVER_VERSION}/biserver-ce-${BISERVER_TAG}.zip -O /tmp/biserver-ce-${BISERVER_TAG}.zip; /usr/bin/unzip -q /tmp/biserver-ce-${BISERVER_TAG}.zip -d $PENTAHO_HOME; rm -f /tmp/biserver-ce-${BISERVER_TAG}.zip $PENTAHO_HOME/biserver-ce/promptuser.sh; sed -i -e 's/(exec ".*") start/1 run/' $PENTAHO_HOME/biserver-ce/tomcat/bin/startup.sh; chmod +x $PENTAHO_HOME/biserver-ce/start-pentaho.sh RUN useradd -s /bin/bash -d ${PENTAHO_HOME} pentaho; chown -R pentaho:pentaho ${PENTAHO_HOME}; #Always non-root user USER pentaho WORKDIR /opt/pentaho EXPOSE 8080 CMD ["sh", "/opt/pentaho/biserver-ce/start-pentaho.sh"]
  • 8. Pentaho BI Server $ docker build -t pentaho/biserver:5.4 . $ docker run --rm -p 8080:8080 -it pentaho/biserver:5.4 Construir a imagem e rodar um containter Abrir o navegador e abrir o Pentaho BI Server
  • 9. GitHub docker-pentaho ( Dockerfile / scripts ) pentaho-biserver:5.4 ( imagem) edw-cenipa ( Dockerfile / scripts ) BI SERVER / PDI PROJETO EDW pentaho-kettle:5.4 ( imagem) BI SERVER PDI Docker Hub Jenkins + Docker Compose Amazon EC2 BI SERVER Amazon EC2 PDI Amazon RDS Postgresql / Redshift ETL Fontes de Dados Arquitetura
  • 10. Projeto EDW CENIPA Instalação do Projeto $ wget -O - https://raw.githubusercontent.com/wmarinho/edw_cenipa/master/easy_install | sh Verificar execução dos containers $ docker ps O projeto possui 3 containers: • edwcenipa_db_1 - Container com Banco de Dados PostgreSQL • edwcenipa_pdi_1 - Container com instlação do Pentaho Data Integrator (Kettle) para download e carga dados para o DW • edwcenipa_biserver_1 - Container com instalação do Pentaho Business Analytics (BI Server) Verificar logs $ docker logs -f edwcenipa_pdi_1 $ docker logs -f edwcenipa_biserver_1 A instalação pode levar mais de 30 minutos, dependo da configuração do servidor e da largura de banda da Internet. A instalação completa é de aproximadamente 3GB.
  • 11. Dashboards – Ocorrências aeronáuticas http://localhost/pentaho/plugin/cenipa/api/ocorrencias
  • 12. Docker Compose docker-composse.yml - Orquestra a execução de múltiplos containers pdi: image: image_cenipa/pdi links: - biserver:edw_biserver volumes: - /data/stage:/tmp/stage environment: - PGHOST=172.17.42.1 - PGUSER=pgadmin - PGPASSWORD=pgadmin. - PENTAHO_DI_JAVA_OPTIONS=-Xmx2014m -XX:MaxPermSize=256m stdin_open: true tty: true biserver: image: image_cenipa/biserver ports: - "80:8080" links: - db:edw_db environment: - PGUSER=pgadmin - PGPASSWORD=pgadmin. - INSTALL_PLUGIN=saiku - CUSTOM_LAYOUT=y stdin_open: true tty: true db: image: wmarinho/postgresql:9.3 ports: - "5432:5432" stdin_open: false tty: true
  • 13. Pentaho + Docker + Amazon Com o comando abaixo e as devidas credenciais de acesso, é possível subir o ambiente na Amazon em menos de 10 minutos. LEMBRE-SE de substituir as variáveis antes de executar o comando (verificar os parâmetros no AWS console). Essa é uma configuração adequada para este projeto, a um custo aproximado de US$ 80,00/mês (http://calculator.s3.amazonaws.com/index.html) $ SUBNET_ID= $ SGROUP_IDS= $ KEY_NAME= $ aws ec2 run-instances --image-id ami-e3106686 --instance-type c4.large --subnet-id ${SUBNET_ID} --security-group-ids ${SGROUP_IDS} --key-name ${KEY_NAME} --associate-public-ip-address --user-data "https://raw.githubusercontent.com/wmarinho/edw_cenipa/master/aws/user-data.sh" --count 1