PostgreSQL 单表读取节点配置
PostgreSQL 读取配置参数说明
1. 在数据集成页面左侧目录栏单击实时同步。
2. 在实时同步页面上方选择单表同步新建(可选择表单和画布模式)并进入配置页面。
3. 单击左侧读取,单击选择 PostgreSQL 节点并配置节点信息。
![](https://qcloudimg.tencent-cloud.cn/image/document/6d40af622834ae1296cb92ead18e769a.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/6d40af622834ae1296cb92ead18e769a.png)
4. 您可以参考下表进行参数配置。
参数 | 描述 |
节点名称 | 输入 PostgreSQL 节点名称。 |
数据源 | 选择需要同步的表所在数据源。 |
库 | 支持选择、或者手动输入需读取的库名称。 默认将数据源绑定的数据库作为默认库,其他数据库需手动输入库名称。 当数据源网络不联通导致无法直接拉取库信息时,可手动输入数据库名称。在数据集成网络连通的情况下,仍可进行数据同步。 |
模式 | 支持选择、或者手动输入需读取该数据源下可用的模式。 |
表 | 支持选择、或者手动输入需读取的表名称。 |
高级设置 | 可根据业务需求配置参数。 |
5. 预览数据字段,单击保存。
PostgreSQL 单表写入节点配置
配置 PostgreSQL 节点
1. 在数据集成页面左侧目录栏单击实时同步。
2. 在实时同步页面上方选择单表同步新建(可选择表单和画布模式)并进入配置页面。
3. 单击左侧写入,单击选择 PostgreSQL 节点并配置节点信息。
![](https://qcloudimg.tencent-cloud.cn/image/document/d3d7c2b48f830bad8f07af178f9d3d8a.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/d3d7c2b48f830bad8f07af178f9d3d8a.png)
4. 您可以参考下表进行参数信息配置。
参数 | 描述 |
节点名称 | 输入 PostgreSQL 节点名称。 |
数据源 | 选择需要写入的表所在数据源。 |
库 | 支持选择、或者手动输入需写入的库名称。 默认将数据源绑定的数据库作为默认库,其他数据库需手动输入库名称。 当数据源网络不联通导致无法直接拉取库信息时,可手动输入数据库名称。在数据集成网络连通的情况下,仍可进行数据同步。 |
模式 | 支持选择、或者手动输入需写入该数据源下可用的模式。 |
表 | 支持选择、或者手动输入需写入的表名称。 |
主键 | 选择一个字段作为写入表的主键。 |
高级设置(选填) | 可根据业务需求配置参数。 |
PostgreSQL 整库来源配置
![](https://qcloudimg.tencent-cloud.cn/image/document/b178b9b115a59b4891e607657b4d20c3.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/b178b9b115a59b4891e607657b4d20c3.png)
参数 | 说明 |
数据源 | 选择需要同步的 PostgreSQL 数据源 |
来源表 | 根据业务需求,选择“所有库表”、“指定表”、“指定库” |
| 所有库表:监控数据源下所有库。任务运行期间新增库、表默认将同步至目标端 指定表:仅同步指定表 指定库:监控指定库,同步库下所有或符合规则的表 |
| |
| |
读取模式 | 全量 + 增量、增量 |
过滤操作 | 提供多种过滤操作,包括插入、更新、删除、删除集合、删除数据库、重命名集合,设置后将不同步指定操作类型的数据 |
整库同步至 PostgreSQL 配置详情
背景信息及特性支持
支持 Mongo 内整个实例或库表数据实时同步至 PG 中:
Mongo 支持实例、库、表级数据变更监控。
条件与限制
PG 仅支持同步至已有库表,任务运行前需保证目标库表已存在。
PG 写入暂不支持自动建库、表、字段能力。
操作步骤
步骤一:创建整库同步任务
进入 配置中心 > 实时同步任务 页面后,单击 新建 整库迁移任务。
步骤二:链路选择
在首页卡片中选择同步至 PostgreSQL 目标端的链路。
![](https://qcloudimg.tencent-cloud.cn/image/document/996c1942db830c72c4f9c106a97ca6ed.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/996c1942db830c72c4f9c106a97ca6ed.png)
步骤三:数据来源设置
步骤四:数据目标设置
![](https://qcloudimg.tencent-cloud.cn/image/document/e8b8a3104c13af937f913db567ca16cc.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/e8b8a3104c13af937f913db567ca16cc.png)
参数 | 说明 |
数据源 | 选择需要同步的 PostgreSQL 目标数据源。 |
写入模式 | upsert:更新方式写入目标表。此方式下要求目标表中已设置主键: 任务将默认使用主键作为唯一键进行记录更新。 若表无主键则 append 写入。 append:追加模式写入数据表。 |
库/Schema/表匹配策略 | 默认与来源库/表同名,也可以自定义配置,输入匹配规则即可(鼠标放至“查看内置参数”即可查看匹配规则)。 |
步骤五:配置运行资源和策略
![](https://qcloudimg.tencent-cloud.cn/image/document/3c5ad0bf63595052b1f1835868ec0af5.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/3c5ad0bf63595052b1f1835868ec0af5.png)
PostgreSQL 整库同步任务提供任务级运行资源及数据失败写入处理策略。其中数据写入失败处理策略支持三种:
策略名称 | 策略说明 |
忽略异常 | 忽略表内无法写入的异常数据并标记为脏数据。该表的其他数据、以及任务内的其他表正常同步。脏数据提供 COS 归档和不归档两种方案。 COS 归档:将无法写入的脏数据进行归档,需要配置 COS 数据源、存储桶、存储目录、内容分隔符及换行符。 不归档:不需要做其他操作。 |
部分停止 | 部分表写入异常时,仅停止该表数据写入,其他表正常同步。已停止的表不可在本次任务运行期间恢复写入。 |
异常重启 | 部分表写入异常时,所有表均暂停写入。此策略下任务将持续重启直到所有表正常同步,重启期间可能导致部分表数据重复写入。 |
场景示例:
任务 Task1下计划同步50张表,任务运行过程中表 A 内出现新增字段或字段类型变更:
忽略异常:表 A 任务运行后将字段 "DEMO" 的进行了字段类型变更,并且变更后字段类型与目标端字段类型无法匹配写入。此策略下任务将忽略无法写入的异常数据,并标记为脏数据,表内其他数据正常同步。
部分停止:表 A 任务运行后将字段 "DEMO" 的进行了字段类型变更,并且变更后字段类型与目标端字段类型无法匹配写入。此策略下,任务将在停止源端表A的数据读取,后续任务仅同步其余49张表至目标端。
异常重启:表 A 任务运行后将字段 "DEMO" 的进行了字段类型变更,并且变更后字段类型与目标端字段类型无法匹配写入。此策略下任务将在持续重启,期间任务内配置的所有50张表将暂停数据写入,直到 schema 匹配。
步骤六:配置预览及任务提交
![](https://qcloudimg.tencent-cloud.cn/image/document/abcc6188e9a994b50c6a51a3b057814c.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/abcc6188e9a994b50c6a51a3b057814c.png)
序号 | 参数 | 说明 |
1 | 提交 | 将当前任务提交至生产环境,提交时根据当前任务是否有生产态任务可选择不同运行策略: 若当前任务无生效的线上任务,即首次提交或线上任务处于“失败”状态,可直接提交。 若当前任务存在“运行中”或“暂停”状态的线上任务需选择不同策略。停止线上作业将抛弃之前任务运行位点,从头开始消费数据,保留作业状态将在重启后从之前最后消费位点继续运行。 ![]() 说明: 单击立即启动任务将在提交后立即开始运行,否则需要手动触发才会正式运行。 |
2 | 锁定/解锁 | 默认创建者为首个持锁者,仅允许持锁者编辑任务配置及运行任务。若锁定者5分钟内没有编辑操作,其他人可点击图标抢锁,抢锁成功可进行编辑操作。 |
3 | 前往运维 | 根据当前任务名称快捷跳转至任务运维页面。 |
4 | 保存 | 预览完成后,可单击保存按钮保存整库任务配置。仅保存的情况下,任务将不会提交至运维中心。 |
任务提交检测
![](https://qcloudimg.tencent-cloud.cn/image/document/e78a3479097f9699498c5b91993289be.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/e78a3479097f9699498c5b91993289be.png)
参数 | 说明 |
检测存在异常 | 支持跳过异常直接提交,或者终止提交。 |
检测仅存在警告及以下 | 可直接提交。 |
提交结果
![](https://qcloudimg.tencent-cloud.cn/image/document/e512297f24ab60f3e989d70806fca90e.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/e512297f24ab60f3e989d70806fca90e.png)
任务提交中:
展示提交进度百分比。
提示用户勿刷新/关闭页面,文案:当前任务已提交成功,可前往运维进行任务状态及数据管理。
任务提交结果-成功:
展示任务提交成功结果。
提示成功及后续跳转:文案 “提交成功,10秒后将跳转至当前任务运维详情页面” “当前任务已提交成功,可前往运维进行任务状态及数据管理”。
展示任务提交失败原因:
失败原因返回。
后续步骤
PostgreSQL 日志采集写入节点配置如下:
![](https://qcloudimg.tencent-cloud.cn/image/document/336e485571f2fbd9ab72a90688e3ebe7.png)
![](https://qcloudimg.tencent-cloud.cn/image/document/336e485571f2fbd9ab72a90688e3ebe7.png)
参数 | 说明 |
数据源 | 选择当前项目中可用的 PostgreSQL 数据源。 |
库/表 | 选择 PostgreSQL 数据源中对应的库表。 |
模式 | 选择 PostgreSQL 数据源中的模式。 |
主键 | 选择一个字段作为数据表主键 |
高级设置(可选) | 可根据业务需求配置参数。 |
数据类型转换支持
读取
PostgreSQL 读取支持的数据类型及转换对应关系如下:
PostgreSQL 类型 | 内部类型 |
- | TINYINT |
SMALLINT,INT2,SMALLSERIAL,SERIAL2 | SMALLINT |
INTEGER,SERIAL | INT |
BIGINT,BGSERIAL | BIGINT |
- | DECIMAL(20, 0) |
REAL,FLOAT4 | FLOAT |
FLOAT8,DOUBLE PRECISION | DOUBLE |
NUMERIC(p, s),DECIMAL(p, s) | DECIMAL(p, s) |
BOOLEAN | BOOLEAN |
DATE | DATE |
TIME [(p)][WITHOUT TIMEZONE] | TIME [(p)][WITHOUT TIMEZONE] |
TIMESTAMP [(p)]WITHOUT TIMEZONE | TIMESTAMP [(p)][WITHOUT TIMEZONE] |
CHAR(n),CHARACTER(n),VARCHAR(n),CHARACTER ,VARYING(n),TEXT | STRING |
BYTEA | BYTES |
写入
PostgreSQL 写入支持的数据类型及转换对应关系如下:
内部类型 | PostgreSQL 类型 |
TINYINT | - |
SMALLINT | SMALLINT,INT2,SMALLSERIAL,SERIAL2 |
INT | INTEGER,SERIAL |
BIGINT | BIGINT,BIGSERIAL |
DECIMAL(20, 0) | - |
FLOAT | REAL,FLOAT4 |
DOUBLE | FLOAT8,DOUBLE PRECISION |
DECIMAL(p, s) | NUMERIC(p, s),DECIMAL(p, s) |
BOOLEAN | BOOLEAN |
DATE | DATE |
TIME [(p)][WITHOUT TIMEZONE] | TIME [(p)][WITHOUT TIMEZONE] |
TIMESTAMP [(p)][WITHOUT TIMEZONE] | TIMESTAMP [(p)]WITHOUT TIMEZONE |
STRING | CHAR(n),CHARACTER(n),VARCHAR(n),CHARACTER VARYING(n),TEXT |
BYTES | BYTEA |