Параллельность выгрузок

15.08.13

Интеграция - Обмен между базами 1C

Рассказываю свой опыт, как добился параллельности выгрузки из центральной базы РИБ сразу в 70 узлов.

У клиента распределенная база розницы из 70 узлов. Особенность – несимметричность выгрузки – на точки идет большой объем информации – номенклатура, цены, поставки товаров.

От точек приходит мало информации – только продажи.

Поэтому загрузка проходит быстро, практически за 30 минут.

А вот выгрузка идет довольно долго, порой 3 часа.

Хотелось выгружать данные параллельно, но при попытке запуска двух выгрузок сразу получал сообщение о блокировке транзакций.
 

Пришлось обратиться за помощью клуба на мисту.

Модератор форума Fragster подсказал мне решение, которое оказалось рабочим. Спасибо ему за это!
 

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

Когда-то давно я тоже столкнулся с блокировками, обмены мешали нормальной работе, я ставил в этом поле значение 200, блокировок было меньше. Оказывается, нужно было идти до конца, до единицы. По умолчанию там стоит ноль, то есть обмен целиком проходит в одной транзакции.

Тут же транзакция фиксируется после каждого прочитанного/выгруженного объекта. Таким образом, база не держит долгие транзакции и можно получить параллельность.

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

Затем я сделал пять настроек выполнения обмена, в каждую забросил по 14 точек:

На всякий случай и в самой настройке обмена ставлю размер порции обмена 1 (не изучал, что приоритетнее):

Обмены стартуют одновременно, расписание у каждого одинаковое:

В истории обмена посмотрел – все выгрузки успешные, с зелеными флажками:

На выгрузку в пять потоков отвожу час. На самом деле, проходит минут за 40, причем некоторые потоки заканчиваются раньше, другие позже – в зависимости от количества выгружаемых данных.

Выгрузка в пять потоков довольно сильно нагружает процессор, практически на 100%. Можно снизить количество потоков или стартовать каждый поток со сдвигом в 10-20 минут.

По крайней мере здесь есть выбор, которого нет при последовательных обменах.

См. также

SALE! 20%

Перенос данных из УПП 1.3 в ERP 2 / УТ 11 / КА 2. Переносятся документы, справочная информация и остатки

Обмен между базами 1C Платформа 1С v8.3 1С:Управление производственным предприятием 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)

Перенос документов, начальных остатков и справочной информации из УПП 1.3 в ERP 2 | из УПП 1.3 в УТ 11 | из УПП в КА 2 | Правила конвертации (КД 2) в продаже с 2015 года, постоянно работаем над их развитием | Более 360 предприятий выполнили переход с использованием этого продукта! | Сэкономьте время - используйте готовое решение для перехода! | Позволяет перенести из УПП 1.3 в ERP / УТ 11 / КА 2 всю возможную информацию | В переносе есть фильтр по организации и множество других опциональных параметров выгрузки | Есть несколько алгоритмов выгрузки остатков на выбор

45650 36520 руб.

04.08.2015    159676    363    267    

345

SALE! 15%

[ED3] Обмен для ERP 2.5, КА 2.5, УТ 11.5 БП 3.0, Розница, УНФ и других с EnterpriseData (универсальный формат обмена), правила обмена

Обмен между базами 1C Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Россия Платные (руб)

Правила в универсальном формате обмена для ERP 2.5, КА 2.5, УТ 11.5, БП 3.0, Розница, УНФ, для последних версий конфигураций. Ссылки на другие конфигурации в описании публикации. Правила совместимы со всеми другими версиями конфигураций новыми и старыми, поддерживающими обмен в формате EnterpriseData. Не требуется синхронного обновления правил после обновления другой конфигурации, участвующей в обмене. Типовой обмен через планы обмена кнопкой Синхронизация вручную или автоматически по расписанию, или вручную обработкой.

25080 22572 руб.

12.06.2017    134930    722    291    

388

SALE! 20%

Перенос данных из ERP 2 / КА 2 / УТ 11 в БП 3.0. Переносятся документы, начальные остатки и справочники

Обмен между базами 1C Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)

Перенос данных из ERP в БП 3 | из КА 2 в БП 3 | из УТ 11 в БП 3 | из ЕРП в БП 3 | В продаже с 2019г. | Воспользовались более 176 предприятий! | Сэкономьте время - используйте готовое решение для перехода! | Перенос разработан в формате КД 2 (правила конвертации данных) | Переносятся все возможные виды документов, начальных остатков и нормативно-справочная информация| Можно опционально выгружать каждую пару "номенклатура+характеристика" как отдельную номенклатуру | Есть выгрузка настроек счетов учета и зарплатных данных из ERP / КА 2 | Можно проверить на вашем сервере перед покупкой, обращайтесь!

34650 27720 руб.

15.04.2019    68414    178    138    

111

SALE! 20%

Перенос данных из ERP 2 / КА 2 в ЗУП 3. Переносятся остатки, документы и справочники

Обмен между базами 1C Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет Управленческий учет Платные (руб)

Перенос данных из ERP в ЗУП 3 | из КА 2 в ЗУП | Воспользовались более 79 предприятий! | Предлагаем приобрести готовые правила конвертации данных (КД 2) для переноса остатков, документов с движениями и справочной информации 3 | В продаже с 2020г. | Оперативно обновляем правила до актуальных релизов 1С | Есть перенос начальной задолженности по зарплате и начальной штатной расстановки на выбранную дату | Обороты за прошлые годы (данные для расчета среднего) переносятся свернуто в документ "Перенос данных" | Есть фильтр по организациям | Документы за текущий период переносятся сразу с движениями, поэтому не потребуется делать перерасчеты | Перенос можно проверить перед покупкой, обращайтесь!

43450 34760 руб.

03.12.2020    34168    80    58    

78

SALE! 10%

Перенос данных из УТ 10.3 в УТ 11.5. Переносятся документы (обороты за период), справочная информация и остатки

Обмен между базами 1C Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 Оперативный учет 1С:Управление торговлей 10 1С:Управление торговлей 11 Россия Управленческий учет Платные (руб)

Перенос данных из 1С:Управление торговлей 10.3 в 1С:Управление торговлей 11.5 с помощью правил обмена. Переносятся остатки, документы (обороты за период), справочная информация. Правила проверены на конфигурациях УТ 10.3 (10.3.87.x) и УТ 11.5 (11.5.16.x).

28000 25200 руб.

23.07.2020    46288    196    64    

158

SALE! 10%

Перенос данных из БП 3.0 в УТ 11 / КА 2 / ERP 2. Переносятся начальные остатки, документы и справочники

Обмен между базами 1C Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)

В продаже с 2014г. | Воспользовались более 122 предприятий! | Перенос данных из БП 3.0 в УТ 11 | из БП 3.0 в КА 2 | из БП 3.0 в ERP | Сэкономьте свое время - используйте готовое решение для перехода! | Постоянно работаем над развитием переноса данных | Обновляем на новые релизы 1С | Есть фильтр выгрузки по организациям | Переносятся начальные остатки на выбранную дату, документы за период времени и вся возможная справочная информация | Перенос сделан на технологии КД 2 (правила конвертации данных)

50722 45650 руб.

31.10.2014    231395    124    327    

296

Перенос данных из Парус 10 в ЗГУ ред.3

Внешние источники данных Кадровый учет Файловый обмен (TXT, XML, DBF), FTP Обмен между базами 1C Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактических удержаниях, НДФЛ, вычетах, страховых взносах из базы Парус 10 учреждений в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (ЗГУ) и начать с ней работать с любого месяца года.

60000 руб.

05.10.2022    9207    9    8    

10

SALE! 10%

Перенос данных из УПП 1.3 в БП 3.0. Переносятся документы (обороты за период), справочная информация и остатки

Обмен между базами 1C Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 1С:Управление производственным предприятием 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Управленческий учет Платные (руб)

Перенос данных из 1С:Управление производственным предприятием 1.3 в 1С:Бухгалтерия предприятия 3.0 с помощью правил обмена. Переносятся остатки, документы (обороты за период), справочная информация. Правила проверены на конфигурациях УПП 1.3 (1.3.223.x) и БП 3.0 (3.0.149.x). Правила подходят для версии ПРОФ и КОРП.

28000 25200 руб.

15.12.2021    20244    132    38    

90
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. NazarovV 87 16.08.13 11:15 Сейчас в теме
все гениальное - просто! Спасибо Вам за эту публикацию, как никогда кстати!
2. fixin 4252 16.08.13 12:01 Сейчас в теме
(1) сам несказанно рад. тупил год на решением проблемы, чего только не хотел сделать. А решение вот оно где оказывается.
3. NazarovV 87 16.08.13 12:28 Сейчас в теме
(2) мне до сих пор стыдно(
4. Fragster 1138 16.08.13 12:41 Сейчас в теме
Я не только на мисте, я и тут есть
Liris; iov; RustIG; +3 Ответить
5. tolyan_ekb 104 16.08.13 12:57 Сейчас в теме
Изредка следил за твоими исканиями по мелькавшим темам. Молодец, у тебя получилось ))
6. Fragster 1138 16.08.13 13:18 Сейчас в теме
Опять же главное - сделать обмен вида 1 база - 7 баз - 7х10 баз - так и не реализовано, а это очень сильно снижает время выгрузок (если одни и те же данные ходят во много узлов), 7 "промежуточных" баз можно вынести на отдельный сервер, чтобы они не мешали работе основного.
7. fixin 4252 16.08.13 13:22 Сейчас в теме
(6) да. но это из пушки по воробьям. Меня устроила выгрузка в пять потоков на 70 точек.
Грузит, конечно, сервак на 100%, но быстро. Терпимо.

Да, спасибо большое за решение. ;-)

(5) да, стремлюсь к идеалу.
8. rosinfo1 16.08.13 14:01 Сейчас в теме
Что-то не понял как 14 узлов в одну настройку обмена запихнуть??? У меня один узел соответствует одной настройке, потом цикл по справочнику с настройками запускается и стартует последовательно. Правда у меня всего 5 узлов.
9. fixin 4252 16.08.13 14:03 Сейчас в теме
(8) не путайте "настройка выполнения обмена" (сюда именно запихиваются 14 узлов) и "настройка обмена"
10. Slotty 16.08.13 14:29 Сейчас в теме
Хм. Сам как то бился над решением данного вопроса. Fragster, fixin - молодцы.
11. a-novoselov 1155 16.08.13 14:42 Сейчас в теме
Вроде бы элементарное решение, сам до него за пару часов додумался, когда проблемы возникли и другие действия не помогали... Но, видимо, не всем сразу в голову может прийти. Молодец что написал в помощь молодым!
12. fixin 4252 16.08.13 14:48 Сейчас в теме
(11) а прикинь, я год парился. и не новичок.
кстати, у меня розница переделана была в режим управляемых блокировок. но думаю, что и в обычном режиме должна норм работать.
13. rosinfo1 16.08.13 15:26 Сейчас в теме
Что-то все равно не понятно где в спр. "настройка выполнения обмена" указать 14 узлов, узел же указывается в шапке справочника "настройка обмена". Если 70 обменов следовательно 70 элементов справочника "настройка обмена", далее цикл переборка каждого элемента справочника и запуск обмена, или я что-то не понимаю ?
14. rosinfo1 16.08.13 15:37 Сейчас в теме
Еще вопрос. У Вас обмен файлами через ФТП ресурс настроен, или как-то по другому? Файлы каждого магазина в отдельной папочке на ФТП ресурсе, или по названиям ищите (если что не так пойдет)? Потом из Розницы в какую базы выгружаете? Просто мне предстоит настроить 15 магазинов розницы РИБ, а потом выгрузку из центрального узла в Комплексную автоматизацию. Хочу все типовыми средствами делать. Думаю как бы на "грабли не наступить".
16. fixin 4252 16.08.13 16:29 Сейчас в теме
(14) у нас VPN, обмен происходит через расшаренный каталог центрального сервера. То бишь никакого ФТП.
20. NazarovV 87 17.08.13 18:01 Сейчас в теме
(14) rosinfo1, у нас 12 магазинов, обмен был настроен по ftp... выгружал последовательно, параллельно тупило( после этой статьи попробовал - все ок, выгрузка\загрузка проходят за 30-40 секунд, тормозов замеченно не было... удачи в настройке!
15. rosinfo1 16.08.13 16:11 Сейчас в теме
C настройкой спр. "настройка выполнения обмена" разобрался, почему то табличная часть "Выполняемые действия" была скрыта в демо-базе Розница 1.0
17. Aleskey_K 32 16.08.13 17:27 Сейчас в теме
я думаю, что обмен по 1 элементу, это слишком мелко. почему не использовать блоки по 5-10 элементов, найти эту золотую середину? Или тут смысл немного в другом ?
19. fixin 4252 16.08.13 17:48 Сейчас в теме
(17) лучшее - враг хорошего. И так работает. Вот на 200 не работало. ;-)
Ну их нафиг, эти транзакции, рассадник блокировок.
(18) спасибо.
18. LexSeIch 210 16.08.13 17:38 Сейчас в теме
Мир этому дому!
Спасибо за предложенное решение! Думаю скоро пригодится.
21. ivanov660 4330 19.08.13 07:05 Сейчас в теме
Наверное не сравнивали время выгрузки при различных настройках 200 и 1? Если сопоставимы тогда гуд.
Мы же делаем выгрузки последовательно растягивается конечно часа на 2-3 (8 точек). Надо попробовать, интересно посмотреть на результат. Больше всего конечно напрягают взаимные блокировки в случае параллельности...
22. stoptime 400 19.08.13 11:27 Сейчас в теме
22 магазина файлы ходят эпические, так как картинок много. Супер это решило проблемму.
дед локи ушли
23. Yashazz 4709 19.08.13 14:12 Сейчас в теме
"Не изучал...", "Спросил совета...". Метод тыка, ё-моё.
Лучше б товарищ Fragster сам словил означенные плюсы.
24. fixin 4252 19.08.13 14:47 Сейчас в теме
(23) коллеги, давайте относиться к вещам реалистично. Товарищ Фрагстер много знает и спасибо ему за это.
Но если бы я не постарался, вы ды до сих пор не знали, что есть такая методика. Не думаю что в планах товарища Фрагстера было публиковать такую статью на ИС.
Так что плюсы мои заслуженные. ;-)
25. Fragster 1138 19.08.13 16:44 Сейчас в теме
Можете купить мне на пиво обработку за 1000 рублей :)
http://infostart.ru/public/197614/
headMade; +1 Ответить
26. fixin 4252 19.08.13 17:06 Сейчас в теме
27. kruglay 110 20.08.13 14:55 Сейчас в теме
оказывается все так просто, спасибо за совет
28. gallam99 237 21.08.13 21:52 Сейчас в теме
(0)
Без обид конечно, но эта информация давно есть в инете:

"Количество элементов в транзакции" – определяет максимальное число элементов данных, которые помещаются в сообщение в рамках одной транзакции базы данных. Если значение параметра равно 0 (значение по умолчанию), то все данные помещаются в рамках одной транзакции. Такой режим является рекомендуемым, так как гарантирует согласованность данных, помещаемых в сообщение. Но при создании сообщения в многопользовательском режиме могут быть конфликты блокировок между транзакцией, в которой данные помещаются в сообщение, и транзакциями, выполняемыми другими пользователями. Для снижения вероятности возникновения таких конфликтов можно задать значение этого параметра, отличное от значения по умолчанию. Чем меньше значение параметра, тем меньше вероятность конфликта блокировок, но выше вероятность помещения в сообщение несогласованных данных.

Я так понимаю, по фразе "элементов в транзакции при выгрузке данных" в яндексе эта статья на втором месте)))
29. fixin 4252 22.08.13 10:49 Сейчас в теме
(28) привет, КЭП. В интернете есть все. Вопрос в том, чтобы применить то что есть в интернете.
Не замечаете своей логической ошибки?
32. gallam99 237 22.08.13 11:42 Сейчас в теме
(29) "Вы год бились по вашим словам", а то что написано в туче материалов не прочитали, досадно.
И второе, прежде чем говорить об этой "супер находке", надо бы предупредить людей о проблеме "согласованности данных", на которую они могут наступить. И должны это учитывать для конкретной ситуации.
У нас был практический опыт организации параллельных загрузок/выгрузок и не только в разрезе периферийных БД, а в размере объектов одной периферийной БД (и это возможно).
Проще было проанализировать на чем у вас блокировка (какой ресурс блокируется) и можно было бы ли его расшить, тем более, что узел присутствует в таблице регистрации изменений (логических проблем быть не должно).
kruglay; krv2k; anchovy; CratosX; +4 Ответить
33. fixin 4252 22.08.13 12:26 Сейчас в теме
(32) вам проще одно, мне другое. Проблема рассогласования данных решается проще, чем построение хитрых схем параллельности. ;-)

Видите ли, на практике все упирается в стоимость решения. Это решение дешевое и довольно надежное.
30. Fragster 1138 22.08.13 10:51 Сейчас в теме
(28) gallam99, Это даже в синтакс помощнике есть, если что...
31. fixin 4252 22.08.13 11:05 Сейчас в теме
(30) коллега, я не в первый раз подымаю эту тему. И никто ничего не мог сказать, пока я не провел эксперимент и не внедрил. Одно дело знать, что это влияет на блокировки, другое дело быть уверенным, что будет параллельность.
Так что не надо выдавать неочевидные факты за очевидные.
34. PlatonStepan 38 26.08.13 07:56 Сейчас в теме
вообще, при выгрузке данных для узла блокируется только этот узел, так что не вижу проблемы в параллельной выгрузке данных для N-Узлов.
саму проблему ожидания завершения транзакции для одного объекта выгружаемого в N-узлов одновременно не решили :), да это и не под силу в рамках платформы :).
проблема согласованности данных по-моему мнимая, к тому же самоустраняющаяся в следующем сообщении.
Зайдя сюда решил было что вы одно сообщение раздаёте всем узлам, хорошо что не так :)
И ещё одно, пока есть процессы выгрузки сообщений, возможно, не стоит начинать приём сообщений? Если данные интенсивно мигрируют не только вертикально, но и горизонтально.
35. anchovy 24 27.08.13 11:19 Сейчас в теме
(34) Jogeedae, При определении состава сообщения блокируется вся ТРИ, иначе блокировки при параллельных выгрузках не возникали бы. Это баг, не убирающийся управляемыми блокировкаии. Я пробовал устанавливать режим управляемых блокировок в РИБ Розница - ничего не дало.
36. Zmey_72 53 09.09.13 07:12 Сейчас в теме
Спасибо за проделанную работу. Очень пригодилось!
37. AVK_Alex 4 10.09.13 10:28 Сейчас в теме
Вот так вот. На очередном примере подтверждается старинная русская поговорка: "Хорошего понемногу".
Транзакции в небольшом количестве - добро, в большом - уже зло :)
38. natarezn 16.10.14 13:03 Сейчас в теме
Вы такой молодец! объяснили
39. natarezn 16.10.14 13:04 Сейчас в теме
У меня стоит 200 как у Вас. база слетает по часам. невозможно сделать выгрузки. сбоит
40. mixperm 67 24.07.17 06:50 Сейчас в теме
Зачет!!! Сделал как сказано тут, но при выгрузке были блокировки и ничего не выгружалось. Погуглил еще интернет и нашлось решение
1. В конфигураторе сделал Режим управления блокировкой данных Автоматический и управляемый (было Автоматический)
2. На sql выполнил запрос
ALTER DATABASE <ИМЯ БАЗЫ>
SET ALLOW_SNAPSHOT_ISOLATION ON

ALTER DATABASE <ИМЯ БАЗЫ>
SET READ_COMMITTED_SNAPSHOT ON
Не стал разбивать на количество потоков базы, для каждой базы создана отдельная настройка выполнения обмена. В обработке одновременно запускаются все 40 обменов, на серваке 8 потоков выделено. Выгрузка обновлений конфигурации занимает 15 минут, до этого было 90 :)))
MaZaHacKa_13; +1 Ответить
41. fixin 4252 27.07.17 16:43 Сейчас в теме
(40) молодцом! грамотно применили идею.
Оставьте свое сообщение