> For the complete documentation index, see [llms.txt](https://academy.pentaho.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://academy.pentaho.com/pentaho-11-installation-en/pentaho-11-installation-fr/configuration/windows-pentaho-lab.md).

# Laboratoire Pentaho Windows

{% hint style="info" %}

#### **Laboratoire Pentaho**

Pentaho Data Integration est un outil client généralement installé et configuré pour fonctionner sous Windows 11.

Il existe plusieurs options de licence ; pour ces ateliers, nous allons installer une édition Enterprise. Cela vous donnera l’occasion d’essayer de construire une solution complète - pipelines de données automatisés + analytique ..
{% endhint %}

<figure><img src="/files/b637469a734b1aa81494669c15ca0f4f79818a1b" alt=""><figcaption><p>Niveaux Pentaho</p></figcaption></figure>

{% hint style="danger" %}
Les étapes suivantes visent à mettre en place un environnement Pentaho Lab et doivent être effectuées afin de terminer les ateliers.

Assurez-vous d’avoir téléchargé le fichier Workshop--Installation

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

{% endhint %}

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

#### Docker Desktop

Docker Desktop est une application pour Windows, macOS et Linux qui fournit une interface facile à utiliser pour développer et exécuter des applications conteneurisées. Elle regroupe Docker Engine, Docker CLI, Docker Compose, Kubernetes et d’autres outils essentiels dans un seul package avec une interface utilisateur graphique.

Docker Desktop simplifie la gestion des conteneurs en prenant automatiquement en charge la virtualisation sous-jacente, permettant aux développeurs de créer, tester et déployer des applications dans des conteneurs isolés et portables sans se soucier des différences de configuration d’environnement. Il est particulièrement populaire auprès des développeurs qui veulent s’assurer que leurs applications s’exécutent de manière cohérente dans différents environnements, des machines de développement locales aux serveurs de production.
{% endhint %}

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

1. Téléchargez le programme d’installation de 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>" %}
Lien pour télécharger Docker Desktop
{% endembed %}

2. Accédez à : Téléchargements
3. Double-cliquez sur : `Docker Desktop Installer.exe` pour lancer le programme d’installation.

Par défaut, Docker Desktop est installé dans `C:\Program Files\Docker\Docker`.

{% hint style="danger" %}
Lorsque vous y êtes invité, assurez-vous que l’option **Utiliser WSL 2 au lieu de Hyper-V** sur la page Configuration est sélectionnée.

Sur les systèmes qui ne prennent en charge qu’un seul backend, Docker Desktop sélectionne automatiquement l’option disponible.
{% endhint %}

<figure><img src="/files/1a8d045cab5f3130e9f457388f9f68e4bfe99a24" alt=""><figcaption><p>Utiliser WSL 2</p></figcaption></figure>

3. Cliquez sur Fermer pour terminer l’installation.

***

{% hint style="info" %}

#### **Utilisateur Docker**

Si votre compte administrateur est différent de votre compte utilisateur, vous devez ajouter l’utilisateur au groupe docker-users :
{% endhint %}

1. Exécutez Gestion de l’ordinateur en tant qu’administrateur.
2. Accédez à **Utilisateurs et groupes locaux** > **Groupes** > **docker-users**.
3. Faites un clic droit pour ajouter l’utilisateur au groupe.

<figure><img src="/files/79800442acbe80da57baac7fd9ffdb761feb4188" alt=""><figcaption><p>Ajouter l’utilisateur au groupe docker</p></figcaption></figure>

4. Déconnectez-vous puis reconnectez-vous pour que les modifications prennent effet.
   {% endtab %}

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

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

L’utilisateur pentaho\_admin n’a que l’autorisation de LECTURE sur la base de données Steel Wheels - sampledata. Le compte administrateur a été supprimé.

Comme vous allez effectuer des opérations de base de données CRUID, nous devons déployer une base de données sampledata sous forme de conteneur Docker, en accordant tous les privilèges à un utilisateur administrateur.
{% endhint %}

{% file src="/files/855496db8117d17eb0989a385219ffffe7aecbca" %}

{% file src="/files/24ea3b4e1bed845c8bf7d8becb0a9553a28be11a" %}

{% file src="/files/15be85785c9e8aaf355147cf2b828d55672b9a07" %}

1. Exécutez le script suivant pour créer un dossier MySQL et copier les fichiers requis.

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

2. Vérifiez que le répertoire a été créé et que les fichiers ont été copiés.
3. Exécutez le script docker-compose pour créer le conteneur.

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

<figure><img src="/files/47bc569214110a256a69ea9807829b77e4726475" alt=""><figcaption><p>Déployer MySQL</p></figcaption></figure>

4. Vérifiez que le conteneur est démarré et en cours d’exécution dans Docker Desktop.

<figure><img src="/files/4c572fcf53c81c08494738358bd6d2d985a38974" alt=""><figcaption><p>conteneurs Docker MySQL</p></figcaption></figure>
{% endtab %}

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

#### **Données d’exemple**

L’élément suivant de la liste consiste à créer la base de données sampledata.
{% endhint %}

<figure><img src="/files/6db1c3c711e108c6997411513a3412e66fd2bf84" alt=""><figcaption><p>Diagramme relationnel</p></figcaption></figure>

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

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

Ce script crée une structure de base de données relationnelle complète pour une application d’entreprise d’exemple. Il est conçu pour modéliser un système de gestion des ventes et des commandes pour une société qui vend divers produits.
{% endhint %}

{% hint style="info" %}

#### **Configuration de la base de données**

* Crée une base de données nommée

  ```
  sampledata
  ```

  avec un jeu de caractères UTF-8
* Configure des utilisateurs avec les autorisations appropriées
* Configure le mode SQL pour une meilleure intégrité des données
  {% endhint %}

{% hint style="info" %}

#### **Tables**

**OFFICES**: Stocke les emplacements des bureaux de l’entreprise avec les détails d’adresse

**EMPLOYEES**: Contient les informations des employés avec les relations vers les bureaux et la structure hiérarchique

**CUSTOMERS**: Stocke les informations clients, y compris les coordonnées et les limites de crédit

**PRODUCTS**: Contient le catalogue des produits avec les informations d’inventaire et de tarification

**ORDERS**: Suit les commandes clients avec leur statut et leurs dates

**ORDERDETAILS**: Contient les lignes de commande pour chaque commande avec la quantité et le prix

**PAYMENTS**: Enregistre les paiements des clients avec les montants et les dates

**ORDERFACT**: Une table de faits pour l’analyse des commandes

**CUSTOMER\_W\_TER**: Informations client étendues avec le territoire

**DIM\_TIME**: Table dimension temps pour les rapports

**DEPARTMENT\_MANAGERS**: Stocke les informations sur les responsables de département

**QUADRANT\_ACTUALS**: Contient les données financières budgetées par rapport aux données réelles avec une colonne VARIANCE générée

**TRIAL\_BALANCE**: Données comptables financières
{% endhint %}

{% hint style="info" %}

#### **Vues**

**customer\_order\_summary**: Résume les commandes et les dépenses par client

**product\_performance**: Analyse les indicateurs de vente des produits, y compris le chiffre d’affaires et le profit

**employee\_sales\_performance**: Suit les performances commerciales par employé

**monthly\_sales\_trend**: Affiche les tendances des ventes au fil du temps par mois

**product\_inventory\_status**: Catégorise les produits selon les niveaux de stock

**customer\_payment\_history**: Résume l’activité de paiement des clients et les soldes
{% endhint %}

{% hint style="info" %}

#### **Procédures stockées**

**GetCustomerOrders**: Récupère les commandes d’un client spécifique

**UpdateProductStock**: Met à jour les niveaux de stock des produits

**GetProductSalesByQuarter**: Analyse les ventes de produits par trimestre

**GetTopCustomersByRegion**: Identifie les meilleurs clients par région

**GetInventoryValueByProductLine**: Calcule les indicateurs de stock par ligne de produits

**Déclencheurs**

**before\_order\_insert**: Valide les contraintes de date sur les commandes

**before\_payment\_insert**: Garantit que les montants des paiements sont positifs
{% endhint %}

{% hint style="info" %}

#### **Événements**

* **daily\_maintenance**: Tâche planifiée pour la maintenance de la base de données
  {% endhint %}

1. Exécutez la commande suivante pour créer le schéma.

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

{% hint style="info" %}
Cette commande importe les données du schéma SQL dans une base de données MySQL exécutée dans un conteneur Docker. Voici un aperçu :

Cette commande lit le fichier SQL :

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

Transmet le contenu du fichier à la commande suivante :

```
|
```

Cette commande exécute une commande dans un conteneur Docker en cours d’exécution :

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

{% endhint %}

2. Vous pouvez vérifier la base de données et les tables sampledata avec les commandes suivantes.

Afficher les bases de données :

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

Afficher les tables :

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

Afficher les colonnes de la table :

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

<figure><img src="/files/75ceb0ac57825410169788563527b9840b6a8a5f" alt=""><figcaption><p>Vérifier la base de données et les tables</p></figcaption></figure>
{% endtab %}

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

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

Ce script remplit la base de données avec des données d’exemple pour démontrer la fonctionnalité du schéma.
{% endhint %}

{% hint style="info" %}

#### **Données de référence**

* Emplacements des bureaux dans différentes régions
* Hiérarchie des employés avec leurs intitulés de poste
* Catalogue de produits organisé par lignes de produits
  {% endhint %}

{% hint style="info" %}

#### **Données transactionnelles**

* Fiches clients avec informations de contact
* Historique des commandes avec dates et statut
* Détails des commandes avec quantités et prix
* Enregistrements des paiements
  {% endhint %}

{% hint style="info" %}

#### **Données financières**

* Chiffres budgétés par rapport aux chiffres réels dans QUADRANT\_ACTUALS
* Données comptables de balance de vérification
  {% endhint %}

{% hint style="info" %}

#### **Caractéristiques des données**

* Scénarios commerciaux réalistes avec des statuts de commande variés
* Catalogue de produits complet avec descriptions et tarifs
* Structure hiérarchique des employés avec liens hiérarchiques
* Données chronologiques couvrant plusieurs années pour l’analyse des tendances
* Données financières adaptées à la budgétisation et à l’analyse des écarts
  {% endhint %}

{% hint style="info" %}

#### **Fonctionnalités notables**

* Les données respectent les contraintes d’intégrité référentielle
* Gestion appropriée des valeurs NULL lorsque cela est pertinent
* Valeurs réalistes de prix et de quantité
* Les colonnes générées (comme VARIANCE) sont exclues des insertions directes
* Les commandes sont ordonnées pour respecter les contraintes de clé étrangère
  {% endhint %}

1. Exécutez la commande suivante pour charger les données dans les tables sampledata.

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

2. Vous pouvez utiliser les commandes suivantes pour vérifier que les données ont été chargées.

Pour compter le nombre de lignes dans une table spécifique :

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

Pour afficher les premières lignes d’une table :

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

Pour vérifier les comptes pour toutes les tables :

```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';"
```

Pour obtenir un résumé des tables et de leur statut :

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

<figure><img src="/files/ba04b79b2b7801eb7406ac6e7460c396769719cc" alt=""><figcaption><p>informations sur les tables sampledata</p></figcaption></figure>
{% endtab %}
{% endtabs %}
{% endtab %}

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

#### DBeaver

Vous aurez besoin d’un outil de gestion de base de données. DBeaver Community est un outil de gestion de base de données gratuit et open source pour les projets personnels.
{% endhint %}

1. Rendez-vous sur la page officielle [page de téléchargement de DBeaver](https://dbeaver.io/download/)

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

2. Accédez à Téléchargements et double-cliquez sur : `dbeaver-ce-25.2.5-x86_64-setup.exe`
3. Suivez les instructions d’installation.
4. Suivez les instructions à l’écran, en cliquant sur "Next" et en acceptant le contrat de licence pour continuer.
5. Choisissez les options d’installation souhaitées (par ex. pour tous les utilisateurs ou pour l’utilisateur actuel).

<figure><img src="/files/35360fe293e98020e3ac096bb737ba0f416d5201" alt=""><figcaption></figcaption></figure>

6. Terminez le processus d’installation.

***

{% hint style="info" %}

#### **Base de données MySQL**

Si vous avez rempli les 3 exigences précédentes, vous devriez disposer d’un conteneur Docker MySQL exposé sur le port 3306 avec la base de données sampledata.
{% endhint %}

1. Lancez DBeaver et sélectionnez : MySQL.

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

2. Configurez la connexion avec les propriétés suivantes :

Nom d’utilisateur : root ou pentaho\_user

Mot de passe : password

<figure><img src="/files/a518180258d034f032db138ae63b4c7548e61c97" alt=""><figcaption><p>Configurer et tester la connexion MySQL - sampledata</p></figcaption></figure>

{% hint style="warning" %}
Vous devrez peut-être télécharger la version prise en charge du pilote de base de données.

Activez également : allowPublicKeyRetrieval
{% endhint %}

<figure><img src="/files/ddd6d8eac11489df40e5876f3f3a578a7cbf6fac" alt=""><figcaption><p>Activer : allowPublicKeyRetrieval</p></figcaption></figure>

3. Testez la connexion.

<figure><img src="/files/115526da023847bfd881cb2ce68b3d97d7c04dd2" alt=""><figcaption><p>Tester la connexion</p></figcaption></figure>

4. Développez : databases > sampledata > Tables

<figure><img src="/files/541b1ab7a7929ee75581e3772daf3c65d8cc7f4d" alt=""><figcaption><p>Données clients</p></figcaption></figure>

5. Ouvrez une fenêtre SQL et exécutez une requête de test.

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

<figure><img src="/files/3123affb8ee8e5751491ca1d48a52b68d16252be" alt=""><figcaption><p>Requête SQL - Clients NYC</p></figcaption></figure>
{% endtab %}
{% endtabs %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://academy.pentaho.com/pentaho-11-installation-en/pentaho-11-installation-fr/configuration/windows-pentaho-lab.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
