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

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

Что позволит оптимизировать ресурсы и временя на передачу данных.

Задача будет продемонстрирована на примере инкрементальной загрузки по атрибуту «Версия данных» из справочника 1С базу данных «PostgreSQL» с использованием Фреймворка BI.Qube.

Шаг 1: Настройка команды загрузки

В меню выберем компонент «Staging»,  пункт «Команды». затем выберем модель данных.

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

Требуется заполнить форму:

  • Имя создаваемой команды;
  • Добавить описание при необходимости;
  • Указать профиль;
  • Модель и Домен — заполняется автоматически;
  • Источник данных — подключение предварительно было настроено — источником данных в примере является база данных 1C;
  • Целевая система — подключение предварительно было настроено;
  • Слой данных — устанавливается автоматически из ранее выполненных настроек модели данных;
  • Имя таблицы.
  • Параметры «Очистить перед выполнением» не используем, так как будут загружаться только новые данные.
  • Опция «Делать бэкап» позволяет перед выполнением команды создавать резервную копию таблицы назначения.

Шаг 2: Создание запроса к справочнику 1C

Для создания запроса к справочнику 1C, необходимо нажать кнопку «Создать». В окне создания запроса, в дереве объектов 1C необходимо найти нужный справочник — «Контрагенты», отметить его и нажать кнопку «Сформировать запрос».

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

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

Необходимо выполнить проверку запроса, на этом этапе выполняется расчет параметров, входящих в запрос, если таковые есть. Затем нажать кнопку «Выполнить» и оценить полученные данные. Если данные соответствуют ожиданиям нажать «OK».

Нажать кнопку «Сохранить» и на этом процесс создания команды завершен.

Шаг 3: Запуск команды для полной загрузки

Запуск команды на выполнение осуществляется через пункт меню «Профили». Нужно выбрать профиль и нажать кнопку «Загрузить», подтвердив действие.

Чтобы убедиться, что данные появились в целевой системе, необходимо перейти на вкладку «Данные».

В правой части экрана выбрать подключение, найти созданную таблицу в структуре модели данных.

Выделить её и нажать «Сформировать запрос».

После чего нажать выполнить и убедиться, что данные получены.

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

Шаг 4: Настройка инкрементальной загрузки

Переходим на вкладку «Команды».

В основном окне выбрать модель данных и отредактировать созданную ранее команду.

Для редактирования запроса нажать «Создать»  — откроется конструктор с ранее сформированным запросом.

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

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

Для добавления параметра перейдем в группу «Пользовательские параметры». Добавим необходимый параметр двойным нажатием левой кнопки мыши.

Проверим запрос, и выполним его.

Визуальная оценка данных в окне предварительного просмотра показывает, что запрос с указанным параметром возвращает одну новую запись.

Нажать «OK», а затем «Обновить» для сохранения изменений в команде.

Шаг 5: Запуск команды для инкрементальной загрузки

Выполним команду инкрементальной загрузки.

Способ запуска команды загрузки не зависит от типа загрузки.

Повторим загрузку нашего профиля.

Переходим во вкладку «Данные».

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

Для этого выполним запрос из таблицы назначения и найдем её.

Настроенная команда может запускаться на периодической основе, как в ручном режиме через вэб-интерфейс, так и с помощью оркестратора.

В результате проделанных действий, команда будет выполнять следующий сценарий:

Проверка и запись в пользовательский параметр максимальной версии данных из таблицы назначения

Отбор данных на источнике по пользовательскому параметру

Добавление только новых данных в таблицу назначения

На этом задача инкрементальной загрузки по атрибуту «Версия данных» из справочника 1C в базу данных «PostgreSQL» выполнена.

Наверх

Мы на связи в мессенджерах

Напишите нам - это самый простой и быстрый способ получить ответ удобном формате!