SymmetricDS: lookup Table Router route to common and specific 节点
SymmetricDS: lookup Table Router route to common and specific node
在 SymmetricDS 中,我知道 SYM_ROUTER 中的 'lookuptable' 可以通过引用具有节点 ID 的列来同步到特定节点。
我想要的是公共数据同步到所有节点,如何配置?
示例:我有 2 个 tables,Table 1 个是商品,Table 2 个是商店
ITEM_ID | ITEM_NAME | BRAND_ID
项目 1 |姓名 | A
项目 2 |姓名 | B
项目 3 |姓名 | C
BRAND_ID | STORE_ID
一个 |全部
B | 001
C | 002
我想将项目 1 同步到所有节点,将项目 2 同步到节点 001,将项目 3 同步到节点 002,等等。
我将使用下面的路由器来同步项目 table。 Item 2 和 Item 3 同步成功,但是 Item 1 无法同步到所有节点,你有什么办法可以同步 Item 1 吗?
insert into SYM_ROUTER (
router_id, source_node_group_id, target_node_group_id, router_type, router_expression, create_time, last_update_time
) values (
'corp-2-store-ok','corp', 'store', 'lookuptable', 'LOOKUP_TABLE=STORE KEY_COLUMN=BRAND_ID LOOKUP_KEY_COLUMN=BRAND_ID EXTERNAL_ID_COLUMN=STORE_ID', current_timestamp, current_timestamp
);
您需要一个带有 router_type 'subselect' 和 router_expression 类似
的路由器
c.external_id in (
select :STORE_ID from dual
union all
select external_id from sym_node where 'ALL' = :STORE_ID
)
在 SymmetricDS 中,我知道 SYM_ROUTER 中的 'lookuptable' 可以通过引用具有节点 ID 的列来同步到特定节点。
我想要的是公共数据同步到所有节点,如何配置?
示例:我有 2 个 tables,Table 1 个是商品,Table 2 个是商店
ITEM_ID | ITEM_NAME | BRAND_ID
项目 1 |姓名 | A
项目 2 |姓名 | B
项目 3 |姓名 | C
BRAND_ID | STORE_ID
一个 |全部
B | 001
C | 002
我想将项目 1 同步到所有节点,将项目 2 同步到节点 001,将项目 3 同步到节点 002,等等。 我将使用下面的路由器来同步项目 table。 Item 2 和 Item 3 同步成功,但是 Item 1 无法同步到所有节点,你有什么办法可以同步 Item 1 吗?
insert into SYM_ROUTER (
router_id, source_node_group_id, target_node_group_id, router_type, router_expression, create_time, last_update_time
) values (
'corp-2-store-ok','corp', 'store', 'lookuptable', 'LOOKUP_TABLE=STORE KEY_COLUMN=BRAND_ID LOOKUP_KEY_COLUMN=BRAND_ID EXTERNAL_ID_COLUMN=STORE_ID', current_timestamp, current_timestamp
);
您需要一个带有 router_type 'subselect' 和 router_expression 类似
的路由器c.external_id in (
select :STORE_ID from dual
union all
select external_id from sym_node where 'ALL' = :STORE_ID
)