Cet article s’adresse à ceux qui connaissent le SQL et souhaitent mettre en place rapidement une solution de reporting minimaliste (sans passer par l’artillerie lourde comme PowerBI, Tableau, Looker Studio, et consorts).
Partons d’une base de données (de type Mysql, Mariadb ou Postgresql) comprenant une table monthly_sales
contenant des montants mensuels de vente:
month | sales_amount_eur |
---|---|
2024-01-01 |
8730 |
2024-02-01 |
9620 |
2024-03-01 |
4210 |
2024-04-01 |
6732 |
2024-05-01 |
9921 |
2024-06-01 |
8176 |
2024-07-01 |
7623 |
Notre but est de:
- Générer un rapport reprenant ces informations dans un graphique.
- Le rafraîchir tous les 1er du mois.
1 - Installation
Commençons par installer CTFreak.
Sous Ubuntu, ouvrez votre terminal et lancez:
sudo snap install ctfreak
Pour les installations alternatives (Docker, Windows, Freebsd, …), ça se passe ici.
2 - Connexion
Rendez vous sur http://localhost:6700 et connectez-vous via admin
/ ctfreak
.
3 - Ajout d’une base de données
Allez dans Databases → New Database, sélectionnez son type (par exemple Postgresql), puis renseignez ses paramètres de connexion:
Validez pour ajouter la base de données.
4 - Création d’un projet
Un projet va permettre de regrouper toutes nos tâches de reporting.
Allez dans Projects → New Project:
Validez pour créer le projet.
5 - Création d’une tâche SQL Report
Notre rapport sera généré via une tâche de type SQL Report associé à notre projet.
Pour ce faire, allez dans Projects → Reporting → New Task, sélectionnez SQL Report comme type de tâche puis renseignez les informations suivantes:
Dans la requête SQL, le suffixe _c_month
permet d’indiquer que les valeurs de date doivent être formatées comme des mois dans le graphique.
Validez ce formulaire pour créer une tâche qui à partir d’une requête SQL générera un rapport des ventes mensuelles tous les 1er du mois à 9h, avec une rétention de 2 ans (730 jours) des rapports générés.
Exécutons cette tâche dès maintenant (via Projects → Reporting → Sales report -> Execute) pour obtenir le rapport attendu:
Conclusion
Comme vous pouvez le constater, ce rapport répond bien à notre besoin initial.
N’hésitez pas à exploiter les autres fonctionnalités de CTFreak pour y apporter quelques améliorations comme:
- Ajouter d’autres graphiques.
- Ajouter des paramètres de tâche pour définir la période des ventes à prendre en compte.
- Ajouter un accès en lecture seule pour un utilisateur donné (via le rôle Viewer).
- Envoyer à chaque génération du rapport un mail avec un lien pour l’ouvrir (via un Notifier).
- Synchroniser la génération de plusieurs rapports (via les tâches de type Workflow).