zcbus-7.8-14-20220813-beta.tar.gz版本支持。
说明
etl增加临时表模式,bus_client_main_control_properties的参数temp_table_mode设置为1时开启临时表的模式,需要先为bus_client_product_object的每一个对象创建一个临时表,消费出来的数据往临时表里进行装载,同时用etl的sql语句查询临时库生成新的数据发送到新的topic,临时表目前只支持mysql,临时表的表名设置到bus_client_product_object_properties的temp_table_schema和temp_table_name
配置
模板表添加参数
INSERT INTO `bus_parameter_module`( `module`, `moduletype`, `role`, `orderid`, `variable_name`, `display_name`, `value`, `ifcommon`, `input_type`, `hide`, `ifedit`, `ifciphertext`, `description`) VALUES ( 'bus_client_main_control_properties', 'COMMON', 0, 56, 'temp_table_mode', 'etl临时表模式', '0', 0, 0, 0, 1, 0, '设置为1时,etl开启临时表模式');
通道添加参数
INSERT INTO `bus_client_main_control_properties`( `customerid`, `ctlid`, `variable_name`, `value`, `hide`, `orderid`, `description`) VALUES ( 10086, 1896, 'temp_table_mode', '1', 0, 6, '设置为1时,etl开启临时表模式');
表属性添加临时表配置
a表:
INSERT INTO `databus_v4`.`bus_client_product_object_properties`(`customerid`, `objectid`, `variable_name`, `value`, `orderid`, `description`) VALUES (10086,1192581,'temp_table_schema', 'test', 1, 'etl临时表模式,临时表库名');
INSERT INTO `databus_v4`.`bus_client_product_object_properties`(`customerid`, `objectid`, `variable_name`, `value`, `orderid`, `description`) VALUES (10086,1192581,'temp_table_name', 'test_temp_a', 2, 'etl临时表模式,临时表表名');
b表:
INSERT INTO `databus_v4`.`bus_client_product_object_properties`(`customerid`, `objectid`, `variable_name`, `value`, `orderid`, `description`) VALUES (10086,1192582,'temp_table_schema', 'test', 1, 'etl临时表模式,临时表库名');
INSERT INTO `databus_v4`.`bus_client_product_object_properties`(`customerid`, `objectid`, `variable_name`, `value`, `orderid`, `description`) VALUES (10086,1192582,'temp_table_name', 'test_temp_b', 2, 'etl临时表模式,临时表表名');
注:每个关联表都需要配置临时表,每个临时表只记录对应表的数据
etl规则
a表规则:
NEWDATA(sqlfunction=(select a.key,a.order_num,a.create_time,b.url,b.update_time from databus_v4.account_menu a,databus_v4.account_rel_menu_api b where a.key=b.menu_key and a.key=#key#))
b表规则:
NEWDATA(sqlfunction=(select a.key,a.order_num,a.create_time,b.url,b.update_time from databus_v4.account_menu a,databus_v4.account_rel_menu_api b where a.key=b.menu_key and b.menu_key=#menu_key#))
临时表手动创建
a表:
create table test.test_temp_a (
`key` varchar(64) COLLATE utf8mb4_bin NOT NULL DEFAULT '' COMMENT '标识',
`order_num` int(11) NOT NULL DEFAULT '0' COMMENT '排序字段',
`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间'
);
alter table test.test_temp_a add primary key(`key`);
b表:
create table test.test_temp_b (
`menu_key` varchar(64) COLLATE utf8mb4_bin NOT NULL DEFAULT '' COMMENT '标识',
`url` varchar(128) COLLATE utf8mb4_bin NOT NULL DEFAULT '0' COMMENT 'role_id',
`update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
);
alter table test.test_temp_b add primary key(`menu_key`);
注:
(1)临时表暂时需要手动创建
(2)临时表需要有主键,否则报错
测试记录
全量
a表全量topic部分信息:
b表全量topic部分信息:
a表临时表部分日志信息:
b表临时表部分日志信息:
增量
insert操作
a表增量insert操作topic部分信息:
b表增量insert操作topic部分信息:
临时表部分日志信息:
update操作
a表增量insert操作topic部分信息:
b表增量insert操作topic部分信息:
临时表部分日志信息:
delete操作
a表增量insert操作topic部分信息:
b表增量insert操作topic部分信息:
临时表部分日志信息:
文档更新时间: 2022-08-13 02:51 作者:周风磊