Essa semana eu instalei o JupyterHub em uma de nossas VMs. O amigo @augusto.herrmann levantou a bola e eu cabeceei . Após deixar o ambiente Python redondo, inclusive com acesso às nossas bases de dados - tanto aos DataMarts e DataLakes que os engenheiros de dados da CGINF/SEGES têm preparado, quanto ao serviço Quartzo do SERPRO (nesse a dor de cabeça foi maior, mas o desafio é a nosso energia
) - eu resolvi ir além e instalei também o Kernel do R com acesso às mesmas bases (challenge, challenge, challenge
).
Após essa atividade eu entrei em estado de contemplação, visualizando as infinitas possibilidades em um ambiente de desenvolvimento integrado com Python e R e com acesso a todas as nossas bases de dados.
Engenheiros de Dados mantendo os dados fluindo nos encanamentos e desaguando em nossos Lagos de Dados… Cientistas e Analistas pescando no lago para alimentar os nossos Gestores
com as melhores informações
.
HolyShit! O céu é o limite!
Mas peraí, esse já não era o objetivo do GovData?
O GovData é um ambiente integrado de desenvolvimento constituído de um DataLake Hadoop, rodando com com um Hive ou um Impala por cima para as querys e integrado com outras ferramentas como o R Studio, o Qlik Sense, o MicroStrategy e o Spotfire. UaU . O problema é apenas 1: não funciona. O R Studio sequer funciona.
Posso subir dados para o GovData e tirar proveito de todo o poder do Hadoop rodando em um cluster monstro? Não! Posso subir meus scripts Python ou R e conectar a todas as nossas bases de dados e tirar proveito de um ambiente Hadoop rodando em um cluster monstro? Não! Posso fazer uma consulta de teras-teras-e-teras de dados extrair um pedaço e baixar para o meu ambiente para trabalhar com a ferramenta que eu quiser? Não! […] imagine aqui uma atividade de engenharia, ciência ou análise de dados […] Não!
Será que tentou-se criar uma ferramenta para resolver um problema que não tínhamos? Fica a provocação.
Quanto ao JupyterHub, está rodando em uma máquina modesta para o desafio a ser enfrentado: 1TB de disco, 32GB de RAM e 16 CPUs. Infelizmente o Jupyter ainda não permite a edição colaborativa como em um Google Docs, essa feature está no roadmap dos desenvolvedores do JupyterLab. Uma solução que implementei foi disponibilizar uma pasta compartilhada no servidor para os usuários trocarem informações. Integração com o Git através do Jupytext está no radar.
Ansioso para ver a galera utilizando o novo ambiente, eu já comecei a brincar com o Dask para tirar proveito desses 16 CPUs rodando em paralelo . Crazy!