Logiciel libre équivalent Power Query

Bonjour les zamis, avez-vous connaissance SVP d’un logiciel libre de manipulations de données en chaîne, un peu similaire au couple Excel/Power Query chez Microsoft ?

Un exemple de cas d’usage typique :

  1. Charger un fichier de données issu du web (csv par exemple)
  2. Faire passer les données au travers d’étapes configurables et automatiques successives du type : trier, transformer, ajouter des colonnes calculées, agréger les données par critères avec fonctions ensemblistes (comptage, sommes…), pivoter le jeu de données, etc.
  3. Puis donner le résultat dans un tableau
  4. Sur ce tableau, pouvoir avoir des graphiques qui se mettent à jour
  5. Rafraichir les données à la demande depuis le web

Libre office semble faire les étapes 1, 3, 4, 5, mais pas la 2, qui est justement l’apport de Power Query intégré à Excel…

1 J'aime

Bonjour,
Il y a Google Query qui doit pouvoir faire ça, mais c’est du Google.
En fait il te faudrait trouver un ETL pour les fonction que tu ne peux faire avec LibreOffice.

De ce coté là tu as:
Apache Airflow

Stitch
Hevo
Scriptella

La plupart nécessite de payer malheureusement.
Hevo a une solution community, je crois que Apache Airflowx aussi.
Le téléchargement de Scriptella est gratuit.

2 J'aime

Merci c’est bien ça que je cherche, une fonctionnalité ETL. Je vais étudier tous tes liens, merci !

1 J'aime

Bon, je fais un petit point d’avancement, au cas où ça puisse intéresser quelqu’un…

Déjà, j’ai écarté tous les outils qui sont des plateformes en ligne (SAAS), gratuits ou pas : Apache Airflow, Hevo, Stitch… Et quantité d’autres qui sont sur le même créneau.

Ensuite, j’ai écarté Scriptella qui ne semble pas maintenu : v 1.1 en décembre 2012, v 1.2 en octobre 2019, et rien depuis.

Je me suis orienté vers Apache NiFi, qui est un ETL installable en local. En gros ça se présente comme un moteur de traitement de données en continu, on a donc un process qui tourne en tâche de fond sur une JVM (version 21 mini), ainsi qu’un serveur web en local pour faire tourner dans un navigateur l’interface qui sert à la fois à la programmation et au suivi visuel des flux de données. Ca semble très puissant, trop puissant pour mon besoin, le truc qui prend 10 minutes à faire en PowerQuery (télécharger un CSV, le trier et l’afficher) demande un effort significatif en NiFi : une boîte pour télécharger le fichier, une boite pour interpréter que c’est du CSV, une boite pour splitter le fichier en enregistrements, une boite pour extraire la colonne qui va servir au tri, une boite pour faire le tri, une boite pour refusionner les enregistrements… Et je n’en suis pas encore venu à bout.

Ajoutez à ça que NiFi n’est pas dans les paquets Debian, c’est possible que je préfère à terme jeter l’éponge et que je garde mon Excel/Power Query dans une VM…

PS : comme je suis encore en phase de transition, c’est la version Windows de NiFi que j’ai testée, parce que je ne me voyais pas trop bidouiller mon Debian pour l’install.

C’est pour ça qu’il est utilise d’avoir des VM de tests avec qemu ou virtualbox.

Les ETL ce sont des plateforme lourde, il ne faut pas l’oublier.

C’est pour un besoin personnel, professionnel indépendant, ou professionnel salarié?

Un besoin perso pour de l’associatif.

Tu veux dire que dans ton Debian tu as des VM avec Debian dessus pour cloisonner des trucs ?

Non pas pour cloisonner.
Quand je veux faire des tests j’utilise une VM sur laquelle j’installe le système voulu et la ou les applications voulues.
Ainsi je peux faire une configuration matérielle que je veux.
j’installa l’OS que je veux dessus.
Puis je peux installer les applications que je veux.
Je peux ainsi tester complètement sans impacter un environnement de « production » ou la configuration de mon PC.
J’ai installé Virtualbox (à partir des dépots Oracle car ceux de Debian ne sont pas à jours).

C’est avec ces VM que je teste mes installation preseed créées avec simple-cdd par exemple. idem pour tout les tests que je fais avec Secure-boot et TPM.

SQL est un bien meilleur endroit pour stocker des datas et à mon avis apprendre les rudiment de sql te permettra rapidement de traiter tes données et les extraire vers une feuille dans Libreoffice.

Mais lorsqu’un outil nous convient ET est difficilement remplaçable, autant le conserver.

En fait, je me rabats sur du CSV ici car c’est ainsi que ma source de données est dispo sur internet. Ton commentaire me fait toutefois penser à une solution où je pourrais limiter l’ETL au strict minimum : télécharger le CSV, et l’insérer dans une base. Depuis la base, je pourrais m’occuper des parties transformation, calcul et tri (à la volée) dans les requêtes SQL à partir de LibreOffice.

En tout cas je serais nettement plus à l’aise ainsi, que de tout faire dans un ETL compliqué. Bonne idée @Clochette !

Je suis le roi du SQL, mais tu ne pouvais pas le savoir :joy:

salut
perso j’utilise du bash ou du python ou du php pour mes csv
en bash j’utilise un truc du genre ( ici pour créer un morceau de gpx :
cat radars2024.csv |sed -e 's#^\([^;]*\);\([^;]*\);\([^;]*\);\([^;]*\);\([^;]*\);\([^;]*\)\r#<wpt lat="\4" lon="\5"><name>\6 km/h</name></wpt>#' |grep -v VMA>> radars2024.gpx

c’est une bonne nouvelle dans ce cas, mais sinon une machine vituelle avec ce que tu as l’habitude d’utiliser c’est pas mal aussi ;

Effectivement le SQL est la bonne voie dans ton cas, avec notamment PostgreSQL qui va te permettre de faire des vues ou des vues matérialisées pour faire toutes tes opérations ou presque.
Prévoir un simple script Bash pour télécharger tes fichiers CSV. Puis les utiliser comme tables étrangères dans PostgreSQL, et faire des requêtes dessus.
A la fin, tu peux charger tes relations PostgreSQL dans LibreOffice Calc, et y compris faire directement des tables dynamiques avec des graphiques associés. Ça fonctionne bien.

Bonjour,

Peut-être Grist ?

Pourquoi pas, c’est le bon compromis entre un SAAS et un logiciel installé : c’est un SAAS qu’on peut installer chez soi.

Je vais quand même partir sur l’idée SQL, surtout que Postgre est dans les paquets officiels Debian, et il propose même en natif des fonctions de chargement de fichiers CSV dans des tables : COPY.