TCHouse-P 数据源

最近更新时间:2024-09-29 17:41:33

我的收藏

支持版本

目前支持 TCHouse-P 3.16.x 版本

TCHouse-P 离线单表读取节点配置




参数
说明
数据来源
选择来源端的已配置 TCHouse-P 数据源
支持选择、或者手动输入需读取的库名称 默认将数据源绑定的数据库作为默认库,其他数据库需手动输入库名称。 当数据源网络不联通导致无法直接拉取库信息时,可手动输入数据库名称。在数据集成网络连通的情况下,仍可进行数据同步。
Schema
支持选择、或者手动输入需读取的 Schema 名称
支持选择、或者手动输入需读取的表名称 当数据源网络不联通导致无法直接拉取库信息时,可手动输入表名称。在数据集成网络连通的情况下,仍可进行数据同步。
切割键
指定用于数据分片的字段,指定后将启动并发任务进行数据同步。您可以将源数据表中某一列作为切分键,建议使用主键或有索引的列作为切分键。
筛选条件(选填)
根据数据类型填写对应筛选语句,该语句会作为将要同步数据的筛选条件。

TCHouse-P 离线单表写入节点配置




参数
说明
数据去向
选择目标端的已配置 TCHouse-P 数据源。
支持选择、或者手动输入需读取的库名称 默认将数据源绑定的数据库作为默认库,其他数据库需手动输入库名称。 当数据源网络不联通导致无法直接拉取库信息时,可手动输入数据库名称。在数据集成网络连通的情况下,仍可进行数据同步。
Schema
支持选择、或者手动输入需读取的 Schema 名称。
支持选择、或者手动输入需读取的表名称 当数据源网络不联通导致无法直接拉取库信息时,可手动输入表名称。在数据集成网络连通的情况下,仍可进行数据同步。
是否清空表
在写入该数据表前可以手动选择是否清空该数据表。
写入模式
append:当主键/唯一性索引冲突时,冲突行无法写入。
upsert:主键/唯一性索引不冲突时,可插入新行;当主键/唯一性索引冲突时,会进行更新。
批量提交大小
一次性批量提交的记录数大小,该值可以极大减少数据同步系统与 TCHouse-P 的网络交互次数,并提升整体吞吐量。如果该值设置过大,会导致数据同步运行进程 OOM 异常。
前置 SQL
执行同步任务之前执行的 SQL 语句,根据数据源类型对应的正确 SQL 语法填写 SQL。
后置 SQL
执行同步任务之后执行的 SQL 语句,根据数据源类型对应的正确 SQL 语法填写 SQL。

数据类型转换支持

TCHouse-P 读取支持的数据类型及转换对应关系如下(在处理 TCHouse-P 时,会先将 TCHouse-P 数据源的数据类型和数据处理引擎的数据类型做映射):

读取

TCHouse-P 数据类型
内部类型
smallint,integer,bigint,serial,bigserial
Long
double precision, money, numeric, real
Double
varchar(character varying), char(character)
String
date, time, timestamp
Date
bool(boolean)
Boolean
bytea
Bytes

写入

内部类型
TCHouse-P 数据类型
Long
smallint,integer,bigint
Double
double precision,numeric, real
String
varchar(character varying), char(character),bit,money
Date
date, time, timestamp
Boolean
bool
Bytes
bytea

TCHouse-P 脚本 Demo

如果您配置离线任务时,使用脚本模式的方式进行配置,您需要在任务脚本中,按照脚本的统一格式要求编写脚本中的 reader 参数writer 参数
"job": {
"content": [
{
"reader": {
"parameter": {
"password": "******",
"column": [ //列名
"id",
"name"
],
"connection": [
{
"jdbcUrl": [
"jdbc:postgresql://ip:9000/database?reWriteBatchedInserts=true"
],
"table": [ //源表
"schema.source_table"
]
}
],
"where": "id>10", //筛选条件
"splitPk": "id", //切割键
"username": "root"
},
"name": "postgresqlreader"
},
"transformer": [],
"writer": {
"parameter": {
"postSql": [ //后置sql
""
],
"password": "******",
"column": [ //列名
"id",
"name"
],
"connection": [
{
"jdbcUrl": "jdbc:postgresql://ip:9000/postgres?reWriteBatchedInserts=true",
"table": [ //目标表
"schema.sink_table"
]
}
],
"batchSize": 1024, //批量提交大小
"username": "root",
"preSql": [ //前置sql
""
]
},
"name": "tbasewriter"
}
}
],
"setting": {
"errorLimit": { //脏数据阈值
"record": 0
},
"speed": {
"byte": -1, //不限制同步速度,正整数表示设置最大传输速度 byte/s
"channel": 1 //并发数量
}
}
}