更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群
 
近日,火山引擎数智平台VeDI与DataFun联合举办以“OLAP计算引擎”为主题的直播活动,来自火山引擎数智平台VeDI的产品专家从技术选型、能力分析、性能优化以及应用场景落地多个角度,介绍火山引擎ByteHouse如何基于ClickHouse实现实时计算能力升级。
 
据介绍,火山引擎ByteHouse来源于字节跳动多年内部沉淀。由于场景越来越丰富以及数据分析需求增长,业务对于实时数仓的要求也越来越高。首先是数据体量大以及不断增长的问题。早在2019 年,字节内部每天新增的数据量就达到了100TB。其次,在海量数据基础上,由于数据类型多样(包括批式数据和流式数据)、查询需求多样、交互式分析复杂,数据引擎需要具备灵活性。目前,行业Redis、 SparkSQL 等开源方案可以从不同角度满足上述两个需求,但是维护多个开源数据库将导致成本高,选择一款可以避免成本无限扩展的计算引擎成为字节数据研发首要考虑的问题。
 
ClickHouse性能高、灵活性强,且主要依赖磁盘、成本相对可控,成为字节跳动内部计算引擎的首选。但原生 ClickHouse 能力难以支持 upset 、实时数据更新等一些场景,在很多层面有局限性,例如:
  • 单表性能强劲,但多表能力局限,且对标准 SQL 兼容性低。
  • 缺乏成熟运维管理工具,运维复杂程度高。
  • ClickHouse 为 MPP 架构(存算一体架构),性能强,但横向扩容成本非常高、数据隔离性差。
 
ByteHouse产品专家在直播中介绍到,“为了解决以上问题,我们主要从4个方向进行优化,让OLAP引擎能力、性能、运维、架构进一步升级。”
 
第一,丰富的自研表引擎,实现OLAP引擎能力进化。 ByteHouse 弥补了ClickHouse表引擎的不足,并衍生出全新的表引擎,包括使高可用表引擎、实时数据引擎、Unique 引擎、Bitmap 引擎。以Unique 引擎为例,它解决了社区版 ReplacingMergeTree 实时更新延迟问题,真正做到实时 upset。
 
第二,新增优化器、字典、索引支持能力,实现OLAP引擎性能进化。ClickHouse在多表场景中性能存在缺陷,而ByteHouse 通过自研CBO 和 RBO(基于代价和基于规则的优化器),支持了多层嵌套的下推、Join 子查询的下推、Join-Reorder、Bucket Join、Runtime Filter 等优化器特性,做到 TPC-DS 的性能可以达到 99 条sql100%覆盖,极大提升多表场景下的性能。另外,ByteHouse还支持了全局字典以及更多索引,如 Bitmap index,让查询效率更快。
 
第三, 自动化、可视化,实现OLAP引擎运维进化。ByteHouse 提供标准化运维、集群健康度检测、问题发生时的诊断工具,帮助运维人员提高效率。例如,集群健康度的检测工具,类似于集群的实时巡检,能够报告当前集群状态、出现了什么问题、问题如何解决,最大程度把问题前置化,降低运维风险。从效果上看, 18000 个节点只需要不到 10 个运维人员来支持。
 
第四, 存算分离,实现OLAP引擎架构进化。ByteHouse推出了 MPP 2. 0 即存算分离架构。一方面, 存算分离可以更好实现资源隔离,每一个计算任务都会提交到不同的计算资源中,做到用户之间互不影响,还能灵活扩容、缩容存储计算资源;另一方面,存算分离能做到真正云原生(Cloud native),ByteHouse 存储层既支持 HDFS,也支持 S3 对象或者其他的对象存储,实现云原生部署。
 
目前,ByteHouse已经在行为分析、精准营销、实时监控等业务场景中落地。以实时监控为例,很多互联网APP有线上运营活动、直播电商等业务,数据实时性格外重要。数据从生产到展现在大屏上,延迟往往要控制在分钟级甚至秒级以内。而ByteHouse高吞吐性能、查询性能,使数据从输入端到输出端的流程达到秒级。在数据保障层面,ByteHouse 也能精细到Exactly Once 的语义,保证数据不丢失、不重复,最终达到数据是高效存储、准确查询。
 

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

让快更快,火山引擎 ByteHouse 为 ClickHouse 提速的更多相关文章

  1. 高性能、快响应!火山引擎 ByteHouse 物化视图功能及入门介绍

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 物化视图是指将视图的计算结果存储在数据库中的一种技术.当用户执行查询时,数据库会直接从已经预计算好的结果中获取数据 ...

  2. 比快更快——微软LightGBM

    LightGBM介绍 xgboost是一种优秀的boosting框架,但是在使用过程中,其训练耗时过长,内存占用比较大.微软在2016年推出了另外一种boosting框架--lightgbm,在不降低 ...

  3. 如何又快又好实现 Catalog 系统搜索能力?火山引擎 DataLeap 这样做

      摘要 DataLeap 是火山引擎数智平台 VeDI 旗下的大数据研发治理套件产品,帮助用户快速完成数据集成.开发.运维.治理.资产.安全等全套数据中台建设,降低工作成本和数据维护成本.挖掘数据价 ...

  4. CSS 和 JS 动画哪个更快

    基于Javascript的动画暗中同CSS过渡效果一样,甚至更加快,这怎么可能呢?而Adobe和Google持续发布的富媒体移动网站的性能可媲美本地应用,这又怎么可能呢? 本文逐一遍览了基于Javas ...

  5. CSS VS JS动画,哪个更快[译]

    英文原文:https://davidwalsh.name/css-js-animation 原作者Julian Shapiro是Velocity.js的作者,Velocity.js是一个高效易用的js ...

  6. 比Redis更快:Berkeley DB面面观

    比Redis更快:Berkeley DB面面观 Redis很火,最近大家用的多.从两年前开始,Memcached转向Redis逐渐成为潮流:而Berkeley DB可能很多朋友还很陌生,首先,我们简单 ...

  7. 让你的 Node.js 应用跑得更快的 10 个技巧(转)

    Node.js 受益于它的事件驱动和异步的特征,已经很快了.但是,在现代网络中只是快是不行的.如果你打算用 Node.js 开发你的下一个Web 应用的话,那么你就应该无所不用其极,让你的应用更快,异 ...

  8. 让Python代码更快运行的 5 种方法

    不论什么语言,我们都需要注意性能优化问题,提高执行效率.选择了脚本语言就要忍受其速度,这句话在某种程度上说明了Python作为脚本语言的不足之处,那就是执行效率和性能不够亮.尽管Python从未如C和 ...

  9. 正则表达式匹配可以更快更简单 (but is slow in Java, Perl, PHP, Python, Ruby, ...)

    source: https://swtch.com/~rsc/regexp/regexp1.html translated by trav, travmymail@gmail.com 引言 下图是两种 ...

  10. 更轻更快的Vue.js 2.0与其他框架对比(转)

    更轻更快的Vue.js 2.0 崭露头角的JavaScript框架Vue.js 2.0版本已经发布,在狂热的JavaScript世界里带来了让人耳目一新的变化. Vue创建者尤雨溪称,Vue 2.0  ...

随机推荐

  1. js 加密、解密算法类库

    有些功能需要前端进行加密解密,就会用到这些库 crypto-js 是一个纯 javascript 写的加密算法类库 ,可以非常方便地在 javascript 进行 MD5.SHA1.SHA2.SHA3 ...

  2. Mybatis-plus 生成代码

    引入依赖 <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-g ...

  3. C#/.NET/.NET Core优秀项目和框架2023年10月简报

    前言 公众号每月定期推广和分享的C#/.NET/.NET Core优秀项目和框架(公众号每周至少推荐两个优秀的项目和框架当然节假日除外),公众号推文有项目和框架的介绍.功能特点以及部分截图等(打不开或 ...

  4. JUC并发编程学习笔记(七)常用的辅助类

    常用的辅助类 CountDownLatch 这是一个JUC计数器辅助类,计数器有加有减,这是减. 使用方法 package org.example.demo; import java.util.con ...

  5. 线上SQL超时场景分析-MySQL超时之间隙锁

    前言 之前遇到过一个由MySQL间隙锁引发线上sql执行超时的场景,记录一下. 背景说明 分布式事务消息表:业务上使用消息表的方式,依赖本地事务,实现了一套分布式事务方案 消息表名:mq_messag ...

  6. 企业微信获取code

    String url="https://open.weixin.qq.com/connect/oauth2/authorize?appid="+AuthUtil.APPID   + ...

  7. 基于FFmpeg和Qt实现简易视频播放器

    VideoPlay001 记得一键三连哦 使用qt+ffmpeg开发简单的视频播放器,无声音 视频解码使用的是软解码即只用CPU进行QPainter绘制每一帧图像,CPU占用过高 简单易学,适合小白入 ...

  8. mysql alter与update的区别

    alter是更改表名,字段的 而updata是更改数据的,一定要记住要联合where使用,否则就会全部更改. updata与set联用 alter与change column和add联用

  9. [ARC137E] Baker

    Problem Statement Snuke runs a bakery. He is planning for the next $N$ days. Let us call these days ...

  10. [ABC284G] Only Once

    Problem Statement For a sequence of length $N$, $A = (A_1,A_2,\dots,A_N)$, consisting of integers be ...