Vaga Pentaho Jan/2017

Isso é que é começar bem o ano!

  • Consultor Pentaho Experiência em conceitos de BI e modelagem dimensional para Data Warehouse;
  • Conhecimento avançado na linguagem SQL com foco em MySQL (versão 5.6 ou superior);
  • Experiência com a suíte completa do Pentaho sendo elas: Pentaho BA Server (versão 5 ou superior);
  • Pentaho Data Integration (versão 4 ou superior);
  • Pentaho Report Designer (versão 5 ou superior);
  • Modelagem de cubos no Mondrian (versão 3 ou superior);
  • Inglês avançado (Leitura e Escrita)

Intessados podem entrar em contato com Letícia Coelho em leticia ponto coelho arroba deal ponto com ponto br.

Feliz Ano Novo!

Engraçado como nosso cérebro roda em círculos, não? Eu pelejei, pelejei, mas não consegui imaginar nenhum nome melhor para este post. Logo, decidi transformar o último post do ano em uma tradição, no qual eu fecho o ano corrente e penso sobre o próximo, e chamá-lo sempre de feliz ano novo.


Quem me acompanha sabe, eu sou pregu… prático. :-) Não consigo inventar nada melhor? Então transformarei minha falta de criatividade em tradição. :-D Né não, Lavosier?


Sacudida

Já basta de preguiça com o título do post. Por isso eu usei “sacudida” ao invés do clássico “balanço”. (Nossa, tá piorando rápido!)

Foi um ano bem variado: teve de Data Vault a painéis, passando por ferramentas e técnicas. Queria ter feito mais, como testar bancos colunares com mais detalhe e estudar pré-agregações, mas estou satisfeito com este resultado.

Foi um ano, também, de interação maior com vocês, meus leitores. Isso é o que mais me animou, o que me supriu de motivação quando eu estava sem idéias.


Obrigado de novo. ;-)


Eu também botei um pé em dois assuntos nos quais eu, definitivamente, ainda sou um novato: BigData e Data Lake. Espero ter contribuído comentários relevantes tanto do ponto de vista concreto, ou seja, para quem precisa se envolver no assunto, como do ponto de vista filosófico, indicando os aspectos que me parecem comerciais de mais e valiosos de menos para os clientes e usuários desse tipo de projeto.

E uma das coisas que eu mais gostei: a palestra na FATEC. Só aquilo já teria feito deste um ano excepcional para mim. Obrigado à Profa. Célia , da FATEC Tiradentes, e ao Prof. Josenyr Santos, da FATEC Zona Sul. Fizeram um menino feliz. ;-)

Aprendendo a Pensar Fora da Caixa

Graças a uma maior “convivência virtual” com próceres do gabarito de Jorge “Kotick” Audy, Arthur Luz’s Data Light e o impagável Rafael Piton, acabei me abrindo para as sobreposições entre BI e toda paisagem de técnicas e filosofias ágeis, novas tecnologias de bancos de dados e formas de se fazer a coisa, e uma visão do mercado profissional de BI – respectivamente.

Vale a pena destacar alguns pontos:

  • Audy: consegui conhecê-lo pessoalmente (!!!) e ainda participei de um dos seus lendários eventos. Não tem muito o que falar: gigante em pessoa, um coração imenso, profissional refinado, profundo, experiente etc. etc. etc. Hoje ele é O cara de Ágil e inovação no Brasil – LEIA-O!! :-)
  • Arthur: uma alma de professor com estilo de um cronista. Um cara que eu leio para ver o que a Microsoft está fazendo – gostem ou não, eles investem em novidades e é imperioso saber para onde estão indo! – e para aprender como se conduz um trabalho completo e bem-feito. Ele tem séries sobre diversos temas da área. Claro que interessa mais a quem vive no mundo Microsoft, mas o estilo dele é leve e gostoso de ler e sempre acaba sobrando algo para todo mundo. Este post, por exemplo, que conta sobre as novidades de uma release do MS SQL Server 2016,  é um desbunde de minúcias, velocidade e abrangência;
  • Piton: um cara que não fala sem embutir valor. Ele usa um bordão muito parecido com o meu – ele fala BI é conceito, não é ferramenta, enquanto que eu digo BI é solução, não é ferramenta – e sempre traz ótimas dicas. Não deixe de ver o vídeo dele sobre como achar centenas de vagas. É VERDADE! Ele mostra um site que eu não conhecia, mas que não vou colocar aqui para pagar o devido tributo ao trabalho dele. Passem lá, deixem um like e naveguem para o link indicado. E assinem a newsletter dele, é bem bacana. ;-)

Preparar, Apontar, Escrever!

E agora? Para Onde?

  • Beltrano S/A, v2.0: consegui organizar as idéias e planejar meus próximos livros sobre Pentaho. O primeiro passo desses novos projetos será redesenhar a base usada no Pentaho na Prática, com processo de carga parametrizado para criar um número arbitrário de linhas, e assim conseguir bases de qualquer tamanhho – milhares, milhões, bilhões de registros – que vão servir para ir mais longe em exercícios de otimização e performance no Pentaho. O projeto continua livre e vou postar as novidades conforme aparecerem;
  • Hadoop: passou da hora de eu escrever algo mais técnico sobre ele. A tecnologia está madura e acredito que agora tenho algumas idéias sobre como posso agregar valor à comunidade. Veremos se eu dou conta;
  • Bancos Colunares: usando o Beltrano 2.0, vou tentar montar um laboratório de dezenas e centenas de milhões de linhas. É o trabalho que eu mais quero fazer!
  • memcached e Hazelcast: Na sequência de grandes volumes, caches externos são obrigatórios para melhorar a performance de consultas. Ainda preciso estudar, mas tenho um amigo que meu deu boas dicas e, no mínimo, isso eu vou tentar trazer;
  • Soluções: ainda não fiquei feliz com a série Soluções Clássicas. Está muito etéreo, muito “é assim, é assado”. Vou tentar achar casos de soluções de BI no mundo real e mostrar aqui.

Mas isso é só uma parte. Instigado por posts como este fantástico Aula de BI, eu vou mirar também em assuntos mais abertos, conceituais e misturados:

  • BI com Ágil: como funciona um projeto assim?
  • {MVP, Design Thinking Etc.} x {BI}: traduzindo, produto cartesiano de BI com MVP, DT, Scrum, Gamefication etc. etc. etc. Quero investigar como ficam as tais soluções clássicas de BI dentro de um framework de criação de produto/valor, envolvendo tudo que eu li neste ano e o que mais aparecer. Será que dá para fazer?

    Valei-me Santo Kotick! Eu vou te alugar, mestre, esteja avisado! :-D


  • Negócios em geral: BI é sobre usar dados e agregar valor. Quero explorar essa interface toda, entre TI, negócios e conhecimento. Quero tentar fazer em BI o que o Audy faz com Ágil. Sem noção? Presunçoso? Sim, claro, porque não? Ou não seria euzinho, hehe. ;-)

Nem sei o que vai sair disso tudo, mas estou rascunhando vários posts em diversos temas. Só esperando uma próxima quarta-feira para saber…

Pentaho – A Nova Série

Este ano acabou representando uma pausa na minhas publicações. Eu precisei deixar o assunto quieto para as idéias maturarem, e chegou o momento de pegar firme de novo.

Sem mais delongas, com vocês minha nova série de livros de Pentaho!


Uaaah, a galera vai ao delírio,
luzes, fogos, explosões, tambores!!!…
:-D


(quem me dera…)

Enfim. ;-)

Mesmo com a (na minha opinião) excepcionalmente boa recepção do Pentaho na Prática, ele é um tijolo com quase seiscentas páginas. Se não fosse a auto-publicação, nunca teria vindo a público em sua totalidade. Isso é ruim por vários lados:

  • Obriga o leitor a levar tudo, mesmo que ele queira só um pedaço;
  • O leitor acaba pagando pelo que não quer, o que dá uma sensação de desperdício – eu sinto isso quando compro esse tipo de livro e imagino que meu leitor sofra o mesmo;
  • É praticamente impossível lançar um livro de papel deste tamanho;
  • Atualização: mesmo que algo mude em uma apenas uma das ferramentas, sem afetar as outras, o livro precisa de uma nova edição inteira. Fazer só uma parte deixaria o trabalho com uma qualidade muito ruim – começaria a parecer uma colcha de retalhos, um caça-níquel, que é o tipo de coisa que eu mais abomino. Fazer por fazer, eu prefiro não fazer.

Por esses e outros motivos eu decidi quebrar o PnP em vários livros. Por enquanto tenho três planejados, separados em função das necessidades que me parecem ser buscadas em conjunto:

  • BA Server: deve ser o primeiro, já que é o pedaço mais desatualizado do PnP. Vai ter o de praxe – instalação, configuração e uso – e mais cache externo e otimização do Mondrian, no mínimo;
  • Apresentações de Dados: como muitos já possuem DWs prontos, acredito que a próxima coisa mais útil seja mostrar coma instalar, configurar e usar as ferramentas de exploração e apresentação de dados, como o PRD, OLAP e painéis;
  • Integração de Dados: o (provavelmente) último a sair será só sobre o PDI, com tudo que eu conseguir colocar e ainda lançá-lo dentro dos próximos trinta anos. :-) Quê?! É coisa pra chuchu!!! E desta vez eu pretendo colocar clusters e bancos colunares – e Hadoop!!!

E cada um custará uma fração do preço do PnP. Acredito que isso dará mais liberdade para o leitor, que poderá investir só no que precisar. Daí, quando – e se – quiser, pode investir nos outros. E não se iludam, isso também é financeiramente mais vantajoso para mim, sem contar que é mais fácil atualizar um volume de cada vez quando ficar obsoleto.


Atenção!

Se você comprou o PnP, atualizou para a segunda edição e se inscreveu no “Livro Secreto”, então você vai poder comprar todos esses livros a um preço simbólico, e antes de todo mundo. É o mínimo que eu posso fazer para expressar minha contínua gratidão à sua coragem. ;-)

Logo depois, quem está inscrito no GeekBI, meu fiel leitor(a), será avisado e receberá um desconto especial – claro! ;-)

Mas não se preocupe se você não tem paciência pra me aguentar te torrando toda semana: como sempre, os lançamentos serão anunciados na lista Pentaho-BR, também com uma boa oferta. ;-)


Putz! Agora que eu anunciei, vou ter que entregar! Ai… kkkk

Conclusão

Já descontados os que eu não salvei, como vagas de emprego e anúncios em geral (deve dar ai uma meia-dúzia), são quase sessenta posts, escrevendo toda quarta-feira, tendo falhado apenas uma única vez. Gostaram? Foi bom para vocês também? ;-)

Eu estava decidido a não repetir a experiência, mas do nada começou a brotar idéias, assuntos e dúvidas. Então vou assumir o mesmo compromisso em 2017: um post por semana, no mínimo, com começo, meio e fim e uma proposta clara de valor para você, meu fiel leitor. Mas esteja avisado que não haverá repetição ou lugar-comum por aqui, a não ser para desmontá-lo ou desmistificá-lo. (Aaaaiii gostoso!!! Acaba, 2016!!!! kkk)

E livros!!

Últimas palavras?


Já acabou, Jéssica?


Então aqui vai:

FELIZ ANO NOVO!!!

Vejo vocês em fevereiro de 2017, bem mais sério e mais comportado que hoje, prometo. Mesmo, mesmo!

Até lá! ;-)

Feliz Natal!

E 2016 está acabando. Semana do Natal, clima de festas… Não vou fazer um post de BI, hoje. Ou melhor, não vou fazer sobre BI, em si, mas sobre as coisas boas que BI  alavancou.


Se veio atrás de BI hoje, lamento – agora só ano que vem! Mas você é bem-vindo para terminar de ler este post aqui. Ele diz respeito à você. ;-)


Ao longo destes anos eu recebi muitos comentários simpáticos e elogiosos aqui no blog e essa é uma das coisas que BI proporciona: interação entre profissionais, invariavelmente apaixonados pelo assunto. Graças a BI eu pude estender meu círculo de relacionamentos e conhecer muitas pessoas bacanas por aí.

Piegas? Claro!!! :-D

Sempre que eu venho aqui, tentar dividir o pouco conhecimento que eu consigo acumular, eu enfrento um desafio, que para mim é enorme. Eu me forço a alinhar idéias de forma clara, concisa, com começo, meio e fim, sempre garantindo um valor mínimo para meu visitante. Quero que, quando alguém ler um dos meus posts, saiba o que o espera, e que ao terminar tenha ganhado algo. Raramente eu me permiti simplesmente “copiar-e-colar” alguma coisa aqui, mas mesmo assim sempre prezei por adicionar valor ao meu leitor.

De novo, os comentários que eu recebi me sugerem que eu tenho conseguido atingir esse objetivo. Obrigado por me contarem!

Juro para vocês, toda terça-feira eu começo a surtar, entro embaixo da mesa, abraço as pernas e fico balançando, acocorado, repetindo “não vai dar, não vai dar”… Mas quando chega na quarta-feira de manhã eu já tenho uma boa idéia do que eu quero, do que vai ser o post e como escrevê-lo.

Enfrentar esse “desafio intransponível” semanal é mais uma dessas coisas que ser apaixonado por BI tem me proporcionado. Claro que é uma tortura auto-imposta, e falhar não traz nenhuma consequência. Com esse exercício eu tenho aprendido a me auto-motivar e a buscar inspiração, situações nem sempre disponíveis no meu trabalho. Neste ano todo, falhei em publicar na quarta-feira apenas uma vez.

The Year Of The Data Vault

E para fechar o singelo post de hoje – clima de Natal! êêêêhh!!! – quero destacar um comentário que recebi recentemente, por e-mail:


Em 15/12/2016 17:41, X escreveu:

Só compartilhando uma coisa bacana. Você disse sobre a automatização na criação do Data Vault e estou vivendo isso. Muito bom! Não automatizei, mas com um simples “substituir” no xml, o processo fica semi-automático.

Estou amando Data Vault. Data Vault é vida! Data Vault é amor!


Esse comentário está sendo reproduzido aqui com a autorização de X. ;-) Muito obrigado, X!

Como eu ia dizendo, eu tratei de vários temas em 2016 e tentei falar menos de ferramentas e mais de conceitos. Tratar de ferramentas, especialmente do Pentaho, que eu adoro, é divertido, mas tende a ter uma relevância menor para os visitantes, enquanto que conceitos ou experiências são úteis para mais gente e permanecem válidos por mais tempo. Por isso eu acabei falando bastante sobre Data Vault, que tem muito ainda a ser explorado tanto em termos concretos quanto conceituais. E, de alguma forma, de repente, o assunto começou a ganhar tração aqui no Brasil, e o número de interessados aumentou, comparado a 2015.

Mesmo assim, a rasgação de seda acima me pegou de surpresa. Na verdade, fiquei completamente desarmado. Eu sou um cara que, quando se envolve, se apaixona pelo assunto. Eu passo a respirar, comer, vestir, beber etc. o assunto – minha esposa que o diga. E arroubos como esse eu acabo experimentando com frequência – mas ver um assunto motivar tanto alguém a ponto de declarar “Data Vault é vida! Data Vault é amor”, bom, eu caí da cadeira! :-D Esse cara é meu herói!

E essa é a coisa mais legal que escrever aqui tem trazido para minha vida. Paixão. Um canal para extravasar minha paixão pela ciência dos dados nas organizações, um lugar para exercer meu lado cientista, físico, e atingir realização profissional em um nível ímpar.

Nada disso teria a menor graça se não houvesse alguém do outro lado para ecoar, para irmanar essas realizações.

Se você não estivesse aí me aturando. ;-)

Muito obrigado por passar por aqui. Espero que você leve algo consigo e volte semana que vem para mais um pouco. Prometo que vou me esforçar para valer a pena!

Feliz Natal!!
Feliz Natal!!

Fábio de Salles
21 de Dezembro de 2016

As Soluções Clássicas – Atuarial

Lá em abril eu comecei uma série: As Soluções Clássicas. Até agora existem dois posts lá:

Algumas das soluções tradicionais de BI elencadas então foram:

  • CRM;
  • Crédito;
  • Seguros;
  • Supply Chain;
  • Fraude;
  • Risco.

Destas, além da introdução ao assunto, eu queria mostrar três: CRM, CS e Seguros. No meio do caminho a vida foi acontecendo e o assunto foi ficando de lado, mas hoje vou fechar a “primeira temporada” e mostrar a solução de BI para Seguradoras (e outros negócios.)

O Problema

Você conhece aquela piada de estatística sobre o consumo médio de frango assado?


Dizem que cada brasileiro come em média um frango assado por mês. Bom, então deve ter alguém comendo dois, porque com este preço eu não estou comendo nenhum!


Acho que nem estatísticos riem dessa porcaria, mas enfim, o ponto era chamar o assunto. :-)

A idéia toda baseia-se nos conceitos estatísticos embutidos na piada: se conhecemos a taxa de repetição de um evento, ou seja, se sabemos que em média, algum um certo tanto de eventos vai acontecer dentro de um certo período, podemos calcular a chance de esse evento acontecer de novo dentro de um certo tempo. E conforme conseguimos mais informação sobre esses eventos, podemos refinar o cálculo e obter indicações mais precisas sobre provável próxima ocorrência.

Por exemplo, dados coletados juntos ao Ministério da Saúde e ao Instituto do DPVAT indicam que mais ou menos 200.000 pessoas foram hospitalizadas devido a colisões de veículos em 2014. Dividindo por 12 meses temos que, em média, cerca de 16.700 pessoas se machucaram por mês em 2014.

Para simplificar o raciocínio, vamos extrapolar esse número para todos os anos seguintes e assumir que, em 2016, essa média se manteve.

Arredondando a população brasileira para 200 milhões de pessoas, podemos dizer que ao longo de um ano, ao menos uma pessoa a cada 1000 com certeza vai parar no hospital por motivo de colisão veícular.

E se soubermos mais sobre quem se acidentou, no passado, podemos melhorar a estimativa. Por exemplo, se sabemos que mais homens se acidentam que mulheres, podemos ter uma certeza razoável de que ser homem aumenta o risco, e ser mulher o diminui. E assim sucessivamente: faixa etária, localização geográfica, hora do dia em que sai de casa, estação do ano…


Sabendo que a cada mil pessoas, uma vai parar no hospital a cada ano, por colisão de veículo, qual é a chance que eu tenho de ser uma destas pessoas?


As chances mudam conforme a vida que eu levo:

  • Se eu NUNCA saio de casa, esse risco tende a zero;
  • Se eu dirijo o dia inteiro, esse risco tende ao máximo;
  • Se eu uso principalmente metrô para me deslocar na cidade, meu risco é mínimo, mas maior que se eu ficasse em casa o tempo todo;
  • Se eu sou homem, a minha imprudência natural tende a aumentar meu risco de acidentes, e se eu sou mulher, tende a diminuir.

E assim por diante. Esse é um tipo de análise Bayesiana, aliás! Cada nova informação que eu trago realoca as chances de cada evento. ;-)

Sempre que há algum risco envolvido em alguma ação, o ser humano busca minimizar esse risco ou proteger-se contra as consequências de sua realização. Assim levamos em viagem mais roupa de baixo que usaremos, compramos o dobro de cartuchos de tinta para imprimir o TCC e saímos de casa meia-hora mais cedo “para o caso de algo dar errado”.

Para que é que serve essa análise de risco? Ora, para um monte de coisas! Suponha que você vai construir uma estrada: que eventos podem comprometer esse projeto? Que risco cada um destes eventos apresenta? Se um destes dados riscos for muito grande, a prudência recomenda reter o projeto. E a mesma idéia se aplica a seguros e empreendimentos variados.

O Negócio

Em algum momento alguém sacou que essa necessidade representava uma oportunidade de negócios. É como um jogo de azar: aposto um tanto de dinheiro que nada de errado vai acontecer contigo. Se eu ganhar a aposta, eu mantenho o dinheiro. Se eu perder, eu banco o seus prezuíjo até um certo tanto.

Se eu for um bom apostador, isto é, se eu escolher bem as minhas apostas, eu ganho mais que perco, acumulando o dinheiro das apostas.

Se eu for um pusta pé-frio, perdendo mais apostas do que eu consigo bancar, vou à falência rapidinho e páro logo com isso.


Consta na Wikipedia que as primeiras compras de garantias datam do Século IV, e cobriam o transporte marítmo de bens.

O assunto é deveras fascinante e merece um bom estudo, pois ajuda a entender como chegamos até aqui. Aliás, se você tiver curiosidade, vale a pena estudar também a origem dos bancos. A idéia sempre foi a mesma: ser um ponto em que os recursos de vários pequenos investidores eram somados para alavancar negócios que, individualmente, nenhum deles conseguiriam. Os exemplos mais bacanas são as caravanas de comércio e a agricultura. Ou seja, sem bancos não temos crescimento econômico…


Divago, perdão.

Uma vez que chegamos neste ponto, tudo se torna uma questão matemática: acumular dados e fazer contas até chegar em valores que balanceiem o risco com o custo. Existe um profissional que estuda as técnicas para estimar esses riscos:


Atuário (…) é o (…) especialista em avaliar e administrar riscos.

(…) Este profissional é capaz de criar modelos matemáticos para planos de investimento e amortização, para seguro social e privado; efetuar cálculos de probabilidades de eventos, avaliar riscos, fixar valores de prêmios de seguro ou de indemnizações e, ainda, trabalhar em outras áreas coligadas ao tema de risco.1


Inteligência de Negócios Aplicado à Seguros

Quem já leu algum dos meus posts sobre Data Mining, como este aqui ou até mesmo o post que abre a série, já detectou nesta definição as palavrinhas mágicas “modelo matemático”.

E o que é que eu sempre digo sobre BI? Que, no fundo, Inteligência de Negócios é a aplicação do Método Científico para entender como a organização funciona e como extrapolar seu futuro a partir do seu passado. Isso é feito por meio de – tchan! tchan! tchan! tchaaaaan! – modelos matemáticos. Conclusão? Cálculos atuariais, que estimam riscos, são uma parte de BI. Mesmo que oficialmente ninguém afirme isso, não dá para escapar à essa conclusão: se A=B e B=C, então A=C, ponto.

Essa relação nos leva a uma outra conclusão: o analista de Data Mining que constrói modelos atuariais é um atuário. Como Analista de Data Mining hoje em dia é chamado de Cientista de Dados (pfff…) então um atuário é um tipo de Cientista de Dados!


Você pode querer argumentar que um Cientista de Dados pode ser um atuário, mas um atuário não é, necessariamente, um Cientista de Dados porque não traz todo rol de habilidades com dados habitualmente associado a Cientistas de Dados (=Analistas de Data Mining.) É, eu concordo com isso. Talvez a coisa que melhor separe as duas categorias, Analistas de Data Mining e Atuários, é que o segundo só faz cálculos atuariais, enquanto que o primeiro faz muito mais coisas – só que nada impede que ambos cresçam até englobar um o conhecimento do outro. ;-) Filosofia de mais, de volta à vaca fria!!


Ou seja, Atuária e BI são, essencialmente, uma categoria única. BI engloba muitas outras coisas, assim como Atuária, mas na hora de se aplicar uma ou outra, o rol de ferramentas é praticamente o mesmo.

Para uma visão mais geral, consulte esta página da Wikipedia. Ali você tem uma lista de várias das aplicações da Atuária. Eis uma pequena amostra:

  • Health insurance
  • Life insurance
  • Net premium valuation
  • Stochastic modelling
  • Asset liability modelling
  • Property insurance
  • Casualty insurance
  • Vehicle insurance
  • Ruin theory
  • Reinsurance
  • Investments & Asset Management
  • Dividend yield
  • PE ratio
  • Bond valuation
  • Yield to maturity
  • Cost of capital
  • Derivatives
  • Pensions
  • Stochastic modelling
  • Enterprise risk management

(Desculpem não traduzir – muito trabalho para bater o Google…)

A Solução

E que ferramentas são essas?

Ora, BI tem duas ferramentas, só:

  • Data Mining;
  • Data Warehouses.

Uma boa ferramenta de Data Mining, como SAS Enterprise Miner, e um bom projeto de DW bastam para aplicar todas as técnicas. Eventualmente, uma empresa desse ramo pode precisar comprar dados externos para poder desenvolver certos modelos matemáticos.

O próprio SAS possui pacotes prontos para esse tipo de problema – vem daí, aliás, o tema da série: soluções clássicas, soluções que de tanto serem aplicadas, acabaram empacotadas como produto.

Clicando aqui você pode conhecer a solução SAS para seguros. Já este link dá um panorama mais geral sobre as soluções baseadas em Atuária.


Note que qualquer ferramenta que faça as contas já serve. Excel, por exemplo, bem usado, pode fornecer resultados comparáveis ao próprio Enterprise Manager. O que acaba mudando, de uma ferramenta para outra, é a facilidade e praticidade da coisa.


Conclusão

Atuária é a ciência de estimar riscos. Seguros e Gerenciamento de Riscos são dois ramos de negócios assentados nessa tecnologia.

Por sua vez, BI engloba toda habilidade de acumular e analisar dados de uma organização para melhorar o negócio. Logo, Atuária e BI se interpõem, e ambos acabam formando parte do outro.

Nada mais natural, portanto, que exista um conjunto de ferramentas em BI desenhadas especialmente para lidar com problemas de Atuária. Esse conjunto de ferramentas é a tal da Solução de Inteligência de Negócios para Seguros e para Gerenciamento de Riscos. No miolo dessas soluções está sempre uma ferramenta de Data Mining, e os profissionais habilitados a usá-la. Ainda que não seja absolutamente imprescindível, o uso de um DW ajuda muito neste tipo de projeto.

Se você acredita que sua empresa pode se beneficiar desse tipo de solução, não tente fazer sozinho. Busque uma consultoria, um profissional do ramo, nem que seja só para se aconselhar. Arriscando-se sozinho você assume uma chance alta de obter conclusões erradas, e comprometer a sobrevivência de sua empresa. Melhor não economizar nisso, não é?


Estamos chegando ao final do ano, e este post conclui a primeira temporada da série Soluções Clássicas de BI. Gostaram? Acharam interessante? Ou um total despercício mútuo de tempo?


Considerando-se a piada da média de frangos, tenho medo de não ter valido nem pelas risadas… :-O


Essas são as mais fáceis de se mostrar e mais simples de se entender o uso, mas existem inúmeras outras soluções. Se eu conseguir aprender o bastante sobre alguma delas, eu voltarei ao tema. Duas que eu acho superlegais, mas que são relativamente complexas, é [SCM][scm_bitly], ou Supply Chain Management, e IT Capacity Planning. Quem sabe não são as primeiras da temporada dois?

Até a próxima! ;-)


  1. Extraído do verbete Atuário, da Wikipedia, em 12/12/16. 

Vaga para Consultor Pentaho

Recebi um anúncio de vaga para analista Pentaho:

  • Experiência com as ferramentas Pentaho Data Integration e Pentaho Report Designer;
  • Diferencial que o profissional conheça também as ferramentas CTools (ferramentas usadas para criação dos dashboards);
  • Experiência com a linguagem SQL com foco em uso no MySQL (imprescindível);
  • Local de trabalho: Próximo ao metrô Paraiso – SP
  • Contratação: CLT Full.

Os interessados podem contatar Letícia Coelho, no e-mail leticia ponto coelho arroba deal ponto com ponto br.

Livros

Mais ou menos uma vez por mês eu entro na Amazon, seção de livros, e digito “dw” ou “bi” ou “data mining” ou algum jargão da nossa área. Eu reviso a lista resultante e vou separando (clicando com o control apertado, para abrir em outras abas) todo e qualquer livro que eu ache interessante. Reviso essa seleção mais uma vez e escolho um ou dois para ler.

A última rodada me trouxe quatro livros do balacobaco.

Impossible Data Warehouse Situations

O mais divertido de todos, de longe, foi este:

Impossible Data Warehouse Situations.
Impossible Data Warehouse Situations.

É um livro antigo, do início dos anos 2000, que aborda um rosário de problemas comuns em implementações de DW. Por exemplo:

  • Quando o protótipo vira produção;
  • TI é o assassino;
  • Clientes não sabem o que querem, clássico dos clássicos!
  • A quem o time de DW deve se reportar? (CIO, gerência de departamento etc.)

Ou seja, problemas comuns. Por que, então, o título de situações impossíveis? Bom, justamente por serem comuns é que são impossíveis: impossíveis de se evitar, quase impossíveis de se resolver.

E nenhum destes problemas faz parte de nenhum curso de DW. Pode olhar, pode procurar. O máximo que você vai conseguir achar é um professor mais experiente que passou ou resolveu algumas destas situações, e vai te contar alguma coisa se você perguntar.

Dessa constatação temos o valor que esse livro possui: inestimável. Até porque não é um autor prescrevendo soluções mágicas, mas sim um painel de profissionais gabaritados que dão sua opinião a cada tópico.

Veja esta situação, como exemplo:

  • Should a line of business build its own DM?

Ou, no meu tradicional e macarrônico estilo de tradução, “um departamento deve construir seu próprio DW?” Ela é descrita, contextualizada e daí vários dos colaboradores do livro dão sua opinião. Alguns são bem rasantes, outros são mais acadêmicos, uns são pé-no-chão enquanto que outros, viajantes. Assim você acaba sempre com várias visões e idéias e propostas para o problema – uma riqueza enorme!

A resposta desse exemplo, para mim, vale ouro. Vários foram quadradinhos, “sim, porque o DW é a coleção dos Data Marts” ou “não, porque o DW é uma coisa centralizada”. Bah, isso eu já sei. Mas aí vem a Jill Diché, minha favorita: go togheter with IT. Ou seja, aproxime-se da TI e ofereça para dividir a carga: você colabora com profissionais e ganha, em troca, priorização. Como é você quem vai fazer a sua parte, você recebe antes. Isso deixa o departamento feliz, a TI feliz (porque tem mais mãos para trabalhar) e não aborrece os consumidores que competem com recursos! Gênio!

E o livro está cheio dessas!

Claro que, com essa idade, alguma coisa acaba datada, como essas duas “situações impossíveis” por exemplo:

  • O sistema de origem muda continuamente; ou uma variação
  • O sistema de origem está passando por uma mudança.

As soluções propostas são de gerenciamento, mitigação de riscos e fortalecimento dos padrões e do modelo dimensional. Hoje em dia temos outra opção (já sabe, né? Data Vaul!), mas mesmo assim não é uma mudança tão grande.

O livro fala sobre negócio (mal-entendidos, desinteres, motivação), times (disfuncional, prima-donas, encrenqueiros), clientes (chatos, ruins), chefes (burros, preguiçosos ou bagunçados), técnicas (metodologia, falta de conhecimento, de experiência), padrões (usados errados, sem padrões), ferramentas e qualidade dados, entre outros.

Como eu disse, adorei esse livro. Não consigo deixar de mencionar outros dois favoritos meus, dos padrões:

  • Os empregados usam a terminologia de maneira errada;
  • Tudo é Data Mining.

:-D

Clinical Intelligence

O nome inteiro do livro é enorme:

Clinical Intelligence: The Big Data Analytics Revolution in Healthcare: A Framework for Clinical and Business Intelligence

E ele fala exatamente isso: como usar os conceitos e idéias de BI aplicado ao campo da Saúde. Há algum exagero e um pouco de mal-entendidos, mas nada que prejudique a idéia central.

Por exemplo, ele separa BI e Analytics (item 1.2, paǵina 26), e classifica machine learning, pattern recognition e predictive modeling como motores (engines) e – não bastasse – ainda por cima diferentes. Como se um padrão não fosse um modelo preditivo, e coisas nessa linha. Dá para suspeitar um pouco se ele realmente chegou a entender tudo do que fala, mas – torno a insistir – não compromete o resultado final. Apenas leia com algum resguardo, pois ele não é da área de BI.

Já na parte que realmente interessa, meus caros, ele arrebenta.

E o que realmente interessa é o índice do capítulo 2:

Sumário do capítulo 2.
Sumário do capítulo 2.

(Peço perdão pela baixa qualidade da imagem. Puxei-a do site da Amazon, e ele não estava colaborando muito…)

Vêem? Ele mostra um tipo de análise para cada um dos vários assuntos médicos! Tem desde aspectos administrativos, como casos de uso, scorecards e indicadores diversos, a complexos modelos de atendimento clínico e previsões de custos, passando por modelos de predição de osteopatia e acompanhamento de antibióticos.

Na boa, esse é o livro de cabeceira de QUALQUER gestor de saúde. Quanto mais abrangente a responsabilidade desse gestor, mais importante se torna esse livro. Em outras palavras: leitura obrigatória para secretários e ministros da Saúde, ponto.

É uma leitura que eu passei meio por alto, afinal eu sou um alien para esse campo. Eu me detive apenas nas partes de BI (onde ele faz uma zona com alguns conceitos, acerta outros e se embanana todo com ainda outros) e matemática (em que ele, aparentemente, coleta trabalhos feitos por diversos outros times, uma coisa absolutamente normal, aceitável, afinal, só um ser sobrenatural poderia saber tanto sobre tanta coisa diversa.)

Agile Data Warehouse Design

Este livro tem uma proposta muito bacana: estabelecer uma metodologia para captura de requisitos para DW adequada a projetos ágeis, e ágil em si mesma.

Cara, ficou ruim. Deixe-me tentar de novo:


Este livro tem uma proposta muito bacana: explicar um método ágil de capturar requisitos para DW, requisitos estes adequados a projetos de gestão ágil.


Bem melhor!

Ágil como em ninja, não como em rápido.
Ágil como em ninja, não como em rápido.

E seria um livro excelente não fosse tão… poluído? Pesado? Foi difícil lê-lo do início ao fim, e eu falhei nisso – depois de um tanto saí pulando até onde aguentei. O método é interessante, parece que funciona e não é difícil. Acho que o maior galho dele é justamente ser uma receita de bolo. Ele tenta passar um conhecimento “situacional”, ou seja, de como agir em cada situação, e fica tão cheio de exemplos e detalhes e senões que a coisa toda fica pesada, trabalhosa.

A sensação é que, uma vez assimilado esse conhecimento, a coisa flui. Assimilá-lo é que parece mesmo um trabalho duro. E, já que estou no assunto, ele não resolve os problemas típicos de projetos, nem de projetos de DW, justamente como aqueles colocados no Impossible Situations – esse mesmo, sobre o qual escrevi acima.

Vale a pena ler? É, pode ser que sim. Se tiver tempo, com certeza. Mas não me parece uma daquelas técnicas que abalam o mundo, como – adivinhe? – Data Vault ou Análise Bayesiana. Mesmo assim, ele agrega.

Até porque eu cheguei numa técnica semelhante, muito mais modesta e de alcance muito menor, mas na mesma linha. ;-)

Variados

E esses eram livros que eu havia lido, mas sobre os quais ainda não falara nada. Além deles, em 2016 eu li alguns outros. Dessa leva de coisas da Amazon falei um pouco no post Férias = Livros!. Não custa relembrar (não custa mesmo, é só um copy-paste aqui, hehe):

Cada um deles é um primor de conteúdo e forma. O de expressões regulares eu deixei até separado, de tanto que eu uso. O de análise bayesiana eu leio e leio e leio e uma hora eu vou dominar!

Já o Building A Scalable DW, bom, pelamordedeus, leia! Ele e o DW Toolkit são a base para um DW Corporativo feliz e saudável! ;-)

Alguma Dica?

E isso fecha o meu ano de leitura. Agora estou procurando as coisas para 2017.

Alguma sugestão? ;-)

Uma Ferramenta Para Cada Caso

Há algum tempo eu recebi, na rua, este folheto:

WD-40: muito mais que só um aerosol bonitinho.
WD-40: muito mais que só um aerosol bonitinho.

Quem diria, não? Eu cresci usando WD-40 para quase tudo – de matar formigas a efeito sonoro, passando por desengripante e, claro, anti-ferrugem (o nome é uma referência a deslocamento de água, versão 40.) Mas jamais imaginei que o fabricante do WD-40 oferecia uma linha de vários outros produtos. O folheto que mostra a famosa lata aerosol, mostra também latas de diferentes quantidades do mesmo produto e frascos de coisas como “lixa líquida” e
“graxa branca” (o fim das manchas, com o mesmo poder de lubrificação? Ui! :-D )

Mas, é só lubrificação! Como pode uma única empresa, detentora de um único produto famoso, ter uma quantidade de opções??

Respondo-vos eu: e daí? O que é que tem uma coisa a ver com outra? O que é que proibe a empresa que fabrica um produto multi-uso de ter outros produtos?

Existe uma certa tendência, em TI, a pensar nos nossos produtos como coisas abrangentes, que encompassam tudo. O inglês oferece uma expressão precisa para esse sentimento: one size fits all, ou seja, um tamanho serve para todos.


Será que os softwares e hardwares são desenvolvidos nas fornalhas amaldiçoadas de Mordor?

   Three Rings for the Elven-kings under the sky,
   Seven for the Dwarf-lords in their halls of stone,
   Nine for Mortal Men doomed to die,
   One for the Dark Lord on his dark throne.
   One Ring to rule them all. One Ring to find them,
   One Ring to bring them all and in the darkness bind them.


Mas estou digredindo.

Quem acompanha meu blog sabe que eu tenho uma fixação por propagandas de produtos que prometem fazer tudo com uma só ferramenta. Não tenho problemas com empresas que se prestam a servir tudo, ou one stop shops, mas com empresas que oferecem um único produto e afirmam que ele pode fazer tudo, que ele dispensa qualquer outro complemento.

Esse tipo de mensagem prejudica o cliente, o consumidor, por um motivo muito simples: todo mundo quer ouvir que seu problema tem uma solução fácil.

Mas em TI, e principalmente em BI, não existem soluções fáceis ou óbvias ou tão simples que um mané qualquer pode construir. Se fosse verdade, não teríamos tanta evidência anedótica de projetos que deram errado, de times que ouviram o canto da sereia “one-size” e depois precisaram recolher os cacos e recomeçar.

Pensem em lubrificação: uma coisa simples, só fazer escorregar mais facilmente. Agora pensem em quantas opções de lubrificantes existem. O que gera essa variedade? O uso, os materiais envolvidos e até a dinâmica dos corpos em atrito! Ou você nunca escorregou em um piso molhado que, pisado da forma certa, oferece firmeza?

E essa variedades de opções se estende por uma infinidade de assuntos – basta pensar em alguma coisa e você vai ver que não existe essa coisa de “one ring”, para nada.

E porque continuamos buscando isso em BI? Porque ainda queremos que isso seja verdade?

Não sei, mas o fato é que não é.

Conclusão

Como dito, eu já comentei e dei aqui vários exemplos de como forçar uma ferramenta em todas as funções pode ser um grande erro. Bom, eu tive oportunidade de conhecer melhor dois produtos semana passada, [Alteryx][_bitly] e [Tableau][_bitly]. Adivinhem a mensagem central?


Você só precisa desses dois produtos, mais nada.


Ai, ai, esse ramo não tem jeito, mesmo. Pelo visto, sempre que um fornecedor de BI puder, ele vai tentar reduzir tudo ao mínimo. Mas o cenário talvez esteja melhorando, afinal ouvi dizer pela primeira vez (fora o SAS, que sempre ofereceu um carrilhão de opções) que precisamos de dois produtos! Um para ETL/Analytics, outro para Visual Analytics.

Bom, de qualquer maneira, o fato é que eu ainda preciso estudar mais esses produtos para poder negar a afirmação do fornecedor. Por enquanto, pelo que eu vi, de fato cobrem muita coisa e não é impossível que sejam mesmo o único produto necessário…

… se você ignorar sistema operacional, bancos de dados, diagramação, modelagem matemática etc. etc. etc.

Ai, ai. ;-)


O ano está chegando ao fim. Os próximos posts falarão sobre alguns livros interessantes que li este ano e fecharão a série de soluções clássicas, apresentando o Cálculo Atuarial. Até lá!

Base de Dados para Treinamento

Para escrever o Pentaho na Prática eu construí, do zero, uma base de dados – a Beltrano S/A. Ela está disponível na forma de um backup Postgres, com licença que permite até mesmo o uso comercial. Ou seja, se você quiser montar um curso, ou um produto, embutindo a Beltrano S/A, pode.


A única coisa que eu peço em troca é ser informado no que ela está sendo usada. Só. E mesmo assim, se não quiser não precisa me falar nada. Liberdade total. ;-)


A julgar pelo feedback de quem pediu para usar, eu diria que, como material de ensino, a base é interessante. Por outro lado, como tecnologia ela é bem pouco prática, na minha opinião.

Começa que, para usar, é preciso instalar o Postgres. Depois, precisa criar um banco, baixar o backup, restaurá-lo etc. Daí, se você alterar o conteúdo e quiser resetar o banco para o estado inicial, é preciso dropar a base e recriá-la. E se quiser customizar, precisa extrair umbackup no final e repetir o passo-a-passo de configuração em todas as máquinas de alunos.

É um trabalho chato mesmo para quem sabe mexer no Postgres. Para quem tem pouca familiaridade, é um porre.

Nem todo mundo é fluente em Postgres, e nem sempre dá para instalá-lo nas máquinas. Ou até dá, mas pode rolar conflito de porta, restrições de administração, blá blá blá… Eu ministrei umas vinte turmas de [BI com Pentaho][bicp4lin_bitly], e em todas elas sempre houve ao menos uma pessoa/máquina com problema sério na preparação do banco.

Bom, Bonito e Barato

Existe um servidor de banco de dados chamado HSQLDB que é 100% Java e que não precisa ser instalado. Basta baixar o arquivo do programa, rodá-lo com Java e voilà, tudo em riba!

Como se não bastasse ser Software Livre e 100% Java (ou seja, 100% portável – roda em qualquer plataforma, mesmo!), ainda tem uma interface gráfica a lá pgAdmin III, que pode ser usada para explorar os bancos e executar comandos SQL.

Mas tem uma coisa mais legal ainda: os bancos são construídos, por default, em memória. Quando o servidor é baixado, ele grava tudo que estava em memória em arquivos texto planos, no diretório que especificarmos. Isso, mais o fato de tomar muitas de suas configurações de servidor da linha de comando, nos dá muitas vantagens:

  • Qualquer modificação que é feita nos dados pode ser mantida e transferida para outras máquinas, simplificando o processo de customização para cada uso;
  • Se quiser voltar ao estado original, basta apagar o banco atual e descompactar o banco inicial mais uma vez. Estou falando do Beltrano S/A, mas pode ser feito para qualquer outro banco que você criar: basta guardar uma cópia à parte do seu banco;
  • Ele não mantém arquivos escondidos. Apagou, desinstalou;
  • A porta é configurada na chamada que sobe o servidor. Deu conflito? Baixe o banco, mude a porta e suba novamente;
  • Como podemos rodar um programa Java quantas vezes quisermos, podemos montar um conjunto de vários servidores, cada qual com sua porta e seu banco;
  • Um mesmo servidor, aliás, pode manter vários bancos;
  • É um programa pequeno: o pacote inteiro não chega a 5MB;
  • Mesmo tendo uma “pegada” muito pequena, ele não deixa nada a dever a bancos maiores, em termos de funcionalidades, e aguenta um bom volume de dados (basicamente limitado pela RAM da máquina;)
  • Você pode embuti-lo em outros programas, afinal é um projeto livre, em Java;
  • Você pode carregar data marts nele, e dar a capacidade de processamento de dados in memory a qualquer ferramentas de análises de dados que se conecte a bancos de dados via JDBC, como o Pentaho. Evidentemente não é a mesma coisa que um engine otimizado, como o que acompanha o QlikView, mas é mais rápido que disco.

E o HSQLDB ainda oferece uma boa gama de comandos e recursos, como índices, integridade relacional, muitos tipos de dados, várias funções nativas etc. etc. etc. Não fica a dever para outros bancos, mesmo.

Quem me conhece deve estar esperando a pegadinha, que sempre vem depois que eu desenho uma cena linda, toda rósea e luminosa. ;-) Bom, desta vez não tem: é tudo róseo e lindo, mesmo! No restante do post você verá um pouco sobre o HSQLDB (como baixar e subir um banco) e como instalar o mesmo conteúdo do banco Beltrano S/A oferecido em PostgreSQL.

Introdução ao HSQLDB

Como a promessa deste post é oferecer uma base de treinamento pronta e fácil de usar, eu vou cortar direto para a perseguição1 e ensinar o bê-a-bá do agá-esse-kê-ele-debê: de onde fazer o download, como subir o servidor, criar novos bancos, acessá-lo e depois baixá-lo.

O site do HSQLDB é o http://hsqldb.org, onde você pode estudar toda documentação e ler os guias de uso. Como é um projeto voltado principalmente para programadores (é um banco embutível, afinal de contas), ele abusa da linguagem técnica, tanto SQL quanto Java, e pode ser um pouco árido para o usuário menos proficiente nesses assuntos.

O pacote do servidor HSQLDB pode ser baixado diretamente do SourceForge, neste link, e o pacote do Beltrano S/A pré-configurado pode ser baixado daqui. O restante desta seção usa o conteúdo desse pacote, não do servidor original – muito técnico, lembram-se?

O zip do Beltrano OLTP/HSQLDB traz os arquivos do servidor e mais dois scripts, cada um dos quais em duas versões: Linux (.sh) e Windows (.bat.) Um dos scripts sobe o servidor e outro baixa-o. Os diretórios são ./data, onde fica o conteúdo do banco propriamente dito, e ./lib, onde está o servidor.

Subindo e Baixando o HSQLDB

Basta rodar o script start-hsqldb.sh/bat que o HSQLDB subirá com o banco desejado – Beltrano S/A neste caso. Para rodar esse script, abra um terminal (Windows: prompt do DOS) e mude para o diretório recém-criado. Daí comande ./start-hsqldb.sh (Linux) ou start-hsqldb.bat (Windows.) Em poucos segundos o banco estará no ar.

Eis as mensagens do HSQLDB subindo em um Ubuntu:

ubuntu:beltrano_oltp_hsqldb$ ./beltrano_oltp_hsqldb
classpath is :./lib/hsqldb.jar
[Server@5cd73256]: [Thread[main,5,main]]: checkRunning(false) entered
[Server@5cd73256]: [Thread[main,5,main]]: checkRunning(false) exited
[Server@5cd73256]: Startup sequence initiated from main() method
[Server@5cd73256]: Could not load properties from file
[Server@5cd73256]: Using cli/default properties only
[Server@5cd73256]: Initiating startup sequence...
[Server@5cd73256]: Server socket opened successfully in 4 ms.
[Server@5cd73256]: Database [index=0, id=0, db=file:./data/beltrano10k, alias=beltrano_oltp] opened successfully in 1430 ms.
[Server@5cd73256]: Startup sequence completed in 1435 ms.
[Server@5cd73256]: 2016-11-24 10:37:47.379 HSQLDB server 2.3.4 is online on port 9001
[Server@5cd73256]: To close normally, connect and execute SHUTDOWN SQL
[Server@5cd73256]: From command line, use [Ctrl]+[C] to abort abruptly

Eis o conteúdo da versão Bash do script:

#!/bin/sh
### =================== ###
##  HSQLDB Start Script  ##
### =================== ###

DIR_REL=`dirname $0`
cd $DIR_REL
DIR=`pwd`
cd -

#---------------------------------#
# dynamically build the classpath #
#---------------------------------#
THE_CLASSPATH=
for i in `ls $DIR_REL/lib/hsqldb*.jar`
do
THE_CLASSPATH=${THE_CLASSPATH}:${i}
done
echo "classpath is $THE_CLASSPATH"

java -cp $THE_CLASSPATH org.hsqldb.Server
-database.0 $DIR_REL/data/beltrano
-dbname.0 beltrano_oltp -port 9001

O último comando do script acima deve estar em uma única linha.

Uma vez no ar, você não pode simplesmente apertar CTRL+C para interrompê-lo. Isso pode corromper os arquivos, sem contar que não vai salvar o que estiver em memória. Para encerrar um banco é preciso rodar o script stop-hsqldb.sh/.bat. Note que talvez seja preciso abrir outro terminal. O script de encerramento é o seguinte:

#!/bin/sh
### =================== ###
##  HSQLDB Stop Script  ##
### =================== ###

DIR_REL=`dirname $0`
cd $DIR_REL

java -jar $DIR_REL/lib/sqltool.jar
--inlineRc=url=jdbc:hsqldb:hsql://localhost:9001/nome_do_banco,user=SA,password=""
--sql="SHUTDOWN;"

De novo: linhas maiores foram separadas em várias para facilitar a leitura, mas sempre devem formar uma única linha, sem quebras.

A diferença deste script para o de inicialização é que você não precisa informar o(s) nome(s) do(s) banco(s): ao receber o comando para se desligar, o HSQLDB encerra todos que estiverem abertos. Apenas não se esqueça de conferir as portas: o comando de shutdown precisa ser enviado para a porta certa, caso contrário, óbvio, nada acontecerá.

Acessando o Servidor

O HSQLDB é um servidor de banco de dados como outro qualquer. Ele pode ser acessado por qualquer aplicação que use o padrão JDBC. O driver JDBC dele, aliás, é o próprio servidor. No pacote do Beltrano S/A o servidor/driver é o arquivo hsqldb.jar, que fica dentro da pasta ./lib. Basta passar esse arquivo para o programa que vai se conectar ao servidor HSQLDB e usar a string de conexão abaixo:

jdbc:hsqldb:hsql://:/; ~~~

`<PARAMETROS>` é qualquer configuração que precise ser passada para o servidor. Lembre-se de remover o **;** entre a URL e os parâmetros caso não haja nenhum.

Digamos que você queira usar o PDI (Kettle) para acessar esse servidor. Uma conexão com o HSQLDB é totalmente padrão: basta selecionar Hypersonic (seu antigo nome) na lista e entrar os dados de conexão:

<a href="https://geekbi.files.wordpress.com/2016/11/161123_basededadosparatreinamento_004.png"><img class="size-full wp-image-1550" src="https://geekbi.files.wordpress.com/2016/11/161123_basededadosparatreinamento_004.png" alt="Parâmetros de conexão Pentaho." width="608" height="500" /></a> Parâmetros de conexão Pentaho.

Porém, é importante setar um parâmetro para evitar problemas com &quot;conjuntos vazios&quot; (conexões que se abre e fecham sem gravar nada, acho.) Na janela de conexões do *Spoon*, acesse a seção *Options* e entre o parâmetro `allow_empty_batch = true`:

<a href="https://geekbi.files.wordpress.com/2016/11/161123_basededadosparatreinamento_003.png"><img class="size-large wp-image-1551" src="https://geekbi.files.wordpress.com/2016/11/161123_basededadosparatreinamento_003.png?w=720" alt="Onde adicionar o parâmetro para evitar problemas com INSERTs vazios." width="720" height="278" /></a> Onde adicionar o parâmetro para evitar problemas com INSERTs vazios.

A string de conexão ficaria:

jdbc:hsqldb:hsql://localhost:9001/beltrano_oltp;allow_empty_batch=true

<br />Aproveitando, se você precisa construir uma conexão [JNDI][JNDI_bitly], o formato é esse:

BELTRANO_OLTP/type=javax.sql.DataSource
BELTRANO_OLTP/driver=org.hsqldb.jdbcDriver
BELTRANO_OLTP/url=jdbc:hsqldb:hsql://localhost:9001/beltrano_oltp
BELTRANO_OLTP/user=sa
BELTRANO_OLTP/password=

<br />Lembre-se de ajustar os parâmetros para o seu caso!

### Criar Novos Bancos ###

Pronto, agora você possui um servidor de banco de dados portátil, versátil, apto a um monte de usos educacionais e profissionais. Por exemplo, você pode criar um Data Mart para servir relatórios.

> ---
>
> Francamente, eu não consegui entender a documentação. Não sei dizer se dá para criar um banco subindo um servidor "vazio" e fazendo um `CREATE DB` ou coisa do gênero. Logo, eu vou contar aqui o que eu sei que funciona, mas não é necessariamente a única forma de fazê-lo - eu só não sei de outras. ;-)
>
> ---

Observe a linha de comando Java do script de inicialização:

java -cp $THE_CLASSPATH org.hsqldb.Server
-database.0 $DIR_REL/data/beltrano
-dbname.0 beltrano_oltp -port 9001

<br />É ali que definimos que bancos o servidor vai oferecer, a partir de que diretório, em que porta etc. Logo, para criar um novo banco basta adicionar, a essa linha, um par de parâmetros:

* Diretório do banco e nome dos arquivos: `$DIR_REL/data/NOME`
* Número e nome do banco de dados: `-dbname.X NOME`

Você pode adicionar um novo banco ou remover o antigo antes de criar o novo, apagando os arquivos `$DIR_REL/data/NOME`.

Para subir mais de um banco no mesmo servidor, inclua um novo conjunto de parâmetros. Por exemplo, para termos dois bancos, chamados *nome_do_banco* e *banco_de_dados*, a linha de comando deve ser:

java -cp $THE_CLASSPATH org.hsqldb.Server
-database.0 $DIR_REL/data/nomequalquer1 -dbname.0 nome_do_banco
-database.1 $DIR_REL/data/nomequalquer2 -dbname.1 banco_de_dados
-port 9001

<br />> *Atenção*: o comando acima deve compor uma única linha.

E, claro que você já deve ter sacado, para alterar a porta na qual o banco vai responder simplesmente mude o número que vem depois do parâmetro `-port`.

### Interface Gráfica ###

Em 17/1/2013 eu postei um artigo mostrando como abrir uma interface gráfica ("mais ou menos") para um servidor HSQLDB: [Interface para o HSQLDB][inthsqldb_bitly]. Vamos relembrar os pontos importantes:

* Abra um terminal (DOS prompt no Windows)
* Mude para o diretório do *HSQLDB*;
* Comande:
java -cp hsqldb.jar org.hsqldb.util.DatabaseManagerSwing --noexit

* Preencha os campos da janela Connect com os seguintes dados:

Setting name: Beltrano OLTP
URL: jdbc:hsqldb:hsql://localhost:9001/beltrano_oltp
User: sa
Senha:
~~~

A figura abaixo mostra um exemplo. Note que ela se conecta a outro banco, e por isso os parâmetros são diferentes – ela foi puxada do outro post.

Exemplo de como criar uma nova conexão.
Exemplo de como criar uma nova conexão.

Quando você conseguir se conectar, poderá explorar o banco à vontade:

Conectado ao servidor.
Conectado ao servidor.

HSQLDB & Pentaho

Se você costuma usar o Pentaho, especialmente o servidor, vale a pena notar que esse é o banco que o Pentaho BA Server usa em sua instalação pré-configurada. Se você tiver curiosidade, tudo que foi descrito aqui pode ser verificado no diretório ./biserver-ce/data, se você souber a quê estou me referindo.

Conclusão

Eu já havia visto MySQL portátil, que é uma boa solução também. O único inconveniente era o fato de precisar de binários diferentes para cada arquitetura (Linux, Windows, Intel, ARM etc.) O HSQLDB supera essa limitação e é, de fato, um servidor de bancos de dados relacionais de arquitetura “universal”. Claro que não possui a mesma robustez de um servidor como Oracle ou PostgreSQL, mas resolve muito bem uma série de necessidades.

Não sei porque eu demorei tanto a perceber isso… ;-)

Não deixe de entrar em contato por meios dos comentários se tiver alguma dúvida, ou encontrar algum bug.

Até a próxima! :-)


  1. Cut to the chase é uma coisa que dizem em Inglês quando não estão a fim de ouvir a história inteira. Aqui usamos mais “vá direto ao assunto”. E porque eu usei a expressão estrangeira? Oras, para poder dizer que GeekBI é cultura, claro! Kkkk…. 

Exame & BigData

A revista exame publicou, em 5 de março deste ano (2016), um artigo comentando sobre o mercado de trabalho para “Cientistas de Dados”.

Eu sempre implico com nomes “da moda” porque, na minha opinião, eles desvalorizam o profissional sedimentado, experiente, abandonando expressões que funcionam por um palavreado mais colorido. Ocasionalmente a coisa muda, claro, e esses nomes precisam mudar junto, mas em TI há uma competição disfarçada para ver quem vem com a próxima buzzword. No final essa disputa acaba por atrapalhar a vida da TI porque tanta mudança forçada impede a construção de senso comum e de uma cultura particular.

Pergunte a um engenheiro mecânico o que é um carburador, ou se eles usam “camâras adiabáticas para oxiredução explosiva”. Ou para um financista se ele fala juros compostos, ou “taxa de interesse recursiva”.

Entendeu a idéia? Para quê mudar uma expressão se ela adequa-se perfeitamente?

Pior: uma pessoa errada, mas com muita certeza, vai levar outros a errar também. É preciso estar de posse de um conhecimento sólido para poder resistir à pressão do hype corrente.

Big Data, Hiper Hype

Nestas últimas semanas eu tenho escrito sobre BigData, mas ontem eu não tinha assunto. Eu não sabia sobre o que postar, e depois de um dia cheio e tela em branco, eu simplesmente desisti.

Sem inspiração? Que tal tocado como gado?
Sem inspiração? Que tal tocado como gado?

Hoje eu acordei e olhei de novo para minhas anotações e achei este rascunho aqui, sobre a Revista Exame, e vi um bom fechamento para a série. Junte-se a isso que eu repeti minha palestra sobre BigData para a Fatec Zona Sul, cujo foco era desfazer confusões antes de começarem.

Leia a reportagem, é interessante. Entretanto, lá no meio, quando tudo estava indo bem, algo dá errado:


“O big data não se resume a um processo de automação. Seu objetivo é entender melhor o que acontece numa empresa, o que os clientes querem e, assim, modificar o negócio”, diz Jorge Sanz, diretor do Centro de Business Analytics da Universidade Nacional de Singapura, um dos grandes centros de big data da Ásia. Esse processo requer softwares capazes de captar os dados relevantes — e, acima de tudo, pessoas treinadas para interpretá-los.


Eu copiei o parágrafo inteiro como está. Releia. Releu? Entendeu? De novo, devagar:

“O big data não se resume a um processo de automação.”

“O” big data? Agora é uma coisa só, um objeto que anda por aí, e não mais uma tecnologia, mas um objeto. Ok, vamos dar uma colher de chá, já que muitos profissionais ainda chamam BI de “O” BI.

“Não se resume a um processo”: então “big data” é um processo? Se ele diz “não se resume”, então ele já classificou o assunto como um processo; apenas vai adiante e diz que não é apenas um processo – mas implica que é um de qualquer forma. Ou seja, passou de tecnologia-objeto (que demanda o tal do artigo definido masculino singular, “O”) para uma coisa que também é um processo. Mais uma confusão, mas vamos relevá-la de novo, em favor da prosa da reportagem.

“De automação”: e de onde veio isso? Do parágrafo anterior no artigo, onde ele começa associando computadores a automação. Até são coisas relacionadas, mas chamar Hadoop de automação é um pouco demais. Mas mesmo assim, vamos em frente.

E aqui o assunto descarrilha de vez:

“Seu objetivo é entender melhor o que acontece numa empresa”

É um repórter competetente, entrevistando um executivo relevante de uma enorme instituição financeira nacional. Quer dizer, não é um par de manés, não! São profissionais experientes, gabaritados e entendidos no assunto…

… que meteram os pés pelas mãos. Há décadas existe um termo que usa como definição justamente essa frase – Seu objetivo é entender melhor o que acontece numa empresa: Inteligência de Negócios, vulgo BI.

O que ele fez foi chamar uma coisa de outra. Foi vender banana anunciando carambola, já ambas são compridas, amarelas, tem casca, são frutas… Só que não são a mesma coisa! É um esforço feito para dar ribalta a uma expressão da moda, dando um gancho (sigam este link, é hilário!) em outra!

Fora, Inteligência de Negócios! Agora queremos "o big data"!
Fora, Inteligência de Negócios! Agora queremos “o big data”!

Existe uma outra explicação, que é dizer que ele não sabia mesmo do que estava falando, mas isso é um pouco demais para aceitarmos. Afinal, é a maior revista de negócios do Brasil, não um panfleto de bairro. Não atribuiriam a um repórter uma tarefa que ele não conseguisse desempenhar adequadamente. Isso feriria a reputação de ambos – revista e repórter. A menos, claro, que seu público não fosse capaz de perceber a confusão, mas aí é demais para aceitarmos porque estamos falando de um público qualificado, líderes, executivos e profissionais de todos os ramos, conhecedores de assuntos mil…

Entenderam como funciona? Ninguém tem bem certeza do que é algo. Aí a moda vem, avassaladoramente, e sacode tudo junto. No final fica parecendo aquela piada:


O bêbado entra no ônibus, passa a roleta e vai para trás. De lá, grita:

  • Do lado direito todo mundo é palmeirense! Do lado esquerdo todo mundo é corintiano!

Ao ouvir isto, levanta um do lado direito e fala:

  • Eu não sou palmeirense!!!

E todo os passageiros começaram a xingar o bêbado e ameaçando cobri-lo de bolacha. O motorista, para evitar confusão, freia bruscamente e todos caem. Um dos passageiros se levanta, pega o bêbado pelo colarinho e pergunta:

  • Fala de novo, safado! Quem é palmeirense e quem é corintiano?!

  • Agora eu não sei mais. Misturou tudo…


Não dá mais para saber quem é quem, porque o jornalismo especializado misturou tudo.

Conclusão

A reportagem segue nesse mesmo ritmo, dando novos nomes a coisas já estabelecidas. Por exemplo, em certo momento ele diz que os cientistas de dados têm remuneração superior à dos técnicos, que até o surgimento do big data eram os responsáveis por cuidar da manutenção dos bancos de dados. Ele misturou DBAs com analistas de DW/ETL, com Analistas de Data Mining, com Hadoop, com Bancos Relacionais… Em metade de um parágrafo, em menos de 30 palavras, causou-se estrago para pelo menos três áreas:

  • DBAs fazem a mesma coisa que cientistas de dados se você não usar “big data”;
  • Cientistas de Dados são DBAs para “big data”;
  • A manutenção de um Hadoop, uma plataforma de clusterização escrita em Java, é feita por um cientista de dados, enquanto que a de um Oracle, um banco de dados relacional, é feita por um técnico, e são a mesma coisa do ponto de vista funcional;
  • E Data Mining?

Esse tipo de artigo confunde um número de conceitos complexos para uma audiência em geral leiga nestes mesmos tópicos. Por ser um veículo de projeção nacional e respeitado, bem-conceituado, muitos tomam o que sai ali por fato, por verdade canônica. Aos poucos essas confusões tomam o lugar das verdades nas empresas, impactando planejamento, contratações, e até debates. Como é que um cara qualquer, um joão-ninguém como eu pode argumentar com o “repórter da Exame”? A quem acreditam vocês que o público atribui maior conhecimento? :-)

E pior ainda: como é que um profissional recém-formado pode querer colaborar com a empresa, se tudo que ele fala é contestado pelo chefe que viu tudo diferente na revista de negócios mais famosa do Brasil?

Tem mais razão e está mais certo que fala com mais convicção? Não, né? Repasso aqui o conselho que dei àqueles alunos das FATECs:

Use sua inteligência para filtrar. Critique e questione tudo. ;-)
Use sua inteligência para filtrar. Critique e questione tudo. ;-)

É isso. ;-)

Todo Dado É Estruturado

Trabalho na indústria de BI há 16 anos. Hoje em dia dá-se muito destaque a um tipo de dados considerados especiais, até meio místicos, como se guardassem a chave para as respostas de todas as perguntas não-formuladas. São os tais dos chamados dados não-estruturados.

Não vou debater semântica, ou nomenclatura, mas o fato é que esse tipo de dado existe desde sempre. Tanto é assim que há um campo inteiro dedicado a produzir conhecimento a partir de fontes hoje ditas “não-estruturadas”. Esse campo chama-se Text Mining, uma extensão do conceito de Data Mining. São as técnicas aplicadas em, por exemplo, soluções de análise de sentimento.

Assim como eu tenho algumas ressalvas com todo o hype em volta de BigData, também tenho minhas reservas quanto ao endeusamento desse tipo de dado. A minha bronca é que essa atitude não raro decorre de modismos, em geral carentes de significado mais concreto, cunhados a fim de encher a cabeça do cliente e ocasionalmente levá-lo a comprar alguma coisa.


Compra quem quer, deixa-se levar por modismos quem quer. Longe de mim atrapalhar a liberdade que cada um tem de se deixar convencer! Entretanto, eu não posso deixar de tocar no assunto. Encare este post como mais um argumento em um longo debate em busca da verdade. ;-)


A maior parte dos dados úteis para análises são justamente os que refletem algum processo, e por isso são capturados em sistemas transacionais ordinários. São dados que vivem em tabelas ou, no máximo, arquivos com algum layout padronizado. Já os tais dos dados não-estruturados não possuem “nenhuma” regularidade. Então tá, se sairmos desse domínio – se deixarmos os sistemas transacionais e suas tabelas padronizadas para trás – o que temos?

Vou ver um exemplo para ficar mais claro.

O Governo Federal tem a missão de gastar o dinheiro da melhor forma possível. Suponha que decidiu-se estabelecer a relação entre o atendimento do Bolsa-Família (BF) e a melhoria da educação. Isso é importante para permitir que a geração seguinte à suportada pelo BF possa almejar empregos de qualidade e melhorar de vida.

Como correlacionar esses dados? Uma opção é avaliar a relação entre demografia e os índices de escolaridade e frequência, e a cobertura geográfica do BF.

De onde virão esses dados? Dos sistemas de gestão escolar, por certo. Logo, esses dados são 100% estruturados. Estamos falando de capturar as listas de chamada, as notas, o resultado do ENEM, da Provinha Brasil, da concessão de BFs, de mapas… São todos dados estruturados. Mesmo que não venham de um único sistema, quiçá de uma única entidade, todos esses dados “vivem” em estruturas regulares. Com esses dados obtemos o conhecimento mais valioso que existe nos processos de gestão escolar.


Permitam-me colocar de outra forma: obtemos uma informação valiosa sem precisarmos de nenhum dado não-estruturado. E isso vale para a maioria do que está por aí, aguardando ser descoberto.


O dado não-estruturado serve para situações muito específicas, em condições muito particulares. É um nicho naturalmente pequeno – basta pensar quantas empresas/organizações grandes o bastante existem para puxar alguma inteligência dessas fontes, e o tamanho que essas fontes precisam ter para atribuir alguma confiança, estatisticamente falando, aos resultados.

Analiso Ergo Estruturo

Por outro lado, quais fontes de dados não-estruturadas existem por aí?

  • Textos (web e e-mail;)
  • Textos (posts em mídias sociais;)
  • Textos (documentos;)
  • Vértices de grafos (URLs – textos.)
Um punhado de dados não-estruturados.
Um punhado de dados não-estruturados.

Eu com certeza ignoro algumas outras categorias de dados não-estruturados, mas quais? Repassei a lista mas tudo que eu pensava tinha alguma estrutura mais ou menos óbvia, fixa:

  • Objetos XML: têm estrutura;
  • Transações entre empresas, como SWIFT: além de privados, têm estrutura;
  • Mapas: têm estrutura;
  • Etc…

Ora, o que é uma análise? Pode ser desde uma contagem ou uma média (quantas palavras o post possui, quantas palavras existe, em média, nos posts de cada autor?) a uma coisa mais sofisticada (qual é a chance, para cada assunto, de o autor possuir relação íntima com o dado assunto de seus textos?) Responder a essas perguntas envolve analisar frequências, distribuições, distâncias – números, números, números! Sempre precisamos quantificar em números e qualificar com uma descrição tudo aquilo que desejamos analisar.

Bom, mesmo o exemplo dado na figura 1 (e em geral naqueles elencados no início da sessão) possui alguma estrutura. Por exemplo:

  • Data e hora de publicação;
  • Ocasionalmente data e hora de criação e edição;
  • Versão (1, 2, 3… quando alguém edita o conteúdo e republica o item – doc, post etc.;)
  • Autor, e todos seus dados;
  • Tamanho;
  • Tipo de conteúdos (só texto, só imagem, mistura;)
  • Relacionamentos;
  • E, finalmente, o conteúdo em si.
O mesmo punhado de dados, estruturados.
O mesmo punhado de dados, estruturados.

Veja que, ignorando o conteúdo, podemos puxar muita coisa só olhando o restante! Dá para montar grafos diversos, por exemplo, acompanhando o timestamp e relacionamentos entre publicações em blogs e redes sociais. Dá para analisar o sentimento de um conjunto em relação a um assunto.


Análise impõe estrutura: para conduzir uma análise, os dados precisam ser estruturados de alguma forma. Se os dados não possuem estrutura, então não podem ser organizados e, imperiosamente, não permitem análise.


Logo, se os dados podem ser analisados, então eles possuem alguma estrutura. Isso gera confusão com o jargão de TI, que costuma chamar de “estrutura” um container ou padrão de armazenamento digital (isto é, que guarda os dados de uma forma mais ou menos organizada, como uma tabela, uma planilha ou um arquivo texto, representados por sequências de bytes em alguma mídia.)

Conclusão

O meu ponto é chamar a atenção para o hype em volta de dados não-estruturados. Afinal, para podermos conduzir qualquer análise é preciso poder representá-los matematicamente. Quero dizer, é preciso que eles possuam alguma estrutura, por mais incomum ou exótica que seja essa estrutura, ou por mais “escondida” que ela esteja.

Essa tabela mostra o exemplo da estrutura de dados do post em emu Facebook que aparece nas figuras anteriores:

Campo Conteúdo
Autor Fábio
Data Original 02/11/2016 20:30:00
Flag Editado Sim
Data Editado 02/11/2016 22:43:00
Conteúdo Original Há tanto sobre Big(…)
Conteúdo Editado Há tanto sendo escrito(…)
URLs https://geekbi.word(&#8230;)
Grupo Público
Curtido por Blad, Gisele
Curtido em 03/11/2016 10:15:00

Mesmo dados arquivados sob formatos exóticos (textos, e-mails, páginas web) possuem um mínimo de estrutura matemática apta a análises. Vem daí a afirmação que dá título a este post:


Todo dado (que seja útil para análise) é estruturado, de uma forma ou de outra.


Isso implica em dizer que não existem dados não-estruturados? Pode ser, tanto que esse era o título original deste post. Mas ainda não consigo afirmar isso com certeza.

Quem sabe um dia, não?

Até a próxima! ;-)