Symmetricds将单个表转换为多个表示例

时间:2014-03-10 06:22:28

标签: sql sync transformation beanshell symmetricds

请提供将单个表转换为多个表的示例配置

实际场景: 我有一个公司节点和商店节点。 我在corp节点中有两个表customer和imp_customers, 我在商店节点中有一个表客户。

我必须从商店中的客户节点转变为云节点中的客户和imp_customers。请使用sym_transfrom_table和sym_transform_column在SymmetricDS 3.5中给出上述转换的示例配置。

2 个答案:

答案 0 :(得分:1)

要从单个表转换为多个表,
步骤1: - 首先设置表的触发器并将其链接到路由器(如果已经有触发器,请忽略)
步骤2: - 在SYM_TRANSFORM_TABLE中创建一行,我们在其中指定数据的方向,何时执行转换以及涉及的表。

 insert into SYM_TRANSFORM_TABLE(transform_id, source_node_group_id, 
    target_node_group_id, transform_point, source_table_name, target_table_name,
    delete_action, column_policy) values 
    ('customers_to_imp_customers', 'store', 'corp',
    'EXTRACT','customers', 'imp_customers', 'NONE', 'SPECIFIED'),
    ('customers_to_customers', 'store', 'corp',
    'EXTRACT','customers', 'customers', 'NONE', 'IMPLIED');

步骤3: - 在SYM_TRAMSFORM_COLUMN中创建行,我们在其中指定要转换的列和转换类型

insert into SYM_TRANSFORM_COLUMN
(transform_id, include_on, source_column_name, target_column_name, pk, transform_type)
values
('customers_to_imp_customers', '*', 'id', 'id', 1, 'copy'),
('customers_to_imp_customers', '*', 'name', 'customer_name', 1, 'copy'),
('customers_to_customers', '*', 'id', 'id', 0, 'copy');

答案 1 :(得分:0)

我按照上面的说明完成了只有在两列具有相同名称时才有效。 我离开我的设置,我希望有任何建议。 问候。

insert into sym_trigger 
(trigger_id,source_schema_name,source_table_name,channel_id,
    last_update_time,create_time)
values('tg_contacts_tbl_bksms','dbo','Contacts','ch_contacts_tblbksms',
    current_timestamp,current_timestamp);

insert into sym_router 
(router_id,target_schema_name,target_table_name,source_node_group_id,
    target_node_group_id,router_type,create_time,last_update_time)
values('rt_contacts_tbl_bksms','SIREN','TBL_BKSMS','SQLServer',
    'Oracle','default',current_timestamp,current_timestamp);

insert into sym_trigger_router 
(trigger_id,router_id,initial_load_order,initial_load_batch_count,
    last_update_time,create_time)
values('tg_contacts_tbl_bksms','rt_contacts_tbl_bksms',1,0,
    current_timestamp,current_timestamp);

insert into sym_transform_table
(transform_id,source_node_group_id,target_node_group_id,transform_point,
    source_schema_name,source_table_name,target_schema_name,target_table_name,
    delete_action,column_policy) 
values('transf_contacts_tbl_bksms','SQLServer','Oracle','EXTRACT',
    'dbo','Contacts','SIREN','TBL_BKSMS',
    'NONE','SPECIFIED');

insert into sym_transform_column
(transform_id,include_on,source_column_name,target_column_name,pk,transform_type)
values('transf_contacts_tbl_bksms','*','ContactID','BKSM_ID',1,'copy');
相关问题