0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

资深开发者眼中的开源云原生数仓 ByConity

话说科技 来源:话说科技 作者:话说科技 2023-06-06 16:38 次阅读

5月22日,字节跳动宣布开源 ByConity 云原生数据仓库,项目地址:https://github.com/ByConity/ByConity。

ByConity 基于 ClickHouse 内核开发,采用计算存储分离的架构、主流的 OLAP 引擎和自研的表引擎,提供便捷的弹性扩缩容和极速的分析性能,覆盖实时分析和海量数据的离线分析,帮助企业更好地挖掘数据价值。

ByConity 于 2022 年计划开源,2023 年 1 月发布 beta 0.1.0 版本,一些关注字节 ClickHouse 使用情况的的开发者在 ByConity 开源初期便进行了一些测试,如华为终端云、唯品会、展心展力、中电云、传音控股等团队。部分团队使用 ByConity 进行了 TPC-DS 测试,也有一些深度试用的团队采用生产数据和具体场景进行了测试。

在此期间,社区收到了很多团队对于 ByConity 性能的积极反馈,当然也有团队遇到了一些部署中的难题和阻碍,并为社区提供了许多非常不错的改进建议。在和社区用户交流的过程中我们发现,不同的团队可能会遇到一些相似的问题,也会基于各自的业务需求设计对应的解决方案。

今年5月 ByConity 正式开源发布 GA 0.1.0 版本,为了帮助更多关注者在早期更好地使用 ByConity,社区邀请了几位参与 ByConity 测试和试用的团队成员与 ByConity 资深研发工程师进行了一次交流,希望将社区的经验分享给遇到同样问题和正在考虑解决方法的团队。

参与此次交流的几位嘉宾为:

Kevin Fang,字节跳动 ByConity 资深研发工程师

赵金涛,华为大数据研发工程师

徐庆岳,中电云数据库内核威廉希尔官方网站 专家

程伟,MetaApp 大数据研发工程师

本文根据此次交流中的部分要点整理而成。

Q1:各位在平时工作中会使用大数据的哪些威廉希尔官方网站 和产品?是什么契机让你们接触到 ByConity?

程伟:我们主要是做了一个 OLAP 日志分析平台,开始选的是 ClickHouse,中间存在一些问题。后来通过字节跳动 ClickHouse 威廉希尔官方网站 沙龙了解到字节对 ClickHouse 进行了优化,输出到 ByConity 中,做了开源 ,我们就开始尝试。

徐:我们是在做定制云计算,自己也有一些数据库产品。在私有云的部分项目中遇到了一些问题,比如说有些产品数据量特别大,每天会有 2 个 PB 的数据进来,查询一般需要是秒级,响应要求也比较高。在产品中,除了查询需求,也有汇入的需求,比如单节点汇入需求要达到差不多 400 兆每秒,查询也要比较快。

按照我们自己目前的方法,汇入需求能达到,但查询的时候,甲方会希望“能不能再快一点?” 。当时我们基于自己开发团队的一些产品感觉有点吃力,就对其他产品做了一些了解,比如 ClickHouse、腾讯云和字节的产品,当然也有一些创业型公司的项目。当时得知 ByConity 开源了,我们想有更多了解,就邀请 ByConity 负责人进行了交流。沟通后发现有些威廉希尔官方网站 方面确实值得借鉴,于是我们做了一些针对性测试,看看某些功能点上是不是可以使用。

赵:我们内部也在广泛使用 ClickHouse,在使用过程中发现它存在一些架构上的短板,比如说扩缩容的成本很高,扩缩容的时候需要刷元数据、停 merge、停 mutate、搬迁数据等代价非常大,集群的资源难以根据负载灵活调整,存在浪费。这个时候看到包括 ClickHouse 公司在内,大数据领域有非常多的产品都在构建云原生能力。

我们认为云原生是大数据的必然趋势。也是这个时候,我们从网上得知字节把在 ClickHouse 领域多年的威廉希尔官方网站 积累贡献出来,开源给社区了。基于这个契机,我们投入到社区里面来,希望借鉴 ByConity 的一些思想,把 ClickHouse 打造成一个高性能的云原生数据库。

Q2:其实咱们碰到的很多的问题都是有共性的,例如在应用 ClickHouse 解决业务问题的时候,遇到扩缩容、性能方面的一些问题。那想问各位老师,大家觉得在解决这些问题的过程中有哪些难点,我们最需要攻克的关键威廉希尔官方网站 点是什么?

程伟:一是在计算方面,希望能够计算得快一些;再就是能够支持更多的数据源;另外是能够支持更庞大的数据量。

徐:通过对 ByConity 威廉希尔官方网站 的了解,它应该是按 Snowflake 论文来走的,包括元数据、数据的存算分离以及分布式的 MPP。在扩缩容这一块,S3 或者 HDFS 确实是一个很高的提高。但是在计算方面,未来怎么能够感知每个查询所需的计算资源多少?比如一个查询需要一台机器,下一个查询可能需要 100 台机器,从计算方面如何弹性?这可能也是云计算本身存在的最大的一个理由,就是能够感知什么时候把计算资源根据租户来分配,或者根据不同的查询来分配。如果是根据租户,比如根据每个租户的节点拓扑走不同的查询,ByConity 应该是这种路线实现的。但是如果能够更智能地感知当前的查询需要多少个计算资源,那就更好了。

赵:我认为在大数据多维分析领域有两点是需要平衡的,第一是性能,第二是灵活性,极高的性能必然会损失灵活性。比如像 ClickHouse,它的各节点是完全对等的,元数据和数据都分片保存在节点上,这种 ShareNothing 的架构结合 ClickHouse 强大的 MPP 计算能力和极致的细节优化使得 ClickHouse 性能非常快。如果我们想在保证 ClickHouse 性能的基础上,具备更高的灵活性,让它灵活扩缩容,这种诉求和 ClickHouse 原生架构存在冲突。所以基于 ClickHouse 的原生架构去发展很难实现类似弹性伸缩这样的灵活性。

那我们就需要对 ClickHouse 架构改造升级,需要在比较高的灵活性下,仍然能保证性能。在这个过程中,就存在威廉希尔官方网站 挑战,比如需要将数据和节点的绑定解耦,需要实现节点的彻底无状态,元数据要从本地磁盘抽到统一的元数据中心,数据要从本地磁盘推到 HDFS 或者是 S3 等的这些对象存储上。对于大数据分析引擎来讲,这种架构升级涉及的细节非常多,牵一发而动全身,威廉希尔官方网站 挑战也很大。而这种改造必然会带来性能的降低。这时我们要采取其他的一些威廉希尔官方网站 手段,比如缓存等,来提升性能。

Q3:在了解项目之后是如何上手的?是否遇到了一些障碍?体验如何?

程伟:我们最初使用 ByConity,是基于社区提供的 TPC-DS 测试项目来上手的。社区有一个比较详细的教程介绍如何通过 Docker 来部署 ByConity。把 ByConity 部署以后,跑了 TPC-DS 数据。在教程中会涉及到一些不清楚的点,加上我们想修改一些配置,由于对这些配置的了解情况并不是很多,所以就没有达到需要的效果。目前经过跟社区进行沟通,已经解决了这些问题。我们现在已经将 ByConity 部署在 K8s 上,并且基于 ByConity 提供了日志分析服务。

我们团队对 ByConity 社区一个最大印象就是沟通的成本非常低,非常有效果,我们遇到一个问题的时候,在社区提出,很快就有社区的相关同学,以及社区中的一些其他爱好者来协助我们解决这些问题。

徐:我们团队也在 Docker 上对 ByConity 进行了部署和测试,主要是看对 SQL 兼容性。但由于项目原因我们更关注 ByConity 写入和读取的速度,更多关注威廉希尔官方网站 细节,比如说跟 HDFS 打交道的时候做的一些优化细节,我们会从源码级角度去看。和社区接触的过程中,团队的响应很快。在测试中我们也给社区找出了一个 bug。

在使用中感觉 ByConity 的性能提升很多,比如查询性能。如果说把单个 libHDFS 上拿出来做对比的话,跟 ClickHouse 社区比可以达到百分之四五十的性能提升。后续我们还会再测一测优化函数性能提升如何。

赵:ByConity 开源以后,我们首先跑了雏形,然后分析了 ByConity 的源码和基于 ClickHouse 的一些改进点。在此过程中,发现 ByConity 是想构建一个比较完善的云原生的数据库,对 ClickHouse 的各种功能角色解耦非常彻底。

我们也和社区一起共建,比如 MergeTree 支持对象存储,Hive 外表支持对象存储,Hive 外表的功能完善等等。在过程此中我们多次和社区一起讨论,一起把能力打磨成熟。近期我们在使用的时候发现某些场景下相比 ClickHouse 性能大幅劣化,也正在和社区一起去分析瓶颈,提升性能。

Q4:后续团队希望将 ByConity 用于什么业务场景,有什么短期和长期的规划?

程伟:现阶段我们主要将 ByConity 用在日志分析平台的搭建。我们使用了 ByConity 的一个 Map 类型来将日志保存起来。一般来说大家都会采用固定的一些字段来做。但我们用了 Map,是因为我们日志中不确定的字段太多,所以我们根据名字和类型,通过创建 3 个 Map 来将我们的日志保存起来。这样日志查询的时候只需要拿到日志的 schema,就可以根据 schema 对应的类型来拿到对应的日志。现在我们每天会打入几百万条数日志数据,目前表现还是非常不错的。

另外我们有一个 OLAP 的数据分析平台,会有 A/B 测试,数据指标分析等功能,现阶段是基于 ClickHouse 来做的,未来我们可能会用 ByConity 来进行尝试,替代 ClickHouse 来把这一部分的业务给推起来。

徐:云计算公司,像大家都知道的比如火山引擎、华为云都有自研的产品,但不可能每个产品都自研,也会使用开源项目。 ByConity 跟社区版的 ClickHouse 架构差异比较大,也会在某些场景下符合我们的一些需求,在选型的时候就会考虑使用 ByConity。同时我们也会考虑 ByConity 的团队怎么样,以及社区的活跃度。 社区如果不能继续推进的话,对于后续一些功能的使用就会有影响。

未来我们也会和社区和团队做交流,看我们有哪些合适的使用场景,有哪些威廉希尔官方网站 点是双方可以一起来提升的,以及哪些是可以回馈社区的。因为大家都是威廉希尔官方网站 爱好者,希望能够相互成就。

赵:我们的首版本还在构建中,会用于多维分析场景。首先会借鉴 ByConity 构建一个比较完善的云原生的数据库,实现资源弹性伸缩。我们还会借鉴 ByConity 的架构,构建湖仓一体的能力,不仅仅能够用于分析场景,还能用于数仓的场景,比如说可以分析 Hive 外表、Iceberg、Hudi 等等。

首先我们会聚焦第一个场景,会和社区一起解决一些迫在眉睫的问题。比如查询性能,ByConity 热读的性能比较理想,但冷读的查询性能还有比较大的提升空间。所以这段时间我们会把精力放在提升 ByConity 的冷读性能上,我们正在分析冷读的情景,想方法让 ByConity 能够持平或者至少接近 ClickHouse 的原生版本。

我们还发现某些异常场景下偶现数据丢失等现象,我们会着重提升可靠性,确保运行稳定可靠。

性能和可靠性提升后我们会借鉴 ByConity 资源隔离以及云原生的能力,来构建一个比较完善的云原生数据库,能够实现集群的弹性伸缩,集群能够根据查询量的大小动态的去分配资源等等,这些是我们未来的目标。

Q5:对 ByConity 威廉希尔官方网站 路线的看法和诉求

程伟:我们对 ByConity 目前的功能,包括未来想要做的云原生数仓的愿景,都非常看好。之后是否能够支持 ClickHouse 相关的一些数据迁移工作,或者说能够给出一些迁移 ClickHouse 的帮助?这样的话能够让 ByConity 可以更好地去应用起来。

再就是 ByConity 未来是否可以变成一个更通用的分布式计算引擎,可以对更多的数据源进行一些计算。

徐:这个问题还是比较大的,我觉得每个产品都有自己的场景,对于使用方来说可能主要是看产品的成熟度,如果做得好,甚至可以培养用户的习惯。不同的数据库产品大多使用方法不同,可能使用的 SQL 语句都不同,如果对产品不熟悉,更换产品的对于大多数人来说上手都比较困难。如果 ByConity 成熟之后,在很多场景下,性能和灵活性都兼具了,用户多了,也就慢慢培养了用户的习惯。

数据库的威廉希尔官方网站 路线,我想做数据库的应该都知道,比如存算分离、读写分离等,但是如何把一个产品做成功,可能跟产品未来的发展、社区的发展相关。比如多云部署是否支持等。

赵:ByConity 的 GA 版本已发布,我认为接下来首先要把 ByConity 的能力继续完善,补齐功能,增强冷读性能,提升可靠性,构建一个比较完善的云原生数据库。第二点是把 ByConity 强大的性能拓宽到其他领域,比如说能够把它用到数仓领域,在一定程度上或者在某些场景下能够替代 Spark,能够加速模型层的计算。

Q6:在社区建设方面大家有什么看法

程伟:作为资深用户,对社区的最大的诉求,一是能够有更详细的文档帮助用户快速上手,以及一些比较详细的配置文档,能够让我们对 ByConity 的一些参数进行调整,达到一个更好的状态。再就是与社区沟通中快速反馈的方式。另外就是社区进度的同步,是否有定期的活动。

Kevin:文档化建设是社区非常重要的一部分,后面会有两种类型的文档,一种是给用户看的,比如用户手册,另外一个是面向开发者,会有更多的威廉希尔官方网站 细节。大家在看文档中遇到一些问题也欢迎随时提出。

关于问题反馈,我们最推荐的还是 GitHub 的 issue,大家都能看到,也能帮助遇到相同问题的人。

定期活动我们肯定是有的,比如我们每月都会举办的 webinar,就会有一个专题去讲这些内容。前面讲了 ByConity 的一些威廉希尔官方网站 架构的点,后面会分享一些计划要做的内容。

徐:之后希望看到 ByConity 威廉希尔官方网站 点和功能迭代更加完善,也希望看到一些好的实现方法。社区共建这块,我觉得可以针对运维同学做一些事情,比如做开设一些课程培训,并进行认证,可以加深对于产品的熟悉程度,也培养了更多的用户。

Kevin:这个角度特别好,目前我们面向的更多是开发人员,随着被用了更多之后,第一手接触的大部分是运维人员。对于这批人我们如何提供更友好的支持,比如教程、上手以及解决问题的通道。后续我们也可以一起商量,通过社区一起来做。

赵:后续可以定期组织一些 meetup,邀请不同企业的开发人员来分享各自的实践。另外还可以组织一些代码解读的活动,解读 ByConity 的架构和关键威廉希尔官方网站 ,比如它的查询优化器、导入、集群管理等等,尤其一些关键流程是如何实现的,这样也能让更多的开发者参与进来繁荣社区。

总结

Kevin:非常欢迎大家参与社区共建,一起形成威廉希尔官方网站 的输出。比如每个团队侧重做的模块不一样,可能对某个模块会有非常深的理解,这些我们是不是可以用文章的形式发布出来,汇总起来,放到社区中,让其他的开发者都能够从中受益。

最后希望大家在平时业务当中总结出来的,包括在自己业务上得到验证的一些经验方法,一方面能够回馈给社区,让有共性的这些业务场景能够去使用;另外一方面也希望业界的各位专家们一起加入 ByConity,把 ByConity 打造得更好。

彩蛋

此次访谈中还有一些精彩的威廉希尔官方网站 沟通未在本文章展开,如:

在 Map 使用过程中的一些建议和处理方式

ByConity 冷读和热度的查询性能差异

数据湖在 ByConity 未来发展中的考虑与应用场景

数据迁移工具的相关讨论

如何使用云原生进行降本增效

Keeper 高可用的探讨

本次访谈完整视频已上传 ByConity B站:开源云原生数仓 ByConity,社区共建让威廉希尔官方网站 走得更远_哔哩哔哩_bilibili

ByConity 是一个开放的社区,欢迎更多对云原生数据仓库感兴趣的小伙伴加入社区,一起交流,一起共建。

审核编辑黄宇


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 开源
    +关注

    关注

    3

    文章

    3323

    浏览量

    42475
  • 数据仓库
    +关注

    关注

    0

    文章

    61

    浏览量

    10446
  • 开发者
    +关注

    关注

    1

    文章

    569

    浏览量

    17007
收藏 人收藏

    评论

    相关推荐

    2024开放原子开发者大会暨首届开源威廉希尔官方网站 学术大会成功举办

    近日,以“一切为了开发者”为主题的2024开放原子开发者大会暨首届开源威廉希尔官方网站 学术大会在武汉成功举办。大会为众多开源项目和开发者提供了广阔的展示
    的头像 发表于 12-23 14:23 68次阅读

    2024年度国内活跃开源项目和开发者在武汉揭晓

    近日,2024年度国内活跃开源项目&开发者致谢仪式,亮相2024开放原子开发者大会暨首届开源威廉希尔官方网站 学术大会开幕式。
    的头像 发表于 12-23 11:25 152次阅读

    什么是云原生MLOps平台

    云原生MLOps平台,是指利用云计算的基础设施和开发工具,来构建、部署和管理机器学习模型的全生命周期的平台。以下,是对云原生MLOps平台的介绍,由AI部落小编整理。
    的头像 发表于 12-12 13:13 92次阅读

    k8s微服务架构就是云原生吗?两是什么关系

    和安全性,使开发者能够更轻松地构建和部署现代化的应用程序。然而,云原生不仅仅局限于Kubernetes或任何单一的威廉希尔官方网站 ,它是一种方法论和最佳实践,涵盖了多个威廉希尔官方网站 和理念,旨在充分利用云计算的优势来构建和运行应用程序。具体来说,UU云小编认为
    的头像 发表于 11-25 09:39 137次阅读

    Arm推出GitHub平台AI工具,简化开发者AI应用开发部署流程

    软件提供了无缝的开发体验。 GitHub Actions、原生 GitHub 运行器和基于 Arm 平台的 AI 框架相结合,帮助全球 2,000 万开发者简化 AI 应用开发
    的头像 发表于 10-31 18:51 2001次阅读

    KaihongOS 4.1.2开发者预览版正式上线,诚邀开发者免费试用!

    深开鸿在2024开放原子开源生态大会上正式宣布KaihongOS4.1.2开发者预览版全面上线,并向全球开发者开放免费下载。作为KaihongOS不断创新与发展的重要里程碑,此次预览版为开发者
    的头像 发表于 09-28 08:07 330次阅读
    KaihongOS 4.1.2<b class='flag-5'>开发者</b>预览版正式上线,诚邀<b class='flag-5'>开发者</b>免费试用!

    KaihongOS 4.1.2开发者预览版正式上线,诚邀开发者免费试用!

    今日,深开鸿在2024开放原子开源生态大会上正式宣布KaihongOS 4.1.2开发者预览版全面上线,并向全球开发者开放免费下载。作为KaihongOS不断创新与发展的重要里程碑,此次预览版为
    的头像 发表于 09-26 15:59 451次阅读

    云原生和非云原生哪个好?六大区别详细对比

    云原生和非云原生各有优劣,具体选择取决于应用场景。云原生利用云计算的优势,通过微服务、容器化和自动化运维等威廉希尔官方网站 ,提高了应用的可扩展性、更新速度和成本效益。非云原生则可能更适合对延迟敏感
    的头像 发表于 09-13 09:53 382次阅读

    京东云原生安全产品重磅发布

    “安全产品那么多,我怎么知道防住了?”“大家都说自己是云原生的,我看都是换汤不换药”在与客户沟通云原生安全方案的时候,经常会遇到这样的吐槽。越来越的客户已经开始了云原生化的威廉希尔官方网站 架构改造,也意识到
    的头像 发表于 07-26 10:36 469次阅读
    京东<b class='flag-5'>云原生</b>安全产品重磅发布

    从积木式到装配式云原生安全

    云原生安全风险 随着云原生架构的快速发展,核心能力逐渐稳定,安全问题日趋紧急。在云原生安全领域不但有新威廉希尔官方网站 带来的新风险,传统IT基础设施下的安全威胁也依然存在。要想做好云原生安全,就要
    的头像 发表于 07-26 10:35 296次阅读
    从积木式到装配式<b class='flag-5'>云原生</b>安全

    华为云开发者桌面全新发布 CodeArts IDE for Python,极致优雅云原生开发体验

    近日,华为云正式发布 CodeArts IDE for Python,这是一款内置华为自研 Python 语言服务,提供智能编程、灵活调试能力的可扩展桌面开发工具,为华为云开发者提供卓越
    的头像 发表于 05-10 00:27 1236次阅读
    华为云<b class='flag-5'>开发者</b>桌面全新发布 CodeArts IDE for Python,极致优雅<b class='flag-5'>云原生</b><b class='flag-5'>开发</b>体验

    云原生是大模型“降本增效”的解药吗?

    云原生AI正当时
    的头像 发表于 02-20 09:31 387次阅读

    鸿蒙开发者预览版如何?

    原生智能、原生互联,6大极致原生体验。 我初步阅读了鸿蒙的源码后,基本上可以确定是全自研底座,已经看不到Android的身影了。作为开发者,如果想往鸿蒙方向发展,就需要系统性学起。
    发表于 02-17 21:54

    HarmonyOS SDK,助力开发者打造焕然一新的鸿蒙原生应用

    六大领域的开发能力,为开发者带来简洁、高效的开发体验,开发者只需通过 API 调用即可实现丰富的鸿蒙原生应用功能和独特体验。同时,在
    发表于 01-19 10:31

    30万奖金!开放原子开源大赛“云原生数据缓存性能挑战赛” 等你来挑战!

      开放原子开源基金会牵头发起的首届“开放原子开源大赛”正在火热进行中。东方通支撑的“云原生数据缓存性能挑战赛”将与1月10日正式启动报名,诚挚欢迎有理想、有激情的开发者、发烧友们前来
    的头像 发表于 01-11 10:31 389次阅读