В комплекты поставки всех наших переносов данных включены улучшенные версии обработок Универсальный обмен в формате XML, но многие наши заказчики не знают или не пользуются и десятью процентами тех возможностей, которые мы добавили в эту обработку.
Постараемся исправить эту ситуацию. В этой статье расскажем о самой востребованной опции, которая незаменима при переносе больших объемов данных.
Возможность автоматически разбивать данные на части есть в версии обработки для обычных и для управляемых форм:
Как возникла идея написать данную статью?
Около года назад к нам обратился потенциальный заказчик, которому нужно было перенести все документы и справочники из ERP в ЗУП 3 за пять с лишним лет. Возможно, вы даже не представляете, насколько это тяжело и сколько головной боли может создать такая задача. Полная, параллельная выгрузка и загрузка частями занимала ДВЕ недели… При том, что наш сервер и его производительность максимально адаптированы именно для выполнения переносов, в течение всего этого срока постоянно было задействовано около 50 ГБ оперативной памяти. Суммарный объем всех файлов на момент окончания выгрузки составлял около 700 ГБ. В процессе работы над замечаниями по переносу данных было сделано около 100 повторных выгрузок и загрузок (благо не полных (◕‿◕)). Проект мы выполнили примерно за 4 месяца, если знаете хоть кого-то, кто справился бы лучше или делал похожие проекты, обязательно расскажите, (task@moscowsoft.com) было бы очень интересно узнать про ваш опыт.
Видеодемонстрация
Рекомендуется в настройках видео внизу справа сразу включить максимальное качество - 1080р, иначе подробности будет видно нечетко.
Зачем выгружать и загружать частями?
На самом деле есть только одна возможная ситуация, когда данная настройка выгрузки может быть излишней. Только при небольших выгрузках, например, всех документов за один день. Выгрузка делится на части по каждому ПВД первого или второго уровня и после завершения выгрузки одной части, правила каждый раз читаются из файла правил конвертации данных с диска заново, обычно от 15 секунд до 3 минут, а теперь представьте, что у нас 100 ПВД первого уровня! Выгрузка по одному ПВД документов за один день идет 5 секунд, а правила каждый раз читаются 3 минут. То есть выгрузка в один файл у нас бы длилась 500 секунд или около 8 минут, а выгрузка в 100 частей уже будет длиться 308 минут.
Так выглядят настройки выгрузки частями на вкладке Настройки MoscowSoft в версии обработки обмена для управляемых форм:
Но в чем же тогда преимущество?
А в том что 1С и ресурсы нашей системы будут обрабатывать не один большой файл (а с большими xml-файлами 1С плохо справляется) , а несколько маленьких, что снизит нагрузку на процессор, оперативную память, и если по какой-то причине выгрузка или загрузка прервется, мы сможем продолжить ее с последней незагруженной части. То есть у нас появляется возможность докачки данных. Также мы сможем отслеживать процесс выполнения выгрузки по дате создания появляющихся в каталоге файлов.
Также вы сможете параллельно запустить и выгрузку и загрузку! То есть они будут выполняться одновременно.
А процесс загрузки можно отслеживать через журнал регистрации в конфигураторе базы 1С приемника данных:
Как правильно выгружать и загружать частями?
- В обработке для управляемых форм на вкладке Настройки MoscowSoft устанавливаем следующие значения параметров:
- Настраиваем выгрузку, в пути к файлу выгрузки лучше указать пустую папку (чтобы в дальнейшем не запутаться).
-
Имя файла выгрузки у нас установлено “выгрузка частями к каждой части будет добавлен номер и имя ПВД <ИмяФайлаВыгрузки+ПВД+№>
Например: - При загрузке наша обработка будет анализировать все файлы в папке, в которую мы выгружали данные и загружать их дате создания файла. Анализ проходит не разово, а при обращении к каждой новой части, благодаря чему можно параллельно выгружать и загружать.
Небольшой нюанс
Загрузка всегда идет дольше выгрузки, поэтому загрузку необходимо запускать после того, как у вас выгрузится первый большой файл. В противном случае выгрузка может перегнать загрузку и прерваться. Нормальной скоростью загрузки считается ситуация, когда файл размером 1 ГБ загружается примерно 1 час. Стоит иметь в виду, что эта скорость указана средняя в некой модельной ситуации. У вас она может быть в реальности быстрее или медленнее.