FLink写入Clickhouse优化
一、背景
ck因为有合并文件操作,适合批量写入。如单条插入则速度太慢
二、Flink写入ck优化
改为分批插入,代码如下
DataStream<Row> stream = ...
stream.addSink(JdbcSink.sink(
"INSERT INTO mytable (col1, col2) VALUES (?, ?)",
(ps, row) -> {
ps.setString(1, row.getField(0));
ps.setInt(2, row.getField(1));
},
JdbcExecutionOptions.builder()
.withBatchSize(1000)
.withBatchIntervalMs(5000)
.withMaxRetries(3)
.build(),
new JdbcConnectionOptions.JdbcConnectionOptionsBuilder()
.withUrl("jdbc:clickhouse://localhost:8123/default")
.withDriverName("ru.yandex.clickhouse.ClickHouseDriver")
.build()
));
参考博客:https://juejin.cn/s/flink%E5%86%99%E5%85%A5clickhouse%E4%BC%98%E5%8C%96
本人程序员工具箱:www.robots2.com
FLink写入Clickhouse优化的更多相关文章
- hbase大规模数据写入的优化历程
业务背景:由于需要将ngix日志过滤出来的1亿+条用户行为记录存入Hbase数据库,以此根据一定的条件来提供近实时查询,比如根据用户id及一定的时间段等条件来过滤符合要求的若干行为记录,满足这一场景的 ...
- Flink写入kafka时,只写入kafka的部分Partitioner,无法写所有的Partitioner问题
1. 写在前面 在利用flink实时计算的时候,往往会从kafka读取数据写入数据到kafka,但会发现当kafka多个Partitioner时,特别在P量级数据为了kafka的性能kafka的节点有 ...
- 《从0到1学习Flink》—— Flink 写入数据到 Kafka
前言 之前文章 <从0到1学习Flink>-- Flink 写入数据到 ElasticSearch 写了如何将 Kafka 中的数据存储到 ElasticSearch 中,里面其实就已经用 ...
- 《从0到1学习Flink》—— Flink 写入数据到 ElasticSearch
前言 前面 FLink 的文章中我们已经介绍了说 Flink 已经有很多自带的 Connector. 1.<从0到1学习Flink>-- Data Source 介绍 2.<从0到1 ...
- Flink 实践教程:入门(6):读取 PG 数据写入 ClickHouse
作者:腾讯云流计算 Oceanus 团队 流计算 Oceanus 简介 流计算 Oceanus 是大数据产品生态体系的实时化分析利器,是基于 Apache Flink 构建的具备一站开发.无缝连接.亚 ...
- mongodb千万级写入怎么优化
从mysql数据库通过java程序导入单表1300w到mongodb,花了大概50分钟,前1000w条数据中每100w条大概要3分钟,之后的300多w条就差不多每100w条要5到6分钟,之后再从其他的 ...
- flink写入mysql的两种方式
方式一 通过JDBCOutputFormat 在flink中没有现成的用来写入MySQL的sink,但是flink提供了一个类,JDBCOutputFormat,通过这个类,如果你提供了jdbc的dr ...
- flink任务性能优化
如何提高 Flink 任务性能 一.Operator Chain 为了更高效地分布式执行,Flink 会尽可能地将 operator 的 subtask 链接(chain)在一起形成 task,每个 ...
- 字节跳动基于ClickHouse优化实践之“多表关联查询”
更多技术交流.求职机会.试用福利,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 相信大家都对大名鼎鼎的ClickHouse有一定的了解了,它强大的数据分析性能让人印象深刻.但在字节大量 ...
- Flink写入Redis集群 重写flink-connector-redis包,解决Cluster无法输入密码问题
起因:使用flink的时候难免和redis打交道,相信大家都使用过flink-connector-redis来处理,但是当我想要使用RedisSink写入集群时,发现居然不支持使用密码,于是有了这篇笔 ...
随机推荐
- python下的多线程与多进程
多进程: 进程我们可以理解为是一个可以独立运行的程序单位,比如打开一个浏览器,这就开启了一个浏览器进程:打开一个文本编辑器,这就开启了一个文本编辑器进程.但一个进程中是可以同时处理很多事情的,比如在浏 ...
- php调试工具之firePHP
让PHP可以像js一样利用浏览器的控制台调试代码 ------- FirePHP(http://www.firephp.org/) 1. 安装FirePHP插件 在Chrome浏览器的应用商店中,搜 ...
- Springboot优雅读配置文件
转载自Springboot优雅读配置文件 很多时候我们需要将一些常用的配置信息比如阿里云oss配置.发送短信的相关信息配置等等放到配置文件中. 下面我们来看一下 Spring 为我们提供了哪些方式帮助 ...
- Python 潮流周刊#81:在个人电脑上运行 GPT-4 级别的大模型(摘要)
本周刊由 Python猫 出品,精心筛选国内外的 250+ 信息源,为你挑选最值得分享的文章.教程.开源项目.软件工具.播客和视频.热门话题等内容.愿景:帮助所有读者精进 Python 技术,并增长职 ...
- 云数据备份 | MySQL、SQL Server 数据备份到 COS
随着互联网高速发展,数据安全的重要性日趋明显.数据备份是企业应对系统故障的重要手段.数据备份可以提高系统的高可用性和灾难可恢复性,使用备份还原数据是系统崩溃时提供数据恢复最小代价的最优方案. 一.云数 ...
- 在 MySQL 创造类似 PipelineDB 的流视图(continuous view)
公司的系统采用的是 Google Cloud SQL 提供的 MySQL 数据库,由于历史原因,数据库成本极高,需要对它进行优化缩减成本. 相比 PostgresSQL,MySQL 主要缺少以下特性, ...
- 【报错解决】【Python】'Failed to import pydot. You must pip install pydot and install graphviz (https://graphviz.gitlab.io/download/), ', 'for pydotprint to work.'
可视化函数式API的形式seq2seq模型的过程中发生报错. 报错内容: 'Failed to import pydot. You must pip install pydot and install ...
- 微信小程序无法抓包
1.问题 1.1. 问题描述 夜神模拟器中,微信小程序请求超时(是因为开了抓包程序) 1.2. 问题截图 2.解决问题 2.1. 步骤 开启调试模式,之后重启小程序 2.2. 结果
- 视频监控推流助手/极低延迟/支持N路批量多线程推流/264和265推流/监控转网页
一.前言说明 搞视频监控开发除了基本的拉流以外,还有个需求是推流,需要将拉到的流重新推流到流媒体服务器,让流媒体服务做转发和负载均衡,这样其他地方只需要问流媒体服务器要视频流即可.为什么拉了又重新推呢 ...
- Vue3使用Vuex 教程(这才是真正的小白教程!)
我的项目是vue3+element-plus 我是个菜鸡,我不懂前端.想做一个tags的导航标签页.但是点击标签页之后页面仍然是会重新请求.感觉这不就跟没做一样吗? 遂百度GPT,第一种方式采用的就是 ...