Как разрешить загрузку данных фильтра SymmetricDS по externalId целевого движка

Я использую SymmetricDS 3.7.

Что я хочу сделать, так это заставить SymmetricDS отправлять данные клиентскому движку только в том случае, если внешний идентификатор целевого узла равен столбцу в таблице (мультитенантность). Это означает, что на сервере я хочу иметь все строки, а на стороне клиента только те, которые принадлежат клиенту.

Я узнал, что у меня есть объект двигателя в моем скрипте beanshell. Но кажется, что это узел сервера (отправителя), а не экземпляр клиентского движка.

Как я могу этого добиться?


person R_B_    schedule 12.07.2016    source источник


Ответы (2)


используйте маршрутизацию сопоставления столбцов, как описано в руководстве пользователя: http://www.symmetricds.org/doc/3.7/html/user-guide.html#_router_types

иметь столбец в таблице, который синхронизируется с целевыми машинами со значением, которое соответствует externalId целевой машины

person Boris Pavlović    schedule 12.07.2016
comment
Кажется, это то, что я искал... Не заметил этого в документах. Я попробую и отмечу ваш ответ как решение, чем. Большое спасибо за ваш быстрый ответ! - person R_B_; 12.07.2016

да. сначала вам нужно иметь столбец в вашей таблице для идентификатора узла (store_id или client_id), если есть 2 таблицы (основной/подробности), добавьте только этот столбец в основной. в таблице sym_router создайте маршрутизатор:

routerid:myatble_header
source_node_group_id:corp
target_node_group_id:store
router_type:subselect
router_expression:c.external_id in (select :store_id)   -> for mysql ( somthing like for other databases)
create_time:now
last_update_time:now

routerid:myatble_detail
source_node_group_id:corp
target_node_group_id:store
router_type:subselect
router_expression:c.external_id in (select store_id from header_table where id=:id)   -> id is primary key and :id is primary of your detail table.
create_time:now
last_update_time:now

теперь в sym_trigger_router:

trigger_id: triger_id for your table that defined in sym_trigger table.
router_id:myatble_header (defined in previous step)

trigger_id: triger_id for your detail table that defined in sym_trigger table.
router_id:myatble_detail (defined in previous step)

person amir nouri    schedule 10.10.2016