Как передавать данные из 1С в ClickHouse: что выбрать для регулярной выгрузки

Как передавать данные из 1С в ClickHouse: что выбрать для регулярной выгрузки

В ClickHouse вы можете обновлять разные данные с разной частотой. Продажи — раз в час, остатки — чаще, историю — вообще загрузить один раз. Исправленный документ тоже должен попасть в ClickHouse, а прерванная загрузка — продолжиться с нужного места. От того, как вы построите обмен, зависят объем передаваемых данных, нагрузка на 1С и то, как выгрузка будет работать при изменениях и сбоях.Чтобы передавать данные из 1С в ClickHouse, вы можете заказать разработку у интегратора, собрать обмен с помощью ИИ или использовать Экстрактор 1С. Разберем, сколько времени займет каждый способ, что происходит при изменениях и сбоях и кто будет поддерживать передачу данных после запуска.

Зачем выгружать данные из 1С в ClickHouse

1С одновременно обрабатывает учетные операции и тяжелые аналитические запросы — например, отчет по продажам за несколько лет с детализацией по товарам, подразделениям и периодам. Такие запросы читают большой объем данных и выполняют расчеты в рабочей базе, повышая нагрузку на проведение документов и отклик системы.

ClickHouse — аналитическая колоночная СУБД для работы с большими объемами информации. В нее загружают сведения из учетной системы (продажи, закупки, остатки и историю операций) для расчетов, отчетности и BI. Аналитические запросы к этим данным выполняются отдельно от рабочей базы 1С.

1С и ClickHouse работают с разными типами нагрузки: 1С поддерживает текущий учет, а ClickHouse обрабатывает накопленные данные для аналитики.

Как передавать данные из 1С в ClickHouse: что выбрать для регулярной выгрузки

Важно: ClickHouse нужен не каждой компании. Отдельный аналитический слой используют, когда отчеты работают с историей за несколько лет, запросы обрабатывают большие объемы данных, а BI создает нагрузку на рабочую базу. При небольших объемах и редких запросах отдельный контур может быть лишним: его тоже придется настраивать и поддерживать.

Как организовать выгрузку данных из 1С в ClickHouse

Предположим, производственная компания каждый день смотрит в BI себестоимость выпуска, объем производства и отклонения по цехам. Но — в течение дня в 1С появляются новые документы, меняются остатки и корректируются операции.

Если один раз выгрузить базу в ClickHouse и больше ее не обновлять, следующий отчет покажет показатели по состоянию на момент последней выгрузки.

Это значит, что обмен нужно поддерживать постоянно: забирать изменения из 1С, передавать их в СУБД и проверять, что после очередной загрузки отчет получил полный набор записей.

Для регулярной выгрузки из 1С в ClickHouse компания может:

  1. Заказать разработку у интегратора.
  2. Собрать обмен с помощью ИИ.
  3. Использовать специализированный Экстрактор данных.

Разберем ниже особенности каждого способа: настройку, работу с изменениями, сбоями и поддержку после запуска.

Если заказывать разработку у интегратора

Интегратор разрабатывает обмен между 1С и ClickHouse. Вы описываете, какие данные хотите передавать и как часто их обновлять, а интегратор проектирует выгрузку: выбирает, какие записи забирать из 1С, как передавать изменения, обрабатывать сбои и повторные загрузки.

Допустим, у вас сеть магазинов, и вы хотите обновлять продажи в ClickHouse каждый час. Вам нужны данные о выручке и продажах по каждому магазину в течение дня. Интегратор проектирует обмен так, чтобы каждый час передавать новые и измененные записи, не загружая заново уже переданную историю.

Для такого обмена разработчик прописывает правила:

● что выгружать — продажи, товары, магазины, цены, остатки и связанные данные;

● как находить изменения — отбирать новые и измененные записи при каждом запуске;

● как продолжать загрузку после сбоя — определить, с какого места возобновлять передачу;

● как исключать дубли — повторная отправка не должна создавать вторую запись о продаже;

● как проверять полноту — контролировать, что данные из 1С полностью дошли до ClickHouse;

● как учитывать изменения в 1С — проверять обмен после изменений в документах, регистрах и справочниках.

Разработчик реализует эти правила в коде и тестирует основные ситуации: обычную загрузку, повторную отправку, обрыв передачи и неполную выгрузку.

Ошибка в правилах обмена может привести к пропускам или дублям: часть продаж не попадет в ClickHouse, а одна продажа загрузится дважды.

Что происходит с обменом после запуска

После запуска интегратор продолжает сопровождать разработанный обмен: исправлять ошибки, проверять изменения в 1С и дорабатывать обмен при новых требованиях.

Как передавать данные из 1С в ClickHouse: что выбрать для регулярной выгрузки

Срок и стоимость зависят от объема работ: сколько баз 1С подключают, какой объем информации выгружают и сколько правил обмена нужно реализовать. После запуска расходы продолжаются: при изменениях в 1С интегратор разбирается в затронутых объектах, обновляет код и заново проверяет загрузку.

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

Разработка обмена с помощью ИИ

Вайбкодинг — разработка, при которой специалист описывает задачу ИИ обычным языком, получая готовый фрагмент кода и уточняя его следующими запросами. Это действительно ускоряет написание обмена.К примеру, у оптовой компании три базы 1С и руководителю нужен единый отчет по заказам, отгрузкам и остаткам.

Чтобы отчет отражал изменения в течение дня, компания хочет передавать новые и измененные записи в ClickHouse каждые 30 минут. Программист 1С может собрать обмен с помощью ИИ: он передает ИИ структуру документов, нужные поля и правила загрузки — ИИ собирает код обмена.

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

● Новые записи — все ли новые заказы и отгрузки попадают в ClickHouse.

● Изменения — видит ли обмен исправления в уже созданных документах.

● Сбой — что произойдет, если передача оборвется после загрузки части записей.

● Дубли— не загрузятся ли эти записи повторно после перезапуска.

● Пропуски — совпадает ли состав загруженных записей с 1С.

● Изменения в 1С — продолжит ли обмен работать после обновления документов, регистров или справочников.Если программист 1С собрал обмен с ИИ, он же и проверяет его на реальных данных.

Иначе нельзя понять, как код поведет себя после сбоя, повторного запуска или изменения документов в 1С.

ИИ сгенерирует код по заданным условиям, но не проверит, совпадает ли результат с данными 1С.

Программист должен сам проверить пропуски, дубли, повторный запуск после сбоя и изменения в документах.ИИ сокращает время на написание кода, но не отвечает за то, что произойдет с выгрузкой после запуска. Если в компании нет специалиста, который может проверить такой обмен и поддерживать его дальше, после первой версии кода придется искать разработчика для этой работы.

Экстрактор 1С: готовый способ выгружать данные в ClickHouse

Отдельный инструмент выгрузки извлекает данные из 1С по расписанию и передает их в ClickHouse. Он отслеживает изменения в источнике и забирает только новые или измененные записи.

Поэтому 1С не выполняет полную выгрузку при каждом обновлении, а СУБД получает только актуальные изменения.

Например, Экстрактор 1С от Денвик Аналитика автоматизирует регулярную передачу данных без разработки собственного обмена в 1С.

Как передавать данные из 1С в ClickHouse: что выбрать для регулярной выгрузки

1С не формирует повторно весь массив данных при каждом запуске. Это снижает нагрузку на учетную систему и ускоряет регулярную передачу изменений в ClickHouse.

Экстрактор 1С можно подключить к одной или нескольким базам 1С. Если в 1С меняются документы или справочники, вам не нужно править код обмена в каждой базе — правила выгрузки остаются в Экстракторе.

Важно: совсем скоро в Экстракторе 1С появится собственный ИИ для быстрой сборки выгрузок. Вы сможете описать, что нужно передать из 1С в ClickHouse, а ИИ поможет собрать выгрузку. Например, при подключении новой базы или нового раздела 1С он сократит время на создание правил выгрузки.

Как продукты Денвик Аналитика помогают организовать интеграцию 1С и ClickHouse

Для интеграции 1С с ClickHouse компания использует не только Экстрактор 1С, но и DVT (Denvic Visual Transformer) — low-code ETL-сервис для визуальной трансформации данных перед загрузкой в BI-системы.

Если в ClickHouse нужно загрузить сведения не только из 1С, но и из других источников, DVT подготавливает их до загрузки. Он объединяет информацию из 1С, Bitrix24, баз, файлов и API, очищает значения и приводит поля к общей структуре. После обработки в ClickHouse поступают готовые аналитические таблицы для BI.

После загрузки в ClickHouse компания получает единое хранилище для аналитических данных из 1С и других источников. BI берет показатели из этого хранилища, поэтому отчеты не нагружают рабочую базу 1С аналитическими запросами. Продукт помогает связать ClickHouse с Yandex DataLens, PIX BI и Visiology, чтобы отчеты и дашборды использовали подготовленные показатели.

Сравнение способов выгрузки данных из 1С в ClickHouse

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

Как передавать данные из 1С в ClickHouse: что выбрать для регулярной выгрузки

Пример автоматической выгрузки из 1С в ClickHouse

Рассмотрим кейс компании «Хеппивеар Юг», где данные из 1С и Bitrix перенесли в ClickHouse для подготовки BI-отчетов.

Проблема

Команда не могла стабильно выгружать большие объемы данных из 1С в Excel: система зависала, а часть операций завершалась ошибками. Для подготовки отчетов специалисты собирали данные из 1С, Bitrix и других источников, сводили их вручную и отдельно проверяли полноту данных перед обновлением отчетов.

Решение

Наши эксперты настроили Экстрактор 1С для автоматической передачи изменений из 1С в ClickHouse. Он забирает новые и измененные записи по расписанию, поэтому при каждом обновлении не приходится повторно выгружать всю историю.

Данные из Bitrix также загрузили в ClickHouse и объединили их с данными 1С для BI-отчетов в DataLens. Для каждого набора данных настроили расписание обновления и контроль задержки. Если данные не поступали вовремя, команда получала уведомление в Telegram и проверяла, на каком этапе возник сбой: при чтении данных из 1С, передаче или загрузке в ClickHouse.

Результат

● данные из 1С и Bitrix регулярно обновляются в ClickHouse;

● BI-отчеты получают показатели из единого аналитического источника;

● специалисты отказались от ручной подготовки отчетов в Excel;

● отчеты показывают показатели с детализацией от общих KPI до товаров и товарных категорий;

● показатели можно анализировать по дням, месяцам и годам;

● в аналитику вошли продажи, финансовые показатели, данные о подразделениях и сотрудниках, а также обращения в техническую поддержку.

Подробнее о проекте — в полном кейсе компании.

Типичные ошибки при выгрузке данных из 1С в ClickHouse

Разберем ошибки, из-за которых при выгрузке данных растет объем передачи, увеличивается нагрузка на учетную систему или возникают расхождения в BI.

Каждый раз загружать всю историю

Если при каждом обновлении вы передаете всю историю, 1С снова обрабатывает уже выгруженные записи, а ClickHouse получает их повторно. На больших таблицах это увеличивает время загрузки и нагрузку на учетную систему.

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

Не отслеживать изменения в 1С

Документы, заказы и остатки могут измениться после первой загрузки. Если обмен не фиксирует эти изменения, СУБД хранит прежние значения, а BI показывает устаревшие показатели.Например, вы исправили количество товара в заказе, но обмен не передал изменение. В отчете останется старое значение, хотя в 1С документ уже исправлен.

Не предусмотреть продолжение после сбоя

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

Для регулярной выгрузки заранее задайте правила повторной передачи и восстановления после сбоя.

Считать загрузку успешной без проверки

Завершение обмена не подтверждает, что ClickHouse получил полный набор записей. Проверяйте количество и состав загруженных данных, а для критичных показателей — сверяйте итоговые значения с 1С. Таким образом вы обнаружите пропуски и дубли до того, как они попадут в управленческий отчет.

Привязать обмен к коду 1С

Если правила обмена встроены в конфигурацию, изменения документов, справочников или регистров ведут к доработке кода. После каждой такой доработки вы заново проверяете выгрузку. Чем больше правил обмена связано с кодом 1С, тем больше доработок и проверок требуется при изменениях в учетной системе.

Денвик Аналитика — российская ИТ-компания, разработчик ETL-инструментов для интеграции, обработки и подготовки корпоративных данных. Линейка ETL-продуктов Денвик Аналитика позволяет работать с корпоративными данными в режиме self-service, без постоянного привлечения программиста.