3个企业级最佳实践,教你ByteHouse云数仓这么用

随着各业务场景各行业数字化转型加快,数据量呈爆炸式增长。在拥有庞大数据的同时,业务也在分析、查询与响应层面,对数据库系统性能提出了更高要求。云原生技术推动了分布式数据库系统的迭代升级,对云数仓技术而言,“写入能力、高性能查询、高并发、架构精简、成本控制”的一系列挑战,是其在发展中亟待解决的难题。

作为火山引擎数智平台 VeDI 旗下的新一代云原生数仓产品,ByteHouse能够支撑实时数据分析和海量数据离线分析,具备便捷的弹性扩缩容能力,极致分析性能和丰富的企业级特性。以 ClickHouse 技术路线为基础,从2017年内部立项开始,截止到2022年3月,ByteHouse 节点总数已经达到了18,000,最大的行为分析集群超过了2,400个节点,数据量超过700PB。

本文聚焦 ByteHouse 在实时数仓、企业级中台OLAP 以及广告投放三个领域最佳实践,拆解高并发点查、OLAP 引擎技术、以及圈选投放等能力在实际业务场景中的实现逻辑和效果,分享新一代云数仓的三大最佳实践。

实时数仓

在移动互联网庞大用户群体和高频访问需求的背景下,业务场景对数据处理的即时性和准确性提出了更高要求。与离线数仓不同,实时数仓以秒级延迟的数据生产为目标,从而能够更快地为商业决策、市场分析、用户行为研究等场景提供数据依据。

在目前的数据生产领域,构建实时数仓已成趋势,“如何让自己在数据洞察方面更具优势”成为倍受关注的焦点。性能是实时数仓领域的首要目标,核心性能需求则包括:高吞吐 TPS、低延时反馈响应、高并发以及实时流多维计算。

实时数仓核心需求

实时计算

实时数仓领域的关键诉求之一是实时计算。目前,实时计算有仓外、仓内计算这两个技术实现流派。

  • 仓外计算

仓外计算是基于 Flink 或者Serverless Flink构建,ByteHouse 能够对此提供支持。我们自研的 BH Connector for Flink 通过攒批写的方式,可以很好地消费 Flink 投送的每秒百万级数据量,并进行去重入库。此外,表的拼接、属性补齐等带实施规则的操作,可以通过 Flink 的 LookupJoin 实现。

  • 仓内计算

仓内计算主要基于 ByteHouse物化视图能力来构建,减轻数据链路上或数据管道上的计算压力。ByteHouse的优势在于计算能力,直接基于全维度数据进行实时计算,从而能够使整个数据链路变得更加轻量化。

我们的物化视图支持单表和多表物化;同步和异步刷新。在新的业务场景中,如果有实时计算层面的需求,大家可以尝试使用 ByteHouse 的物化视图方式,将一些复杂的流计算或拼接计算放入仓内,从而使整个数据架构链路更加轻量化。

以某娱乐公司的实时 BI 场景为例,通过 CDC 技术栈,ByteHouse 能够轻松同步每天 15 亿的数据,TPS 峰值达到 6 万以上。而在某款畅销游戏的数据中台构建场景中,ByteHouse 能够通过其自研的 BH Connector for Flink 所具备的写入能力,将每秒 260 万 TPS 的日志数据以 upsert方式落盘。

高并发点查

基于 ByteHouse QueryCache 功能可以很好支撑高性能、高并发的点查和复杂查询业务场景。ByteHouse 的增强型优化器参数则可以减少点查场景中生成执行计划的时间消耗,再叠加查询模板等技术能够轻松将点查提升到几十万甚至百万级的层面。ByteHouse不仅具备性能优势,还能在同等业务场景情况下实现更低的资源消耗,缓解成本压力,并有效保障系统稳定性。

目前,ByteHouse 的高并发点查能力已在游戏场景中顺利落地。以某游戏广告推荐系统为例,该系统需要快速响应大规模用户的同时搜索操作,并通过查询用户属性表、游戏属性表和广告属性表等信息,匹配并推荐用户可能感兴趣的游戏。该游戏公司日常 QPS 达到万级规模,而在高峰期,QPS 指标会随之增长数倍。这就导致该系统面临着不稳定和故障解决响应速度较慢的问题。

ByteHouse 则为这一问题提供了解决方案,在游戏推荐场景中,ByteHouse 很好地支持了 20 万 QPS 的点查场景,且时延达到 10 毫秒以内。在包括点查和复杂查询的混合查询型广告推荐场景中,面对高达 3 万的QPS,ByteHouse 也能够将时延压缩到 5 毫秒内,性能表现优异。

不止游戏领域,ByteHouse 的高并发点查能力也在舆情监测以及电商等场景中落地。仟传网络,是国内知名的内容社交平台整合营销企业,其旗下的舆情监测平台面临着数据实时性方面的挑战。舆情监控对数据实时性要求很高,但在该平台的原有技术方案中,提供舆情相似度检索能力的自建Elasticsearch并无法在性能与成本上完全满足需求。

在性能上,业务要求系统支持数万QPS的实时检索;在成本上,随着数据量不断增大,机器资源成本将愈加不可控。此外,数据写入和查询流程较为复杂,导致应用开发成本高。面对该企业的高并发点查难题,ByteHouse 采用多副本机制,将全量数据写入主节点,实时自动同步至多个副本,并通过网关查询实现自动负载均衡、一写多读,从而线性提高并发能力。

ByteHouse还支持通过SQL写入、查询来完成业务逻辑,简化数据处理流程,提升开发效率。此外在资源效率上,ByteHouse采用灵活的资源模型,可支持任意节点数量和副本数量变配。用户初始只需购买最小资源,后期则可随业务增长即时扩容,从而使成本更加可控。

数据集成

在数据集成层面,ByteHouse 可以无缝对接主流开源产品,支持 Kafka 流、MySQL、CDC 等数据的实时同步接入,保证数据的精准一次(exact once)传输,并实时分析流入的数据,适用于实时点击流分析、实时监控等场景。通过创建并执行数据集成任务,ByteHouse 能够处理每天百亿到千亿的事件量。同时,ByteHouse 在性能方面也进行了优化提升,满足用户在各个场景中性能方面诉求。

企业级 OLAP 中台


在数据平台的建设中,已有不少企业引入 OLAP 引擎,OLAP 引擎能处理大规模的数据集,并快速提供多维度的数据分析的结果,从而使营销活动数据的实时查询效率,并进一步优化精准投放表现。

在 OLAP 中台或数仓建设方面,业界目前主要有高性能、资源隔离、无损弹性、架构简洁轻快以及成本最优的五点核心诉求。而作为基于开源 ClickHouse 而构建的OLAP引擎,ByteHouse 期望通过企业级数据中台技术,以一元化架构对多元化场景的业务需求提供充分支持。

企业级OLAP中台核心需求

资源隔离

ByteHouse 通过计算组的方式来实现资源隔离,不同应用可以构建不同计算组,不同计算组之间可以做到物理级资源隔离,以此确保计算组之间的资源不会被占用。

  • 读写分离

“读写分离” 适用于读写繁忙的业务系统,ByteHouse 会为其指定一个专属计算组,用于写入操作。这样一来,数据库中的所有写入操作都会自动被投放到此写入计算组中,进行后台 merge 操作。由于 ByteHouse 的架构是 HaMergeTree,如果 merge 操作过于频繁,就会直接影响到读应用的资源保障。因此对于读类型的业务,需要使用指定的专属资源组来负责查询。

  • 应用隔离

在应用隔离层面,ByteHouse 为不同应用设定专属的计算组,并根据具体算力需求来构建尺寸,目前支持从 S 到 (n)XL 的各种规格。

无损弹性实现最优成本

弹性是 ByteHouse 的核心特性之一,ByteHouse 的秒级弹性扩缩能力让企业更加专注业务,不同企业能根据业务属性来定制弹性计划。目前可实现的是自定义设定时间触发型弹性计划,明年上半年将实现基于工作负载的智能感知型计划。

在弹性机制下, ByteHouse 可以实现按需计费、自动启停和自动弹性伸缩等策略,且在暂停期间不收取任何计算层费用,从而进一步帮助企业降低资源成本。

在某广告营销公司的落地实践中,ByteHouse 针对负载趋于稳态运行的应用,计算组会设定为包月模式,使得整体费用更加优惠。而对于负载具有明显波峰、波谷特征的应用,则会把计算组设定为按需模式,“自动启停”功能会在后台自动检测计算组的负载情况。如果处于负载较少且持续超过 5 分钟的低峰期,系统将自动暂停,从而最大限度地节省开支和费用,为企业带来最优成本的解决方案。

广告推荐投放


近年来,短剧日渐流行,成为广告营销公司服务的热门场景之一。大家在看短剧时,是否会想“为什么平台会给我推送这些短剧”。实际上,这个问题的答案或多或少与 OLAP 的功能有关。移动互联网的流量红利不断消退,精细化营销模式随之跃迁为主流。从数以亿计的人群中,优选出最具潜力的目标受众,是精细营销的题中之义,也是作为基础引擎的数据仓库能力所面临的挑战。

在渐趋庞大的数据体量下,广告营销公司的数据分析能力逐渐难以跟上业务诉求,一方面,投放策略的实时调整要求数据分析和更新时效性在3s内,且并发QPS达到2000。另一方面,在营销场景中,海量数据的实时更新会导致大量数据碎片的产生,这些碎片既会拉低查询性能,还会导致存储空间的浪费。

基于上述问题,广告营销公司开始引入 OLAP 引擎技术作为解决方案。作为基于开源 ClickHouse 而构建的 OLAP 引擎,ByteHouse 具有极致分析体验、弹性扩缩容等特性,从而能够提供有效解法。ByteHouse 联合连山云、巨量引擎,搭建了一套 ”一键实时同步、极简架构、低门槛技术” 的短剧行业通用解决方案,从而实现端到端地赋能短剧行业,提升广告数据处理效率与投放ROI。

ByteHouse基于连山云搭建的短剧行业通用解决方案

数据实时同步

在数据同步方面,ByteHouse 采用高性能的数据同步机制,通过 DataSail、ServerlessFlink 等将实时数据同步到 ByteHouse 中,数据入仓延迟小于1秒,极大提高数据的时效性。此外,还采用独立计算资源解决写入瓶颈,底层分布式存储(CFS)解决扩展性和成本问题。

在广告投放实时同步方面,ByteHouse 可以通过连山云 RDS 数据推送,将数据获取时效性提升到3分钟以内,极大程度地提升了广告投放效率,也使对账能力与数据准确性得到提升,减少冗余信息。

投放分析中台

高性能

查询索引优化和读写资源分离是 ByteHouse 在广告投放场景中用以提升查询效率的两大核心手段。通过多级索引,如排序键索引、分区键优化、跳跃索引等,ByteHouse 能够有效减少广告营销查询时扫描的数据量。即使在每天千万查询量的情况下,数据返回时效也能保障在秒级,较之前实现了5倍提升。

如前文所述,在庞大人群中优选出最具潜力的消费人群的“人群圈选” 能力是实现精细化营销的题中之义。以广告投放场景中的人群圈选为例,分析师通常会采用各种标签组合来选出合适人群,但人群查询在不同标签组合下会产生不同大小的结果集。因此,分析师往往需要经过多次逻辑调整,才能在一次广告投放中获得"最好"的人群包。这就带来了数据预估误差大、性能无法满足实时需求、存储空间增大所导致的成本问题。

作为ByteHouse定制的高效集合数据处理模型,BitEngine 能够通过解决集合的交并补计算,在实时分析场景中实现性能提升,有效解决痛点。BitEngine 提供的 BitMap64 类型适合表达具有特定关系的大量实体ID集合,将集合的交并补运算转化为bitmap之间的交并补运算,从而达到远超普通查询的性能指标,有效圈选出 “人群包A” 和 “人群包B” 的交集人群,完成广告精准投放。从数据表现上看,在10亿级用户测试数据下,ByteHouse的人群查询P99小于10s,呈现出优异性能。

高并发

ByteHouse 高并发点查具备响应快,性能强大的特点。同等资源规格配置和同等数据规模量级情况下,响应时间达毫秒级,ByteHouse并发性能指标优于开源OLAP产品 2-5 倍以上,256核可达到8万QPS。不仅仅具备性能优势,在同等业务场景情况下,ByteHouse能做到资源消耗更低,并有效保障系统稳定性,缓解成本压力。ByteHouse 高并发点查能力不仅具备高性能、响应快的特点,还可以帮助企业节约资源,助力数据基础建设过程中的成本优化和效率提升,夯实企业的数据底座。

应用无缝集成

ByteHouse 为域内的许多上层套件提供支持,将许多高频的场景分析函数(转化分析、路径分析、漏斗分析)进行了内置化,使用户可以开箱即用。另外,ByteHouse 支持上层营销套件高效赋能实时人群;对广告投放前人群、投放中广告计划策略进行优化;对投放后效果进行洞察与根因分析,形成数据闭环,使广告投放的 ROI能够提升至少2倍。

敏捷开发

此外,在敏捷开发能力上,ByteHouse的 BSP 模式支持在数仓内部进行 ELT 数仓分层开发,通过 Dataleap 实现可视化开发与调度,有效降低业务使用门槛。

在实际外部应用中, ByteHouse目前也已经与中国地震台网中心、海王集团、莉莉丝游戏、极客邦科技等诸多行业企业达成合作,深度助力各个行业数字化转型。

上述最佳实践也表明,ByteHouse 作为一种数仓新范式,具备支撑实时数据分析和海量数据离线分析的能力、便捷弹性扩缩容能力、极致分析性能以及丰富的企业级特性,将在未来赋能更多业务系统。

点击跳转火山引擎ByteHouse了解更多

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

猫头虎博主全栈前沿AI技术领域矩阵社群

猫头虎博主全栈前沿AI技术领域矩阵社群 👋大家好,我是猫头虎!今天我要向大家介绍一个非常重要的社群矩阵——专为全栈前沿AI技术领域的朋友们打造的各种技术交流和资源互助的社群。这些社群不仅能帮助大家快速提升技术水平,还能拓…

科普文:一文搞懂jvm实战(二)Cleaner回收jvm资源

概叙 在JDK9中新增了Cleaner类,该类的作用是用于替代finalize方法,更有效地释放资源并避免内存泄漏。 在JEP260提案中,封装了大部分Sun包内部的API之余,还引入了一些新的API,其中就包含着Cleaner这个工具类。Cleaner承…

Golang | Leetcode Golang题解之第204题计数质数

题目&#xff1a; 题解&#xff1a; func countPrimes(n int) int {primes : []int{}isPrime : make([]bool, n)for i : range isPrime {isPrime[i] true}for i : 2; i < n; i {if isPrime[i] {primes append(primes, i)}for _, p : range primes {if i*p > n {break}…

排序算法(1)之插入排序----直接插入排序和希尔排序

个人主页&#xff1a;C忠实粉丝 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 C忠实粉丝 原创 排序之插入排序----直接插入排序和希尔排序(1) 收录于专栏【数据结构初阶】 本专栏旨在分享学习数据结构学习的一点学习笔记&#xff0c;欢迎大家在评论区交流讨…

密码学基础之ASN.1编码

简介 ASN.1(Abstract Syntax Notation One)&#xff0c;抽象语法标记。ASN.1是一种国际标准的正式语言&#xff0c;由国际标准化组织&#xff08;ISO&#xff09;和国际电信联盟&#xff08;ITU-T&#xff09;共同制定&#xff0c;用于定义数据结构的抽象语法。它的设计目标是…

双端队列广搜——AcWing 175. 电路维修

双端队列广搜 定义 双端队列广搜&#xff08;Breadth-First Search with a Deque&#xff09;是一种图或树的遍历算法变体&#xff0c;它利用了双端队列&#xff08;Deque&#xff0c;全称Double Ended Queue&#xff0c;允许在其两端进行插入和删除操作&#xff09;作为数据…

docker-compose搭建minio对象存储服务器

docker-compose搭建minio对象存储服务器 最近想使用oss对象存储进行用户图片上传的管理&#xff0c;了解了一下例如aliyun或者腾讯云的oss对象存储服务&#xff0c;但是呢涉及到对象存储以及经费有限的缘故&#xff0c;决定自己手动搭建一个oss对象存储服务器&#xff1b; 首先…

基于YOLOv10的车辆统计跟踪与车速计算应用

文章目录 1、前言2、安装运行环境3、下载v10s模型4、代码实现5、代码详读5.1、导入必要的库5.2、识别车辆5.3、读取视频文件5.4、创建视频写入器5.5、车速计算5.6、统计车辆5.7、应用跟踪5.8、视频处理 6、目标检测系列文章 1、前言 在智能交通系统&#xff08;ITS&#xff09…

FastApi中的常见请求类型

FastApi中的常见请求类型 后端开发语言中&#xff0c;我钟情于node&#xff0c;高效的异步处理真是让我眼前一亮&#xff0c;同时&#xff0c;简单易懂的语法也让我非常倾心 但是但是&#xff0c;因为考虑要写一个深度学习算法的后端接口&#xff0c;所以不得不选用python作为…

【源码+文档+调试讲解】基于vue的线上点餐系统

摘要 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍了线上点餐系统的开发全过程。通过分析线上点餐系统管理的不足&#xff0c;创建了一个计算机管理线上点餐系统的方案。文章介绍了线上点餐系统的系统分析部分&…

产品经理-对产品经理的认识(1)

今天跟大家聊一下产品经理这个岗位的,产品经理是互联网岗位当中比较火的一个岗位,也是最接近CEO的岗位 产品经理岗位&#xff0c;技术门槛低&#xff0c;薪水和前景都很不错&#xff0c;又处于团队的核心位置 产品经理岗位没有完全相关的专业设置和清晰的学习路径&#xff0c;绝…

信号“地”的分类

无论是在模拟电路中还是在数字电路中都存在着个种各样的“地”。信号“地”又称参考“地”&#xff0c;就是零电位的参考点&#xff0c;也是构成电路信号回路的公共段&#xff0c;图形符号“⊥”。 (1) 数字地DGND&#xff1a;也叫逻辑地&#xff0c;是数字电路中各种开关量&a…

7.1.SQL注入-基于函数报错的方式来利用updatexml()

基于函数报错的方式来进行利用-字符型&#xff08;本页updatexml()&#xff09; 前提条件是后台数据库没有屏蔽数据库语法报错信息 updatexml()方法详解 注释&#xff1a; 第一个参数&#xff0c;意思就是xml文档的名称 第二个参数&#xff0c;意思就是定位到xml文档中指定…

C++专业面试真题(1)学习

常用Linux命令 ls&#xff1a;列出当前目录内容 ls -l&#xff1a;详细信息列表 ls -a&#xff1a;包括隐藏文件 cd&#xff1a;更改目录 pwd&#xff1a;显示当前目录路径 mkdir&#xff1a;创建新目录 rmdir&#xff1a;删除空目录 rm&#xff1a;删除文件或目录 rm -…

vision mamba-yolov8:结合Vmamba的yolov8目标检测改进实现

1.vision mamba结构与原理 Mamba成功的关键在于S6模型&#xff0c;该模型为NLP任务设计&#xff0c;通过选择性扫描空间状态序列模型&#xff0c;将二次复杂度降低至线性。但由于视觉信号&#xff08;如图像&#xff09;的无序性&#xff0c;Mamba的S6模型不能直接应用&#xf…

qt可点击的QLabel

需求——问题与思路 使用wpf实现一个可点击的超链接label相当简单&#xff08;如下图&#xff09;&#xff0c;但是qt的QLabel不会响应点击事件&#xff0c;那就从QLabel继承一个类&#xff0c;然后在该类中重写mousePressEvent函数&#xff0c;并在该函数中对左键点击事件做响…

【MySQL备份】Percona XtraBackup全量备份实战篇

目录 1. 前言 2.准备工作 2.1.环境信息 2.2.创建备份目录 2.3.配置/etc/my.cnf文件 2.4.授予root用户BACKUP_ADMIN权限 3.全量备份 4.准备备份 5.数据恢复 6.总结 "实战演练&#xff1a;利用Percona XtraBackup执行MySQL全量备份操作详解" 1. 前言 本文…

如何给WPS、Word、PPT等办公三件套添加收费字体---方正仿宋GBK

1.先下载需要的字体。 下载字体的网站比较多&#xff0c;基本上都是免费的。随便在网上搜索一个就可以了&#xff0c;下面是下载的链接。 方正仿宋GBK字体免费下载和在线预览-字体天下 ​www.fonts.net.cn/font-31602268591.html 注意&#xff1a;切记不要商用&#xff0c;以免…

记一次EasyExcel的错误使用导致的频繁FullGC

记一次EasyExcel的错误使用导致的频繁FullGC 一、背景描述二、场景复现三、原因分析四、解决方案五、思考复盘 一、背景描述 繁忙的校招结束了&#xff0c;美好的大学四年也结束了&#xff0c;作者也有10个月没有更新了。拿到心仪的offer之后也开始了苦B的打工生活。 最近接到…

.net 8 集成 MinIO文件存储服务,实现bucket管理,以及文件对象的基本操作

一、准备工作 1、本地部署MinIO服务 2、创建MinIO的Access Key 3、创建.net 项目 4、下载MinIO sdk 5、相关文档 二、编写MinIO工具类 三、管理存储桶 1、MyBucket类 &#xff08;1&#xff09;判断bucket是否存在 &#xff08;2&#xff09;新建bucket &#xff08…