2017-03-29 1 views
1

SymmetricDS에서 SYM_ROUTER의 'lookuptable'은 노드 ID가있는 열을 참조하여 특정 노드와 동기화 할 수 있음을 알고 있습니다.SymmetricDS : 조회 테이블 공통 및 특정 노드에 대한 라우터 경로

일반 데이터를 모든 노드에 동기화하려면 어떻게 구성해야합니까?

예 : 나는 2 개 테이블이, 표 1 항목, 표 2 스토어

입니다

ITEM_ID | ITEM_NAME | BRAND_ID

항목 1 | 이름 | A

항목 2 | 이름 | B

항목 3 | 이름 | C

BRAND_ID | 가게의 ID

A | ALL

B | 001

C | 002

항목 1을 모든 노드에, 항목 2를 노드 001에, 항목 3을 노드 002 등에 동기화하려고합니다. 아래 항목을 사용하여 항목 테이블을 동기화합니다. 항목 2와 항목 3이 동기화되었지만 항목 1이 모든 노드에 동기화되지 않으면 항목 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 
); 

답변

0

당신은 어떻게 구성해야

c.external_id in (
    select :STORE_ID from dual 
    union all 
    select external_id from sym_node where 'ALL' = :STORE_ID 
) 
+0

먼저 라우터와 같은 router_type '부속'와 router_expression 무언가와 라우터가 필요합니다? 나는 node_id를 얻기 위해 다른 테이블을 참조해야하기 때문에 'lookuptable'타입을 사용한다. – CSL

+0

내 문제는 다른 테이블의 열 값을 기반으로 모든 노드 또는 특정 노드에 테이블을 동기화하려고합니다. 해당 열이 노드를 지정한 경우 해당 노드에만 동기화하십시오. 그렇지 않으면 모든 노드에 동기화됩니다. – CSL

+0

더 명확하게하기 위해 제 질문을 수정했습니다. 2 개의 조건에서 동기화 할 테이블이 1 개뿐입니다. 가능합니까? – CSL