etl – Arruda – Data Consulting https://modelo6.augustomello.com.br Tue, 24 Sep 2024 09:43:26 +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 etl – Arruda – Data Consulting https://modelo6.augustomello.com.br 32 32 Criando colunas condicionais no Apache Hop https://modelo6.augustomello.com.br/criando-colunas-condicionais-no-apache-hop/ https://modelo6.augustomello.com.br/criando-colunas-condicionais-no-apache-hop/#comments Tue, 24 Sep 2024 09:43:26 +0000 https://arrudaconsulting.com.br/?p=5729 É muito comum a gente criar colunas condicionais no nosso dia a dia, nem sempre teremos a informação já pronta da forma que precisamos.

Para quem trabalha com banco de dados deve estar mais acostumado a fazer esta tarefa utilizando If ou Case When, a lógica é exatamente  a mesma.

Neste Artigo irei mostrar como fazer isso de duas formas:

  • Simples.
  • E um pouco mais complexa.

Para este exemplo iremos ter duas colunas: Status e Categorias.

Começando pela simples iremos utilizar o Value Mapper para isso, basicamente é informar o valor origem e o valor Destino.


Nesse caso se a 3ª coluna: Target field name estive em branco, isso quer dizer que iremos substituir o valor na mesma coluna, como o tipo de dados é diferente, ou seja estamos lendo dados do tipo Inteiro e gerando uma coluna com dados textos, somos obrigado a criar uma nova coluna, pois daria erro de conversão do tipo de dados.

Quando é o mesmo tipo de dados não tem problema em utilizar a mesma coluna.


Simples não, essa é a forma fácil.

Agora vamos supor que a nossa coluna que iremos criar temos que combinar uma condição entre a coluna status e também a coluna categoria, então para isso o Valeu Mapper já não nos atende, iremos utilizar o Step: Java Script.

Pode parecer um pouco mais complexo mas também neste caso temos mais liberdade para criar da forma que preferir.

Iremos utilizar o seguinte script:

//Script here

var stat;

if(status == 1 && categoria == “Cliente” )

{
stat = “Ativo”;
}
else if (status== 0 && categoria == “Cliente”)

{
stat = “Inativo”;
}
else {

stat = null;
}

  • Se o status = 1 e categoria = Cliente  irá retornar o valor Ativo.
  • Se o status = 0 e categoria = Cliente irá retornar o valor Inativo.
  • Caso contrário nulo.


Vamos ver se irá funcionar?


E dessa forma a gente pode criar colunas utilizando condicionais no Apache Hop.
Quer aprender outros tratamentos de Apache Hop, veja a nossa aula com 2 horas de conteúdo:
Muito Obrigado e até o próximo artigo.
Time Arruda Consulting.
]]>
https://modelo6.augustomello.com.br/criando-colunas-condicionais-no-apache-hop/feed/ 2
Depoimentos de Alunos – Hopbase https://modelo6.augustomello.com.br/depoimento-hopbase/ https://modelo6.augustomello.com.br/depoimento-hopbase/#respond Sat, 25 May 2024 13:18:05 +0000 https://arrudaconsulting.com.br/?p=5645 Olá, tudo bem contigo?

Compartilhando o depoimento de alguns alunos que finalizaram o nosso Treinamento: Hopbase.

Neste treinamento os alunos aprenderam a criar um Produto de BI do zero, abordando as seguintes etapas:

  • Modelagem dos dados.
  • Staging Area.
  • Dimensões e Fatos.
  • Carga Full vs Carga Incremental.
  • Orquestração do ETL.
  • Documentação do DW.
  • Criação dos Relatórios e Dashboards.


O melhor curso de BI que já criamos, pois abordamos não somente o processo de ETL, como no nosso treinamento de Pentaho, mas todo o processo de BI.

São 15 horas de conteúdo em mais de 50 aulas, confira os módulos:

Quer aprender a criar um Produto de BI utilizando somente ferramentas gratuitas? E com 20% de Desconto com uma empresa parceira do Apache Hop.

Link Hopbase

Cupom: PRE.

Muito Obrigado.

Time Arruda Consulting.

]]>
https://modelo6.augustomello.com.br/depoimento-hopbase/feed/ 0
Como obter o último dia do mês anterior no Hop/Pentaho https://modelo6.augustomello.com.br/como-obter-o-ultimo-dia-do-mes-anterior-no-hop-pentaho/ https://modelo6.augustomello.com.br/como-obter-o-ultimo-dia-do-mes-anterior-no-hop-pentaho/#respond Fri, 23 Feb 2024 15:58:55 +0000 https://arrudaconsulting.com.br/?p=5550 Olá, tudo bem contigo?

Hoje o artigo de hoje é compartilhar contigo uma forma de obter o último dia do mês anterior, de uma forma simples, e objetiva.

Essa solicitação é muito comum recebermos das áreas de negócios principalmente da área financeira quando ocorre o fechamento.

Para este exemplo, irei trazer 3 steps:

Seria possível fazer somente com o step Formula? Sim mas achei que era uma boa oportundiade trazer estes dois steps para poder agregar mais conteúdo ao artigo.

Iremos inciar o pipeline com o Get system info para obter a informação de sysdate,


No Step formula iremos utilizar esta data de sysdate para gerar a coluna que precisamos, o último dia do mês anterior.

ultimo_dia_mes_anterior ->   EOMONTH([data_hoje],-1)

O formula seria semelhante ao DAX pra quem trabalha com Power BI, aonde temos uma séria de funcções a nossa disposição para extrair ainda mais valor dos dados.


Importante que a coluna seja criada utilizando o tipo de dados: Date.
E assim temos exatamente o resultado que queríamos.


Para finalizamos esta tarefa agora iremos utilizar o Select Values para formatar a data para o formato que já estamos acostumado a utilizar: DD/MM/YYYY,
O Select Values é o step que utilizamos tanto para selecionar quais colunas permanecem ou não no pipeline e também onde conseguimos converter os tipos de dados das colunas e também alterar o formato.


E assim finalizamos esse demanda, aonde utilizamos 3 steps:
  • O 1º para buscar a data de sysdate.
  • o 2º para gerar a coluna com o último dia do mês anterior.
  • O 3º para converter o formato dos campos de data.


Muito Obrigado e até o próximo artigo.
Rafael Arruda.
]]>
https://modelo6.augustomello.com.br/como-obter-o-ultimo-dia-do-mes-anterior-no-hop-pentaho/feed/ 0
Proteja dados sensíveis com Hop https://modelo6.augustomello.com.br/criando-uma-coluna-md5-para-proteger-dados-sensiveis/ https://modelo6.augustomello.com.br/criando-uma-coluna-md5-para-proteger-dados-sensiveis/#comments Sat, 17 Feb 2024 20:45:04 +0000 https://arrudaconsulting.com.br/?p=5539 Olá, tudo bem contigo?

Há um tempo átras muito tem se falado sobre LGPD.

E com os diversos vazamentos de dados que diversas empresas já sofreram, esse tema vem se tornando cada vez mais importante dentro das empresas e especificas nas áreas de dados.

Nesse artigo irei trazer um exemplo de como podemos proteger os dados sensíveis  utilizando Apache Hop / Pentaho.

nesse exemplo teremos o nome de um colaborador e em vez de armazenar o nome, iremos criar uma coluna utilizando o tipo: MD5, e armazenar uma string hexadecimal no lugar do nome do colaborador.

    Iremos utilizar o step: add a checksum para esta função, informando as seguintes opções:

    • Tipo MD5.
    • Resultado utilizando o Tipo Hexadecimal.
    • Nome da coluna que será criada.
    • Coluna utilizada como referência para gerar o campo hash.


    Ao executar o pipeline temos a coluna nome e a coluna hash, dessa forma em vez de armazenar o nome do colaborador podemos ter este valor hash, uma abordagem simples e muito eficaz na maioria dos casos para preservar dados sensíveis como nome, email e telefone por exemplo, dados pessoais.


    Muito Obrigado e até o próximo artigo.
    Rafael Arruda.
    ]]>
    https://modelo6.augustomello.com.br/criando-uma-coluna-md5-para-proteger-dados-sensiveis/feed/ 4
    Automatizando o seu pipeline no Apache Hop. https://modelo6.augustomello.com.br/agendamento-de-tarefas-no-windows-com-apache-hop/ https://modelo6.augustomello.com.br/agendamento-de-tarefas-no-windows-com-apache-hop/#comments Sun, 11 Feb 2024 13:14:38 +0000 https://arrudaconsulting.com.br/?p=5515 Olá, tudo bem contigo?

    A ideia deste artigo é poder te ajudar a implementar o teu pipeline de dados, pois nada adianta você desenvolver todo o ETL, e ficar executando de forma manual, não faz sentido.

    Como podemos agendar um pipeline desenvolvido no Apache Hop?

    Bom, temos algumas formas de fazer isso. A forma mais simples seria utilizando hop-run, onde criamos um arquivo .bat no Windows ou .sh no Linux.

    Para projetos maiores, talvez seja necessário uma solução própria de orquestração de dados, como por exemplo:

    • Apache Airflow.
    • Jenkins.
    • Dagster.
    • Rundeck.

    Segue o link da documentação oficial do hop-run no site do Hop: Link Documentação

    Segundo a documentação, podemos utilizar o seguinte script como exemplo:

    hop-run.bat -j samples -r local -f ${PROJECT_HOME}/transforms/switch-case-basic.hpl

    Na documentação verá que temos alguns parametros muito interessantes para utilizar no Hop Run.

    Conseguimos executar um mesmo pipeline para projetos diferentes, ambientes, configurações de execução,  particularmente eu gostei das opções que o hop-run oferece.

    Sobre configuração de execução temos um artigo que explicamos a diferença de executar o teu pipeline local e via Hop-Server.

    Criei o seguinte Pipeline para utilizar como exemplo neste artigo:


    Neste ETL, basicamente estamos lendo duas tabelas, fazemos o join e por último gravamos o resultado em uma nova tabela.

    Uma vez que temos o pipeline testado e funcionando.

    Tabela nova criada e com os seus respectivos dados carregados.


    Agora iremos criar o script .bat para este nosso pipeline que acabamos de criar e validar.

    C:\hop\hop-run.bat -j hopbase -r local -f C:\Hop\config\hopbase\test_job.hpl

    Agora vamos testar este script abrindo a linha de comando do Windows, ou abrir o executar e digitar cmd e clicar em Ok.

    Agora basta copiar o comando e verificar se o pipeline será executado no prompt de comando.


    Maravilha, pipeline executado via linha de comando.

    Próximos passos:

    1. Criar uma pasta Jobs no Disco Local(C:\).
    2. Criar um arquivo test.bat copiando o script que utilizamos para executar via linha de comando.
    3. Executar o script .bat clicando duas vezes no arquivo.

    Agora que temos a certeza de que o nosso script .bat está funcionando, vamos para a última etapa do nosso artigo.

    Abrir o Agendador de tarefas do Windows e criar uma tarefa para executar de forma automática.

    Para finalizar, crie uma tarefa, escolha qual a frequência que essa tarefa será executada, uma vez ao dia, de hora em hora.

    E depois na aba Ação selecione o script .bat que criou.

    E pronto o teu pipeline está agendado e executando de forma automática.

    Espero que este artigo tenha te ajudado.

    Muito Obrigado e até o próximo artigo.

    Rafael Arruda.

     

    ]]>
    https://modelo6.augustomello.com.br/agendamento-de-tarefas-no-windows-com-apache-hop/feed/ 7
    Removendo acentos com Pentaho /Hop https://modelo6.augustomello.com.br/removendo-acentos-com-pentaho-hop/ https://modelo6.augustomello.com.br/removendo-acentos-com-pentaho-hop/#respond Sun, 04 Feb 2024 16:04:00 +0000 https://arrudaconsulting.com.br/?p=5487 Olá,

    Tudo bem contigo?

    Quantas vezes já tivemos que remover os acentos de alguma palavra específica, utilizando replace, por exemplo ou até mesmo utilizando o próprio SQL para isso.

    Uma forma bem mais prática de fazer isso é utilizando o step: “User defined Java expression”, este step existe tanto no Pentaho quando no Apache Hop.


    No 1º step, iremos utilizar o Datagrid para escrever algumas palavras que possuem acentuação, e com a expressão abaixo, iremos criar a coluna: sem_acentos removendo todos os acentos que a coluna palavra possui:

    org.apache.commons.lang3.StringUtils.stripAccents(palavra)

    A grande vantagem é que dessa forma, com uma única expressão, garantimos que diversos tipos de acentos serão removidos.


    E após executar o ETL ficou assim os dados.


    Mais um artigo que saiu da comunidade #pentarruda.

    Espero que este artigo tenha ajudado.

    Muito Obrigado.

    Rafael Arruda.

    ]]>
    https://modelo6.augustomello.com.br/removendo-acentos-com-pentaho-hop/feed/ 0
    Como criar uma coluna Hash no Pentaho https://modelo6.augustomello.com.br/como-criar-uma-coluna-hash-no-pentaho/ https://modelo6.augustomello.com.br/como-criar-uma-coluna-hash-no-pentaho/#comments Tue, 06 Jun 2023 11:07:37 +0000 https://arrudaconsulting.com.br/?p=5313 Olá,

    Tudo bem contigo?

    Muito se fala em LGPD, Lei Geral de Proteção dos Dados, mas como implementarmos isso no nosso ETL, ou melhor como proteger dados sensiveis, como Nome, telefone, email.

    Uma forma bastante simples de se fazer isso no Pentaho é utilizando o step: Add a checksum.

    Iremos começar com duas colunas, o código e o nome.

     

     

     

     

     

    Agora a ideia é poder normalizar esses dados, com o intuito de proteger o nome da pessoa.

    Utilizando o step mencionado acima iremos escolher o tipo MD5 para criar o nosso hash.

     

     

     

     

     

     

     

     

    Após executar o nosso pipeline, temos os nossos dados inciais e a nova coluna que foi criada pelo step.

     

     

     

     

     

     

     

     

    Agora para finalizar adicionamos um Select Values para removermos a coluna nome, e assim iremos ter o nome e a coluna hash no etl.

     

     

     

     

     

     

     

     

     

     

     

     

    Muito Obrigado.

    E até o próximo artigo.

    ]]>
    https://modelo6.augustomello.com.br/como-criar-uma-coluna-hash-no-pentaho/feed/ 3
    Treinamento: Python para Engenheiro de dados – 1º dia https://modelo6.augustomello.com.br/treinamento-python-para-engenheiro-de-dados-1o-dia/ https://modelo6.augustomello.com.br/treinamento-python-para-engenheiro-de-dados-1o-dia/#respond Sun, 21 May 2023 18:08:35 +0000 https://arrudaconsulting.com.br/?p=5304 Olá,

    Tudo bem contigo?

    Nesse sábado, 20/05/2023, tivemos o 1º dia do nosso mais novo treinamento, Python para Engenheiro de dados, aplicado pelo instrutor Leandro Silva.

    Neste sábado foram abordados os seguintes temas:

    • Criação da conta na Google Cloud.
    • Utilizamos o IAM para criar as permissões e acessos.
    • Criação de um banco de dados na nuvem, no caso o PostgreSQL.
    • Conectamos no Bando de dados via Dbeaver
    • Instalação do Python e também Vscode
    • Conectamos no Postgres utilizando o Python.
    • Criação da camada raw(bronze) do nosso data lake na Google Cloud utilizando o Python para ingestão dos dados.

    Tudo isso no formato 100% Hand-ons, muito prático, sem contar que quando um aluno tinha algum erro, compartilhava a tela e o nosso instrutor e os alunos resolviam o problema, erros que os alunos só iriam ver em seus projetos conseguiram não só ver esses erros mas como resolver também.

    Temos a certeza que após esse treinamento nossos alunos estarão muito mais preparados para as oportunidades de Engenheiro de dados.

    Sábado que vem temos mais 8 horas de imersão de Python com Google Cloud.

    Muito Obrigado a todos os nossos alunos que confiaram mais uma vez no nosso trabalho!!

    Até o próximo artigo!!

     

     

    ]]>
    https://modelo6.augustomello.com.br/treinamento-python-para-engenheiro-de-dados-1o-dia/feed/ 0
    Como utilizar a função Zip() no Python https://modelo6.augustomello.com.br/como-utilizar-a-funcao-zip-no-python/ https://modelo6.augustomello.com.br/como-utilizar-a-funcao-zip-no-python/#comments Mon, 17 Apr 2023 12:00:37 +0000 https://arrudaconsulting.com.br/?p=5217 O Python é uma linguagem de programação muito versátil e poderosa, com muitas ferramentas úteis para ajudar a simplificar o desenvolvimento de software. Uma dessas ferramentas é a função zip() que permite combinar elementos de duas ou mais listas em uma única lista.

    A função zip() é usada para juntar duas ou mais listas em uma única lista de tuplas, onde cada tupla contém um elemento de cada uma das listas fornecidas. A função zip() é muito útil quando precisamos percorrer duas ou mais listas simultaneamente, pois elimina a necessidade de usar loops aninhados.

    Sintaxe:

    zip(*iterables)

    O parâmetro iteráveis é uma sequência de objetos iteráveis (por exemplo, listas, tuplas ou strings) que serão agrupados. O operador * antes do parâmetro iteráveis é usado para descompactar a sequência de objetos iteráveis.

    Exemplo de uso:

    lista1 = [1, 2, 3]
    lista2 = ['a', 'b', 'c']
    
    zipped = zip(lista1, lista2)
    
    for i in zipped:
       print(i)

    Resultado:

    (1, 'a')
    (2, 'b')
    (3, 'c')
    

    No exemplo acima, a função zip() é usada para combinar as listas lista1 e lista2 em uma única lista de tuplas. O loop for é então usado para imprimir cada tupla.

    Um exemplo prático de uso do zip() seria o cálculo da média de notas de alunos em diferentes disciplinas. Suponha que tenhamos as seguintes listas:

    notas_aluno1 = [8, 9, 7]
    notas_aluno2 = [6, 7, 5]
    notas_aluno3 = [10, 9, 9]
    disciplinas = ['Matemática', 'Português', 'Ciências']

    Para calcular a média de notas de cada aluno em cada disciplina, podemos usar o zip() da seguinte maneira:

    for notas in zip(notas_aluno1, notas_aluno2, notas_aluno3):
        media = sum(notas) / len(notas)
        print(f"A média das notas do aluno é {media}")

    O resultado seria:

    A média das notas do aluno é 8.0
    A média das notas do aluno é 6.0
    A média das notas do aluno é 9.33

    Neste exemplo, o zip() é usado para combinar as notas de cada aluno em uma única lista de tuplas. Em seguida, é calculada a média de notas de cada aluno usando a função sum() e o número de notas usando a função len().

    Em resumo, a função zip() é uma ferramenta útil para simplificar a manipulação de listas em Python, especialmente quando precisamos percorrer várias listas simultaneamente. Combinar várias listas em uma única lista de tuplas usando o zip() pode ajudar a tornar o código mais legível e fácil de entender.

    Quer aprender mais…
    Então participe da nossa live que será no dia 09/05/2023, para se inscrever só clicar no link abaixo:

    Live – Python + GCP

    Muito Obrigado e nos vemos na live!!

    ]]>
    https://modelo6.augustomello.com.br/como-utilizar-a-funcao-zip-no-python/feed/ 1
    1ª turma do Hopbase Finalizada https://modelo6.augustomello.com.br/1a-turma-do-hopbase-finalizada/ https://modelo6.augustomello.com.br/1a-turma-do-hopbase-finalizada/#respond Sun, 12 Mar 2023 22:10:17 +0000 https://arrudaconsulting.com.br/?p=5162 Olá, tudo bem contigo?

    Que treinamento meus amigos que tivemos nesses últimos 2 sábados, uma turma realmente íncrivel.

    O Hopbase surgiu com o propósito de poder proporcionar para as empresas criarem suas soluções de B.I sem precisar gastar um centavo com licenças, e aos profissionais que tiverem esse conhecimento conseguem agregar ainda mais valor as empresas e começarem a fazer as suas primeiras consultorias, conquistar os seus primeiros clientes, um conteúdo para os nossos alunos mudarem de patamar mais uma vez com a Arruda Consulting.

    Temas abordados:

    • O que é o Hopbase?
    • O que é Business Intelligence.
    • Preparando o ambiente.
    • Criando um projeto e os seus ambientes(DEV,QA,PRD)
    • Conectando o Apache Hop num banco de dados.
    • Tratando os dados com Apache Hop sem utilizar uma linha de código.
    • Integrando dados do Chat GPT no Hop via API.
    • Automatizando a integração do Chat GPT de forma dinâmica.
    • Aprendendo a trabalhar com variaveis e parametros no Hop.
    • Instalação do Hop Server.
    • Integrando o Apache Hop com o Hop Server.
    • Agendando o ETL para executar de forma agendada.
    • Criando um pipeline para carregar as tabelas da Stage em um único ETL.
    • O que é o Metabase?
    • Analisando dados com o Metabase.
    • Qual a importância do Data Discovery e como ele pode impactar os projetos de B.I.
    • Relacionando dados, agrupando e criando métricas no Metabase.
    • Criação de gráficos.
    • Criando o nosso primeiro painel.
    • Criando um Sub-Dashboar e também um Sub-report.
    • Criando uma solução de dados near real-time.

    Tudo isso em 2 sábados, 16 horas de conteúdo.

    Gostaria muito de agradecer aos mais de 30 alunos que fizeram desse novo treinamento tão íncrivel!!

    Muito Obrigado!!

    ]]>
    https://modelo6.augustomello.com.br/1a-turma-do-hopbase-finalizada/feed/ 0