2009-01-17 3 views
1

J'ai un programme qui capture les données en direct à partir d'un élément du matériel sur un intervalle défini. Les données sont renvoyées en XML. Il y a plusieurs choses que je voudrais faire avec ces données (dans l'ordre): -display à l'utilisateur -save sur disque -Finalement, le transférer à la base de donnéesC#: capture des données, affichage sur l'utilisateur, sauvegarde sur disque, téléchargement vers la base de données: approche BEST

Mon approche actuelle est de prendre le XML, analyser dans une table de hachage afin que je puisse afficher les valeurs correctes à l'utilisateur.

Ensuite, je veux enregistrer le fichier XML dans un fichier sur le disque. Pour chaque session de capture de données, je prévois de créer un fichier XML unique et j'y jetterai toutes les données.

Enfin, je voudrais refaire le XML et le télécharger vers une base de données MySQL. Les données ne peuvent pas être immédiatement téléchargées dans la base de données.

Cette méthode semble vraiment inefficace pour résoudre ce problème et j'aimerais avoir quelques conseils.

Est-ce un gaspillage d'espace disque dur pour enregistrer les données au format XML?

Est-il SI inefficace d'avoir à refaire le XML pour l'écrire dans une base de données?

Merci!


Pour clarifier: une réponse XML typique sera ~ 1kb et sont capturés à un taux d'environ 1 réponse toutes les 15-60 secondes.

Je pense que je veux stocker le XML comme XML sur le disque car les données sont très précieuses et difficiles à reproduire (si c'est même possible). Je vous remercie!

Répondre

1

Lorsque vous recevez un nouveau document XML de la source, enregistrez-le directement sur le disque et analysez-le pour qu'il s'affiche à l'utilisateur. Avec un processus d'arrière-plan, ou initié par l'utilisateur, lisez les fichiers xml à partir du disque et envoyez-les au serveur en fonction de la date de création (pour ne récupérer que les plus récents) pour insertion dans MySql.

0

Cela dépend principalement de la quantité et du taux de données que vous déplacez. Si vous devez télécharger dans la base de données rarement et cela ne prend que quelques secondes, la flexibilité de XML est sûrement bonne à avoir. Si vous n'utilisez jamais les données stockées localement, sauf pour les télécharger dans la base de données et que l'analyse prend quelques minutes, vous pourriez vouloir repenser la stratégie.

0

peut-être il devrait y avoir un thread séparé pour l'extraction de données et le traitement.