For AI agents: the complete documentation index is available at https://docs.ovhcloud.com/fr/llms.txt, the full documentation bundle is available at https://docs.ovhcloud.com/fr/llms-full.txt, and this page is available as Markdown at https://docs.ovhcloud.com/fr/guides/public-cloud/data-platform/tutorials-ecommerce-sales.md.

Préparer les commandes d'une boutique en ligne pour un dashboard des ventes

Voir en Markdown

Découvrez comment charger deux ans de commandes d'une boutique en ligne dans le Lakehouse, les concaténer et les nettoyer avec une action Custom

Objectif

Ce guide vous explique comment charger deux ans de commandes d'une boutique en ligne (environ 1 million de lignes de commande) dans le Lakehouse, les concaténer dans une seule table et les nettoyer avec une action Custom. Vous chargez les fichiers avec Connectors, créez les tables dans le Lakehouse Manager, puis concaténez et nettoyez les commandes avec le Data Processing Engine.

À la fin, vous disposerez de la table online_retail_ii_clean, prête à être interrogée depuis Apache Superset. La deuxième partie du guide, « Construire un dashboard des ventes d'une boutique en ligne dans Superset », la transforme en dashboard des ventes.

Prérequis

Pour suivre ce guide, vous devez :

  • Disposer d'un projet Data Platform. Ce guide utilise un projet nommé ecommerce-sales.
  • Disposer des commandes de la boutique et du script de nettoyage de l'action Custom :
TypeNom
Commandes, de décembre 2009 à décembre 2011Online Retail II, UCI Machine Learning Repository
Script Python de nettoyageonline_retail_cleaning.py

L'UCI publie les commandes dans un seul classeur Excel, online_retail_II.xlsx, avec une feuille par année. Avant l'étape 1, enregistrez chaque feuille dans son propre fichier :

FeuilleFichier à créer
Year 2009-2010online_retail_II_200910.xlsx
Year 2010-2011online_retail_II_201011.xlsx
Info

À propos des données : Online Retail II, UCI Machine Learning Repository, est sous licence CC BY 4.0 (DOI 10.24432/C5CG6D).

Avant de commencer, nous vous recommandons de suivre les guides de démarrage. Ce guide suppose que vous êtes à l'aise avec les principaux composants de la Data Platform.

Ce que vous allez construire

Les deux parties de ce guide aboutissent à ce dashboard dans Superset :

Le dashboard Online store sales terminé dans Superset, avec la ligne des chiffres clés et l'onglet Customers ouvert
ÉtapeComposantRésultat
1. Charger les fichiersSource File UploadUne source qui contient les deux fichiers
2. Analyser les fichiersAnalyzerLes attributs et les types détectés
3. Créer les tablesTables du Lakehouse ManagerUne table par année, une table pour toutes les commandes
4. Concaténer les annéesActions Load et un workflow1 067 371 lignes de commande dans online_retail_ii
5. Nettoyer les commandesAction Custom1 021 128 lignes de commande propres dans online_retail_ii_clean
6. Connecter SupersetConsumer Trino et Apache SupersetUn dataset Superset sur la table propre

En pratique

Étape 1 : charger les fichiers

  1. Ouvrez Connectors > Sources et créez une nouvelle source de type File Upload.
  2. Nommez-la online_retail_ii.
  3. Déposez online_retail_II_200910.xlsx et online_retail_II_201011.xlsx dans la zone Files.
  4. Cliquez sur Create.
La source File Upload nommée online_retail_ii avec les deux fichiers Excel annuels ajoutés

Étape 2 : analyser les fichiers

  1. Ouvrez Connectors > Analyzer.
  2. Sélectionnez la source online_retail_ii, puis le fichier online_retail_II_200910.xlsx.
  3. Cliquez sur Extract metadata.
  4. Faites de même pour online_retail_II_201011.xlsx.

L'Analyzer détecte 8 attributs : invoice, stockcode, description, quantity, invoicedate, price, customer_id et country. Vérifiez que invoice et stockcode sont détectés comme String : les numéros de facture comme C489449 et les codes produit comme 85123A ne sont pas des nombres.

L'Analyzer qui affiche les attributs détectés dans online_retail_II_200910.xlsx

Étape 3 : créer les tables

Créer une table par année

  1. Ouvrez Lakehouse Manager > Tables.

  2. Cliquez sur New table > Create from a Connectors source.

    Le menu New table du Lakehouse Manager avec l'option Create from a Connectors source
  3. Sélectionnez le fichier online_retail_II_200910.xlsx de la source online_retail_ii, puis cliquez sur Next.

    La sélection du fichier online_retail_II_200910.xlsx de la source online_retail_ii
  4. Gardez les paramètres par défaut et cliquez sur Create. La table est nommée online_retail_ii_200910, dans le dataset default_dataset.

    Les paramètres par défaut de la table, avec le nom online_retail_ii_200910 et les trois options automatiques activées
  5. Recommencez avec online_retail_II_201011.xlsx. La table est nommée online_retail_ii_201011.

Les deux tables apparaissent avec 8 attributs et environ 525 k et 542 k lignes.

Les deux tables annuelles listées dans le Lakehouse Manager avec leur nombre de lignes

Créer la table de toutes les commandes

  1. Dupliquez la table online_retail_ii_200910. Survolez sa ligne et cliquez sur l'icône Duplicate.

    L'icône Duplicate sur la ligne de la table online_retail_ii_200910 dans le Lakehouse Manager
  2. Nommez la nouvelle table online_retail_ii, dans le dataset default_dataset, et cliquez sur Create.

  3. Construisez la table.

La table a les mêmes 8 attributs, et aucune ligne pour l'instant.

La boîte de dialogue Create new empty table avec le nom online_retail_ii et le dataset default_dataset

Étape 4 : concaténer les deux années

Créer les actions Load

  1. Ouvrez Data Processing Engine > Actions et cliquez sur New action.

  2. Recherchez load, sélectionnez l'action Load et cliquez sur Select.

    L'action Load sélectionnée dans la liste des types d'action
  3. Renseignez l'action :

    ParamètreValeur
    Source tableonline_retail_II_200910.xlsx de online_retail_ii
    Destinationonline_retail_ii de default_dataset
    Attributeschaque attribut source mappé sur l'attribut de destination du même nom
  4. Cliquez sur Create.

    Les paramètres de l'action Load qui mappent online_retail_II_200910.xlsx sur la table online_retail_ii
  5. Créez une deuxième action Load, avec online_retail_II_201011.xlsx comme source et la même destination.

La liste des actions affiche vos deux actions Load, à côté des deux actions générées automatiquement à la création des tables annuelles.

La liste des actions avec les deux nouvelles actions Load et les deux actions générées

Exécuter les deux actions avec un workflow

  1. Dans Data Processing Engine > Workflows, cliquez sur New workflow.
  2. Nommez-le Concat.
  3. Dans Stage 1, ajoutez vos deux actions Load.
  4. Cliquez sur Create, puis exécutez le workflow.
Le workflow Concat avec les deux actions Load dans Stage 1, après une exécution réussie

Le workflow prend quelques minutes. Quand son statut passe au vert, ouvrez Lakehouse Manager > Tables : online_retail_ii contient les lignes des deux tables annuelles, soit 1 067 371 lignes.

Warning

N'exécutez le workflow Concat qu'une seule fois. Une nouvelle exécution peut ajouter une seconde fois les mêmes lignes de commande. Après chaque exécution, vérifiez que online_retail_ii contient 1 067 371 lignes.

Pour relancer le workflow, vous pouvez créer une action Delete qui vide online_retail_ii, et l'exécuter avant le workflow.

Étape 5 : nettoyer les commandes

Créer la table propre

  1. Dans Lakehouse Manager > Tables, dupliquez online_retail_ii.
  2. Nommez la nouvelle table online_retail_ii_clean et construisez-la.

Vous avez maintenant 4 tables. online_retail_ii_clean a les mêmes 8 attributs et aucune ligne pour l'instant.

Les quatre tables du guide listées dans le Lakehouse Manager

Créer l'action de nettoyage

  1. Dans Data Processing Engine > Actions, cliquez sur New action.

  2. Recherchez custom, sélectionnez l'action Custom et cliquez sur Select.

    L'action Custom sélectionnée dans la liste des types d'action
  3. Renseignez l'action :

    ParamètreValeur
    Action nameonline_retail_cleaning
    Function nameonline_retail_cleaning
    Development languagePython 3.11
    Python requirementspandas
    Filechargez online_retail_cleaning.py
  4. Cliquez sur Create, puis exécutez l'action.

L'action Custom online_retail_cleaning avec son nom de fonction, son langage, ses dépendances et le fichier chargé
Info

Remarque : le nom de fonction est le point d'entrée du script et doit être online_retail_cleaning. Les autres fonctions du fichier sont des fonctions utilitaires : en choisir une comme nom de fonction renvoie 'Event' object is not subscriptable.

L'action lit online_retail_ii, applique les règles de nettoyage et écrit le résultat dans online_retail_ii_clean. Ouvrez ses logs : chaque règle indique le nombre de lignes concernées, et la dernière ligne donne le nombre de lignes écrites dans online_retail_ii_clean : 1 021 128 lignes.

Les règles apparaissent dans les logs sous leur nom anglais :

RègleUne ligne est supprimée quand
1. Exact duplicateselle est identique à une autre ligne sur les 8 colonnes
2. Invalid invoice numberla facture ne compte pas 6 chiffres, précédés ou non d'un C
3. Invalid stock codele code produit ne compte pas 5 chiffres, suivis ou non de lettres
4. Missing descriptionla description est vide
5. Inconsistent quantityune vente n'est pas positive, ou une annulation n'est pas négative
6. Zero or negative pricele prix n'est pas strictement positif
7. Missing invoice datela date est vide

Une dernière étape, 8. Harmonized descriptions, attribue à chaque code produit sa description la plus fréquente, pour qu'un produit n'apparaisse jamais sous deux noms.

Créer une action pour vider la table propre

L'action de nettoyage ajoute des lignes à online_retail_ii_clean. Avant de la relancer, videz la table avec une action Delete, comme pour online_retail_ii avant de relancer le workflow Concat.

  1. Cliquez sur New action, recherchez delete, sélectionnez l'action Delete et cliquez sur Select.
  2. Dans Table list, déplacez online_retail_ii_clean vers Table to empty.
  3. Cliquez sur Create.
L'action Delete avec online_retail_ii_clean dans la liste Table to empty

Pour nettoyer à nouveau les données, exécutez d'abord cette action Delete, puis online_retail_cleaning.

Étape 6 : connecter Superset

Toutes les données sont maintenant prêtes dans le Lakehouse. Pour les analyser, créez une application Apache Superset :

  1. Créez une connexion Trino en suivant le guide « Générer une chaîne de connexion Trino pour des outils externes ».
  2. Créez l'application et connectez-la à Trino en suivant les étapes 1 à 3 du guide « Déployer Apache Superset sur la Data Platform OVHcloud ».

Créer le dataset dans Superset

  1. Dans Superset, ouvrez Datasets et cliquez sur + Dataset.
  2. Sélectionnez la connexion de base de données que vous avez créée, nommée Trino DP dans ce guide, puis le schéma default_dataset et la table online_retail_ii_clean.
  3. Vérifiez les colonnes, puis cliquez sur Create and explore dataset.
Le formulaire de dataset Superset avec la base de données, le schéma default_dataset et la table online_retail_ii_clean sélectionnés

Chaque graphique du dashboard part ensuite de Charts > + Chart : choisissez le dataset online_retail_ii_clean, puis le type de graphique.

L'écran de création de graphique de Superset avec le dataset online_retail_ii_clean sélectionné

Continuez avec « Construire un dashboard des ventes d'une boutique en ligne dans Superset ».

Bon à savoir

  • Vous pouvez connecter une vraie boutique. Ce guide utilise un jeu de données public, chargé sous forme de fichiers. Pour analyser les commandes de votre propre boutique, créez une source Shopify ou Stripe à la place de la source File Upload : dans Connectors > Sources, les deux apparaissent dans la fenêtre New source. Les tables suivent alors les attributs de cette source, et le script de nettoyage doit être adapté à ces attributs.
La fenêtre New source avec les connecteurs Stripe et Shopify

Ce que vous avez construit

Vous disposez d'une table brute qui contient chaque ligne de commande de la boutique, d'une table propre qui respecte la description du jeu de données, et d'un dataset Superset construit dessus.

La partie suivante, « Construire un dashboard des ventes d'une boutique en ligne dans Superset », transforme la table propre en dashboard : chiffres clés, chiffre d'affaires dans le temps, produits les plus vendus, ventes par pays et fidélité des clients.

Aller plus loin

Pour une formation ou une assistance technique sur la mise en œuvre de nos solutions, contactez votre commercial ou consultez la page Professional Services pour obtenir un devis et faire analyser votre projet par nos experts.

Posez vos questions, faites-nous part de vos commentaires et interagissez directement avec l’équipe qui développe la Data Platform sur le canal Discord dédié.

Si vous avez besoin d'une assistance concernant vos services OVHcloud, créez une demande depuis notre centre d'aide.

Rejoignez notre communauté d'utilisateurs.

Cette page vous a-t-elle aidé ?