0. tormozit 5418 07.08.15 12:38 Сейчас в теме

Приемы обработки больших данных в 1С

Рассказ об эффективных приемах организации обработок больших объемов данных на платформе 1С

Перейти к публикации

Комментарии
Избранное Подписка Сортировка: Древо
1. starik-2005 1856 07.08.15 21:16 Сейчас в теме
2. support 4435 07.08.15 23:46 Сейчас в теме
Ну, вы выдали!
PowerBoy; jobkostya1c8; ustinov_greendale; Сергей Осипенко; shalimski; Evil Beaver; roofless; artbear; shootnik; Taktic; necropunk; kuntashov; +12 Ответить
3. WKBAPKA 212 09.08.15 14:22 Сейчас в теме
4. ZLENKO 382 10.08.15 17:40 Сейчас в теме
В пункт "Минимизация ожидания на блокировках данных" можно еще добавить "Используем версионную СУБД (например, база MS SQL Server в режиме версионирования)".

В "Используем привилегированный режим" можно добавить "В свойствах документа устанавливаем галочки "Прив.режим при проведении" и "Прив.режим при отмене проведения""
artbear; tormozit; +2 Ответить
5. tormozit 5418 10.08.15 17:48 Сейчас в теме
При версионную СУБД или режим действительно в тему. Спасибо. Дополню.

По флажкам в метаданных документов на время выполнения обработки. Это программно сделать сейчас практически нельзя, т.к. выгрузка/загрузка метаданных в/из xml пока очень сырая. Поэтому такое пригодится в очень редких случаях.
6. tormozit 5418 11.08.15 11:39 Сейчас в теме
Добавил раздел "Многопоточный обмен данными" со схемой.
7. MaxS 1604 20.08.15 07:57 Сейчас в теме
Здорово. Осталось найти такого идеального заказчика продукта, который морально, физически и материально готов поддержать все этапы оптимизации.
8. tormozit 5418 20.08.15 08:22 Сейчас в теме
(7) Подозреваю, что имеются ввиду неудобные приемы типа удаления программного кода. Конечно такие приемы в большинстве случаев недостижимы в реальных рабочих базах на достаточно длительное время. Однако каждый из них мы применяли, например очистку программного кода в копиях рабочих баз и при создании начального образа периферийной базы. Естественно для каждой ситуации нужно подбирать подходящие приемы.
9. DrZombi 20.08.15 11:58 Сейчас в теме
Что это?
Много буковок, прочитал все, осилил... Но зачем тут Фраза Обработка?
Причем тут вообще отключение того, другого... Давайте всех людей уберем и оставим одного.... Да при таком подходе вообще ненужно нечего и ни кого править :)


...
Статья зачётна, отформатирована... но писуарно бесполезна :)
10. tormozit 5418 20.08.15 12:17 Сейчас в теме
(9) Под обработкой в статье понимается обработка больших данных. "Отключение того, другого" - это некоторые из приемов, обещанные в анонсе к статье. При обработке больших данных участие человека (оператора) должно быть сведено к минимуму. Но кроме максимальной автоматизации обработки, важно обеспечить ее выполнение в имеющееся технологическое окно (например ночь между рабочими днями или серия выходных дней).
11. DrZombi 21.08.15 07:19 Сейчас в теме
(10)
например ночь между рабочими днями или серия выходных дней


Зачем? Для чего нужно такое, что бы по ночам загружать систему?
На каждый процесс необходимо свой смысл. Каков смысл, ускорять автомат, "многопоточностью"?
...восстановление последовательности под средством перепроведения документов?...
...У 8.ххх уже ненужно фактически проводить документ, что бы формировать движения документа, быстрее всего выполнить манипуляцию по нужному регистру, нежели обрабатывать 100 ненужных проверок, преобразований, которые программисты 1С так наравят запихнуть в Процедуру Обработки проведения :)
12. Evil Beaver 5774 21.10.15 13:17 Сейчас в теме
Не знаю, как кого, а меня пугают ситуации, как на картинке в начале... А ну как Старых напишет "ЗаменительРазработчика" на базе "Инструментов" и все, пиши-пропало)
CratosX; mike_grig; +2 Ответить
13. kolya_tlt 11 11.11.15 09:55 Сейчас в теме
Добрый день.
у вас были проекты по Многопоточному обмену данными? поделитесь опытом?
dinopopyys; +1 Ответить
14. tormozit 5418 11.11.15 10:45 Сейчас в теме
(13) Вроде бы в статье я им как раз поделился. Что еще интересует?
15. kolya_tlt 11 12.11.15 21:53 Сейчас в теме
(14) до самого подхода, что выгрузить данные из одного плана обмена порциями я додумался :) а вот до организации выгрузки порциями руки не дошли :( если поделитесь каким-то кодов или на пальцах расскажите "делал так, так и так" буду очень благодарен
16. n0ther 20.02.16 16:57 Сейчас в теме
Внезапная статья, но интересно. Спасибо
17. tank68 17 24.03.16 10:26 Сейчас в теме
18. alextalov 25.05.16 23:19 Сейчас в теме
Поздновато, но вставлю свои 5 копеек про многопоточность...

Пару лет назад реализовывал свертку базы, вот некоторые особенности.
На практике параллельность приходилось реализовывать внутри последовательных блоков в которых было несколько операций формирующих наборы данных для обработки, и затем непосредственно обработка этих данных распараллеливалась. Для свертки базы в первую очередь формировались срезы по регистрам, затем удалялись движения по ним, и затем удалялись документы.
Внутри блока сначала формируются наборы данных для обработки с изначально заданным количеством элементов. Например миллион документов разных видов можно раскидать на 1000 блоков, каждый блок содержит только набор определенных объектов.
Данные наборы выстраиваются в очередь (чередуясь по типам объектов) и начинают последовательно заданным количеством фоновых заданий обрабатываться, при таком подходе можно в любой момент изменить количество потоков (фоновых заданий) для обработки. Такой подход обусловлен тем, что при наличии нескольких баз для обработки с разным железом, приходится для каждой индивидуально подстраивать оптимальное число потоков, при этом для удаления документов это будет одним числом, а для пересчета итогов другим. Перебрав с числом потоков не просто не будет роста, а начнется явное замедление из-за эскалации блокировок - они легко ловятся без профайлера по очереди задач в мониторе активности. Еще плюс такого подхода в том что вы всегда можете управлять количеством потоков, а следовательно и нагрузкой на железо, по факту если свертка не успевала закончиться до утра, то просто убавлялось количество потоков до 1-3 и пользователи могли спокойно работать пока база чистилась.

p.s. авторы, спасибо, отличная статья
support; tormozit; +2 Ответить
19. venvlad 22 04.07.17 18:38 Сейчас в теме
20. DarkAn 808 13.07.17 16:19 Сейчас в теме
Статья интересна, давненько читал, из-за обновления вновь присоединился

Если интересно, предлагаю ознакомиться с моей реализацией (http://infostart.ru/public/626117/).
Основные особенности относительно описанной Вами реализации это:
* Отсутствие необходимости разбивать Множество на порции;
* Передача данных между потоками осуществляется средствами БД, а не файлов, при этом ни каких дополнительных таблиц создавать не надо.

и бонус:
* возможность настроить зависимость одних объектов от других.

Буду рад за комментарии если они будут :)
21. Euroset1 9 19.01.18 21:14 Сейчас в теме
Теперь ясно, для чего нужна была куча воды "с картинками" про многопоточность. В конце статьи висит ссылка рекламная. Ради чего статья и затевалась похоже.
А так, зря потраченное время на чтение прописных истин.
22. Александр056 30.07.18 15:29 Сейчас в теме
1с сами пишут что платформа одно поточная, какая много поточность? все же скорее какие "финты ушами", которые полезны, но ребят, нет у нас много поточности, нету. Увы.
23. WKBAPKA 212 30.07.18 20:35 Сейчас в теме
(22) ну регламентные задания работают не в основном потоке приложения. где то на эту тему была статья... а саму эту статью не читал, много букф
24. its64 25.04.19 21:58 Сейчас в теме
авторы конфигурации Конвертация рассуждают о многопоточности и больших объемах данных!
это та самая конфига которая в одном потоке может перегрузить 40000 доков всего за несколько дней? а 5 летнюю базу всего за 3 года? улыбнуло) господа как вам удалось ее вштырить во все типовые? за что вы так не любите людей?
25. WKBAPKA 212 26.04.19 08:58 Сейчас в теме
(24) в БСП вроде как реализована многопоточность, есть целая процедура, которая вызывает выполняет метод в фоне, но толи руки кривые, толи звезды не так встали, не работает как надо. Замораживает UI-поток. А что бы добавить эффекту, разрабы поставили фиксированное время в секундах на выполнение задания. Если у меня задание выполняется чучуть дольше, все привет.
А регламентные задания все-же работают в отдельном потоке.
26. its64 27.04.19 08:23 Сейчас в теме
(25) многопоточность предполагает выполнение задачи не одном отдельном потоке а во многих отдельных потоках. столкнулся с переходом на связку розница <> УТ . 15000 доков в розницу загрузка заняла час или два . из розницы в ут эти доки ползут более 17 часов и конца не видно. из чего ставлю под сомнение работоспособность и надежность связки РТ УТ способом предложеным разработчиками с применением их "чудесной конвертации" основные принципы которой не менялись со времен 77. В результате авторы написали Рассказ об эффективных приемах организации обработок больших объемов данных на платформе 1С и они же написали конвертацию в которой не применен ни один из рассказанных приемов.
27. DoReMi 27.05.19 12:31 Сейчас в теме
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии


Программист 1С
Бобров
зарплата от 100 000 руб. до 150 000 руб.
Временный (на проект)

Студент (стажер) 1С
Нижний Новгород
зарплата от 25 000 руб.
Полный день

Программист 1С
Санкт-Петербург
зарплата от 120 000 руб.
Полный день

Программист 1С
Нижний Новгород
зарплата до 100 000 руб.
Полный день