2009-02-04 16 views
2

Nous recevons plusieurs milliers de fichiers plats par semaine actuellement, et j'ai un système qui exécute des rapports sur ceux-ci et les exporte en PDF pour que nos gens puissent les traiter et les référencer.Options idéales pour l'archivage des fichiers plats

Je les charge actuellement en vrac dans une base de données, m'assure que tous les champs/formatages sont valides, les exporte et tronque les tables lors de la prochaine exécution. Ce que je me demande est ce que tout le monde pense serait le moyen le plus efficace d'espace pour stocker peut-être 6 mois de cette charge de masse de données en texte brut? Soit sous la forme de sauvegardes SQL quotidiennes, ou d'archives compressées, ou autre, j'ai toujours eu la possibilité de recharger de vieilles données pour le dépannage.

Toutes les idées sont les bienvenues, je suis ouvert à toutes les suggestions.

Répondre

2

Ainsi, vous chargez en bloc des fichiers plats de données brutes, vous utilisez SQL Server 2005 pour les traiter et obtenir un ensemble distinct de fichiers plats traités, puis vider les données?

Eh bien, si cela est correct, les sauvegardes SQL n'aideront pas puisque vous semblez dire que les données ne restent pas dans la base de données. Votre seule option est une compression efficace des fichiers d'entrée et/ou de sortie associée à une bonne organisation des lots dans les répertoires.

Je recommande un programme de compression agressive, qui a prévu une fonctionnalité de traitement par lots, mais attention à ne pas se rendre à ésotérique avec le programme que vous utilisez pour le bien d'éviter d'être enfermés dans un programme ...

+0

C'est un bon point, et un vrai problème que j'ai considéré avec des types de compression spéciaux est les dépendances sur certaines plates-formes, que je déteste si je peux l'éviter, plus j'ai des règles à suivre et je ne peux pas installer des SDK spéciaux . – thismat

+0

La troncature n'arrive que le jour suivant, donc sauvegarder à la fin de la journée ou de la course permettrait de conserver ce qui est nécessaire, mais je doute que ce soit une solution de taille efficace de toute façon. – thismat

+0

BTW, j'éviterais de sauvegarder/compresser à partir de SQL Server. C'est un autre point où vous perdez la flexibilité de le faire différemment plus tard. – alphadogg

2

Utilise un utilitaire de compression de dernière génération (les compresseurs 7z et rar sont excellents) et compresse en faisceaux après avoir tout organisé pour être facile à trouver.

Il existe des SDK pour 7zip qui fonctionnent avec .net pour rendre cela facile.

-Adam

+0

Puisque je serais limité sur quel logiciel je peux installer et que je n'ai pas utilisé 7zip auparavant, pouvez-vous facilement le décompresser avec l'utilitaire par défaut de Windows XP? Sinon, je ne peux probablement pas utiliser cette méthode en raison de restrictions sur ce que je peux réellement installer. – thismat

+0

Non, si c'est le cas, vous pouvez utiliser le 7zip sdk pour compresser un fichier zip normal, que les fenêtres peuvent décompresser sans logiciel supplémentaire. –

1

Construire une hiérarchie de fichiers qui organise les fichiers correctement, zip tout le répertoire, et utiliser le drapeau -u sur zip pour ajouter de nouvelles files.after vous les archives, vous pouvez supprimer les fichiers, mais préserver la structure de répertoire pour le lot suivant à ajouter.

Si les noms de fichiers encodent la version d'une façon ou d'une autre (dates ou autres) ou sont uniques, ils n'ont pas besoin d'être plus fantaisistes qu'un répertoire signle. Sinon, vous devez configurer vos répertoires pour vous permettre de récupérer des versions.

+0

Les noms de fichiers ne sont pas codés pour être uniques, mais je peux facilement créer la structure avec des fichiers nommés avec des tampons de date, c'est une solution solide. Avez-vous déjà essayé de compresser à partir de .NET sans SDK supplémentaire? – thismat

+0

Non, je ne suis pas un gars particulier .net. Cela ne devrait pas être trop dur, mais travailler avec les programmes standards de zip fournit la fonctionnalité de mise à jour et de fusion gratuite. –

0

Vous Vous avez indiqué que vous souhaitiez éviter les SDK et installer des logiciels sur des systèmes distants.

Vos options sont plutôt limitées.

Puisque vous utilisez des ordinateurs Windows, pourquoi ne pas utiliser un simple script?

Cette question propose plusieurs suggestions sur la façon d'utiliser des fenêtres VBscript pour compresser et décompresser des fichiers:
Can Windows' built-in ZIP compression be scripted?

Rien à 'installer', pas SDKs. Copiez simplement le script, appelez-le via le planificateur, et vous êtes tous ensemble.

-Adam

2

Il existe deux types de post-analyse des données:

  • données originales (généralement très grandes)
  • données dérivées (généralement plus petites)

Dans votre Dans ce cas, les données dérivées peuvent être les données qui vont dans vos rapports. Pour vos données d'origine je ferais juste un énorme fichier d'archive compressé avec un nom systématique basé sur la date et le type de données. La valeur de ceci est que si un novice de votre équipe oblitère totalement le code qui importe vos données originales dans la base de données, vous pouvez en récupérer. Si les données dérivées sont petites, vous pouvez penser à les copier dans une autre table de base de données ou à les conserver dans un fichier plat séparé car certains de vos problèmes pourraient être résolus en accédant simplement aux données dérivées.

Sauvegarde de vos données en général est un problème délicat, car cela dépend des choses comme:

  • quantité de débit de données
  • espace disponible pour hors site Sauvegardes
  • Valeur de mise à niveau de sauvegarde système plutôt que de se résigner à la régénération des données si des problèmes se produisent.

À quoi ressemble votre configuration? Les disques durs vont-ils se développer assez rapidement pour contenir la version compressée de vos données? Avez-vous pensé à des sauvegardes hors site?

+0

Puisqu'il s'agit d'un processus de «ligne de fond» qui n'est pas digne de serveur (vous aurez un coup de pied de cette ....), il fonctionne en fait sur un vieil ordinateur portable avec des ressources limitées. Il n'a pas encore eu de problèmes et s'est avéré plutôt stable. J'aime votre idée de copier les données dérivées dans un tableau séparé. – thismat

1

Compressez-les et enregistrez-les dans un champ binaire dans la base de données. Ensuite, vous pouvez construire un bouton "recharger le jeu de données" pour faire entrer votre jeu de données (je suppose que vous gardez la trace de chaque jeu de données que vous importez, etc.)

De cette façon, tout est stocké dans le base de données, et sauvegardé avec la base de données, indexé et lié correctement, et compressé en même temps.