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写入集群时,发现居然不支持使用密码,于是有了这篇笔 ...
随机推荐
- a标签与Blob下载文件的区别和获取文件下载进度
文件下载的几种方式. 大家都做过文件下载,无非就是通过a标签给定一个href. 用户点击下载按钮. 或者使用Blob的方式进行下载. 这两种是很常见的,也是我们平时做使用最多的方式. 那么我们知道这2 ...
- VLC 播放完毕后自动退出的问题
1.打开设置 2.打开全部显示 3.取消自动退出
- CoFile 企业云盘大焕新啦!
一.域名升级,更好记 俗话说的好,好记性不如字数少 cofile.net 指尖一敲,快乐来到 别拦着我,我就要用 CoFile 企业云盘 二.架构优化,不止更快 底层优化,加载提速,更快响应,加倍安全 ...
- Axios 面试题 (2023-09-15更新)
有封装过 axios 么?封装一个 axios? import axios from 'axios' // 创建axios实例 const service = axios.create({ baseU ...
- 使用 Windows Debugger 调试托管代码
使用 Windows Debugger 调试托管代码 https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/debugg ...
- 关于 Span 的一切:探索新的 .NET 明星: 3.什么是 Memory<T>,以及为什么你需要它?
3. 什么是 Memory<T>,以及为什么你需要它? 1. Span<T> 是什么? 2. Span<T> 是如何实现的? 3. 什么是 Memory<T& ...
- 在 .NET 下使用 Pdfium 渲染和打印 PDF
在 .NET 下使用 Pdfium 渲染和打印 PDF 大家可能已经看到这条 新闻,Google最近又新推出一个开源项目,名叫 PDFium,将成为Chrome浏览器的PDF渲染引擎组件.与已有的开源 ...
- 准备好"干翻世界"之前,不妨先听听我们的意见
期待大家的到来哦~
- metasploit模块
模块类型 辅助模块(Auxiliary) 渗透攻击模块(Exploits) 后渗透攻击模块(Post) 攻击载荷模块(Payloads) 空指令模块(Nops) 编码器模块(Encoders) 后渗透 ...
- Java 基于接口的动态代理
UserDao接口 package com.pry.cn; public interface UserDao { public int add(int a,int b); public String ...