网易首页 > 网易号 > 正文 申请入驻

数据写入中的高吞吐量与低延迟:两者兼得的方法

0
分享至

基于 Flink 流将数据移动到 Doris。

本文介绍 Apache Doris 如何基于Flink Streaming帮助您从 MySQL 等上游数据库向 Doris 导入数据并进行变更数据捕获(CDC)。但首先,您可能会问:Apache Doris 是什么,我为什么要费心这样做?

那么,Apache Doris是一个开源的实时分析数据仓库,同时支持高并发点查询和高吞吐量的复杂分析。提供亚秒级解析查询能力,在多维分析、仪表盘等实时数据服务中大显身手。

概述
  1. 如何秒级完成端到端的数据同步
  2. 如何确保实时数据可见性
  3. 如何让海量小文件的写入更流畅
  4. 如何保证端到端的Exactly-Once处理
实时性
  1. 流写入
Doris 中的 Flink-Doris Connector 曾经遵循“缓存和批量写入”的数据摄取方法。但是,这需要明智地选择批大小和批写入间隔;否则事情可能会出错。例如,如果批大小太大,则可能会出现OOM 错误。另一方面,频繁的写入可能会导致生成过多的数据版本。
为了避免这样的麻烦,Doris 实现了一个 Stream Write 方法,其工作原理如下:

  1. Flink 任务一旦启动,就会异步发起 Stream Load HTTP 请求。
  2. 数据通过 HTTP 的分块传输编码机制传输到 Doris。
  3. HTTP 请求在 Checkpoint 结束,即 Stream Load 任务完成。同时,异步发起下一个 Stream Load 请求。
  4. 重复以上步骤。

  1. 事务处理

  1. 数据版本快速聚合
小文件的高并发写入会在 Doris 中产生过多的数据版本,导致数据查询变慢。因此,Doris 增强了数据压缩能力,以便快速聚合数据。

首先,Doris 介绍了 Quick Compaction。具体来说,一旦数据版本增加,就会触发数据压缩。同时,Doris 通过扫描 tablets 的元数据,识别出数据版本过多的 tablet,并进行相应的 compaction。

其次,针对高并发、高频率的小文件写入,Doris实现了Cumulative Compaction。它从调度的角度将这些压缩任务与重量级的Base Compaction隔离开来,避免它们之间的相互影响。

最后但同样重要的是,Doris 采用了分层数据聚合的方法,可以确保每次聚合只涉及相似大小的文件。这大大降低了聚合任务的总数和系统的CPU占用率。

恰好一次

Exactly-Once 语义意味着数据将被处理一次且仅一次。即使机器或应用程序出现故障,它也可以防止数据被重新处理或丢失。

Flink 实现了一个 2PC 协议来实现 Sink 算子的 Exactly-Once 语义。基于此,Doris 中的 Flink-Doris Connector 实现了 Stream Load 2PC 来传递 Exactly-Once 处理。详情如下所示:

  1. Flink 任务一旦启动就会发起 Stream Load PreCommit 请求。然后会开启一个事务,通过HTTP的chunked机制,源源不断的向Doris发送数据。

  1. HTTP 请求在 Checkpoint 结束,Stream Load 完成。事务状态将设置为预提交。此时数据已经写入BE,对用户不可见。

  1. Checkpoint 发起请求,并将事务状态更改为 Committed。在此之后,数据将对用户可见。

  1. 在Flink应用失败的情况下,如果之前的事务处于Pre-Committed状态,Checkpoint会发起回滚请求,将事务状态变为Aborted。
Doris在高并发场景下的表现
场景描述

使用 Flink 从 Kafka 导入数据。在 ETL 之后,使用 Flink-Doris Connector 将实时数据摄取到 Doris 中。

要求

上游数据以每秒 10 万条的高频率写入 Doris。为实现数据实时可见,上下游数据需要在5s左右同步。

Flink 配置

并发数:20

检查点间隔:5s

以下是 Doris 的做法:

压缩实时性
结果显示,Doris 设法快速聚合数据,并使平板电脑中的数据版本数保持在 50 个以下。同时,Compaction Score 保持稳定。

CPU使用率
在优化了小文件的压缩策略后,Doris 将 CPU 占用率降低了 25%。

查询延迟
通过降低 CPU 使用率和数据版本数量,Doris 将数据排列得更加有序,从而实现更低的查询延迟。

Doris在低延迟场景下的表现(高阶压测)
描述
  1. 客户端单BE、单片Stream Load压力测试
  2. 数据实时性<1s

以下是优化前后的压缩分数:

Doris 使用建议
低延迟场景
对于需要实时数据可见性的场景(比如秒级数据同步),每次摄取的文件通常比较小。因此,建议将cumulative_size_based_promotion_min_size_mbyte默认值 64 减少到 8(以 MB 为单位)。这可以大大提高压实性能。
高并发场景
对于高并发的写入场景,建议通过将Checkpoint间隔增加到5-10s来降低Stream Load的频率。这不仅增加了 Flink 任务的吞吐量,也减少了小文件的产生,从而避免了额外的压缩压力。另外,对于实时性要求不高的场景(比如分钟级数据同步),建议将Checkpoint间隔增加到5-10分钟。这样,Flink-Doris Connector 仍然可以通过 2PC+Checkpoint 机制保证数据的完整性。
结论
Apache Doris 通过其 Stream Write 方式、事务处理能力和数据版本的聚合来实现数据的实时性。这些技术有助于减少内存和 CPU 使用率,从而降低延迟。此外,为了数据的完整性和一致性,Doris 实现了 Stream Load 2PC 以保证所有数据都恰好被处理一次。这就是 Doris 如何促进快速和安全的数据摄取。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
陪玩陪睡不算什么?男明星共享女友曝光后?两位京圈格格被牵连

陪玩陪睡不算什么?男明星共享女友曝光后?两位京圈格格被牵连

娱说瑜悦
2026-01-06 17:32:59
重磅交易!CJ・麦科勒姆换特雷・杨,34岁老将未来可能毫无保障

重磅交易!CJ・麦科勒姆换特雷・杨,34岁老将未来可能毫无保障

夜白侃球
2026-01-08 21:44:24
心脏装了6个支架的王石日本看病实录,值得深思

心脏装了6个支架的王石日本看病实录,值得深思

深度报
2026-01-01 23:17:29
就在刚刚,23家A股上市公司发布重大利空消息,看看都有哪些?

就在刚刚,23家A股上市公司发布重大利空消息,看看都有哪些?

股市皆大事
2026-01-08 08:05:36
扣押油轮,英美捅了马蜂窝,土耳其政客:世界将见证中俄伊土联盟

扣押油轮,英美捅了马蜂窝,土耳其政客:世界将见证中俄伊土联盟

头条爆料007
2026-01-08 08:41:39
细思恐极!老板曝司晓迪事件来龙去脉,她曾暗示鹿晗关晓彤有娃!

细思恐极!老板曝司晓迪事件来龙去脉,她曾暗示鹿晗关晓彤有娃!

古希腊掌管月桂的神
2026-01-08 10:51:38
比羽绒服轻便,比冲锋衣好看!100%羊毛填充,上身直冒汗

比羽绒服轻便,比冲锋衣好看!100%羊毛填充,上身直冒汗

十点读书
2026-01-07 19:34:05
为什么总统被绑架,委内瑞拉股票和债券反而双双暴涨?背后有一个冷酷的真相!

为什么总统被绑架,委内瑞拉股票和债券反而双双暴涨?背后有一个冷酷的真相!

识局Insight
2026-01-08 07:19:46
当不成总统了?特朗普承认自己或将下台,但真正的麻烦还在后头

当不成总统了?特朗普承认自己或将下台,但真正的麻烦还在后头

现代小青青慕慕
2026-01-07 18:49:20
整整3000日俘,朝鲜名将不听劝全给踹进冰窟窿,豪言不怕背负骂名

整整3000日俘,朝鲜名将不听劝全给踹进冰窟窿,豪言不怕背负骂名

兴趣知识
2026-01-04 01:09:46
建委主任谷牧看到彭德怀坐台下,说:您休息,会议内容我另行汇报

建委主任谷牧看到彭德怀坐台下,说:您休息,会议内容我另行汇报

鹤羽说个事
2026-01-08 11:00:02
女孩“手拌奶茶”后续:门店停业,涉事女店员狡辩,辞退只是开始

女孩“手拌奶茶”后续:门店停业,涉事女店员狡辩,辞退只是开始

法老不说教
2026-01-07 21:19:19
“人造太阳”大突破!10家正宗可控核聚变迎来爆发元年

“人造太阳”大突破!10家正宗可控核聚变迎来爆发元年

元爸体育
2026-01-07 13:57:48
驻日本大使吴江浩驳回日方就两用物项出口管制所提交涉

驻日本大使吴江浩驳回日方就两用物项出口管制所提交涉

界面新闻
2026-01-08 17:37:54
妻子拿着28克金手镯去金店,回来后丈夫觉得不对劲……他:妻子当时喝了酒

妻子拿着28克金手镯去金店,回来后丈夫觉得不对劲……他:妻子当时喝了酒

北青网-北京青年报
2026-01-06 13:50:08
18岁伊斯兰少女直播拒戴头巾,被冷血父亲荣誉处决。

18岁伊斯兰少女直播拒戴头巾,被冷血父亲荣誉处决。

环球趣闻分享
2026-01-07 13:30:09
双赢交易?小波特或赴活塞联手坎宁安,篮网获首轮签+即战力

双赢交易?小波特或赴活塞联手坎宁安,篮网获首轮签+即战力

夜白侃球
2026-01-08 21:35:05
证明自己,火箭记者:杨瀚森是我见过的最有天赋的球员之一

证明自己,火箭记者:杨瀚森是我见过的最有天赋的球员之一

懂球帝
2026-01-08 15:28:45
iPhone 13系列开启限时半价电池换新服务 仅需399元!

iPhone 13系列开启限时半价电池换新服务 仅需399元!

手机中国
2026-01-07 12:13:21
2026年春节,要暖到离谱?大年初一撞上七九,老辈人:60年头回见

2026年春节,要暖到离谱?大年初一撞上七九,老辈人:60年头回见

叮当当科技
2026-01-07 13:58:49
2026-01-08 23:08:49
墨谈科技 incentive-icons
墨谈科技
业务数码玩家.无聊的博主
5651文章数 611关注度
往期回顾 全部

科技要闻

智谱拿下“全球大模型第一股”,凭什么

头条要闻

10岁抗癌"王子"病情恶化 家人"放弃治疗"孩子憧憬出院

头条要闻

10岁抗癌"王子"病情恶化 家人"放弃治疗"孩子憧憬出院

体育要闻

世乒赛银牌得主,说自己梦里都是孙颖莎

娱乐要闻

抗战剧《马背摇篮》首播,获观众好评

财经要闻

微软CTO韦青:未来人类会花钱"戒手机"

汽车要闻

从量变到"智"变 吉利在CES打出了五张牌

态度原创

教育
本地
数码
房产
公开课

教育要闻

浙江首考地理:牛拉屎放屁,我该怎么办(减排)?!

本地新闻

1986-2026,一通电话的时空旅程

数码要闻

VESA展示DP80LL线缆、DisplayHDR True Black 1000与ClearMR认证实机效果

房产要闻

豪宅抢疯、刚需捡漏……2025年,一张房票改写了广州市场格局

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版