Export des données du module à la demande

Bonjour,

Afin d’établir des statistiques, il faut que l’utilisateur puisse, au moyen d’une action, exporter toutes les données du module au format JSON.

Y a-t-il un moyen “simple” de faire cet export complet ?

Merci d’avance

Bonjour,

La fonction standard d’export des données d’un module est le XML afin de pouvoir être ré-importé sur une autre instance.

  • Il faut paramétrer l’ordre d’export sur les définitions de vos objets métier dont les données sont à exporter
  • Passer par la UI et cliquer sur Exporter les données depuis le module, cela va créer un record dans l’onglet Dataset avec le fichier généré

Cette action ModuleExportData peut être appelée à distance et l’objet Dataset également requeté. comme n’importe qu’elle autre objet Simplicité.

Si vous voulez du JSON, il faudra coder une action sur un objet de votre module pour fabriquer le JSON en appelant explicitement les exports de données en JSON de certains objets via Interface.

Message m = new Interface().exportJSON(grant, objectName, optionalOrigin);
String json = m.getResultData();

ça signifie que je dois créer des publications?

Oui c’est possible de passer par une publication dont la méthode Java concatènera les json.
Mais vous n’auriez presque rien à faire en passant par le Dataset XML du module.

Il semble étrange de passer par la UI pour exporter la base de données en vue de faire des statistiques :

  • temps d’attente très long côté UI si la base est énorme
  • temps de CPU lourd qui pénalise les autres utilisateurs
  • plantage mémoire du code de publication sauf à sérialiser l’export au fur et à mesure dans un fichier pour ne pas consommer trop de mémoire de la JVM…

Le moyen “simple” de faire un export complet reste un dump SQL côté base données de certaines tables directement.

Pourquoi passer par du JSON / HTTP, vous utilisez une indexation type elastic search ? quel outils statistiques ?

La réponse idéale dépend de celui qui consommera la données et des volumétries, de la fréquence et de la fraicheur des données requises.

Autre approche:

Plutôt qu’exporter la totalité des données élémentaires pourquoi ne pas exporter des données déjà agrégées (= les données de tableaux croisés) ?

Cela réduirait drastiquement le volume et la consommation de ressources.

S’il s’agit bien de besoins de “statistiques”, il n’y a pas à priori besoin des données élémentaires.

PS: Si vous avez besoin d’extraire des données élémentaires c’est que vous n’êtes plus dans des “statistiques” mais dans une approche de “datawharehouse”/“datalake” auquel cas il est plus logique/optimal de taper directement au niveau de base de données

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.