写点什么

数据处理不再是“脏活累活”,听听开发者们怎么说?

  • 2024-12-27
    北京
  • 本文字数:4964 字

    阅读完需:约 16 分钟

大小:2.19M时长:12:45
数据处理不再是“脏活累活”,听听开发者们怎么说?

一直以来,数据处理都被视作“脏活累活”,从数据的收集、清洗、转换,再到存储、分析,每个步骤都可能遇到各种挑战,繁琐且耗时。近几年,随着大数据和人工智能技术的进步,数据处理变得更加自动化和智能化,但在面对复杂查询和 ETL 任务时,还是存在扩缩容成本高、性能受限等局限性。


为了解决这些痛点问题,2024 年 8 月,字节跳动开源云原生数据仓库 ByConity 增加了 BSP 模式,这一模式允许进行 task 级别的容错、更细粒度的调度,并支持资源感知的调度。通过引入 BSP 模式,将数据加工(T)的过程转移到 ByConity 内部,让开发者能够一站式完成数据接入、加工和分析,将数据处理从“脏活累活”转变为更加高效和智能的工作。


为了让更多的开发者深入了解并体验 ByConity BSP 模式的能力,近日,InfoQ 和 ByConity 社区联合举办了“ByConity 有奖众测活动”,邀请广大开发者参与 ByConity BSP 模式在离线数仓场景的实际测试,通过亲身实践来感受其带来的高效与便捷。


本次众测活动历时近一个月,吸引了来自金融、教育、安全等众多行业的数十名开发者参与,通过多种测试工具和环境测试 ByConity 的核心功能,并记录测试过程和心得(全部测试文档链接详见文末)。


我们对这些测试文档进行了梳理,总体来看,开发者对 ByConity BSP 模式的能力十分认可,在实际体验中,BSP 能大幅提升数据处理效率与容错能力。有开发者表示“ByConity 的实时查询速度是真的快啊,5 亿数据复杂查询也仅需 60s,真的巨快,之前遇到的业务场景中 1 千万数据还超时了,适合大数据量场景用。”本次活动也收集到了不少来自开发者的改进建议,ByConity 社区将根据这些反馈持续优化产品功能,构建一个更加活跃的开源生态。

BSP 模式体验:大幅提升数据处理效率与容错能力


不少参与测试的开发者反馈,BSP 模式的引入对数据处理效率和容错能力的提升至关重要。


BSP 模式通过将查询任务分割成多个 stage,实现了并行化处理,极大地降低了峰值内存的使用,提高了查询效率。此外,如果在 query 运行中遇到错误时,可以自动重试当前的 task,而不是从头开始重试,大大减少了重试成本。当 query 需要的内存巨大时,可以通过增加并行度来减少单位时间内内存的占用,理论上可以实现无限扩展。


在分布式查询中,ByConity 通过 distributed_max_parallel_size 参数允许用户根据集群资源和查询需求调整表扫描的并行度,优化查询性能。合理调整该参数,用户可以在保证查询性能的同时,避免资源的过度消耗和查询失败的风险。


在 BSP 模式下,ByConity 支持对 TableScan 算子的并行度进行扩展,这有助于在资源有限的情况下处理大表。用户可以通过设置 distributed_max_parallel_size 参数来控制 TableScan 的并行度,实现资源平铺的功能。


完美句号:


ByConity 在 ClickHouse 高性能计算框架的基础上,增加了对 BSP 模式的支持,可以进行 task 级别的容错 ; 更细粒度的调度,支持资源感知的调度:


①. 当 query 运行中遇到错误时,可以自动重试当前的 task,而不是从头进行重试。大大减少重试成本。

②. 当 query 需要的内存巨大,甚至大于单机的内存时,可以通过增加并行度来减少单位时间内内存的占用。只需要调大并行度参数即可,理论上是可以无限扩展的。

③. 可以根据集群资源使用情况有序调度并发 ETL 任务,从而减少资源的挤占,避免频繁失败。

④. 对于大的数据量,BSP 通过把一个查询切换成 N 个 task,可以加快查询的效率。

⑤. 通过 BSP 模式的效果非常的明显,通过 BSP 能力,把数据加工(T)的过程转移到 ByConity 内部,能够一站式完成数据接入、加工和分析。

⑥. 可以在 ByConity 开启几个不同的 vw,比如:vw1 专门跑批量数据,vw2 实时查询,vw2 专门使用 mpp 模式,通过这样拆分任务的方式,将需要查询最快时间查出来。然后 vw1 把表 ODS 数据清洗,加工到 vw2 的 DWD 里,然后 vw2 直接查 DWD 的数据。


程伟:


1. BSP 模式更适合大数据量的计算,可以通过分解并行任务,降低单个任务的内存需求,能够有效保障任务执行的稳定性,更适合 ELT,数仓等长任务场景。


2. BSP 的任务并行度,并不是设置的越高越好,设置的太高,内存占用低,执行时间长。设置的太低,内存不足,无法完成计算,需要多次尝试获取最佳值。


3. MPP 模式相对 BSP 模式,可以读取更少的数据完成查询,在短时任务的运行上更具优势。通过排序键、分区、索引等手段可以进一步减少需要操作的数据量,达到更快的查询速度。


穿过生命散发芬芳:


ByConity 增加的 BSP(Bulk Synchronous Parallel)模式是一个重要的功能更新,旨在提升数据处理的效率和容错能力。distributed_max_parallel_size 参数用于控制分布式查询中表扫描的并行度。通过调整这个参数,用户可以根据集群的资源情况和查询的需求来优化查询性能。


ByConity 的 ELT 能力能够简化数据处理的复杂性,提高系统的响应速度和可靠性。通过将大部分转换操作留在分析阶段,ByConity 能够更好地适应复杂的数据处理需求,特别是在实时数仓和离线数仓的场景中表现出色。


阿泽:


在 BSP 模式下,ByConity 支持对 TableScan 算子的并行度进行扩展,这有助于在资源有限的情况下实现对大表的处理。用户可以通过设置 distributed_max_parallel_size 参数来控制 TableScan 的并行度,实现资源平铺的功能。


endlessclould:


传统架构中,之所以要分别建设离线数仓和实时数仓,是因为常见的 OLAP 产品不擅长处理大量的复杂查询,很容易把内容打满任务中断,甚至造成宕机。ByteHouse 具备 BSP 模式,支持将查询切分为不同的 stage,每个 stage 独立运行。在此基础上,stage 内的数据也可以进行切分,并行化不再受节点数量限制,理论上可以无限扩展,从而大幅度降低峰值内存。是一个使用非常良好的数据仓库,无论是上手难度还是查询速度。


六月的雨在 InfoQ:


ByteHouse 在传统的 MPP 链路基础上增加了对复杂查询的支持,这使得 join 等操作可以有效地得到执行。BSP 模式使用 barrier 将各个 stage 进行隔离,每个 stage 独立运行,stage 之内的 task 也相互独立。即便机器环境发生变化,对查询的影响被限定在 task 级别。且每个 task 运行完毕后会及时释放计算资源,对资源的使用更加充分。在这个基础上,BSP 的这种设计更利于重试的设计。任务失败后,只需要重新拉起时读取它所依赖的任务的 shuffle 数据即可,而无需考虑任务状态。

ByConity 还有哪些技术优势?


在体验 ByConity 的过程中,不少开发者感受到其显著的技术优势和广泛的适用性,对 ByConity 给予了充分肯定。具体来说,ByConity 的技术优势在于其云原生架构、实时数据分析能力、高效的查询引擎和分布式计算能力,以及强大的兼容性和运维自动化功能。这些技术优势使得 ByConity 在大规模实时数据分析的场景下展现出较强的竞争力。


此外,ByConity 多级资源隔离功能允许不同业务和场景按需创建 Virtual Warehouse,实现物理资源隔离和读写分离,同时确保数据读写的强一致性,保证数据的实时更新。这种设计不仅提升了数据处理的效率,也降低了使用成本,因为存储计算分离架构使得实时扩容成为可能,优化了资源的利用。


性能上,在复杂多子查询场景中,ByConity 能够灵活处理多来源数据,并行处理能力大幅增强。通过 Kubernetes 部署,ByConity 展示了良好的扩展能力和资源调度优化能力,适合多云和混合云场景。


百里丶落云:


对比 Spark 的使用场景,ByConity 支持多级资源隔离,不同业务、不同场景按需创建 Virtual Warehouse,实现物理资源隔离和读写分离,同时保证数据读写的强一致性,确保数据始终是最新的。这无疑是巨大提升,同时,因为存储计算分离架构的原因,可以实现实时扩容,这可以更好的利用资源,和降低使用成本。ByConity 的上手难度相对较低,ByConity 提供了详尽的官方文档,完备的社区可以支持用户快速的使用。整体上手难度偏低,是一个效率高,成本低,且资源隔离和弹性扩缩容都不错的数据仓库。


程序员海军:


总的来说,ByConity 的技术优势在于其云原生架构、实时数据分析能力、高效的查询引擎和分布式计算能力,以及强大的兼容性和运维自动化功能,尤其在面向大规模实时数据分析的场景下展现出较强的竞争力。


法医:


我之前用过 ClickHouse,通过这次测试想聊聊优缺点,ByConity 是基于 ClickHouse 内核研发的开源云原生数据仓库,采用存算分离的架构。它们两个写入速度都是非常快的,适用于大量数据的写入,其次查询速度非常快,在海量数据下,查询速度可达 2-30GB/s,另外数据压缩比高,存储成本低,压缩比可达 0.2~0.3。ByConity 具备 ClickHouse 的诸多优点,并且与 ClickHouse 保持着良好的兼容性。同时,ByConity 在读写分离、弹性扩缩容以及数据强一致等方面进行了显著增强。


我觉得 ByConity 是 ClickHouse 的增强版,ClickHouse 缺点也很明显,ClickHouse 扩容非常麻烦,而且扩容后需要从新进行数据分布。另外运维也很麻烦,尤其是高峰期的时候,又不能快速扩容,它一般通过删减其它业务数据才能得到缓冲,所以它查询就会变得很慢。

写在最后


虽然 ByConity 的 BSP 模式为数据处理带来效率上的飞跃,但目前仍有可优化的空间。本次众测活动收集到了不少来自开发者的改进建议,比如,开发者 RoSofteg 反馈,开启 BSP 和没开启 BSP 模式的时候,查询速度的波动一样而且都有一点不稳定;在分布式环境中,节点资源利用不均可能导致负载不平衡;如果缓存策略配置不合理,可能导致数据冗余或性能下降;自动故障恢复功能需要在复杂环境中进行广泛测试,避免因配置不当引发更多问题。针对这些问题,RoSofteg 也提供了一些改进建议:


  • 优化资源调度:利用智能调度算法动态分配资源,平衡分布式计算节点的负载。

  • 引入流量管理:针对实时处理场景,引入流量控制策略,确保在高负载下系统的稳定性。

  • 定期审查缓存策略:根据使用场景调整缓存大小、策略和生存周期,避免资源浪费。

  • 全面测试恢复机制:在实际部署前模拟各种可能的故障场景,确保恢复机制的可靠性。


开发者“数字扫地僧”提到,在不开启 BSP 模式或内存不足的情况下,查询任务可能会因内存超限而失败。建议引入动态内存分配机制,在内存接近阈值时触发自动调整;增强查询优化器能力,进一步减少内存占用,例如通过分区查询、按需加载数据等方式;增加实时内存使用监控与告警,帮助用户及时调整配置。


在多端并发查询时,虽然 BSP 模式有效提升了性能,但在高负载情况下依然可能出现瓶颈。建议增强查询任务的负载均衡能力,在多个节点间分配计算资源;设置动态并发查询限制,避免因过多并发请求导致整体性能下降;对重复查询结果进行缓存,从而减少对数据源的重复访问。


ByConity 社区非常重视来自开发者的真实的声音,社区将根据这些反馈持续优化产品功能,致力于提供更高效、稳定且用户友好的数据仓库解决方案。同时,也期待能有更多的开发者加入到 ByConity 的社区中来,共同见证 ByConity 的成长和进步。


附:ByConity 测试文档


https://xie.infoq.cn/article/0acf8163e85cdaf0479c79a98

https://xie.infoq.cn/article/6521f4b4bc838e9677b1137cc

https://bqsta3w35b.feishu.cn/wiki/MD78wPwCCi2RZHkLPNyczy1on6f?from=from_parent_docs

https://xie.infoq.cn/article/722e372c0bfd12970dadd5fc5

https://juejin.cn/post/7443278569403318281

https://xie.infoq.cn/article/a6d9ba67c3df4a71bbec20986

https://xie.infoq.cn/article/80f75cc2db721e5249c832244

https://xie.infoq.cn/article/a032e839b9f017dcd3a510074

https://blog.csdn.net/weixin_39992480/article/details/144273725?spm=1001.2014.3001.5502

https://xie.infoq.cn/article/e2c7484d7d2c722aa25c55167

https://xie.infoq.cn/article/208b7622467eedd66e3032328

https://xie.infoq.cn/article/72a02f272600fec90255de8d7

https://xie.infoq.cn/article/1fd92d355422e8792578fc543

https://xie.infoq.cn/article/7bb619332adb833f73403b83f

https://xie.infoq.cn/article/c463e2888206f08f6791900a1

https://xie.infoq.cn/article/72b7d097731e6f6c3de20abc4

https://xie.infoq.cn/article/989326a0b6cc6d6b003984f9b

https://xie.infoq.cn/article/475938aff3ae03bb0b5a3acc6

https://xie.infoq.cn/article/bc2f70cbfb82c6329b4278b6b

https://xie.infoq.cn/article/4095c8dc8e932d46da4e9c7bf

https://xie.infoq.cn/article/20bdb0a4e73cfacc344dd3f6e

2024-12-27 14:5811079

评论

发布
暂无评论

高效!启科量子线路模拟器 QuSprout 与 Amazon HPC 集成,赋能量子计算

亚马逊云科技 (Amazon Web Services)

量子计算 Hero 专栏

四项发明专利布局国际市场 申威睿思层级化数据库操作加速系统和方法获肯定

科技热闻

A/B测试有哪些常见应用场景?——火山引擎DataTester科普

字节跳动数据平台

大数据 AB testing实战

华为开发者联盟学堂上线超1800门课程,为开发者提供一站式赋能

最新动态

咱也不知道这份牛P哄哄的【Nginx实战】资料是不是你们想要的

钟奕礼

Java 程序员 java面试 java编程

面试处处碰壁?不慌,Java核心面试文档.PDF助你披荆斩棘

钟奕礼

Java java面试 java编程 程序员‘

目前看过最全的一线大厂面试题(题+详解),你所不知道的都在这

钟奕礼

Java java程序员 java面试 java编程

从零开始学习Java系列之Java运行机制与跨平台特性

千锋IT教育

集群部署看过来,低代码@AWS智能集群的架构与搭建方案

葡萄城技术团队

负载均衡 部署 集群 亚马逊

东莞理工学院-网安学院举办第二届“火焰杯”软件测试高校就业选拔赛颁奖典礼

测吧(北京)科技有限公司

软件测试

EMQ宣布推出LF Edge eKuiper全新Logo标识

EMQ映云科技

物联网 IoT emq 11月月更 eKuiper

车间工厂看板还搞不定,数据可视化包教包会

葡萄城技术团队

数据可视化 看板 智能工厂

《鸿蒙生态应用开发白皮书》正式发布,携手更多开发者迈入鸿蒙世界

最新动态

“鸿蒙开发套件”焕新升级 端到端赋能助力开发运维事半功倍

最新动态

高管对上新老板的 Twitter

HoneyMoose

阿里资深架构师谈Java进阶攻略:7大技能+12份进阶笔记+面试150题

钟奕礼

Java 程序员 java面试 java编程

瓴羊DAAS体系结构,助力乔丹体育高质量增长

瓴羊企业智能服务

观察者模式在spring中的应用

京东科技开发者

Java spring 编程 观察者模式

Spring6正式发布!重磅更新,是否可以拯救Java

宋小生

DHorse系列文章之操作手册

tiandizhiguai

微服务 云原生 k8s管理 微服务治理 Serverless Kubernetes

【实用工具】解决PCB设计难题,痛击风险漏洞!

华秋PCB

工具 PCB PCB设计

一次MTU问题导致的RDS访问故障

京东科技开发者

数据库 Linux MTU RDS vpn

即时通讯技术文集(第7期):长连接网关、P2P等 [共10篇]

JackJiang

网络编程 IM 即时通讯IM

端云一体开发,助力鸿蒙应用开发效率全面提升

最新动态

《鸿蒙生态应用开发白皮书》正式发布,携手更多开发者迈入鸿蒙世界

最新动态

单体分层应用架构剖析

京东科技开发者

架构 模块 应用架构 服务层 业务层

JVM 核心知识体系

钟奕礼

Java java面试 java编程 程序员‘

PGL图学习之项目实践(UniMP算法实现论文节点分类、新冠疫苗项目实战,助力疫情)[系列九]

汀丶人工智能

图神经网络 图学习 11月月更 论文节点分类任务 新冠疫苗任务

东莞理工学院-网安学院举办第二届“火焰杯”软件测试高校就业选拔赛颁奖典礼

测试人

软件测试 自动化测试 测试发开 测试比赛

金九银十已过,总结了阿里面试官常问九大项面试题!

钟奕礼

Java java面试 java编程 程序员‘

【Java经典面试800题】面试必备,查漏补缺;多线程+spring+JVM调优+分布式+redis+算法

程序知音

Java java面试 java架构 后端技术 Java面试八股文

数据处理不再是“脏活累活”,听听开发者们怎么说?_大数据_凌敏_InfoQ精选文章