apachehop – Arruda – Data Consulting https://modelo6.augustomello.com.br Wed, 25 Sep 2024 12:08:07 +0000 pt-BR hourly 1 https://wordpress.org/?v=6.9 https://modelo6.augustomello.com.br/wp-content/uploads/2025/08/cropped-Logo-Arruda-Consulting-2025-Picto-1b-32x32.png apachehop – Arruda – Data Consulting https://modelo6.augustomello.com.br 32 32 Loop com Apache Hop https://modelo6.augustomello.com.br/loop-com-apache-hop/ https://modelo6.augustomello.com.br/loop-com-apache-hop/#respond Wed, 25 Sep 2024 12:08:07 +0000 https://arrudaconsulting.com.br/?p=5738 Neste post compartilho com vocês duas maneiras de criar Loop utilizando o Apache Hop.

Objetivo:

Criar 2 modelos de loop que percorra uma pasta principal, acesse todas as subpastas dentro dela, e leia todos os arquivos XLSX encontrados em cada subpasta. O loop funcionará independe do número de subpastas que haja na pasta principal.

Neste exemplo eu crie uma pasta chamada Loops, uma subpasta chamada Empresas e dentro desta subpasta criei mais 3 subpastas (Empresa A, Empresa B, Empresa C).

Dentro de cada uma destas subpastas há o arquivo cliente.xls que será lido pelo loop que iremos implementar.

Formato do arquivo excel que será lido

Modelo de Loop 1 — Usando copy rows to result

PASSO 1: Criar uma transform Get subfolder names que irá pegar o nome das subpastas de uma determinada pasta.

Edite a transform e determine no campo Directory qual é o diretório raiz onde você obterá as informações. No nosso exemplo esse é o caminho:

C:\NILSON\CURSO_APACHE_HOP\Loops\Empresas

Após selecionar o diretório clique em !GetSubFoldersDialog… e depois em Preview Rows para visualizar as pastas

As informações listadas serão encaminhadas para um novo pipeline, onde cada linha processada executará uma tarefa específica, criando um loop automático para cada linha da planilha. A próxima transform Copy rows to result será responsável por gerenciar esse processo.

PASSO 2: Criar a transform Copy rows to result e ligar com a transform Get subfolder names e na sequencia editá-la.

Todo o pipeline de dados será passado para essa transform como resultado, permitindo a execução do próximo pipeline.

Execute a pipeline para testar se não erro.

Salvaremos essa pipeline com o nome de loop_2_passo1

PASSO 3: Criar uma nova pipeline incluindo a transform Get rows from result. Ela servirá para pegar as linha de resultado que vieram da pipeline anterior loop_2_passo1.

Edite a transform e defina quais são as informações que será aproveitada da pipeline.

Neste exemplo, utilizaremos o campo folderName, que contém o caminho completo da pasta que desejamos ler. Dentro dessa pasta, pode haver muitos arquivos. Essa informação é obtida ao realizar um preview na transformação Get subfolder names da pipeline loop_2_passo1, que será então passada para a nova pipeline.

Incluir em Fieldname o folderName e em Type como String.

Assim que obtida, essa informação ela será passada para o próximo step.

PASSO 4: Criar uma transform Write to log para acompanhar o processamento que será feito e ligá-la a transform anterior Get rows from result.

Definir no campo Field o campo folderName

PASSO 5: Criar uma transform Get file names e ligar a transform anterior. Essa transform entrará em cada pasta, listará e processará os arquivos contidos nela.

Edite a transform e marque o campo Is filename defined in a field? e em Get filename from field selecione folderName

PASSO 6: Criar uma transform Microsoft Excel Input para receber essas informações.

Edite a transform e em Spread sheet type (engine) marcar que o tipo do arquivo. Neste nosso exemplo os arquivos são xlsx.

1 — Marcar o item Accept filenames from previous transform

2 — Em Transform to read filenames from selecionar Get file names, para indicar que ele recebe o nome do arquivo através do step Get file names

3 — Em Field in the input to use as filename selecionar filename, que foi o nome do campo definido no step Get file names.

Selecione a aba Sheets e inclua o nome da aba do arquivo que será lido. Em Em nosso exemplo o nome da aba do nosso arquivo cliente.xlsx é Plan 1.

Selecione a aba Fields e inclua a estrutura do arquivo excel. Em nosso exemplo temos apenas duas colunas id_cliente e nome_cliente no arquivo cliente.xlsx.

PASSO 7: Criar uma nova transform Write to log para escrever o conteúdo do arquivo no log.

PASSO 8: Criar um workflow para permitir que o pipeline loop_2_passo1 passe informação para o pipeline loop_2_passo2.

Ligar a action Start à action Pipeline

Editar a pipeline e clicar no botão Browser em Pipeline: e selecionar o loop_2_passo1 e clicar em Yes.

PASSO 9: Agora criaremos uma nova pipeline repetindo o procedimento acima para o loop_2_passo2.

Editar a pipeline e clicar no botão Browser em Pipeline: e selecionar o loop_2_passo2 .

Importante marcar o item Execute for every result row para que seja executado em forma de loop executando o conteúdo do arquivo linha a linha. Por fim clique no botão OK e salve o workflow como loop2_exemplo.

PASSO 10: Clique em Executar para executar os dois pipelines e ver o resultado no log. Note pelo log que o processo leu a pasta principal, listou as subpastas e dentro de cada subpasta leu os dados do arquivo cliente.xlsx.

Loop na Empresa A

Loop na Empresa B

Loop na Empresa C

Modelo de Loop 2 — Pipeline Executor

Para esse modelo iremos aproveitar a pipeline loop_2_passo2, iremos salvá-la com um novo nome loop3_exemplo.

PASSO 1: Excluir os steps Get rows from result e Write to log, que não serão necessários.

PASSO 2: Editar a transform Get file names que irá pegar o nome das subpastas de uma determinada pasta e editar

Desabilitar o Is filename defined in a field para que a seja habilitada o Select files, para incluir a variável ${pasta}

Essa variável pasta será preenchida dinamicamente com no nome da pasta que contém o arquivo. O Get file names ficará encarregado de listar o arquivo e passar para a próxima transform.

PASSO 3: Criar uma nova pipeline e criar a transform Get subfolder names para pegar o nome da pasta que queremos.

editar a transform e copiar o caminho da pasta principal onde estão subpastas.

PASSO 4: Perceba que neste modelo de loop 2, eu não jogarei o resultado do step anterior em um step Copy rows to result, mas em um pipeline executor.

Criar uma transform Pipeline Executor para pegar o nome da pasta que queremos.

Neste exemplo o resultado irá para um pipeline executor

Para cada linha que for processado na pipeline principal também será executada a pipeline executor, ou seja, o loop será feito até o final do arquivo.

Editar a pipeline executor e clicar em Browser e pesquisar a pipeline loop3_exemplo.hpl

Definir Variable / Parameter name como “pasta” e em Field to use selecionar folderName e clicar em OK. Desta maneira o conteúdo do folderName será passado para a variável pasta.

Salve essa pipeline com o nome loop3Exemplo_pai

Passo 5: Execute o pipeline e acompanhe resultado pelo log.

Conclusão

Mostrei neste tutorial duas maneiras de fazer loop, utilizando o Apache Hop, sendo a última solução a mais performática.

Soluções estas que também se adaptam ao Pentaho.

Muito Obrigado.

Nilson Braga

Gostou deste post? Conecte-se comigo no linkedin

]]> https://modelo6.augustomello.com.br/loop-com-apache-hop/feed/ 0 Executando um pipeline no Hop-Server através do Apache Hop https://modelo6.augustomello.com.br/executando-um-pipeline-no-hop-server-atraves-do-apache-hop/ https://modelo6.augustomello.com.br/executando-um-pipeline-no-hop-server-atraves-do-apache-hop/#comments Sat, 11 Mar 2023 10:22:34 +0000 https://arrudaconsulting.com.br/?p=5145 Olá,

Tudo bem contigo?

Nesse artigo iremos ensinar como integrar o Apache Hop com o Hop Server.

Dessa forma podemos mandar executar um pipeline no Hop-Server que está no seu Servidor através da tua maquina local, pra quem já conhece o Pentaho é muito semelhante ao que faziamos com o Carte.

Primeiro, o teu Hop Server tem que está disponível, caso você não sabe como subir o serviço, ensinamos isso no artigo abaixo:

https://arrudaconsulting.com.br/como-instalar-o-hop-server/

Uma vez que temos o Serviço funcionado, agora iremos abrir o Hop-gui e configurar as informações do Hop-Server.

Iremos começar por criar uma instância do Hop-Server, aqui precisamos informar o servidor, porta, usuário e senha do seu Hop-Server.

 

 

 

 

 

Agora iremos criar uma configuração de execução, por enquanto só temos a local que é a padrão, com isso teremos a opção de executar o pipeline local e também remoto via Hop Server.

 

 

 

 

 

 

Aqui basicamente estamos selecionando a configuração do Hop Server que fizemos na etapa anterior.

Agora irei executar um pipeline simples, aonde leio uma tabela do sistema de origem e gero a stg, só que agora temos duas opções de execução local e Hop-server.

Iremos selecionar Hop-Server para ele executar.

 

 

 

 

 

 

 

 

 

 

 

 

Aqui vemos que o pipeline executou corretamente.

 

 

 

 

 

 

Bom, agora temos que ir até o Hop Server via navegador para confirmar se ele executou o pipeline.

 

 

 

 

 

 

 

 

 

 

 

Pipeline, executado com sucesso.

E é dessa forma que funciona a integração do Hop-gui com o Apache Hop!!!

Muito Obrigado e até o próximo artigo!!

 

]]>
https://modelo6.augustomello.com.br/executando-um-pipeline-no-hop-server-atraves-do-apache-hop/feed/ 2
Como Instalar o Hop Server? https://modelo6.augustomello.com.br/como-instalar-o-hop-server/ https://modelo6.augustomello.com.br/como-instalar-o-hop-server/#respond Sat, 11 Mar 2023 10:22:06 +0000 https://arrudaconsulting.com.br/?p=5139 Olá, tudo bem contigo?

Nesse artigo iremos compartilhar contigo como subir o serviço do Hop Server.

Primeiramente iremos abrir o cmd, ir até a pasta aonde o nosso hop está instalado e executar o seguinte comando.

hop-server servidor porta

Nesse exemplo irei subir o Hop Server no meu computador local e irei utilizar  a porta 8081.

 

 

 

 

 

 

 

 

Agora que o nosso serviço do Hop Server iniciou, agora é só abrir o navegador e acessar o endereço localhost:8081.

Irá pedir um usuário e senha, como padrão do Hop, isso pode ser alterado também é cluster para usuário e senha.

E assim que logar é só clicar em show status e irá aparecer a imagem abaixo:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Pronto, Hop-Server iniciado e agora já conseguimos executar nossos pipelines e workflows a partir do nosso Apache Hop Local.

Quer Aprender como Executar o pipeline no Apache Hop e ele executar no teu Hop-Server?

Só clicar no link abaixo:

https://arrudaconsulting.com.br/executando-um-pipeline-no-hop-server-atraves-do-apache-hop/

Muito Obrigado e até o próximo artigo!!

]]>
https://modelo6.augustomello.com.br/como-instalar-o-hop-server/feed/ 0
Como Encriptar suas senhas no Apache Hop https://modelo6.augustomello.com.br/como-encryptar-suas-senhas-no-apache-hop/ https://modelo6.augustomello.com.br/como-encryptar-suas-senhas-no-apache-hop/#respond Sun, 05 Mar 2023 11:19:04 +0000 https://arrudaconsulting.com.br/?p=5130 Olá,

Tudo bem contigo?

Você que já trabalha algum tempo com Pentaho, chegou a testar o Apache Hop?

Se sim, uma das primeiras coisas que testamos é a forma de poder trabalhar com projetos e os seus respectivos ambientes não é mesmo.

Aonde com as mesmas variaveis com um mesmo pipeline num clique executamos o nosso pipeline no ambiente de DEV, e podemos mudar para ambiente de Testes ou de Produção, porém nossas senhas ficariam expostas.

E uma forma de proteger as suas credenciais de bancos de dados é encriptar as nossas senhas.

 

 

 

 

 

 

 

 

Na imagem acima temos uma conexão criada de um banco de dados local que utilizamos em nossos treinamentos.

Agora iremos ver as variáveis que estamos utilizando para um dos nossos ambientes.

 

 

 

 

 

 

 

Nesse caso é um banco local e de treinamento, mas vamos supor que fosse as credenciais da sua empresa, ou do seu cliente quem tiver acesso a esse arquivo, teria as credenciais e poderia acessar o banco de dados, e pensando na governança dos dados isso com certeza poderia ocorrer alguns problemas.

Uma forma muito simples de resolver isso, seria utilizar o hop-encrypt, com apenas uma linha de comando recebemos a nossa mesma senha só que encripitada.

Primeiro iremos abrir o cmd, e ir até a pasta que o seu Apache Hop está instalado e iremos utilizar o seguinte comando.

hop-encrypt -hop -Senha

No nosso caso aqui a nossa senha é 123, então irei utilizar ela ao final do comando.

 

 

 

 

 

 

 

Como podemos ver o Hop retornou a seguinte senha pra gente: Encrypted 2be98afc86aa7f2e4cb79ce10bec3fd89

Então nas variáveis aonde temos a configuração do nosso banco, iremos substituir 123 por essa senha que o hop-encrypt gerou.

 

 

 

 

 

 

 

E para finalizar iremos editar a conexão e clicar em testar para ver se está tudo ok.

 

 

 

 

 

 

 

 

 

 

 

 

Conexão OK.

E é dessa forma que além de trabalharmos com projetos e também com ambientes, também conseguimos proteger as nossas credenciais.

Muito Obrigado e até o próximo artigo!

 

]]>
https://modelo6.augustomello.com.br/como-encryptar-suas-senhas-no-apache-hop/feed/ 0