Acessando Documentos no Drive da Google com Pentaho Data Integration

Planilha Google Driver e Pentaho

Quando eu estava realizando um treinamento avançado de Pentaho em um cliente na cidade de Recife, aqui no Brasil, um dos alunos me solicitou uma dica de como acessar planilhas eletrônica que foram desenvolvidas  no Google Docs e armazenadas no Drive, usando o PDI ( Pentaho Data Integration ) , de primeira mão já afirmei que poderia usar a API do Google  e o Pentaho Data Integration para interagir , mas como sempre o projeto Kettle e o Software Livre me surpreendem, acessando o Marketplace lá estava um plugin prontinho para isso desenvolvido por Brian Zoetewey!

O mesmo tem alguns passos de acesso e segurança  a serem configurados que o torna um pouco mais complicado que acessa uma planilha local ( faz sentido! ) , mas uma vez feito os demais são simples de usar.

Bom vamos lá a algumas dicas de como usa-lo!

Obs. Este post esta funcional para a versão 7.1 do PDI caso queira instalar manualmente para versões superiores adicionei o step em https://github.com/ambientelivre/pdi-google-spreadsheet-plugin/blob/master/step/PentahoGoogleSheetsPlugin-4.1-distribution.zip irei atualizar para versões novas quando possível.

  1. Primeiramente inicie seu Spoon/PDI,  e no menu Tools -> Markteplace , procure por Google na pesquisa e clique em install no plugin  Google SpreadSheet  input/Output.

    google-driver-pentaho-data-integration-marketplace



  2. Confirme a instalação do plugin e aguarde a instalação finalizar

    install-google-drive-confirmacao-pentaho


  3. Uma mensagem será emitida após a instalação solicitando que reinicie o Pentaho Data Integration / Spoon

    google-drive-pentaho-data-integration-marketplace


  4. Depois de Reiniciar crie uma nova transformação no PDI, e inclua um Google Spreadsheet Input e deve informar um Email de Serviço do Google ( não é sua conta de gmail deve vegar este id email de serviço) e deve importar uma Chave ou Private Key no formato p12 ( já iremos explicar como gerar o id e chave da API )

    config-step-google-spreadsheet-input


  5. Para gerar um Email de Serviço no Google acesse https://console.developers.google.com/projectselector/iam-admin/iam e será solicitado para criar um Projeto de API ou selecionar um preexistente em sua conta Google.

    google-apis-for-pentaho


  6. Se já tiver criado alguma API simplesmente seleciona conforme a seguir caso contrário realize os passos de criação seguindo o wizard do Google APIs.

    selecionando-google-apis

  7. Depois de selecionado acesse o Menu de opções “Contas de Serviço”  e gere uma conta de serviço para a API , no momento de geração será ;he perguntado o formato de chave , selecione a opção p12e baixe o arquivo.

    selecionando-google-apis-accounts

  8. Agora copie em seu Step no PDI e clique no botão Test Connection, se der sucesso podemos seguir e frente.

    config-step-google-spreadsheet-input


  9. Atenção!!! agora você deve acessar seu Driver e compartilhar o documento com o Pseudo usuário 999999999-xyxyxyxyxyxyxyxyxyxxy@developer.gserviceaccount.com para que a mesma fique disponível, após isso clique em Browser e ele ira listar todas as planilhas compartilhadas

    planilha-driver-pentaho


  10. Selecione o arquivo de Planilha desejada e depois seleciona a Planilha do arquivo ( WorkSheet id ( que são as abas de trabalho )

    planilhas-google-sheets-worksheet


  11. Depois de selecionar acesse a aba Fields e clique em Obter fields para ter as colunas de sua planilha no Stream de dados do PDI.

    fields-spreedshets-google-driver


  12. Agora e dar continuidade , pode usar todos os recursos do Pentaho Data Integration , Preview e Todos infinitos Steps de tratamento de Dados.

    stream-google-sheets-pentaho


  13. da mesma forma que fizemos a leitura podemos fazer a escrita de uma planilha com o step Google Spreadsheet Output  sem maiores complicações.

  14. Outros tratamentos no Google docs podem ser realizados com um pouco mais de conhecimento da API do Google ( https://developers.google.com/drive/v3/reference ) e nosos recursos de REST/SOAP/Http e JavaScript do Pentaho Data Integration e depois  adicionar estes dados extraídos (inclusive em tempo real ) á Dashboards, ou Cubos através de integrações bath em datawarehouses.

  15. Quem também quer ampliar as funcionalidades e criar algo similar o fonte deste plugin se encontra em https://github.com/GlobalTechnology/pdi-google-spreadsheet-plugin

 

Observação 1: Alguns colegas comentaram que foi necessário fazer conversão de Binary[String] para String conforme imagem:

string-to-string

Observação 2: também foram relatados limitação no número de linhas do arquivo

 

Referências :

Treinamento Avançado em Pentaho Data Integration :

https://www.ambientelivre.com.br/treinamento/pentaho/data-integration.html

GitHub GlobalTechnology

https://github.com/GlobalTechnology/pdi-google-spreadsheet-plugin

Fórum Internacional da Pentaho:

https://forums.pentaho.com/showthread.php?186094-Google-Spreadsheet-Input-How-write-the-Spreadsheet-KEY

https://forums.pentaho.com/showthread.php?220537-Kettle-connection-to-Google-Drive

Google Developers
https://developers.google.com/

Sobre Marcio Junior Vieira

Atualmente atua como Cientista de Dados da Ambiente Livre. Evangelista de tecnologias Open Source e Free Software desde 1999. Data Scientist, Data Engineer e Big Data Expert. Certified Pentaho Solutions Consultant. Alfresco ECM & Activiti BPM e Camunda BPM Expert. Scala, Java, PHP, Python and JavaScript Programmer.
Esta entrada foi publicada em Pentaho, Pentaho Data Integration ( Kettle ) e marcada com a tag , , , , , . Adicione o link permanente aos seus favoritos.

13 respostas para Acessando Documentos no Drive da Google com Pentaho Data Integration

  1. Noa disse:

    Does it work with community edition as well?
    Thanks

  2. Bruno Eduardo Marchiori disse:

    Marcio por acaso é possivel passar o e-mail e a key como parâmetro pelo pan ?

  3. Bruno Eduardo Marchiori disse:

    Hmm, beleza, só achei estranho porque dentro das opções do spreadsheet ele não te da a opção de colocar um parâmetro na key, como é feito no google analytics por exemplo só selecionar o arquivo gerado pela api. Vou dar uma olhada melhor aqui, muito obrigado!!

  4. Olá Márcio,

    No meu caso tive que adicionar um step “select values” para alterar os tipos que estavam como [String] para String.

    Exemplo => https://www.dropbox.com/s/t8qrzen23121431/Screen%20Shot%202018-05-16%20at%2015.16.37.png?dl=0

  5. Marcio disse:

    Meu xará, parabéns pelo post. O único que encontrei da forma mais fácil de ensinar e ainda em português!! Poderia me informar porque na opção de output a planilha, recebendo tanto de XLSX quanto de CSV ocorre um erro?

    at java.security.AccessController.doPrivileged(Native Method)
    at sun.net.www.protocol.http.HttpURLConnection$10.run(Unknown Source)
    at java.net.HttpURLConnection.getResponseCode(Unknown Source)at sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(Unknown Source)

  6. Odivon disse:

    1. Somente consegui inserir 1900 linhas, a partir de 2000 linhas deu erro.
    2. Não consegui instalar ele no servidor, não aparece no marketplace do servidor.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *