数据仓库服务 GAUSSDB(DWS)-实例管理:GDS-Kafka入库模式

时间:2024-09-13 09:51:44

GDS-Kafka入库模式

GDS-Kafka的数据入库都是先将数据copy至临时表,然后再根据客户的使用场景以及目标表有无主键进行merge或者insert,详见下表:

表3 GDS-Kafka入库模式

入库操作

app.insert.directly

是否主键表

入库模式

insert

true(仅支持无主键表)

使用insert select从临时表写入到目标表。

false

根据主键从临时表merge到目标表。

使用insert select从临时表写入到目标表。

delete

true(仅支持无主键表)

使用insert select从临时表写入到目标表。

false

说明:

delete操作支持标记删除,通过配置app.del.flag参数可以指定删除标记字段,如果配置了标记删除字段,则会通过将删除字段设置为1来标记删除的记录。

  • 如果设置了delflag字段,则会根据主键进行匹配merge,如果匹配到主键并且目标表中记录的pos小于临时表记录的pos,则会将delflag字段置为1,否则将插入一条新的记录。
  • 如果没有设置delflag字段,则会根据主键进行匹配,如果匹配到记录并且目标表中记录的pos小于临时表记录的pos,则会将目标表中匹配到的记录删除。

  • 如果设置了delflag字段,则会使用临时表中记录的所有字段与目标表进行匹配merge,如果匹配到记录并且目标表中记录的pos小于临时表记录的pos,则会将delflag字段值置为1,否则将插入一条新的记录。
  • 如果没有设置delflag字段,则会使用临时表中记录的所有字段与目标表进行匹配,如果匹配到记录并且目标表中记录的pos小于临时表记录的pos,则会将目标表中匹配到的记录删除。

update

true(仅支持无主键表)

使用insert+select从临时表写入到目标表。

false

说明:

update操作会被拆分,将before或者beforeImage中的消息拆分为delete操作,将after或者afterImage中的消息拆分为insert操作,然后再按照insert和delete的行为进行入库处理。

相当于有主键表的insert+delete操作。

相当于无主键表的insert+delete操作。

support.huaweicloud.com/mgtg-dws/dws_01_7002.html