新增PostgreSQL实时采集
本节介绍如何在实时计算中配置PostgreSQL实时采集任务。
实时计算支持PostgreSQL数据库的实时采集,当PostgreSQL发生insert、update等操作时,实时采集组件可根据PostgreSQL的WAL事务日志信息立即获取其操作,并实时将变更信息同步至目标数据源。
实时采集-参数配置
配置 | 说明 |
---|---|
数据源/Schema |
选择对应数据类型的已有数据源和Schema信息,才能进一步选择数据表 |
是否分表 |
选择分表后,可以设置多对多分表、分组写入; |
表 |
选择数据源表,支持多表合并写入一张表; |
采集起点 |
用户可选择从任务运行时开始、从指定的LSN开始采集两种采集起点 |
数据操作 |
支持Insert、Update、Delete三种数据操作类型选择,当发生insert、update等操作时,实时采集组件可根据WAL事务日志信息立即获取其操作,并实时将变更信息同步至目标数据源。 |
Slot配置 |
支持选择已有Slot、创建Slot 两种方式; |
格式转换 |
勾选后,系统将会多层嵌套格式的JSON分解为单层结构,例如:{"a":1, "b": {"c":3}},将会被分解为:{"a":1,"b_c":3} |
高级配置 |
以JSON格式添加高级参数,例如对关系型数据库可配置fetchSize,每类数据源支持不同的参数 |
当Postgresql出现锁表情况是,对应实时采集任务不会失败;当数据库连接失败或网络传传输超时时,采集任务失败。 |
操作步骤
具体操作可参考快速开始中的 实时采集。
常见问题
Q:发布指定所有的表,在复制流消费期间,源数据库增加表,并对其进行增删改操作能否消费到?
A:能消费到新表的操作
Q:发布指定部分表,动态修改关联的表后,新关联的表能否消费到?
A:能,使用 ALTER PUBLICATION test1 ADD TABLE schema1.test2 ; 为名称为test1的发布添加schema1.test2,那么schema1.test2增删改,订阅test1的复制流就能消费到。
Q:发布指定的部分表。动态删除之后,能否消费到?
A:无法消费。
Q:发布指定所有的表之后,能否后续对这个发布关联的表进行动态调整(增删表)?
A:不能。
Q:Postgresql任务处于 运行中
状态,但长时间没有数据写入写出,怎么办?
A:可从Postgresql的数据情况切入进行排查,若数据库内长时间无数据写入且数据库连接正常,则需要查看数据库是否存在锁表现象。锁表会导致数据无法写入Postgresql,但实时采集读取的是WAL日志,因此实时采集正常,但由于没有数据写入,所以WAL日志内容无新增。