Идеальные варианты для архивирования плоских файлов - PullRequest
2 голосов
/ 04 февраля 2009

В настоящее время мы получаем несколько тысяч простых файлов в неделю, и у меня есть система, которая создает отчеты по ним и экспортирует их в PDF для обработки и использования нашими сотрудниками.

В настоящее время я массово загружаю их в базу данных, проверяю правильность всех полей / форматирования, экспортирую их и усекаю таблицы при следующем запуске.

Что мне интересно, так это то, что, по мнению всех, является наиболее эффективным способом хранения, возможно, 6 месяцев этой массовой загрузки данных в виде простого текста?

Либо в виде ежедневных резервных копий SQL, либо в виде архивов в архиве, либо в любом другом виде, поэтому у меня всегда была возможность перезагрузить старые данные для устранения неполадок.

Любые идеи приветствуются, я открыт для любых предложений.

Ответы [ 6 ]

2 голосов
/ 04 февраля 2009

Существует два типа пост-анализа данных:

  • исходные данные (обычно очень большие)
  • производные данные (обычно меньше)

В вашем случае производные данные могут быть данными, которые входят в ваши отчеты. Для ваших исходных данных я просто сделал бы огромный сжатый архивный файл с систематическим именем, основанным на дате и типе данных. Значение этого в том, что если какой-то новичок в вашей команде каким-то образом полностью уничтожит код, который импортирует ваши исходные данные в базу данных, вы можете восстановить его. Если производные данные невелики, вы можете подумать о том, чтобы скопировать их в другую таблицу базы данных или сохранить в отдельном простом файле, поскольку некоторые из ваших проблем можно решить, просто перейдя к производным данным.

Резервное копирование данных в целом является сложной задачей, поскольку оно зависит от таких вещей, как:

  • Объем данных
  • Свободное место для резервных копий вне сайта
  • Ценность обновления вашей системы резервного копирования вместо того, чтобы просто посвятить себя восстановлению данных в случае возникновения проблем.

Каковы ваши настройки? Будут ли жесткие диски расти достаточно быстро, чтобы хранить сжатую версию ваших данных? Вы думали о резервном копировании вне сайта?

2 голосов
/ 04 февраля 2009

Итак, вы массово загружаете плоские файлы необработанных данных, используете SQL Server 2005 для их обработки и получаете отдельную группу обработанных плоских файлов, а затем выгружаете данные?

Что ж, если это правильно, резервные копии SQL не помогут, так как вы, кажется, говорите, что данные не остаются в БД. Ваша единственная опция - эффективное сжатие входных и / или выходных файлов в сочетании с хорошей организацией пакетов в каталогах.

Я бы порекомендовал агрессивную программу сжатия, которая имеет запланированные функции пакетной обработки, но будьте осторожны, чтобы не разбираться в эзотерике с программой, которую вы используете, чтобы избежать блокировки в одной программе ...

2 голосов
/ 04 февраля 2009

Используйте утилиту сжатия последнего поколения (отличное сжатие 7z и rar) и сжимайте в связки после упорядочивания всего, чтобы их было легко найти.

Существуют SDK для 7zip, которые работают с .net, чтобы упростить эту задачу.

-Adam

1 голос
/ 04 февраля 2009

Сожмите их и сохраните в двоичном поле в базе данных. Затем вы можете создать кнопку «перезагрузить набор данных», чтобы ввести свой набор данных (я предполагаю, что вы отслеживаете каждый набор данных, который вы импортируете для его замены и т. Д.)

Таким образом, все хранится в базе данных и резервируется с базой данных, корректно индексируется и связывается, и одновременно сжимается.

1 голос
/ 04 февраля 2009

Создайте файловую иерархию, которая должным образом организует файлы, заархивируйте весь каталог и используйте флаг -u на zip для добавления новых файлов. После архивирования вы можете удалять файлы, но сохранять структуру каталогов для следующая партия будет добавлена.

Если имена файлов каким-либо образом кодируют версию (даты или что-то еще) или являются уникальными по иным причинам, то это не должно быть чем-то более причудливым, чем каталог signle. Если нет, вам нужно настроить каталоги, чтобы они могли восстанавливать версии.

0 голосов
/ 04 февраля 2009

Вы указали, что хотите избегать использования SDK и установки программного обеспечения в удаленных системах.

Ваши возможности довольно ограничены.

Поскольку вы используете компьютеры с Windows, почему бы не использовать простой скрипт?

Этот вопрос предлагает несколько советов о том, как использовать Windows VBscript для сжатия и распаковки файлов:
Может ли встроенное сжатие ZIP в Windows быть сценарием?

Ничего не устанавливать, никаких SDK. Просто скопируйте сценарий, вызовите его через планировщик, и все готово.

-Adam

...