cdc_collect()

阅读(45) 标签: 汇总, 插入, 删除,

描述:

对数据同步工具采集的表数据按条件汇总。

语法:

cdc_collect(cdcPath; tables, startTime[,endTime]) 

备注:

外部库函数,外部库的使用请参考《外部库使用指南》。

返回的嵌套序表由NameDeleteInsert组成:Name字段返回“数据库名.数据表名”;Delete字段返回对数据表的删除操作,Insert字段返回对数据表的插入操作,其中修改操作被分解成“先删除、后插入”,即在Delete中记录修改前的数据,Insert中记录修改后的数据。

相同主键的操作记录,Delete只返回一条,Insert返回新增或修改的最终状态。

参数:

cdcPath

dirout文件夹的路径,此文件夹下存放数据同步工具采集数据生成的复组表。

tables

需要汇总的表名,缺省为所有的表,不区分大小写。表名可以是字符串,表名之间用空格分隔,也可以用序表方式表示多表。

startTime/endTime

采集的起始时间/结束时间,格式为yyyy-MM-dd HH:mm:ddyyyy-MM-ddstartTime不能省略,endTime缺省表示当前时间;两参数都存在时,按照左闭右开的区间取值

返回值:

序表

示例:

 

A

 

1

=cdc_collect("D:/tmp/dirout";"mytest.test1","2023-06-01 08:00:00")

采集指定起始时间至当前时间的表test1数据。

2

=cdc_collect("D:/tmp/dirout";,"2023-06-01 08:30:00")

采集指定起始时间至当前时间的所有表数据。

3

=cdc_collect("D:/tmp/dirout";["mytest.test2","mytest.test3"],"2023-06-01 08:00:00","2023-06-01 18:00:00")

汇总指定时间段的多个表数据。

4

=cdc_collect("D:/tmp/dirout";"mytest.test2 mytest.test3","2023-06-01 08:00:00","2023-06-01 18:00:00")

同上。

5

=file("F://tmp/emp1.ctx").open()

打开组表emp1.ctx,组表内容如下:

6

=A5.update(:A4.Delete)

将对表test1的数据删除同步至组表emp1.ctx中,A4.Delete内容如下:

7

=A5.update(A4.Insert)

将对表test1的数据新增同步至组表emp1.ctx中,A4.Insert内容如下:

8

=A5.cursor().fetch()

此时查看组表emp1.ctx中的数据,数据同步成功: