PDI – Arruda – Data Consulting https://modelo6.augustomello.com.br Wed, 12 Jul 2023 10:37:14 +0000 pt-BR hourly 1 https://wordpress.org/?v=6.8.3 https://modelo6.augustomello.com.br/wp-content/uploads/2025/08/cropped-Logo-Arruda-Consulting-2025-Picto-1b-32x32.png PDI – Arruda – Data Consulting https://modelo6.augustomello.com.br 32 32 Epoch – como converter para um formato de Data https://modelo6.augustomello.com.br/epoch-como-converter-para-um-formato-de-data/ https://modelo6.augustomello.com.br/epoch-como-converter-para-um-formato-de-data/#respond Wed, 12 Jul 2023 10:37:14 +0000 https://arrudaconsulting.com.br/?p=5376 Olá,

Com o aumento de API´s no nosso dia a dia, surgem alguns casos pontuais que quando trabalhávamos só com arquivos ou bancos de dados não apareciam.

Algumas API retornam os dados de data em formato Epoch:

 

 

 

 

 

 

 

 

 

 

Esse número corresponde a data que estou escrevendo esse artigo, agora iremos fazer essa conversão lá no Pentaho.

Iremos utilizar o generate rows para criar uma coluna com esse número, um detalhe importante é que esse valor está em milisegundos, portanto se dividirmos por 1000, e transformar esse dado em data iremos chegar no resultado que precisamos.

Então com o step add constraint iremos criar uma coluna com o valor fixo de 1000, para finalizarmos o nosso teste basta multiplicar essas duas colunas, utilizando o calculator, e perceba que já informamos no step o tipo de dados: Date e também o formato da data.

 

 

 

 

 

Agora iremos executar a transformação.

 

 

 

 

 

 

 

 

 

E pronto, dessa forma convertemos uma data do formato epoch para um formato datetime, de forma rápida e simples utilizando o Pentaho Data Integration.

Espero que este artigo tenha te ajudado de alguma forma.

Quer aprender mais sobre este e outros tratamentos de dados utilizando o Pentaho Data Integration, no próximo dia 08/08/2023 iremos fazer uma live de 2 horas de conteúdo de ETL aonde vamos fazer diversos tratamentos ao vivo, mais um evento gratuito para a comunidade.

Segue o Link para se inscrever.

Quero Participar

Muito Obrigado e até o próximo artigo!

 

 

 

]]>
https://modelo6.augustomello.com.br/epoch-como-converter-para-um-formato-de-data/feed/ 0
Como realizar agendamentos no Pentaho Server utilizando sintaxe Crontab Quartz https://modelo6.augustomello.com.br/como-realizar-agendamentos-no-pentaho-server-utilizando-sintaxe-crontab-quartz/ https://modelo6.augustomello.com.br/como-realizar-agendamentos-no-pentaho-server-utilizando-sintaxe-crontab-quartz/#respond Sat, 20 May 2023 01:50:43 +0000 https://arrudaconsulting.com.br/?p=5282 Opa!! e aí como vai?

Tenho uma dica super bacana para te passar! Você sabia que é possível utilizar sintaxe cron em agendamentos no Pentaho Server? irei te mostrar como neste artigo.

Digamos que você tenha a necessidade de executar um agendamento personalizado, por exemplo, executar um processo diariamente em horários expecíficos.

Para realizar essa configuração, primeiramente você precisa conhecer como funciona o uso do cron no Pentaho Server pois é um pouco diferente do que usamos em terminais linux. Observe:

No crontab que utilizamos em terminal linux os campos são especificados da seguinte forma:

Minutos Horas DiaDoMês Mês DiaDaSemana

Para o Pentaho server, a sintaxe cron utiliza mecanismos do Quartz onde a especificação dos campos muda um pouquinho e precisamos ficar atentos a isso.

Segundos Minutos Horas DiaDoMês Mês DiaDaSemana

Após entender essa forma de declarar os campos é só partir para o abraço!

Vou demonstrar como fazer um agendamento para executar diariamente a cada 03 horas, sendo a primeira as 10h30, 13h30,16h30 e 19h30.

Para configurar o agendamento siga o passo a passo abaixo:

  • Acesse o Pentaho server através do navegador;
  • Acesse o Browse files e escolha o Job em seu repositório o qual deseja agendar e clique em next;
  • No campo Recurrence escolha a Opção CRON e clique em next;
  • Preencha o campo cron string com a sua string de execução clique em next e depois em finish;

Prontinho!! agora seu agendamento ja esta configurado, se acessar a guia schedulle verá o seu job na fila trilha de agendamentos!!

Para maiores informações segue o link da documentação:

https://help.hitachivantara.com/Documentation/Pentaho/8.2/Products/User_Console/Schedule_Reports
https://help.hitachivantara.com/Documentation/Pentaho/8.2/Products/User_Console/Schedule_Reports/Quartz_Cron_Attributes

Muito Obrigado.

E até o próximo Artigo

]]>
https://modelo6.augustomello.com.br/como-realizar-agendamentos-no-pentaho-server-utilizando-sintaxe-crontab-quartz/feed/ 0
Vaga – Analista de BI – SP https://modelo6.augustomello.com.br/vaga-analista-de-bi-sp/ https://modelo6.augustomello.com.br/vaga-analista-de-bi-sp/#comments Wed, 19 Apr 2023 10:16:39 +0000 https://arrudaconsulting.com.br/?p=5221 Olá,

Tudo bem contigo?

Passando pra avisar que estamos aumentando o nosso time, estamos com uma oportunidade para trabalhar em São Paulo.

Para essa oportunidade estamos pedindo como pré-requisito, Power BI e conhecimento em linguagem SQL.

Neste projeto temos 2 engenheiros de dados trabalhando aonde estão extraindo os dados dos sistemas de origem e utilizando o Pentaho para gravar os dados no Big Query, utilizando a mesma arquitetura do nosso curso de GCP,  caso queira conhecer a arquitetura utilizada só clicar no link abaixo:

https://arrudaconsulting.com.br/pentaho-gcp/

São 6 meses de projeto e modalidade PJ.

Caso tenha interesse basta enviar o teu CV para o email: contato@arrudaconsulting.com.br

Muito Obrigado!!!

]]>
https://modelo6.augustomello.com.br/vaga-analista-de-bi-sp/feed/ 1
Erro ao gravar dados no Google Storage utilizando o Pentaho – Solução https://modelo6.augustomello.com.br/erro-ao-gravar-dados-no-google-storage-utilizando-o-pentaho-server/ https://modelo6.augustomello.com.br/erro-ao-gravar-dados-no-google-storage-utilizando-o-pentaho-server/#respond Sat, 11 Feb 2023 19:48:22 +0000 https://arrudaconsulting.com.br/?p=5113 Olá,

Tudo bem contigo?

Recentemente um dos nossos alunos estava com dificuldades para gravar dados no Google Storage, para poder criar o seu 1º Data lake, utilizando o Pentaho Data Integration, funcionava normal, porém na hora de entregar o projeto.

Criar o Servidor na Google Cloud, utilizando o Compute Engine e instalar o Pentaho Server, tudo ok.

Não sabe criar um servidor na nuvem e instalar o Pentaho Server? Não tem problema temos uma live aonde fizemos esse processo, só clicar no link abaixo:

Porém na hora de executar o ETL, dava erro de permissão, segue o erro abaixo:

 

 

 

 

 

 

 

Esse erro é porque a nossa chave json, do Compute Engine não tem algumas permissões do serviço Google Storage, é necessário Ir até o serviço IAM e clicar em papéis.

 

 

 

 

 

 

 

 

 

Iremos criar um papel,  que vamos chamar de Storage, e depois iremos clicar em Adicionar permissões.

 

 

 

 

 

 

Iremos adicionar as seguintes permissões:

composer.dags.execute
composer.dags.get
composer.dags.list
composer.environments.create
composer.environments.delete
composer.environments.get
composer.environments.list
composer.environments.update
composer.imageversions.list
composer.operations.delete
composer.operations.get
composer.operations.list
serviceusage.quotas.get
serviceusage.services.get
serviceusage.services.list
storage.buckets.create
storage.buckets.createTagBinding
storage.buckets.delete
storage.buckets.deleteTagBinding
storage.buckets.get
storage.buckets.getIamPolicy
storage.buckets.list
storage.buckets.listEffectiveTags
storage.buckets.listTagBindings
storage.buckets.setIamPolicy
storagetransfer.projects.getServiceAccount

 

Agora basta editarmos a conta que a nossa chave foi criada e adicionar o papel Storage na conta, dessa forma estaremos adicionando as permissões acima na nossa conta.

E para finalizar se voltar no IAM irá ter a conta do Compute Engine, será necessário criar uma chave nessa conta, e atualizar a tua variável de ambiente:

Basta utilizar o comando para atualizar a variável de ambiente para essa nova chave, e reiniciar o serviço do Pentaho Server e executar a transformação novamente!

 

 

 

 

 

 

E agora conseguimos executar o nosso pipeline com sucesso, gerando o arquivo no Google Storage.

 

 

 

 

 

 

 

 

 

Ao verificar o log, vemos que temos os dados no log do Pentaho Server.

Arquivo gerado com sucesso no Google Storage.

 

 

 

 

Esse artigo te ajudou? Comente aqui e compartilha, pois foram horas de tentativa e erro para chegar nessa solução.

Agora só entregar o seu projeto com essa baita solução Pentaho + GCP.

Muito Obrigado e até o próximo artigo!

 

]]>
https://modelo6.augustomello.com.br/erro-ao-gravar-dados-no-google-storage-utilizando-o-pentaho-server/feed/ 0
Trabalhando com API no Pentaho. https://modelo6.augustomello.com.br/trabalhando-com-api-no-pentaho/ https://modelo6.augustomello.com.br/trabalhando-com-api-no-pentaho/#comments Sun, 27 Nov 2022 15:17:36 +0000 https://arrudaconsulting.com.br/?p=5073 Olá, Tudo bem contigo?

Atualmente é muito comum no nossoa dia a dia extrair dados de API não é mesmo?

E A ideia desse artigo é te mostrar que o Pentaho é uma excelente opção de trabalhar com api sem ter que utilizar uma única linha de código.

Para o nosso exemplo, iremos utilizar a API de Cotação de moedas.

Link:https://docs.awesomeapi.com.br/api-de-moedas

Sempre que tenho que integrar dados de alguma API eu utilizo o Postman primeiro para eu entender como essa API funciona, pois cada API pode ser desenvolvido de uma maneira e somente quando entendendo com a api funciona, quais campos retorna que inicio a extração dos dados via pentaho.

O link baixo está retornando os seguintes dados:

https://economia.awesomeapi.com.br/json/last/EUR-BRL

Agora iremos criar uma requisição com essa mesma url no Postman

Percebam que no Postman fica muito mais fácil identificar quais são as colunas.

Pronto agora já podemos ir para o Pentaho para tentar replicar a mesma coisa que fizemos no Postman.

Iremos utilizar 4 steps para esse exemplo:

Generate row – > para informar a url que retorna os dados

Rest Client – > Para fazermos a requisição.

Json Input – > Para converter os dados que estão no formato Json para colunas.

Select Values – > Para remover as colunas de url e também de result, e iremos manter somente os dados que API retorna.

E assim ficou o nosso ETL.

Ficou com alguma dúvida veja o vídeo com o passo a passo.

Dúvidas nos comentários.

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

 

 

 

 

 

 

 

 

 

]]>
https://modelo6.augustomello.com.br/trabalhando-com-api-no-pentaho/feed/ 9
Utilizando o Resultado de uma query como filtro no Pentaho – subqueyr https://modelo6.augustomello.com.br/utilizando-o-resultado-de-uma-query-como-filtro-no-pentaho/ https://modelo6.augustomello.com.br/utilizando-o-resultado-de-uma-query-como-filtro-no-pentaho/#respond Sat, 16 Jul 2022 14:59:34 +0000 https://arrudaconsulting.com.br/?p=5040 Olá, tudo bem contigo?

Nesse artigo estamos trazendo uma dica bem bacana, de como utilizar 2 querys no Pentaho, aonde o resultado da 1ª query utilizamos como filtro na 2ª. Essa funcionalidade é muito utilizada quem trabalha com banco de dados que é a Sub-Query.

E essa funcionalidade traz outros insights, como por exemplo quando estamos utilizando uma query com filtro de data, mas se utilizarmos pelo id teriamos uma performance melhor, então nesse caso o 1º Table input seria para pegar o 1º id da sua data e no 2º Table input utilizaria esse id como filtro.

Várias possibilidades.

Segue o link do Vídeo:

[embedyt] https://www.youtube.com/watch?v=JJdVISShYy0[/embedyt]

E Aproveite para se Inscrever no nosso próximo evento 100% Gratuito!

Semana Pentarruda Cloud:

https://www.sympla.com.br/evento-online/semana-pentarruda-cloud/1643030

Muito Obrigado.

E até o próximo Artigo!

 

 

 

]]>
https://modelo6.augustomello.com.br/utilizando-o-resultado-de-uma-query-como-filtro-no-pentaho/feed/ 0
Conexão API com URL dinâmica. https://modelo6.augustomello.com.br/conexao-api-com-url-dinamica/ https://modelo6.augustomello.com.br/conexao-api-com-url-dinamica/#respond Wed, 22 Jun 2022 18:53:48 +0000 https://arrudaconsulting.com.br/?p=5017 Fazer conexão via API, pode ser uma dor de cabeça para alguns, principalmente quando a API é paginada… mas quando é uma API dinâmica, como faz? Calma, vou tentar te ajudar!

Neste artigo, vou te apresentar uma solução para conexão API, na qual a URL é dinâmica, ou seja, o detalhamento dos clientes vem de acordo com o seu ID e este ID deve ser passado na própria url da API.

Exemplo: https://services.contaazul.com/contaazul-bff/person-registration/v1/persons/12345678-aa12-1a2b-3a4c-1bc123456789/resume

O ponto aqui é que esse código (em negrito, no exemplo) muda e para requisitar o detalhamento do cliente, temos que utilizar o corresponde a cada cliente.

Vejamos a solução.

Transformação 1
Transformação 1

Transformação 1 – Utilizada para recuperar os códigos (uuid) que serão usados na url dinâmica.

1 – Utilizaremos o step “Table input” para pegar o código UUID de cada cliente, da tabela dCliente;

2 – O step “Sort rows” é usado para ordenar esses códigos;

3 – O “Unique rows” é usado para remover os códigos duplicados e evitar duplicidade;

4 – Para encerrar, o “Copy rows to result” vai gerar a relação de códigos distintos e será usado na sequência da trilha.

 

Transformação 2 – Faz a extração dos dados e salva no banco de dados

Esses são os steps que usaremos nesta nova trilha:

  1. Get rows from result – Pega a relação dos códigos uuid distintos (criada na transformação 1, no step “Copy rows to result”);
  2. Modified JavaScript value – Cria a url dinâmica (poderia usar o Concat Fields também);
    1. O script ficou assim: var link = ‘https://services.contaazul.com/contaazul-bff/person-registration/v1/persons/’ + uuid + ‘/resume’

      Step usado para concatenar os dados e criar a URL dinâmica
  3. Generate rows– Passa os parâmetros necessários para a conexão com a API;
  4. Join Rows – Join entre os steps 2 e 3;
  5. HTTP Client – Usado para a chamada e na aba de Fields, passa os Headers, quem vem no Generate rows;
  6. Select values –Usei apenas para organizar o resultado da etapa anterior e levar para a seguinte;
  7. Json input – Traz as informações necessárias, passando as “colunas” em Field;
    1. As “colunas” podem ser conhecidas através da consulta no Postman, por exemplo, ou na própria documentação da API.
    2. Usei duas vezes, devido a hierarquia da api
  8. Select values – Reorganiza as colunas;
  9. Table output – Salva no banco de dados.
    1. Deixei a opção de truncate desmarcada.
      1. Para evitar duplicação em cargas futuras, vamos usar a carga incremental (tema do meu próximo artigo).
A trilha final fica assim

Quase pronto! Você já tem a relação de códigos distintos e já fez a conexão com a API, mas como fazer com que o PDI carregue cada linha do código (uuid) e você salve o detalhamento no banco de dados? Resposta: faz um job!

Exemplo do Job a ser usado

O segredo todo está na transformação de “Detalhamento”, na qual você deve marcar o “Execute Every input row”, após clicar em editar, e será sucesso.

Atenção pois, a depender da quantidade de registros, pode dar problema com a memória alocada para o PDI, o que pode ser ajustado e até mesmo, fazer esta etapa por recorte temporal, por meses ou o critério que você definir nesta carga full e usar a incremental, para passar na Transformação 1 apenas os códigos novos da dCliente, por exemplo.

Espero ter ajudado e até a próxima.

Thiago Viana.

]]>
https://modelo6.augustomello.com.br/conexao-api-com-url-dinamica/feed/ 0
Como Iniciar e Desligar Instâncias no serviço AWS EC2 automaticamente e fazer o Pentaho Server Iniciar como um Serviço. https://modelo6.augustomello.com.br/como-iniciar-e-desligar-instancias-no-servico-aws-ec2-automaticamente-e-fazer-o-pentaho-server-iniciar-como-um-servico/ https://modelo6.augustomello.com.br/como-iniciar-e-desligar-instancias-no-servico-aws-ec2-automaticamente-e-fazer-o-pentaho-server-iniciar-como-um-servico/#comments Mon, 02 May 2022 11:09:13 +0000 https://arrudaconsulting.com.br/?p=4845 Olá Tudo bem? No artigo de hoje irei te mostrar como programar a inicialização e o desligamento de instâncias no serviço da AWS  EC2 (Amazon Elastic Compute Cloud) e fazer o Pentaho Server Iniciar e desligar automaticamente, como um serviço desta instância.

Em um cenário de arquiteturas Cloud voltadas para implementações de processos de BI e BIG Data, temos a possibilidade de escolher os recursos computacionais para os nossos servidores, para que possam dar sustentabilidade aos processos de engenharia de dados, montando assim arquiteturas que sejam escaláveis, com alta disponibilidade e também com maiores possibilidades de previsão dos custos, porém os desafios para se gerenciar um ambiente como este são enormes, e se não houver cuidado, podemos ter serviços sendo utilizados de forma errada, instâncias ligadas sem necessidade, aumentando assim os custo desta arquitetura.

Pensando nisso, como poderíamos programar para que as instâncias, onde estão instalados os servidores de nossas aplicações, possam ser ligadas e desligadas de forma automática para orquestrar a execução dos nossos pipelines de dados para carga de Data Lakes e Data Warehouses ?

Vem comigo!!!

Irei te mostrar como fazer isso através deste artigo.

Na arquitetura em questão, temos uma instância Linux (Ubuntu) e um cenário onde o processo de ELT / ETL é orquestrado pelas ferramentas da suíte Pentaho, data integration e Pentaho Server.

Vamos iniciar o processo pela programação da instância, iremos utilizar os serviços abaixo:

  • AWS IAM (Identity and Access Management) – Criar a Politica e a função que dará permissão para execução do Workload.
  • AWS Lambda – Criar o código para execução do Workload.
  • AWS EventBridge – Criar as regras e programar a execução do agendamento.

Criar a Politica no AWS IAM

Acesse o serviço IAM no console da AWS

  • Clicar em Políticas.
  • Criar Política.
  • Escolher opção JSON e colar o código abaixo:

{
“Version”: “2012-10-17”,
“Statement”: [
{
“Effect”: “Allow”,
“Action”: [
“logs:CreateLogGroup”,
“logs:CreateLogStream”,
“logs:PutLogEvents”
],
“Resource”: “arn:aws:logs:*:*:*”
},
{
“Effect”: “Allow”,
“Action”: [
“ec2:Start*”,
“ec2:Stop*”
],
“Resource”: “*”
}
]

}

 

  • Clicar em Próximo: Tags.
  • Clicar em Próximo: Revisar.
  • Faça a revisão da política e em seguida clique em Criar Política.

 

 

 

 

 

 

 

 

 

 

 

 

 

Criar a Função no AWS IAM

Com esta função daremos permissão ao serviço AWS Lambda que definimos na política criada.

  •  Clicar em Funções escolher as opções conforme print abaixo e clicar em próximo.

  • Adicionar a política criada e clicar em próximo, na próxima tela, nomeie, revise e clique em criar função

Agora que já criamos as permissões no IAM iremos partir para o LAMBDA para criar os códigos de inicialização e desligamento da EC2.

Criando as funções no AWS LAMBDA

  • Acessar o serviço AWS LAMBDA
  • Criar função
  • Nomeie sua função
  • Escolha a opção de Python que será utilizada para escrita do código
  • Atribua permissão com base numa função existente ( aquela que criamos acima).
  • Clique em criar função

Ao clicar em criar função abrirá a tela abaixo, observe com atenção o que precisa ser feito:

  • Limpe o conteúdo do Lambda function e cole o seguinte código:

import boto3
region = ‘inserir nome da região
instances = [‘inserir o id da instancia‘]
ec2 = boto3.client(‘ec2’, region_name=region)
def lambda_handler(event, context): ec2.start_instances(InstanceIds=instances)
print(‘started your instances: ‘ + str(instances))Observação: para preencher os campos acima em negrito, acesse sua instancia e veja em qual região foi criada e copie o Id da Instancia.

  • Clicar em Deploy
  • Clicar novamente em Funções onde repetiremos o processo acima para criar a função Lambda de desligamento
  • Limpe o conteúdo do Lambda function e cole o seguinte código:

import boto3
region = ‘inserir nome da região
instances = [‘inserir o id da instância‘]
ec2 = boto3.client(‘ec2’, region_name=region)
def lambda_handler(event, context): ec2.stop_instances(InstanceIds=instances)
print(‘stopped your instances: ‘ + str(instances))Observação: para preencher os campos acima em negrito, acesse sua instancia e veja em qual região foi criada e copie o Id da Instancia.

Finalizado este processo teremos duas funções Lambda criadas, sendo uma para iniciar e outra para desligar a instância. Agora precisamos criar a regra no AWS EventBridge para executar estas funções e configurar o agendamento.

Criando o evento no AWS EventBridge

  • Acessar o serviço AWS EventBridge
  • Dentro da guia eventos, clique em Regras
  • Criar Regra
    Observe exemplo de como deverá ficar

  • Clique novamente em criar Regra e repita o processo acima para criar o evento de desligamento.
  • Ao final desta etapa você terá duas regras criadas e com agendamento configurado, em caso de dúvidas na criação do agendamento clique aqui
    Observação: por padrão o agendamento segue o fuso GMT, será necessário então acrescentar 3 horas para adapta-lo ao fuso horário do Brasil.

Realize os testes do agendamento e confira no painel de EC2 se a sua instância esta ligando e desligando conforme esperado.

Com a aplicação dos passos acima já podemos programar os nossos servidores usando os serviços da AWS, mas e quanto ao Pentaho Server? como podemos inicializa-lo ou desliga-lo com base nestes mesmos agendamentos que criamos para as instancias ao invés de ter que acessar o terminal e executar manualmente os comandos de start e stop?

Vamos lá!!! vou te mostrar como, saca só!!!

Para fazermos o Pentaho Server iniciar, precisamos criar um script de inicialização utilizando o systemmd.

  • Acesse sua instância linux via terminal #telapreta!!!!
  • execute o comando sudo vi /etc/systemd/system/pentaho.service
    • Na tela que irá abrir clique na tecla I, para habilitar o arquivo para edição e cole o script abaixo:

[Unit]
Description=Pentaho Server
After=network.target

[Service]
Type=forking

Environment=PENTAHO_JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
Environment=JRE_HOME=/usr/lib/jvm/java-8-openjdk-amd64/jre
Environment=CATALINA_PID=/opt/pentaho/pentaho-server/tomcat/temp/tomcat.pid

ExecStart=/opt/pentaho/pentaho-server/start-pentaho.sh
ExecStop=/opt/pentaho/pentaho-server/stop-pentaho.sh
ExecLimpeza=/opt/pentaho/pentaho-server/executa_limpeza_arquivos_pentaho_server.sh

User=root
Group=root
UMask=0007
RestartSec=10
Restart=always

[Install]

WantedBy=multi-user.target

  • para sair desta tela de edição e salvar o comando criado realize o seguinte procedimento:
  • Clicar em ESC : wq (ESC + dois pontos+w+q)
  • Execute o comando sudo systemctl enable pentaho.service para habilitar o serviço.
  • Execute o comando sudo systemctl daemon-reload para carregar o serviço.
  • Execute o comando sudo systemctl start pentaho para iniciar o Pentaho Server.
  • Execute o comando sudo  systemctl status pentaho para checar o status.

Observação: Fique atento as variáveis de ambiente, caso não as tenha criadas, execute o comando vi /etc/environment e crie as variaveis, caso contrário os serviços não irão inicializar.

Se os procedimentos estiverem todos corretos, ao iniciar a instancia, o Pentaho Server irá iniciar junto e quando a instancia for desligada, será realizado o stop.

E assim terminamos mais um artigo, curtiram? solução top de mercado para orquestrarmos nossos Pipelines de dados no ambiente AWS.

Material de Aprofundamento:

Se você quiser aprender mais sobre Integração de Dados em Nuvem com AWS  Então Clique Aqui para conhecer o Curso de AWS com Pentaho.

Você irá aprender uma das habilidades mais procuradas do mercado de dados nesse curso completo! O Que é e como criar um Data Lake do zero na AWS (Amazon Web Services)

 

]]>
https://modelo6.augustomello.com.br/como-iniciar-e-desligar-instancias-no-servico-aws-ec2-automaticamente-e-fazer-o-pentaho-server-iniciar-como-um-servico/feed/ 1
Começou a 3ª turma do GCP https://modelo6.augustomello.com.br/comecou-a-3a-turma-do-gcp/ https://modelo6.augustomello.com.br/comecou-a-3a-turma-do-gcp/#respond Mon, 14 Mar 2022 13:42:10 +0000 https://arrudaconsulting.com.br/?p=4896 E assim foi o nosso 1º dia de Treinamento: Pentarruda Google Cloud.

Após o sucesso das duas primeirar turmas, abrimos mais uma, antes de termos o conteúdo em EAD.

No 1º dia do treinamento, o foco foi em criar uma plataforma de dados, utilizando as coluções da Google e também do Pentaho.

  • Preparamos o ambiente.
  • Criamos a conta da GCP do zero.
  • Configuramos a conta de serviço no IAM.
  • Integramos o Pentaho Data Integration com a GCP.
  • Criamos um Data Lake.
  • Fizemos consulta no Data Lake utilizando o Big Query
  • Conectamos o Data Studio e o Power BI no Data Lake.

 

 

E sábado que vem tem mais 8 horas de Google Cloud Plataform.

Muito Obrigado por confiarem no nosso trabalho para se tornarem um Engenheiro de dados.

 

]]>
https://modelo6.augustomello.com.br/comecou-a-3a-turma-do-gcp/feed/ 0
Criando um Processo de Carga Dinâmica com o Pentaho Data Integration https://modelo6.augustomello.com.br/criando-um-processo-de-carga-dinamica-com-o-pentaho/ https://modelo6.augustomello.com.br/criando-um-processo-de-carga-dinamica-com-o-pentaho/#comments Sat, 06 Nov 2021 14:33:49 +0000 https://arrudaconsulting.com.br/?p=4496 Criando um Processo de Carga Dinâmica com o Pentaho Data Integration

Antes de mais nada Em um projeto de Business Intelligence é muito comum nos depararmos com a necessidade de realizar a migração em massa de tabelas de um banco de dados para outro para termos ganho de tempo no processo de desenvolvimento.

Nesse sentido Digamos que você tenha 50 tabelas num banco de dados SQL Server e estas mesmas tabelas já estejam criadas num banco de dados Postgres ou até mesmo que você queira escolher quais destas tabelas irá carregar os dados para sua área de staging.

Vamos ao desafio…

dentro de um processo normal no Pentaho você precisaria criar uma transformação para cada tabela, porém neste caso temos várias tabelas, sendo assim, como poderíamos criar um processo dinâmico onde pudéssemos realizar esta extração e carga utilizando-se de uma única transformação?

Neste artigo irei te mostrar como fazer um Processo de Carga Dinâmica com o Pentaho !!

Primeiramente, precisamos garantir que todas as tabelas já estejam criadas no banco de dados de destino.

Assim iremos montar a seguinte estrutura:

  1. Criar um arquivo de parâmetros que contenha as informações do schema e nome das tabelas de origem e destino e uma coluna de FLAG que te permita escolher qual tabela será carregada;
  2. Desenvolver uma transformação para carregar os dados do arquivo de parâmetros para área de staging;
  3. Criar um JOB para automatizar o processamento do arquivo;
  4. Fazer uma transformação para ler os dados do arquivo de parâmetros e guardar o resultado;
  5. Desenvolver uma transformação que receba os parâmetros e executar dinamicamente a leitura do banco de origem e carregamento da tabela de destino;
  6. Criar uma JOB que seja executada em forma de looping para cada tabela pré-definida para carga;

Mão na Massa!!!

Para criar o arquivo de parâmetros você pode realizar o comando abaixo, copiar os dados para o Excel e após isso editar seu arquivo para associar as tabelas de origem com as tabelas de destino. Agora Observem o layout do arquivo como deverá ficar!

SELECT 

TABLE_CATALOG,

TABLE_SCHEMA,

TABLE_NAME,

FROM INFORMATION_SCHEMA.COLUMNS

O pulo do gato para dinamizar qual tabela carregar está na coluna “CARREGAR_STAGING” onde você poderá marcar SIM para o que deseja processar.

Transformação para carga do arquivo de Parâmetros Carga Staging.

Job para processamento do Arquivo de parâmetros

Dessa forma No Job acima estamos inicialmente verificando se o arquivo para processamento esta disponível em seu diretório de origem, ainda assim caso o arquivo esteja na pasta, seguiremos o fluxo, caso contrário o Job será abortado.

Após carregamento do arquivo, o mesmo é movido para uma pasta de arquivos processados e um e-mail de sucesso será enviado.

Assim Caso tenhamos erro no processamento do arquivo, o mesmo será movido para uma pasta de erro e um e-mail de falha será enviado.

Agora vamos montar o processo de carga!!

Com os dados do arquivo de parâmetros já atualizados em nossa staging iremos criar a seguinte transformação:

Parâmetros Staging

Dessa forma No primeiro step lemos a nossa staging para obter os dados do arquivo de parâmetros, com o string operations, colocamos todos os campos com letra minúscula para que fiquem com o mesmo nome das tabelas de origem e destino.

Além disso O step filter rows se encarregará de filtrar o que esteja classificado como SIM, dessa forma carregamos dinamicamente apenas as tabelas que escolhemos, por fim, utilizamos o step copy rows para que possamos utilizar estas informações em outra transformação em tempo de execução.

Nesse sentido agora iremos criar uma transformação para fazer o “get” deste resultado gerado na transformação acima e por fim salvar isso numa variável.

Get Tabelas Carga

Configuração do step Get rows from result.

Configuração do step Set Variables

Ou seja Agora que temos as tabelas de origem e destino já definidas e armazenadas em variáveis precisamos usa-las para manipular nosso step de table Input e table output.

Vamos lá!!

Nesse sentido Vamos criar a transformação conforme modelo abaixo:

Carga Dinâmica Staging

Configuração do Table Input:

Primeiramente Coloque seu comando select * from atribuindo a variável da tabela de origem e marque a opção replace variables in script

Configuração do Table Output:

Agora Digite o nome do seu schema de destino e no campo target table indique a variável da sua tabela de destino.

Dessa forma já temos as tabelas em processo dinâmico de atualização, mas…

Como devemos criar o JOB para orquestrar este processo?

Vamos lá, mão na massa!!!

Antes de mais nada o Nosso JOB Principal terá a seguinte estrutura:

A primeira transformação irá executar a Parâmetros Staging, e em seguida, executará o JOB Setar Variáveis e Executar Carga Dinâmica.

 

Agora o pulo do gato para esta execução dinâmica está na configuração do JOB Setar Variáveis e Executar Carga Dinâmica, ele precisa estar marcado para executar a cada linha. Observe imagem abaixo:

 Job Setar Variáveis e Executar Carga Dinâmica:

– Get Tabelas Origem e Destino: Executa a transformação Get Tabelas Carga.

– Carga Dinâmica Staging: Executa a transformação Carga Dinâmica Staging.

 

Dessa Forma Nosso Job de carga dinâmica deverá  ficar da seguinte forma:

 

Em suma, É dessa forma que conseguiremos Criar um Processo de Carga Dinâmica com o Pentaho de diversas tabelas em uma única transformação!!

Material de Aprofundamento:

Se Você quiser Aprender Pentaho de verdade do Zero Até o avançado, como construir um DW, aprender a automatizar seu processo de BI, ETL e  muito mais, então Confira Nosso Curso Completo de Pentaho. CLICANDO AQUI

Você ainda ganha acesso a nossa comunidade de alunos Pentarruda onde ajudamos uns aos outros compartilhando muita informação e resolvendo dúvidas relacionado a Engenharia de Dados e Business Intelligence!

]]>
https://modelo6.augustomello.com.br/criando-um-processo-de-carga-dinamica-com-o-pentaho/feed/ 8