灌水唠嗑区
其他
文章
人大金仓KFS支持Gbase8s增量解析数据封装逻辑
发表于2025-09-27 15:55:2292次浏览1个评论
Gbase8s增量数据封装模型
与其他数据库增量数据同步一样,Gbase8s数据库中insert、delete和update等DML操作中对表中数据的变更记录需要进行封装,封装成DBMSEvent后才能在流水线程序中做数据流转。DBMSEvent主要由eventId、DBMSData组成的链表、时间戳以及标识符组成,其中eventId用于表示当前DBMSEvent封装的事务中最早的RSN和提交RSN,链表中封装主要数据,标识符用来标识大事务分片。在DBMSData链表中,主要封装DBMSdata的子类RowChangeData,RowChangeData中有用来表示DML类型的标识和存储数据的链表,链表中存放的是OneRowChange,顾名思义OneRowChange表示的是对一行数据的更改记录,即insert、delete或者update操作中对数据库表中一行数据的更改。值得注意的是,对不同的操作类型,OneRowChange记录的内容有所不同,尤其对于主键列和数据列的描述这两个内容,在insert语句中,默认插入的数据不需要主键,因此只需要记录所有列的描述和列值即可,无需关注主键列和主键列的描述,对于update操作来说,因为需要有主键或者where后面的条件做更新数据的匹配,因此必须要有主键列和主键列描述信息,对于无主键表来来说,OneRowChange中默认将全列记录为主键列和主键列描述,对于有主键表来说,将主键或者where后面的条件作为主键列值和主键列描述;对于delete来说,同样需要主键或者where后面的条件标识数据,因此也需要记录主键列和主键列描述信息。
热门帖子
- 12025-12-01浏览数:182759
- 22023-05-09浏览数:25051
- 42023-09-25浏览数:18521
- 52020-05-11浏览数:17526