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 
)