Профили SQL/Объекты метаданных/Управление номенклатурой

Материал из Метадата
Перейти к навигации Перейти к поиску

Профили SQL

Профили с настройками формирования пакетов выгрузки данных в формате текстовых файлов с SQL запросами.

Совместимость

СУБД под формат которых генерируются запросы:

  • MySQL;
  • MariaDB

Структура

Настройка структуры формируемых файлов. Состоит из:

  • Виды данных - список и настройка выгружаемых видов данных (список слева формы);
  • Таблицы - список таблиц выбранного вида данных. Таблицы внешней базы данных (список справа, сверху);
  • Поля - список полей выбранной таблицы, выбранного вида данных. Поля внешней таблицы внешней базы данных (список справа, снизу);
  • Перед выгрузкой - дополнительные SQL запросы, добавляемые для данных выбранной таблицы, перед основными запросами (список справа, снизу);
  • После выгрузки - дополнительные SQL запросы, добавляемые для данных выбранной таблицы, после основных запросов (список справа, снизу);

Вид данных

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

Выбран
Вид данных выбран для выгрузки. Отключенная строка не выгружается.
Вид данных
Название вида выгружаемых данных.
Узел обмена
Галочка, указывает на то, что выбранный модуль выгрузки содержит запрос с изменениями данных, по данным Узла обмена.
Выбор данных \ Обработка
Модуль выбора данных. Файлы SQL формируются по заданной структуре, в соответствии с требованиями базы данных внешней системы, но на нашей стороне данные могут быть заменяемыми.

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

  1. Гибкость настройки - возможность сменить способ выбора исходных данных, на уровне настройки профиля;
  2. Удобство доработки - многие решения подобных задач, представляют общее целое, есть один модуль внутри которого генерируются все виды данных. Задача, изменить выгрузку остатков, например к реальному складу добавить остатки поставщиков, которые мы грузим из прайс-листов. Пришлось бы мало того, что искать где в модулей именно эти данные, еще и после изменения модуль стал бы доработанным и обновлять его уже проблема. При данном подходе у нас все виды данные отдельно. Мы разрабатываем отдельный, небольшой модуль выбора остатков, регистрируем в системе, затем выбираем его в профиле выгрузки, вместо типового, при этом не трогаем логику основного модуля. Отдельный модуль по сути это свой запрос данных;
  3. Производительность - ряд видов данных, зависит от особенностей учета в нашей системе, если делать что то универсальное, получится сложный запрос, да он будет удовлетворять большинству условий, и через дополнительные параметры менять результат, но нам придется жертвовать скоростью, ради гибкости. При модульном подходе, мы под каждый случай делаем модуль индивидуально, в итоге получится несколько модулей вместо одного, но зато каждый будет с более легким запросом, в нем не будет данных которые не пригодятся, значит работать эта выборка будет быстрее и с меньшей нагрузкой на систему.
Выбор данных \ Настройка
Настроенный источник данных обработки выбора. Позволяет настроить фильтры и параметры запроса выбора данных индивидуально, для строки вида данных, профиля выгрузки. Если настройка не выбрана используются общие фильтры и общие параметры, в большинстве случаев этого достаточно, пригодится для тонкой настройки.

Таблицы

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

  • Выгрузит - выгрузить данные;
  • Обновить - обновить данные;
  • Очистить - очистить данные.

Запросы SQL формируются по следующим правилам:

Выгрузит
Загрузить только новые данные, не трогая существующие.
  • INSERT IGNORE INTO ИмяТаблицы, заполняем данные новыми значениями, игнорируя существующие записи по первичному ключу.

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

Очистить + Выгрузит
Подходит для большинства ситуаций, быстрее очистить таблицу полностью и заполнить новыми данными, займет это доли секунд, зато гарантированно не будет устаревших данных. Если выгружаем до 100...1000 тыс строк, лучше использовать данный режим. Формируем запросы:
  • TRUNCATE TABLE ИмяТаблицы, либо DELETE FROM ИмяТаблицы, с заданным WHERE если не допустима полная очистка (настраивается в шаблоне выгрузки) - чистим все данные;
  • INSERT IGNORE INTO ИмяТаблицы, заполняем данные новыми значениями.

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

Выгрузит + Обновить
  • INDERT INTO ИмяТаблицы ON DUPLICATE KEY UPDATE Список обновляемых полей, добавляет новые данные, а существующие обновляются по выгруженным данным.

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