1.Flink读写Clickhouse支持哪个版本?
2.ClickHouse读写Clickhouse有哪些参数?
3.ClickHouse读写Clickhouse参数都有哪些解释?
❞ClickHouse 读取
一、插件名称
名称:clickhousereader
二、支持的数据源版本
ClickHouse 19.x及以上
三、参数解释
「jdbcUrl」
描述:针对关系型数据库的jdbc连接字符串
jdbcUrl参考文档:clickhouse-jdbc官方文档
必选:是
默认值:无
「username」
描述:数据源的用户名
必选:是
默认值:无
「password」
描述:数据源指定用户名的密码
必选:是
默认值:无
「where」
描述:筛选条件,reader插件根据指定的column、table、where条件拼接SQL,并根据这个SQL进行数据抽取。在实际业务场景中,每每会选择当天的数据进行同步,可以将where条件指定为gmt_create > time。
把稳:不可以将where条件指定为limit 10,limit不是SQL的合法where子句。
必选:否
默认值:无
「splitPk」
描述:当speed配置中的channel大于1时指定此参数,Reader插件根据并发数和此参数指定的字段拼接sql,使每个并发读取不同的数据,提升读取速率。把稳:推举splitPk利用表主键,由于表主键常日情形下比较均匀,因此切分出来的分片也不随意马虎涌现数据热点。目前splitPk仅支持整形数据切分,不支持浮点、字符串、日期等其他类型。如果用户指定其他非支持类型,FlinkX将报错!
如果channel大于1但是没有配置此参数,任务将置为失落败。
必选:否
默认值:无
「fetchSize」
描述:读取时每批次读取的数据条数。
把稳:此参数的值不可设置过大,否则会读取超时,导致任务失落败。
必选:否
默认值:1000
「queryTimeOut」
描述:查询超时时间,单位秒。
把稳:当数据量很大,或者从视图查询,或者自定义sql查询时,可通过此参数指定超时时间。
必选:否
默认值:1000
「customSql」
描述:自定义的查询语句,如果只指定字段不能知足需求时,可通过此参数指定查询的sql,可以是任意繁芜的查询语句。把稳:只能是查询语句,否则会导致任务失落败;查询语句返回的字段须要和column列表里的字段严格对应;当指定了此参数时,connection里指定的table无效;当指定此参数时,column必须指定详细字段信息,不能以号代替;
必选:否
默认值:无
「column」
描述:须要读取的字段。
格式:支持3种格式
1.读取全部字段,如果字段数量很多,可以利用下面的写法:
2.只指定字段名称:
\"大众column\公众:[\公众id\"大众,\"大众name\"大众]
3.指定详细信息:
\"大众column\公众: [{\"大众name\"大众: \"大众col\"大众,\"大众type\公众: \"大众datetime\公众,\"大众format\公众: \"大众yyyy-MM-dd hh:mm:ss\"大众,\"大众value\"大众: \"大众value\公众}]
属性解释:
❝name:字段名称
type:字段类型,可以和数据库里的字段类型不一样,程序会做一次类型转换
format:如果字段是韶光字符串,可以指定时间的格式,将字段类型转为日期格式返回
value:如果数据库里不存在指定的字段,则会报错。如果指定的字段存在,当指定字段的值为时,会以此value值作为默认值返回
❞必选:是
默认值:无
「polling」
描述:是否开启间隔轮询,开启后会根据pollingInterval轮询间隔韶光周期性的从数据库拉取数据。开启间隔轮询还需配置参数pollingInterval,increColumn,可以选择配置参数startLocation。若不配置参数startLocation,任务启动时将会从数据库中查询增量字段最大值作为轮询的开始位置。
必选:否
默认值:false
「pollingInterval」
描述:轮询间隔韶光,从数据库中拉取数据的间隔韶光,默认为5000毫秒。
必选:否
默认值:5000
「requestAccumulatorInterval」
描述:发送查询累加器要求的间隔韶光。
必选:否
默认值:2
配置示例
1、根本配置
{\"大众job\"大众: {\"大众content\公众: [{\"大众reader\"大众: {\"大众parameter\"大众 : {\"大众column\"大众 : [ {\"大众name\"大众 : \"大众id\"大众,\"大众type\"大众 : \"大众bigint\公众,\"大众key\公众 : \"大众id\"大众}, {\"大众name\"大众 : \"大众user_id\"大众,\"大众type\"大众 : \"大众bigint\公众,\公众key\公众 : \公众user_id\公众}, {\"大众name\"大众 : \"大众name\公众,\"大众type\"大众 : \"大众varchar\公众,\"大众key\"大众 : \"大众name\"大众} ],\"大众username\公众 : \"大众username\"大众,\"大众password\"大众 : \"大众password\"大众,\"大众connection\公众 : [ {\公众jdbcUrl\"大众 : [ \"大众jdbc:clickhouse://0.0.0.1:8123/dtstack\"大众 ],\"大众table\"大众 : [ \"大众tableTest\"大众 ]} ],\"大众where\"大众: \"大众id > 1\"大众,\"大众splitPk\公众: \"大众id\公众,\"大众fetchSize\公众: 1000,\公众queryTimeOut\公众: 1000,\"大众customSql\"大众: \"大众\"大众,\"大众requestAccumulatorInterval\"大众: 2},\"大众name\公众 : \公众clickhousereader\"大众},\"大众writer\公众: {\"大众name\"大众: \"大众streamwriter\"大众,\"大众parameter\公众: {\公众print\"大众: true}}}],\"大众setting\公众: {\"大众speed\"大众: {\"大众channel\"大众: 1,\公众bytes\"大众: 0},\公众errorLimit\公众: {\公众record\公众: 100}}}}
2、多通道
{\"大众job\"大众: {\"大众content\"大众: [{\公众reader\"大众: {\公众parameter\公众 : {\"大众column\"大众 : [ {\"大众name\"大众 : \公众id\公众,\"大众type\"大众 : \"大众bigint\"大众,\"大众key\公众 : \"大众id\"大众}, {\"大众name\公众 : \"大众user_id\"大众,\公众type\公众 : \"大众bigint\公众,\公众key\"大众 : \"大众user_id\公众}, {\"大众name\"大众 : \"大众name\"大众,\"大众type\"大众 : \"大众varchar\"大众,\公众key\"大众 : \公众name\公众} ],\"大众username\"大众 : \"大众username\公众,\"大众password\公众 : \公众password\公众,\"大众connection\"大众 : [ {\"大众jdbcUrl\公众 : [ \"大众jdbc:clickhouse://0.0.0.1:8123/dtstack\"大众 ],\"大众table\"大众 : [ \"大众tableTest\"大众 ]} ],\公众where\"大众: \"大众id > 1\"大众,\公众splitPk\"大众: \"大众id\"大众,\公众fetchSize\"大众: 1000,\"大众queryTimeOut\公众: 1000,\"大众customSql\公众: \"大众\"大众,\"大众requestAccumulatorInterval\"大众: 2},\"大众name\"大众 : \"大众clickhousereader\公众},\"大众writer\公众: {\"大众name\公众: \"大众streamwriter\"大众,\"大众parameter\公众: {\"大众print\"大众: true}}}],\公众setting\"大众: {\"大众speed\"大众: {\"大众channel\公众: 3,\"大众bytes\"大众: 0},\"大众errorLimit\"大众: {\公众record\"大众: 100}}}}
3、指定customSql
{\公众job\"大众: {\"大众content\"大众: [{\公众reader\"大众: {\"大众parameter\"大众 : {\公众column\公众 : [ {\"大众name\公众 : \"大众id\"大众,\公众type\"大众 : \"大众bigint\公众,\公众key\公众 : \公众id\公众}, {\公众name\"大众 : \公众user_id\"大众,\公众type\"大众 : \"大众bigint\"大众,\"大众key\公众 : \公众user_id\"大众}, {\"大众name\公众 : \公众name\"大众,\"大众type\公众 : \"大众varchar\"大众,\"大众key\公众 : \公众name\"大众} ],\"大众username\"大众 : \"大众username\公众,\公众password\公众 : \"大众password\"大众,\"大众connection\"大众 : [ {\"大众jdbcUrl\"大众 : [ \"大众jdbc:clickhouse://0.0.0.1:8123/dtstack\"大众 ],\"大众table\公众 : [ \"大众tableTest\"大众 ]} ],\"大众where\"大众: \"大众id > 1\公众,\"大众splitPk\公众: \"大众id\公众,\"大众fetchSize\"大众: 1000,\公众queryTimeOut\"大众: 1000,\"大众customSql\"大众: \"大众select id from tableTest\"大众,\"大众requestAccumulatorInterval\公众: 2},\"大众name\"大众 : \"大众clickhousereader\"大众},\"大众writer\"大众: {\"大众name\"大众: \公众streamwriter\"大众,\"大众parameter\"大众: {\公众print\"大众: true}}}],\公众setting\"大众: {\公众speed\"大众: {\公众channel\"大众: 1,\"大众bytes\"大众: 0},\"大众errorLimit\"大众: {\公众record\"大众: 100}}}}
4、增量同步指定startLocation
{\公众job\"大众: {\"大众content\"大众: [{\"大众reader\"大众: {\"大众parameter\"大众 : {\公众column\"大众 : [ {\"大众name\"大众 : \公众id\"大众,\"大众type\"大众 : \公众bigint\公众,\"大众key\"大众 : \"大众id\"大众}, {\公众name\"大众 : \"大众user_id\"大众,\"大众type\公众 : \"大众bigint\公众,\"大众key\"大众 : \"大众user_id\公众}, {\"大众name\公众 : \公众name\公众,\公众type\"大众 : \"大众varchar\"大众,\"大众key\"大众 : \"大众name\公众} ],\公众username\公众 : \"大众username\公众,\公众password\公众 : \公众password\"大众,\"大众connection\"大众 : [ {\公众jdbcUrl\"大众 : [ \公众jdbc:clickhouse://0.0.0.1:8123/dtstack\"大众 ],\公众table\"大众 : [ \公众tableTest\公众 ]} ],\"大众where\"大众: \"大众id > 1\公众,\"大众splitPk\"大众: \公众id\公众,\"大众fetchSize\"大众: 1000,\"大众queryTimeOut\"大众: 1000,\"大众customSql\"大众: \"大众\公众,\公众increColumn\公众: \"大众id\公众,\"大众startLocation\"大众: \公众20\"大众,\"大众requestAccumulatorInterval\"大众: 2},\"大众name\公众 : \"大众clickhousereader\"大众},\公众writer\"大众: {\公众name\公众: \公众streamwriter\公众,\"大众parameter\"大众: {\"大众print\"大众: true}}}],\"大众setting\公众: {\"大众speed\"大众: {\公众channel\公众: 1,\"大众bytes\公众: 0},\公众errorLimit\"大众: {\"大众record\"大众: 100}}}}
5、间隔轮询
{\"大众job\公众: {\"大众content\"大众: [{\"大众reader\公众: {\公众parameter\"大众 : {\"大众column\"大众 : [ {\"大众name\公众 : \"大众id\"大众,\公众type\"大众 : \"大众bigint\公众,\"大众key\"大众 : \"大众id\"大众}, {\公众name\"大众 : \"大众user_id\"大众,\公众type\公众 : \"大众bigint\公众,\"大众key\公众 : \"大众user_id\公众}, {\"大众name\"大众 : \"大众name\"大众,\公众type\"大众 : \公众varchar\"大众,\"大众key\公众 : \"大众name\"大众} ],\"大众username\"大众 : \公众username\公众,\公众password\公众 : \公众password\公众,\"大众connection\"大众 : [ {\"大众jdbcUrl\"大众 : [ \"大众jdbc:clickhouse://0.0.0.1:8123/dtstack\"大众 ],\公众table\公众 : [ \"大众tableTest\"大众 ]} ],\"大众where\"大众: \"大众id > 1\"大众,\"大众splitPk\公众: \"大众id\"大众,\"大众fetchSize\"大众: 1000,\公众queryTimeOut\"大众: 1000,\"大众customSql\公众: \"大众\"大众,\"大众requestAccumulatorInterval\"大众: 2,\公众polling\"大众: true,\"大众pollingInterval\"大众: 3000},\"大众name\公众 : \公众clickhousereader\公众},\公众writer\"大众: {\"大众name\公众: \"大众streamwriter\"大众,\公众parameter\"大众: {\"大众print\"大众: true}}}],\"大众setting\"大众: {\公众speed\"大众: {\"大众channel\"大众: 1,\"大众bytes\"大众: 0},\公众errorLimit\"大众: {\"大众record\公众: 100}}}}
一、插件名称
名称:clickhousewriter
二、支持的数据源版本
ClickHouse 19.x及以上
三、参数解释
「jdbcUrl」
描述:针对关系型数据库的jdbc连接字符串
必选:是
默认值:无
「username」
描述:数据源的用户名
必选:是
默认值:无
「password」
描述:数据源指定用户名的密码
必选:是
默认值:无
「column」
描述:目的表须要写入数据的字段,字段之间用英文逗号分隔。例如: \"大众column\"大众: [\"大众id\公众,\公众name\"大众,\"大众age\"大众]。
必选:是
默认值:否
默认值:无
「preSql」
描述:写入数据到目的表前,会先实行这里的一组标准语句
必选:否
默认值:无
「postSql」
描述:写入数据到目的表后,会实行这里的一组标准语句
必选:否
默认值:无
「table」
描述:目的表的表名称。目前只支持配置单个表,后续会支持多表
必选:是
默认值:无
「writeMode」
描述:掌握写入数据到目标表采取 insert into 语句,只支持insert操作
必选:是
所有选项:insert
默认值:insert
「batchSize」
描述:一次性批量提交的记录数大小,该值可以极大减少FlinkX与数据库的网络交互次数,并提升整体吞吐量。但是该值设置过大可能会造成FlinkX运行进程OOM情形
必选:否
默认值:1024
「插件下载」
"大众年夜众号内回答 「flinkx」即可获取
❝转载:https://www.aboutyun.com/forum.php?mod=viewthread&tid=29271
❞基于 Apache Flink 的实时监控告警系统
关于数据中台的深度思考与总结(干干货)
日志网络Agent,惨淡湿润的地底天下
2020 连续踏踏实实的做好自己
你点的每个赞,我都当成了喜好