Русский

Данные SQL-сервера

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

Поддерживаются SQL-сервера:

  • MySQL;

  • PostgreSQL;

  • MS SQL Server;

  • Oracle.

На сервере могут присутствовать таблицы/представления:

В таблицах должно присутствовать поле, по которому Loymax SmartCom может определить, какие данные изменились / были добавлены с последнего сеанса обмена данными.

Поддерживаются на выбор два варианта отсечения данных:

  • По дате (serial или timestamp);

  • По идентификатору.

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

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

Запрос данных производится пачками заданного размера, например, по 1000 или по 10000 записей.

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

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

Пример реального запроса, выполняемого платформой на удаленном SQL-сервере:

SELECT 
    customer_id as local_id, 
    CONCAT(f_name, " ", m_name, " ", l_name) as full_name, 
    f_name as first_name, 
    m_name as middle_name, 
    l_name as last_name, 
    email as email, 
    phone as phone, 
    gender as sex, 
    b_date as birth_date, 
    country as country, 
    area as area, 
    city as city, 
    post_index as zip, 
    reg_date as register_date
FROM customers 
WHERE customer_id > {$last_id} AND user_id = 'acme-corp' 
LIMIT 10000;

В данном примере:

  • клиенты извлекаются из таблицы customers;

  • для отсечения используется поле customer_id;

  • в одной базе живет несколько пользователей, выборка пользователя производится по полю user_id;

  • Размер пачки 10000.

Last updated