Сегментирование и многопоточность

Сегментирование и многопоточность

⚠️ Sync-черновик от 2026-05-22 — первичная сборка. Требуется ревью и добавление скриншотов.

Источник: terminy-opredeleniya-i-kak-eto-rabotaet/particii-i-particirovanie-mnogopotochnost.md (репо, SHA a7df4588).

Что такое сегментирование

Сегментирование в Экстракторе Visiology – это логическое разделение данных таблицы, созданное на основании ключа сегментирования: набора параметров сегментирования в совокупности с применяемыми к ним функциями. От выбора параметров и функций зависит, какие блоки данных (сегменты) будут формироваться в очередь к выгрузке.

Примеры сегментирования

Пример 1. Справочник по первым буквам наименования

При выгрузке справочника Номенклатуры данные можно делить по первым двум буквам наименования. Параметр сегментирования: «Наименование», функция: «ПервыеДваСимвола()». Каждый сегмент – все элементы справочника, чьё наименование начинается на одинаковые первые два символа («Аб», «Ан», «Ба» и т.д.).

letters.png

Пример 2. Обороты регистра по месяцу-году

При выгрузке оборотов регистра накопления удобнее делить данные по дате. Функция «Месяц-Год» применяется к параметру «Дата (Период)». Каждый сегмент – все строки регистра, относящиеся к одному месяцу-году («Декабрь 2023», «Январь 2024» и т.д.).

month.png

Многопоточность

Графически многопоточную выгрузку данных, разделенную на блоки (сегменты), можно представить так:

image-20260523-192457.png

Сегментирование используется не только для ускорения первичной выгрузки (параллельная загрузка большого массива), но и для работы инкрементальной выгрузки: разбив таблицу на блоки один раз, в дальнейшем обновляются только те блоки, в которых произошли изменения.

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

Терминология

  • Параметры сегментирования – набор параметров для разбивки данных на блоки, например [Период, Склад]. Задаются в запросе или на этапе установки параметров при проектировании выгрузки конструктором.

  • Функция параметра сегментирования – функция, применяемая к параметру: для дат – группировка по месяцам/неделям; для строк – первые N символов; для ссылочных типов – обычно без функции.

  • Ключ сегментирования – параметры + применённые функции, например [Месяц(Период) И Склад]. Условия всегда объединяются через «И» (конъюнкция), «ИЛИ» не используется.

  • Уникальные значения ключа сегментирования – конкретные значения параметров для каждого сегмента; отображаются в поле «Партиция» очереди выгрузки.

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

  • Многопоточность – параллельное выполнение нескольких потоков; каждый сегмент обрабатывается в отдельном фоновом задании, что увеличивает скорость выгрузки.

Пример 3 (для закрепления)

Предположим, что мы сформировали такую настройку набора параметров:

  • Параметры: [Период, Склад].

  • Ключ сегментирования: [Месяц(Период) И Склад].

parameters.png

Предположим также, что данные в нашем наборе данных содержат только записи за период с декабря 2023 года по февраль 2024, и складов у нас всего 2. При этих условиях формируется 6 сегментов:

  • Сегмент 1: Декабрь 2023 И Склад №1

  • Сегмент 2: Декабрь 2023 И Склад №2

  • Сегмент 3: Январь 2024 И Склад №1

  • Сегмент 4: Январь 2024 И Склад №2

  • Сегмент 5: Февраль 2024 И Склад №1

  • Сегмент 6: Февраль 2024 И Склад №2

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


Смотрите также

Справочник понятий и концепций
Создание проектов с таблицами в 1С
Интеграция с "1С:Предприятие"