火山引擎 ByteHouse:TB 级数据下,如何实现高效、稳定的数据导入

更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群

近期,火山引擎开发者社区、火山引擎数智平台(VeDI)联合举办以《数智化转型背景下的火山引擎大数据技术揭秘》为主题的线下 Meeup。活动主要从数据分析、数据治理、研发提效等角度,带领数据领域从业者全面了解数智化转型背景下的火山引擎数据飞轮模式在数据资产建设上的技术与实践。其中,火山引擎 ByteHouse 产品专家受邀到现场,发表主题为《基于 ByteHouse 引擎的增强型数据导入技术实践》的分享。

数据导入是衡量 OLAP 引擎性能及易用性的重要标准之一,高效的数据导入能力能够加速数据实时处理和分析的效率。作为一款 OLAP 引擎,火山引擎云原生数据仓库 ByteHouse 源于开源 ClickHouse,在字节跳动多年打磨下,提供更丰富的能力和更强性能,能为用户带来极速分析体验,支撑实时数据分析和海量离线数据分析,具备便捷的弹性扩缩容能力,极致的分析性能和丰富的企业级特性。

随着 ByteHouse 内外部用户规模不断扩大, 越来越多用户对数据导入提出更高的要求,这也为 ByteHouse 的数据导入能力带来了更大的挑战。

从字节跳动内部来看,ByteHouse 主要以 Kafka 为实时导入的主要数据源。对于大部分内部用户而言,其数据体量偏大,用户更看重数据导入的性能、服务的稳定性以及导入能力的可扩展性。在数据延时性方面,用户的需求一般为秒级左右。

据火山引擎 ByteHouse 产品专家的介绍,基于以上场景和需求,ByteHouse 首先基于 ClickHouse 引擎进行升级,其次又针对数据导入能力进行一系列定制性优化,主要包括两个方面,第一为 MaterializedMySQL 增强;第二个是 HaKafka 引擎。

在引擎优化方面,在 TB 级数据量级下,ClickHouse 容易出现集群故障,还存在读性能较低、耗损内存的问题。针对这些痛点,ByteHouse 自研的 HaMergeTree 和 HaUniqueMergeTree 可以降低负载,确保集群在单节点故障下能平稳运行服务,还能平衡读写性能,保障读取时性能一致。

在数据导入能力的定制化优化方面,社区版 MaterializedMySQL 不支持分布式表等功能,也存在无法定位问题、无法同步状态等运维问题。一方面,通过构建分布式模式的 MaterializedMySQL 库,用户可将每个表都对应同步至 ByteHouse 的一个分布式表,让数据不重复存储,充分利用分布式集群的计算能力,又降低了对源端的同步压力。另一方面,ByteHouse 也提供可视化运维的功能,支持同步状态和任务管理,一旦出现系统运维故障,用户会收到异常警告。

而 HaKafka 引擎则是 ByteHouse 推出的一种特殊的表引擎,主要基于 ClickHouse 社区的 Kafka engine 进行了优化。用户可以通过一个 Kafka 消费表、分布式存储表、物化视图表,三元组实现数据消费、数据转换、数据写入功能。

目前,以上能力已经在短视频、营销实时数据监控、游戏广告数据分析等领域落地。以营销实时数据监控为例,活动的主办方需要对营销活动效果进行实时监控,以便通过实时奖励发放来动态调整奖励流量分配,提升 ROI 收益。这类场景要求数据实时写入,对系统性能具备高要求 。另外,为保障奖励不会发放错误,也需要保证数据在传输和落盘时都不丢失、不重复,且稳定运行。

ByteHouse 基于自研 HaKafka 引擎,能支持流式数据实时入库, 用自研事务保障机制,确保数据精准一次传输,最后通过自研 Unique 引擎实现数据实时写入实时去重。在效果上实现实时写入、实时分析 30MB/s/node,业务可以根据不同用户群实时发放奖励,做到秒级延迟、秒级监控。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/149522.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

做好微信CRM,这些功能你不可不知!

在当前的数字化时代,微信已成为我们日常生活中的重要元素,无论是社交交流、信息传递还是商务合作,微信都扮演着不可或缺的角色。为了更有效地管理微信资源并提高工作效率,很多组织和公司都选择引入微信CRM系统。那么,怎…

【算法学习】-【双指针】-【盛水最多的容器】

LeetCode原题链接:盛水最多的容器 下面是题目描述: 给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。…

sheng的学习笔记-【中文】【吴恩达课后测验】Course 1 - 神经网络和深度学习 - 第三周测验

课程1_第3周_测验题 目录:目录 第一题 1.以下哪一项是正确的? A. 【  】 a [ 2 ] ( 12 ) a^{[2](12)} a[2](12)是第12层,第2个训练数据的激活向量。 B. 【  】X是一个矩阵,其中每个列都是一个训练示例。 C. 【  】 a 4 […

如果在 Mac 上的 Safari 浏览器中无法打开网站

使用网络管理员提供的信息更改代理设置。个人建议DNS解析,设置多个例如114.114.114.114 8.8.8.8 8.8.4.4 如果打不开网站,请尝试这些建议。 在 Mac 上的 Safari 浏览器 App 中,检查页面无法打开时出现的信息。 这可能会建议解决问题的…

pandas read_json时ValueError: Expected object or value的解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

坦克世界WOT知识图谱三部曲之爬虫篇

文章目录 关于坦克世界1. 爬虫任务2. 获取坦克列表3. 获取坦克具体信息结束语 关于坦克世界 《坦克世界》(World of Tanks, WOT)是我在本科期间玩过的一款战争网游,由Wargaming公司研发。2010年10月30日在俄罗斯首发,2011年4月12日在北美和欧洲推出&…

IDT 一款自动化挖掘未授权访问漏洞的信息收集工具

IDT v1.0 IDT 意为 Interface detection(接口探测) 项目地址: https://github.com/cikeroot/IDT/该工具主要的功能是对批量url或者接口进行存活探测,支持浏览器自动打开指定的url,避免手动重复打开网址。只需输入存在批量的url文件即可。 …

Linux删除空目录/非空目录和文件

一、删除目录 删除名为mydir的空目录: rmdir mydir 删除名为mydir的非空目录(非空目录是指该目录包含了其他文件或子目录,而不是空的或没有任何内容的目录) rm -r mydir 删除mydir1下的空目录mydir2 rmdir mydir1/mydir2 删除当前目录下所有以dir一个数字结尾的目录…

Nginx限流熔断

一、Nginx限流熔断 Nginx 是一款流行的反向代理和负载均衡服务器,也可以用于实现服务熔断和限流。通过使用 Nginx 的限流和熔断模块,比如:ngx_http_limit_req_module 和 ngx_http_limit_conn_module,可以在代理层面对服务进行限流…

set和map的封装

目录 介绍 红黑树代码 set insert的迭代器转换问题 为什么会有这样的问题? 如何解决 代码 map 注意点 代码 介绍 set和map的底层都是红黑树,所以我们可以在自己实现的红黑树(简易版)的基础上,进行封装,成为简易的set和map 红黑树代码 #pragma once#include <…

GEE16: 区域日均降水量计算

Precipitation 1. 区域日均降水量计算2. 降水时间序列3. 降水数据年度时间序列对比分析 1. 区域日均降水量计算 今天分析一个计算区域日均降水量的方法&#xff1a; 数据信息&#xff1a;   Climate Hazards Group InfraRed Precipitation with Station data (CHIRPS) is a…

嵌入式软件架构基础设施设计方法

大家好&#xff0c;今天分享一篇嵌入式软件架构设计相关的文章。 软件架构这东西&#xff0c;众说纷纭&#xff0c;各有观点。在我看来&#xff0c;软件架构是软件系统的基本结构&#xff0c;包含其组件、组件之间的关系、组件设计与演进的规则&#xff0c;以及体现这些规则的基…

图像处理与计算机视觉--第五章-图像分割-Canny算子

文章目录 1.边缘检测算子分类2.Canny算子核心理论2.1.Canny算子简单介绍2.2.Canny算子边缘检测指标2.3.Canny算子基本原理 3.Canny算子处理流程3.1.高斯滤波去噪声化3.2.图像梯度搜寻3.3.非极大值抑制处理3.4.双阈值边界处理3.5.边界滞后技术跟踪3.6.Canny算子边缘检测的特点 4…

MySQL 索引的作用、索引结构及执行流程介绍(索引篇 一)

索引介绍 MySQL索引&#xff08;index&#xff09;是一种用于加快数据库中数据搜索和查询的数据结构。它类似于书籍的目录&#xff0c;可以帮助数据库快速定位和访问特定数据&#xff0c;而无需扫描整个数据表。 索引的作用和缺点 1. 加快数据搜索&#xff1a;通过使用索引&…

Linux——指令初识

Linux下基本指令 前言一、 ls 指令二、 pwd命令三、cd 指令四、 touch指令五、mkdir指令六、rmdir指令 && rm 指令七、man指令八、cp指令九、mv指令十、cat指令十一、.more指令十二、less指令十三、head指令十四、tail指令总结 前言 linux的学习开始啦&#xff01; 今…

我的创作纪念日-第1024天

文章目录 一、机缘二、收获三、日常四、憧憬 一、机缘 不知不觉&#xff0c;已经加入CSDN这个大家庭5年多了&#xff0c;回想起3年前发布第一篇博客的时候&#xff0c;那时我记得很清楚&#xff0c;我在做项目时遇到报错&#xff0c;解决问题之后&#xff0c;然后想起了好多人…

SpringCloud(二)Docker、Spring AMQP、ElasticSearch

文章目录 DockerDocker与虚拟机Docker架构镜像、容器、镜像托管平台Docker架构Docker实践 Spring AMQP简单使用案例工作队列- WorkQueue发布订阅服务FanoutExchangeDirectExchangeTopicExchange 消息转换器 ElasticSearch倒排索引IK分词器IK分词拓展与停用字典 操作索引库mappi…

c#基础逻辑练习案例

第二章综合练习小游戏 练习内容 向控制台输出“这是学号姓名的C#基础小游戏”。向控制台换行再输出“请输入你的游戏昵称&#xff1a;”。向控制台输入你的游戏昵称&#xff0c;赋给一个字符串变量。向控制台换行再输出“请输入你的性别&#xff1a;”。向控制台输入你的性别…

创建vue3工程

一、新建工程目录E:\vue\projectCode\npm-demo用Visual Studio Code 打开目录 二、点击新建文件夹按钮&#xff0c;新建vue3-01-core文件夹 三、右键vue3-01-core文件夹点击在集成终端中打开 四、初始化项目&#xff0c;输入npm init 一直敲回车直到创建成功如下图 npm init 五…

Spring5应用之Cglib动态代理

作者简介&#xff1a;☕️大家好&#xff0c;我是Aomsir&#xff0c;一个爱折腾的开发者&#xff01; 个人主页&#xff1a;Aomsir_Spring5应用专栏,Netty应用专栏,RPC应用专栏-CSDN博客 当前专栏&#xff1a;Spring5应用专栏_Aomsir的博客-CSDN博客 文章目录 前言Cglib动态代理…