Dans une application de notre société, nous collectons des données statistiques à partir de nos serveurs (chargement, utilisation du disque, etc.). Comme il y a une énorme quantité de données et que nous n'avons pas besoin de toutes les données à tout moment, nous avons eu une routine de "compression" qui prend les données brutes et calcule min. max et average pour un certain nombre de points de données, stockez ces nouvelles valeurs dans la même table et supprime les anciennes après quelques semaines.gestion/compression de grands ensembles de données dans plusieurs tables
Maintenant, je suis chargé de réécrire cette routine de compression et la nouvelle routine doit conserver toutes les données non compressées dont nous disposons depuis un an dans une table et les données "compressées" dans une autre table. Mes principales préoccupations sont maintenant de savoir comment gérer les données écrites en continu dans la base de données et d'utiliser ou non une "table de transactions" (mon propre terme car je ne peux pas en trouver un meilleur, je ne parle pas du commit/fonctionnalité de transaction de restauration).
A partir de maintenant nos collecteurs de données insèrent toutes les informations dans une table nommée ovak_result
et les données compressées finiront dans ovak_resultcompressed
. Mais y at-il des avantages ou des inconvénients spécifiques à la création d'une table appelée ovak_resultuncompressed
et juste utiliser ovak_result
comme un «stockage temporaire»? ovak_result
serait maintenu minimal ce qui serait bon pour la routine de compression, mais je devrais mélanger toutes les données d'une table dans une autre continuellement, et il y aurait la lecture, l'écriture et la suppression constantes dans ovak_result
.
Existe-t-il des mécanismes dans MySQL pour gérer ce genre de choses?
(S'il vous plaît noter: Nous parlons ici d'assez grands ensembles de données (environ 100 M lignes dans la table non compressée et environ 1-10 M lignes dans la table compressée) .En outre, je peux faire à peu près ce que je veux avec des configurations logicielles et matérielles, donc si vous avez des astuces ou des idées concernant les configurations MySQL ou la configuration matérielle, il suffit de les mettre en marche.)
Moteur intéressant, mais malheureusement loin de ce dont j'ai besoin. Le manque d'index le rendra très difficile à utiliser car j'ai besoin de rejoindre certaines tables et j'ai besoin de la fonction de mise à jour au moins. Pour clarifier mon exposé sur la compression; la "compression" (que je devrais appeler "moyennage") que j'ai décrite est faite pour la rendre plus utilisable (par exemple, les graphiques sont moins encombrés quand on regarde les tendances pendant des mois), pas pour préserver l'espace disque.Les performances sont prioritaires sur l'espace disque. – Lobo
FlexViews a l'air très intéressant, et même si je ne suis pas encore sûr que ce soit la réponse à mon problème, vos deux réponses m'ont donné quelques idées et m'aident dans le processus, donc j'appelle cela une réponse acceptée. Merci beaucoup :) – Lobo
Je suis heureux d'aider. Bonne chance pour votre projet! –