数据开发治理平台 WeData Greenplum 数据源

这篇说说腾讯云数据集成中Greenplum离线单表读取与写入节点的配置参数、数据类型转换支持及脚本Demo,包括库、表、切割键、筛选条件等核心设置。 读取与写入配置:支持选择或手动输入库、Schema、表名,切割键建议使用主键或有索引列,写入时可设置是否清空表及批量提交大小。 数据类型转换:Long映射smallint/integer/bigint,Double映射decimal/double/real,String。

相关产品
数据开发治理平台 WeData 产品页,含版本规格、价格与购买入口。

一、支持版本

支持 Greenplum 4.x、5.x、6.x 版本。

二、Greenplum 离线单表读取节点配置

参数 说明
数据来源 可用的 Greenplum 数据源。
库 支持选择、或者手动输入需读取的库名称默认将数据源绑定的数据库作为默认库,其他数据库需手动输入库名称。当数据源网络不联通导致无法直接拉取库信息时,可手动输入数据库名称。在数据集成网络连通的情况下,仍可进行数据同步。
Schema 支持选择、或者手动输入需读取的 Schema 名称。
表 支持选择、或者手动输入需读取的表名称。
切割键 指定用于数据分片的字段,指定后将启动并发任务进行数据同步。你可以将源数据表中某一列作为切分键,建议使用主键或有索引的列作为切分键。
筛选条件(选填) 在实际业务场景中,通常会选择当天的数据进行同步,将 where 条件指定为 gmt_create>$bizdate。where 条件可以有效地进行业务增量同步。如果不填写 where 语句,包括不提供 where 的 key 或 value,数据同步均视作同步全量数据。

三、Greenplum 离线单表写入节点配置

参数 说明
数据去向 需要写入的 Greenplum 数据源。
库 支持选择、或者手动输入需写入的库名称默认将数据源绑定的数据库作为默认库,其他数据库需手动输入库名称。当数据源网络不联通导致无法直接拉取库信息时,可手动输入数据库名称。在数据集成网络连通的情况下,仍可进行数据同步。
Schema 支持选择、或者手动输入需读取的 Schema 名称。
表 支持选择、或者手动输入需写入的表名称当数据源网络不联通导致无法直接拉取表信息时,可手动输入表名称。在数据集成网络连通的情况下,仍可进行数据同步。
是否清空表 在写入该 Greenplum 数据表前可以手动选择是否清空该数据表。
批量提交大小 一次性批量提交的记录数大小,该值可以极大减少数据同步系统与 Greenplum 的网络交互次数,并提升整体吞吐量。如果该值设置过大,会导致数据同步运行进程 OOM 异常。
前置 SQL(选填) 执行同步任务之前执行的 SQL 语句,根据数据源类型对应的正确 SQL 语法填写 SQL,例如,执行前清空表中的旧数据(truncate table tablename)。
后置 SQL(选填) 执行同步任务之后执行的 SQL 语句,根据数据源类型对应的正确 SQL 语法填写 SQL,例如,加上某一个时间戳 alter table tablename add colname timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP。

四、读取

Greenplum 数据类型 内部类型
smallint、integer、bigint Long
decimal、double precision、real Double
character、character varying、 String
date Date
boolean、bit Boolean

五、写入

内部类型 Greenplum 数据类型
Long smallint、integer、bigint
Double decimal、double precision、real
String character、character varying
Date date
Boolean bit、boolean

六、Greenplum 脚本 Demo

如果你配置离线任务时,使用脚本模式的方式进行配置,你需要在任务脚本中,按照脚本的统一格式要求编写脚本中的 reader 参数和 writer 参数。

"job": { "content": [ { "reader": { "parameter": { "password": "******", "column": [ //列名 "id", "name" ], "connection": [ { "jdbcUrl": [ "jdbc:postgresql://ip:5432/database?reWriteBatchedInserts=true" ], "table": [ //源表 "schema.source_table" ] } ], "where": "id>10", //筛选条件 "splitPk": "id", //切割键 "username": "root" }, "name": "postgresqlreader" }, "transformer": [], "writer": { "parameter": { "postSql": [ //后置sql "" ], "password": "******", "session": [ "set optimizer to 'off'", "set enable_seqscan to 'off'" ], "column": [ //列名 "id", "name" ], "connection": [ { "jdbcUrl": "jdbc:postgresql://ip:5436/database?reWriteBatchedInserts=true", "table": [ //目标表 "schema.sink_table" ] } ], "batchSize": 1024, //批量提交大小 "username": "root", "preSql": [ //前置sql "" ] }, "name": "postgresqlwriter" } } ], "setting": { "errorLimit": { //脏数据阈值 "record": 0 }, "speed": { "byte": -1, //不限制同步速度,正整数表示设置最大传输速度 byte/s "channel": 1 //并发数量 } }}

赞 (0)
上一篇 5天前
下一篇 5天前