Como escrevi um livro de ficção utilizando Pentaho

Document created by B297P4KK on Feb 7, 2019Last modified by B297P4KK on Feb 8, 2019
Version 3Show Document
  • View in full screen mode

1. INTRODUÇÃO E BACKGROUND

 

Olá pessoal, chamo-me Cleversondos Santos Assis, Tecnólogo de Sistemas de Informação desde 2006 pela Universidade Tecnológica Federal do Paraná (Campus Cornélio Procópio, PR, Brasil). Sou Analista de Sistemas Sênior desde 2008,porém, desde 2014, possuo dupla carreira como ilustrador e escritor de ficção, sonhos que alimentava durante adolescência e juventude.

 

Naquele ano, fiz um curso de desenho para quadrinhos que realizava aos sábados. Os desenhos eram organizados em uma pasta física de papel, porém, conforme o andamento do curso e principalmente nos exercícios, eu sentia falta de uma solução sistêmica para organizar meu portfolio e responder às seguintes perguntas:

 

a) Que desenhos eu tenho relacionadas a uma personagem?

 

b) Deste desenho acabado, onde está a rafe e a line-art? Em que ponto parei?

 

Assim, com meus conhecimentos de full stack developer, depois de algumas noites mal dormidas, desenvolvi um webapp em Java chamado Desegni("rascunhar", em esperanto). Inicialmente como uma plataforma CRUD sofisticada, eu passei a estudar o mestre dos mangás Osamo Tesuka, a sua forma de trabalho e também como transformava desenho em números e negócios.

 

Assim, tive o insight que com os desenhos e meta dados das personagens que criava, dentro do Desegni, comecei a ter insights de indicadores que auxiliaram não só na minha organização como também publicações posteriores dos trabalhos. Em 2016 senti a vontade de retomar meu lado escritor de ficção e após um maravilhoso curso de técnicas internacionais de romance, tive mais insights que poderia expandir ainda mais a visão analítica e artística dentro da ferramenta e passar usar o bigdata que formei, ao meu favor.

 

2. CONTATO COM O PENTAHO

 

Meus conhecimentos de Pentaho iniciaram-se em 2013, por indicação de um contato da área imobiliária. Sem acreditar muito na ferramenta, utilizei somente o Pentaho Data Integration 5.0 como brincadeira. Ano após ano, de forma autodidata e na base da tentativa e erro, fui passando pelas versões da ferramenta e aplicando aos poucos, ainda que não da melhor forma, no meu projeto Desegni.

 

No entanto, em meados de 2017, quando o conhecimento foi aprofundado em toda a suíte Pentaho após um curso pela parceira brasileira Openin Big Data, com conhecimento em mãos e dados já mais maduros da minha aplicação, senti-me preparado a dar o início ao meu módulo de Business Analytics.


 

3. O ESCOPO

 

O meu projeto de Business Analytics deveria cobrir os seguintes requisitos:

 

1) Um indicador de palavras totais escritas: alinhado com minha revisora e editora do livro, a obra não deveria passar 74 mil palavras, sob a penalidade de rever os custos para revisão. Além disso, ajudaria a me responder as seguintes perguntas:

 

A) Quantas palavras escrevi hoje?

 

B) Quantas páginas tem meu livro até agora se fosse imprimi-lo e cotar uma revisão?

 

2) Um indicador de distribuição de palavras ao longo da obra: conforme a metodologia que aprendi, uma obra é dividida em seis partes respectivas: Introdução, Progresso, Complicações, Resolução e Livre. Cada uma delas tem uma porcentagem mínima e máxima recomendada de palavras, a fim de manter a harmonia da obra.Assim, responderia às seguintes questões:

 

A) Em que parte da minha obra estou sendo prolixo ou suscinto?

 

B) Qual o impacto na harmonia na obra se eu adicionar (ou retirar) uma personagem?

 

3) Um mapa de categoria de termos ao longo da obra: Mais para efeito de curiosidade e ponto de controle que prático, respondendo as seguintes perguntas:

 

A) Em que sequência de cena estou usando muitos advérbios (em excesso torna a obra muito cansativa)?

 

B) Estou utilizando demais o pronome “que” e deixando a leitura difícil? Se sim, onde?

 

C) Estou usando termos com potencial emprego ofensivo (que pode não se adequar ao meu público alvo)? Onde? Quais são os dez piores?

 

Com os indicadores planejados, a frequência de atualização dos dados não precisava ser near-time. Como somente eu era o usuário e também não escrevia todo o período do dia, deixei um job de atualização de 15 em 15 minutos, mais que suficiente.

 

Imagem 1 – Modelo lógico do Bigdatado Desegni


 

4. BANHO DE LOJA

 

Para esta missão, lancei a mão das seguintes ferramentas:

 

1) Pentaho Data Integration para ETLs

 

2) Carte para Jobs

 

3) Pentaho Business Analytics para Dashboards

 

4) Docker para melhor aproveitamento da infraestrutura

 

5) Git para controle de versão dos arquivos que escrevi

 

 

4.1. Git+ PentahoData Integration

 

Como escritor, os capítulos e cenas do meu livro foram feitos direto na minha ferramenta Desegni. No momento da primeira reescrita, resolvi expandir para o uso de processadores de texto, ferramentas distraction free até mesmo gadgets antigos e novos para reescrever desde uma frase a uma sequência de cenas inteira. Para unificar todos esses textos de diversas fontes utilizei o serviço em nuvem do repositório GitHub. No servidor um job em linux sincronizava o repositório local com a nuvem e um job no Pentaho tratava de acatar a alteração e tokenizar no banco de dados OLTP e após pré-compilando alguns indicadores (de forma a manter histórico desde a primeira edição).

 

Com esse mecanismo, explicado na imagem 1, qualquer alteração que fizesse em um texto, independente da ferramenta de edição utilizado, ao submeter ao GitHub em 15min eu já sabia:

 

1) O quanto escrevi em palavras.

 

2) O quanto impactou no tamanho da obra.

 

3) O quanto impactou na harmonia da obra.

 

4) Quantas páginas acrescentou ou diminuiu na previsão.

 

5) Quantos adjetivos, queismo, TPEO existem na cena que subi.

 

 

4.2. Dockerização

 

Para não onerar custos adicionais e aproveitar o que tinha em mãos, preferi não utilizar uma solução em cloud, inicialmente, adotando um "private" cloud com um computador desktop com as seguintes configurações abaixo:

 

- Intel i5 7a geração

 

- 8GB RAM

 

- 128GB SSD+ 1TB de HD

 

- 1x Unidade de Backup DAT 72GB (em espelho com backup em cloud)

 

- Sistema Operacional: Linux Mint Silvia 8.9 64bit

 

- Docker 18.06.01 com containers gerenciados pelo Rancher 1.6.17

 

 

4.2.a -Carte via docker

 

Na época, não encontrei uma imagem oficial do Carte 8.0 CE disponível para docker, então criei um Dockefile e um repositório para isso, disponibilizando para quem quiser utilizar, no seguinte endereço: https://hub.docker.com/r/jsombranewhauss/pentaho-carte-ce

 

A imagem basicamente faz um apontamento de volume para indicar onde estão as ETLS e também para identificar o caminho dos arquivos de repositório kettle.properties e repositories.xml. As conexões com o MySQL eram configurados no arquivo jdbc.ini(o jdbc.properties parece ter um bug para campos com senhas complexas).

 

Ao final uma URL era disponibilizada com porta para acesso ao painel simples do Carte. Um projeto particular de criação de front-end amigável para o controle de jobs está em meus planos futuros.

 

Imagem 2 – Carte rodando com as rotinas de ETL de texto e consolidador de dados

 

 

4.2.b - Portal Business Analyticssob docker

 

Na mesma situação, gerei uma imagem, não oficial, para o portal na versão 8.1.0.0_365, disponível no seguinte link: https://hub.docker.com/r/jsombanewhauss/pentaho-ba-server-ce

 

Neste caso, segui o tutorial básico da Vantarapara uma instalação standalonee o compilei na imagem, unificando os bancos de dados emum só. As credenciais de acesso, configuração do datasourcesão feitos via variáveis de ambiente, para melhor configuraçãono Rancher.

 

Imagem 3 – Stackno Rancher dos containers do Pentaho(Carte e BA Server)

 

4.3. Contratempos técnicos e contornos

 

4.3.1 -Passar da autenticação in memorypara MySQL

 

O BA Server, por default, ativa a autenticação em in memory via banco H2, ou seja, em um upgrade de imagem,perderia todos os usuários e grupos que crieino PUC.

 

Para contornar isso, segui o artigo da Vantara sobre a configuração passo a passo do BA server para autenticação externa, conforme o link: https://help.pentaho.com/Documentation/6.0/0F0/0K0/040/0B0

 

Além disso, atualizei as configurações no meu Dockerfile a fim de disponibilizar por default a necessidade do MySQL para autenticação.

 

 

4.3.1 -Passar repositório in memory para MySQL

 

Todos meus relatórios, dashboards, etc, seriam perdidos, também pelo mesmo motivo da autenticação, visto que o jackrabbit(API que o Pentaho utiliza para gerenciamento de repositório) vem por default habilitado para utilizar o H2.

 

Neste caso, ajustei o Jackrabbit para gravar no MYSQL, seguindo estes passos no link https://help.pentaho.com/Documentation/6.0/0F0/0K0/040/0B0

 

Novamente, ajustei meu Dockerfile para viabilizar que o Jackrabbit utilizasse o MySQL por default.

 

 

4.3.2-MarketPlacenão inicializava dentro do container

 

Ao iniciar o Pentaho Business Analytics Portal na minha imagem em docker, notei a ausência do Marketplace, justamente para instalar um componente fundamental para minhas analises: SaikuAnalytics. Esse item tomou-me um bom tempo em troubleshooting, analisando logs de inicialização e artigos em fóruns.

 

Por fim, descobri que o motivo do MarketPlace não estar funcionando era a não execução das ETLs internas do Portal (justo, o Portal usa o Data Integration embarcado para fazer as operações de instalação) pois euestava sobrescrevendo incorretamente a variável de ambiente DI_SERVER na hora de criar o container.

 

Corrigi essa situação no Dockerfile, ajustei o caminho correto do DI_SERVER na imagem e o container inicializoucom o MarketPlacecorretamente.

 

 

4.3.3 -Componentes instalados via Marketplace sumiam no upgrade de container no docker

 

Após instalados alguns componentes via Marketplace, sendo devidamente configurados, tive que atualizar uma variável de ambiente de consumo de memória do Java (JMX) via JAVA_OPTS.

 

Tal operação, via Rancher, consiste em um upgrade do container, em que o container atual é descartado e substituído por um novo utilizando os parâmetros informados.

 

Os volumes associados ao container não são destruídos, porém, os internos do container sim e foi justamente o que aconteceu com os componentes que havia instalado anteriormente. A solução que encontrei foi baixar cada componente offline, descompactar no servidor e no volume fazer um apontamento, como mostradona figura a seguir:

 

Imagem 4 – Volumes do container utilizados para tweak do Pentaho BA Server

 

Feito isso, não tive problemas com nenhum componente e ainda pude garantirque as configurações e ajustes internos nos mesmos não se perdessem com atualizações futuras.

 

 

4.3.4-Componente Saiku Analytics precisava de um hostname

 

Para que o componente funcionasse corretamente, perante o registro na desenvolvedora, ainda que grátis, havia a necessidade de ocontainer ter um hostname diferente de localhost ou uma mensagem de erro de licenciamento seria lançado.

 

Neste caso, realizei a seguinte configuração via ranchere o componente voltou a funcionar corretamente

 

Imagem 5 - Configuração do hostnameno container no PentahoBA Server

 

 

 

4. RESULTADOS

 

4.1 - Dashboard da harmonia da obra, quantidade de palavras e previsão de páginas

 


 

4.2 - Dashboard de acompanhamento de impacto na obra por revisões / reescrita

 

 

4.3 - Dashboard mobile de produtividade

 


 

4.4 - Cubo de dados para análise textual perante as revisões

 

 

4.5- Revisor contratado, obra dentro do escopo e planejamento para o próximo livro

 

 

 

5. CONSIDERAÇÕES FINAIS

 

Empolguei-me a cada conquista com esse projeto de um Business Analytics particular, porém, pensando como um produto, ainda tenho melhorias no roadmap como:

 

A) Melhorar desempenho das consultas OLAP – Ajuste de índices no MySQL, geração de consolidados, etc...

 

B) Adicionar suporte a acompanhamento de várias obras – O escopo inicial foi para o livro que escrevi, porém, outros livros estão a caminho, então as rotinas de ETL/Jobs/Dashboards tem que ser modificados para suportarvárias obras.

 

C) Suporte a mais personas – O escopo inicial foi uma ferramenta para o escritor, porém outras personas têm papel fundamental e poderiam acompanhar o andar dos trabalhos, como um editor, por exemplo.

 

D) Aprimorar a escalabilidade – Estar em docker não significa automaticamente ser escalável, tem que ser aprimorada a arquitetura das ETLs, Jobs, a forma de acesso ao BA Server que poderia ter um load balancer, etc...

 

E) Cruzar big data literário com o ilustrativo – Justamente para responder outras perguntas como:

 

1) Em que partes do meu livro utilizo tal personagem?

 

2) Quantas vezes uma personagem apareceu? Se retirá-la, qual o impacto?

3) Essa personagem tem ilustrações? Quais? Devo contratar um novo ilustrador?

 

 


Attachments

    Outcomes