# Laboratório Pentaho para Windows

{% hint style="info" %}

#### **Laboratório Pentaho**

O Pentaho Data Integration é uma ferramenta baseada em cliente comumente instalada e configurada para rodar no Windows 11.

Existem várias opções de licenciamento; para estes workshops vamos instalar a Edição Enterprise. Isso lhe dará a oportunidade de testar a construção de uma solução completa - pipelines de dados automatizados + análises ..
{% endhint %}

<figure><img src="/files/f3aadd7ac2a97354c852685ee9b0c763a1462735" alt=""><figcaption><p>Camadas do Pentaho</p></figcaption></figure>

{% hint style="danger" %}
Os passos a seguir destinam-se a configurar um ambiente de Laboratório Pentaho e precisam ser concluídos para finalizar os Workshops.

Certifique-se de ter baixado o Workshop--Installation&#x20;

```
cd \
git clone https://github.com/jporeilly/Workshop--Installation
```

{% endhint %}

{% tabs %}
{% tab title="Docker Desktop" %}
{% hint style="info" %}

#### Docker Desktop

O Docker Desktop é um aplicativo para Windows, macOS e Linux que fornece uma interface fácil de usar para desenvolver e executar aplicações conteinerizadas. Ele agrupa o Docker Engine, Docker CLI, Docker Compose, Kubernetes e outras ferramentas essenciais em um único pacote com interface gráfica.&#x20;

O Docker Desktop simplifica o gerenciamento de containers ao lidar automaticamente com a virtualização subjacente, permitindo que desenvolvedores construam, testem e implantem aplicações em containers isolados e portáteis sem se preocupar com diferenças de configuração de ambiente. É particularmente popular entre desenvolvedores que desejam garantir que suas aplicações executem consistentemente em diferentes ambientes, desde máquinas de desenvolvimento locais até servidores de produção.
{% endhint %}

{% embed url="<https://www.docker.com/products/docker-desktop/>" %}

1. Baixe o instalador do Docker Desktop.

{% embed url="<https://desktop.docker.com/win/main/amd64/Docker%20Desktop%20Installer.exe?utm_campaign=dd-smartbutton&utm_location=module&utm_medium=webreferral&utm_source=docker>" %}
Link para baixar o Docker Desktop
{% endembed %}

2. Navegue para: Downloads
3. Clique duas vezes: `Docker Desktop Installer.exe` para executar o instalador.

Por padrão, o Docker Desktop é instalado em `C:\Program Files\Docker\Docker`.

{% hint style="danger" %}
Quando solicitado, certifique-se de que a **Use WSL 2 em vez do Hyper-V** opção na página de Configuração esteja selecionada.

Em sistemas que suportam apenas um backend, o Docker Desktop seleciona automaticamente a opção disponível.
{% endhint %}

<figure><img src="/files/327612b8c1e5fa1063b60eff856bd2696c0763d2" alt=""><figcaption><p>Use WSL 2</p></figcaption></figure>

3. Feche para completar o processo de instalação.

***

{% hint style="info" %}

#### **Usuário do Docker**

Se sua conta de administrador for diferente da sua conta de usuário, você deve adicionar o usuário ao grupo docker-users:
{% endhint %}

1. Execute Gerenciamento do Computador como administrador.
2. Navegue até **Usuários e Grupos Locais** > **Grupos** > **docker-users**.
3. Clique com o botão direito para adicionar o usuário ao grupo.

<figure><img src="/files/fbadaa8e49616624628f010802953b1da4cca513" alt=""><figcaption><p>Adicionar usuário ao grupo docker</p></figcaption></figure>

4. Saia e entre novamente para que as alterações entrem em vigor.
   {% endtab %}

{% tab title="Container MySQL" %}
{% hint style="info" %}

#### **Docker Compose - MySQL**

O usuário pentaho\_admin possui apenas permissão de LEITURA para o banco de dados Steel Wheels - sampledata. A conta de administrador foi removida.

Como você irá executar operações CRUD no banco de dados, precisamos implantar um banco de dados sampledata - container Docker, concedendo todos os privilégios a um usuário admin.
{% endhint %}

{% file src="/files/5d3aaf34703a4aa560f9bb30ec95e86d2097bd14" %}

{% file src="/files/7ebd67bc463509e41b9b2f5eea5f92abd947183f" %}

{% file src="/files/8ebcf747d1e31d816e88b287c9ccfb7d70caae56" %}

1. Execute o script a seguir para criar uma pasta MySQL e copiar os arquivos necessários.

```ps1
cd \
cd C:\Workshop--Installation\MySQL
.\copy-mysql.ps1
```

2. Verifique se o diretório foi criado e os arquivos copiados.
3. Execute o script docker-compose para criar o container.

```powershell
cd \
cd C:\MySQL
.\run-docker-mysql.ps1
```

<figure><img src="/files/b6798a5c60849be998a5424d2c454b73f74ea832" alt=""><figcaption><p>Implantar MySQL</p></figcaption></figure>

4. Verifique se o container está ativo e em execução no Docker Desktop.

<figure><img src="/files/26825ec8275d492be47028b3d04c11ee65332300" alt=""><figcaption><p>containers docker mysql</p></figcaption></figure>
{% endtab %}

{% tab title="sampledata" %}
{% hint style="info" %}

#### **Sampledata**

O próximo passo na lista é criar o banco de dados sampledata.
{% endhint %}

<figure><img src="/files/7c31bbfce48d582da9465c98641e5d0c94aabfcb" alt=""><figcaption><p>Diagrama de Relacionamento</p></figcaption></figure>

{% tabs %}
{% tab title="1. sampledata\_schema.sql" %}
{% hint style="info" %}

#### **sampledata\_schema.sql**

Este script cria uma estrutura de banco de dados relacional abrangente para uma aplicação de exemplo de negócios. Ele foi projetado para modelar um sistema de vendas e gerenciamento de pedidos para uma empresa que vende vários produtos.
{% endhint %}

{% hint style="info" %}

#### **Configuração do Banco de Dados**

* Cria um banco de dados chamado

  ```
  sampledata
  ```

  com conjunto de caracteres UTF-8
* Configura usuários com permissões apropriadas
* Configura o modo SQL para melhor integridade dos dados
  {% endhint %}

{% hint style="info" %}

#### **Tabelas**

**ESCRITÓRIOS**: Armazena locais de escritórios da empresa com detalhes de endereço

**FUNCIONÁRIOS**: Contém informações de funcionários com relacionamentos a escritórios e estrutura de report

**CLIENTES**: Armazena informações de clientes incluindo detalhes de contato e limites de crédito

**PRODUTOS**: Contém catálogo de produtos com informações de estoque e preços

**PEDIDOS**: Rastreia pedidos de clientes com status e datas

**DETALHES\_PEDIDO**: Contém itens por pedido com quantidade e preço

**PAGAMENTOS**: Registra pagamentos de clientes com valores e datas

**FATO\_PEDIDO**: Uma tabela fato para análises de pedidos

**CLIENTE\_COM\_TERR**: Informações estendidas do cliente com território

**DIM\_TEMPO**: Tabela dimensão de tempo para relatórios

**GERENTES\_DEPARTAMENTO**: Armazena informações de gerentes de departamento

**QUADRANT\_ACTUALS**: Contém dados financeiros orçamento vs. real com uma coluna VARIANCE gerada

**BALANÇO\_DE\_TESTE**: Dados contábeis financeiros
{% endhint %}

{% hint style="info" %}

#### **Visões**

**resumo\_pedidos\_cliente**: Resume pedidos e gastos por cliente

**desempenho\_produto**: Analisa métricas de vendas de produtos incluindo receita e lucro

**desempenho\_vendas\_funcionario**: Rastreia desempenho de vendas por funcionário

**tendencia\_vendas\_mensal**: Mostra tendências de vendas ao longo do tempo por mês

**status\_estoque\_produto**: Categoriza produtos por níveis de estoque

**historico\_pagamentos\_cliente**: Resume atividade de pagamentos e saldos de clientes
{% endhint %}

{% hint style="info" %}

#### **Procedures Armazenadas**

**ObterPedidosDoCliente**: Recupera pedidos de um cliente específico

**AtualizarEstoqueProduto**: Atualiza níveis de inventário do produto

**ObterVendasProdutoPorTrimestre**: Analisa vendas de produtos por trimestre

**ObterMelhoresClientesPorRegiao**: Identifica os melhores clientes por região

**ObterValorEstoquePorLinhaDeProduto**: Calcula métricas de inventário por linha de produto

**Triggers**

**antes\_insercao\_pedido**: Valida restrições de data em pedidos

**antes\_insercao\_pagamento**: Garante que os valores de pagamento sejam positivos
{% endhint %}

{% hint style="info" %}

#### **Eventos**

* **manutencao\_diaria**: Tarefa agendada para manutenção do banco de dados
  {% endhint %}

1. Execute o seguinte comando para criar o esquema.

```powershell
cd \
cd MySQL
Get-Content sampledata_schema.sql | docker exec -i mysql-database-1 mysql -u root -p"password" sampledata
```

{% hint style="info" %}
Este comando está importando o esquema SQL para um banco de dados MySQL em execução em um container Docker. Aqui está uma descrição:

Este comando lê o arquivo SQL:

```powershell
Get-Content sampledata_schema.sql
```

Encaminha (pipe) o conteúdo do arquivo para o próximo comando:

```
|
```

Isto executa um comando em um container Docker em execução:

```
docker exec -i mysql-database-1 mysql -u root -p"password" sampledata
```

{% endhint %}

2. Você pode verificar o banco de dados sampledata e as tabelas com os seguintes comandos.

Mostrar bancos de dados:

```powershell
docker exec -i mysql-database-1 mysql -u root -p"password" -e "SHOW DATABASES;"
```

Mostrar tabelas:

```powershell
docker exec -i mysql-database-1 mysql -u root -p"password" sampledata -e "SHOW TABLES;"
```

Mostrar colunas da tabela:

```powershell
docker exec -i mysql-database-1 mysql -u root -p"password" sampledata -e "DESCRIBE table_name;"
```

<figure><img src="/files/8b0a0ae94a282e9ccda9f29c542ff289664278af" alt=""><figcaption><p>Verificar banco de dados e tabelas</p></figcaption></figure>
{% endtab %}

{% tab title="2. sampledata\_data.sql" %}
{% hint style="info" %}

#### **sampledata\_data.sql**

Este script popula o banco de dados com dados de exemplo para demonstrar a funcionalidade do esquema.
{% endhint %}

{% hint style="info" %}

#### **Dados de Referência**

* Locais de escritórios em diferentes regiões
* Hierarquia de funcionários com cargos
* Catálogo de produtos organizado por linhas de produto
  {% endhint %}

{% hint style="info" %}

#### **Dados Transacionais**

* Registros de clientes com informações de contato
* Histórico de pedidos com datas e status
* Detalhes do pedido com quantidades e preços
* Registros de pagamentos
  {% endhint %}

{% hint style="info" %}

#### **Dados Financeiros**

* Valores orçados vs. reais em QUADRANT\_ACTUALS
* Dados contábeis de balancete
  {% endhint %}

{% hint style="info" %}

#### **Características dos Dados**

* Cenários de negócios realistas com status de pedidos variados
* Catálogo de produtos abrangente com descrições e preços
* Estrutura hierárquica de funcionários com relações de reporte
* Dados baseados em tempo abrangendo vários anos para análise de tendências
* Dados financeiros adequados para orçamento e análise de variância
  {% endhint %}

{% hint style="info" %}

#### **Recursos Notáveis**

* Os dados seguem restrições de integridade referencial
* Tratamento adequado de valores NULL quando apropriado
* Valores realistas de preço e quantidade
* Colunas geradas (como VARIANCE) são excluídas de inserções diretas
* Os pedidos são sequenciados para satisfazer restrições de chave estrangeira
  {% endhint %}

1. Execute o seguinte comando para carregar os dados nas tabelas sampledata.

```powershell
cd \
cd MySQL
Get-Content sampledata_data.sql | docker exec -i mysql-database-1 mysql -u root -p"password" sampledata
```

2. Você pode usar os seguintes comandos para verificar se os dados foram carregados.

Para contar o número de linhas em uma tabela específica:

```docker
docker exec -i mysql-database-1 mysql -u root -p"password" sampledata -e "SELECT COUNT(*) FROM table_name;"
```

Para ver as primeiras linhas de uma tabela:

```docker
docker exec -i mysql-database-1 mysql -u root -p"password" sampledata -e "SELECT * FROM table_name LIMIT 10;"
```

Para verificar contagens de todas as tabelas:

```docker
docker exec -i mysql-database-1 mysql -u root -p"password" sampledata -e "SELECT TABLE_NAME, TABLE_ROWS FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'sampledata';"
```

Para obter um resumo das tabelas e seus status:

```docker
docker exec -i mysql-database-1 mysql -u root -p"password" sampledata -e "SHOW TABLE STATUS;"
```

<figure><img src="/files/11edece30cd4f417b5d0737e54987872af6db599" alt=""><figcaption><p>informações das tabelas sampledata</p></figcaption></figure>
{% endtab %}
{% endtabs %}
{% endtab %}

{% tab title="DBeaver" %}
{% hint style="info" %}

#### DBeaver

Você vai precisar de uma ferramenta de gerenciamento de banco de dados. O DBeaver Community é uma ferramenta gratuita e de código aberto para gerenciamento de bancos de dados em projetos pessoais.
{% endhint %}

1. Vá para o oficial [página de download do DBeaver](https://dbeaver.io/download/)

{% embed url="<https://dbeaver.io/files/dbeaver-ce-latest-x86_64-setup.exe>" %}

2. Navegue até Downloads e clique duas vezes em: `dbeaver-ce-25.2.5-x86_64-setup.exe`
3. Siga as instruções de instalação.
4. Siga as instruções na tela, clicando em "Next" e concordando com o contrato de licença para prosseguir.
5. Escolha as opções de instalação desejadas (por exemplo, para todos os usuários ou para o usuário atual).

<figure><img src="/files/4f1a6a1a097407a3d3de2570867301e7d0592023" alt=""><figcaption></figcaption></figure>

6. Complete o processo de instalação.&#x20;

***

{% hint style="info" %}

#### **Banco de Dados MySQL**

Se você completou os 3 requisitos anteriores, então deverá ter um container MySQL Docker, exposto na porta:3306 com o banco de dados sampledata.
{% endhint %}

1. Inicie o DBeaver e selecione: MySQL.

<figure><img src="/files/c93f91ed14ef88b6f4dcffe43c47743766802727" alt=""><figcaption><p>MySQL</p></figcaption></figure>

2. Configure a conexão com as seguintes propriedades:

Nome de usuário: root ou pentaho\_user

Senha: password

<figure><img src="/files/2f83a8115582116e38e1a6a50497c2a3286cefc9" alt=""><figcaption><p>Configurar e testar conexão MySQL - sampledata</p></figcaption></figure>

{% hint style="warning" %}
Pode ser necessário baixar a versão suportada do driver do banco de dados.

Também habilite: allowPublicKeyRetrieval
{% endhint %}

<figure><img src="/files/62717886db52a044f9f6365b6260f6cc95367bf8" alt=""><figcaption><p>Habilitar: allowPublicKeyRetrieval</p></figcaption></figure>

3. Teste a conexão.

<figure><img src="/files/ed2d6af4e34435b2930592e70c3d3809eef6b963" alt=""><figcaption><p>Testar conexão</p></figcaption></figure>

4. Expanda: databases > sampledata > Tables

<figure><img src="/files/dc1db9e178e240432fcf0d00582f48db3fc2b325" alt=""><figcaption><p>Dados de Clientes</p></figcaption></figure>

5. Abra uma janela SQL e execute uma query de teste.

```sql
select * from CUSTOMERS
where COUNTRY = 'USA' and CITY = 'NYC';
```

<figure><img src="/files/a75f1b601f33a54c233964a3f4545bfa0a2a222a" alt=""><figcaption><p>Consulta SQL - Clientes de NYC</p></figcaption></figure>
{% endtab %}
{% endtabs %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://academy.pentaho.com/pentaho-11-installation-en/pentaho-11-installation-pt-br/configuracao/laboratorio-pentaho-para-windows.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
