如上图所示我们将指标 M1 、M2、M3 与维度 T1、T2、T3 分别进行定义,并通过 SUM 加工衍生标签,在加工完成之后创建物化视图加速查询 。此外,在 Doris 后续 2.1 版本中还会支持多表创建物化视图,我们也非常期待使用该功能 。
Apach Doris 导入性能调优实践
目前,腾讯音乐具有 90+ 数据来源表、 3000 + 维度和指标、导入数据量达到千亿级别,我们希望数仓能够支持大规模数据快速导入,且导入过程中保证数据写入的准确性 。
导入链路如图所示,主要分为离线与实时两个部分,离线链路中指标表与变更维度表通过 Spark 进行批量导入,两类表利用 Flink 聚合形成宽表后写入;实时链路主要利用 Kafak 消息队列进行流式写入 。最终,离线与实时两条链路利用 Flink 实时写入Doris 数仓中 。
由于 Flink 聚合为攒批写入,如果出现写入任务失败,会导致数据丢失;同时,在聚合任务过多、字段过多的情况下存在不及时的情况,导致实时能力不可控;此外在加工宽表的过程中,也会造成重复写入的问题,无法保证数据写入准确性 。
在Doris 2.0 版本发布后,我们引入了其全新功能 Flink Doris与 Doris ,有效解决了 Flink 聚合引起的问题 。
01 Flink Doris实现快写入
Flink Doris主要是依赖机制进行流式写入,同时该功能默认开启两阶段提交,保证写入过程中Once 语义 。值得注意的是,我们在引入最新版的 Flink Doris功能后,实现了从关系型数据库到Doris 的一键整库同步,承载了我们实际业务中千亿级别的实时并行写入,满足数据快写入与不丢不重的需求 。
02 Doris保证写入稳定性
为了解决 Flink 聚合引起的偶发性不及时问题,我们引入最新版的与功能 。
如上图所示在引入 Doris功能后,在写入量增加 50 % 的情况下,Score 从平均 650 分降低至 80 分,技术人员不再需要担心夜间出现告警的情况,保证了整体链路的稳定性 。
总结收益与展望
在引入Doris 后,数据架构围绕降本增效的目标,不仅在写查方面的性能得到大幅度提升,并且有效减少架构成本与资源开销,具体的收益如下:
在未来,我们将进一步拓展使用Doris 湖仓一体功能,对 Hive、MySQL、数据湖等多源异构数据库进行网关统一,实现真正意义上的实时统一分析引擎 。同时,尝试 CCR 跨集群数据同步功能,通过用户多集群的数据库表自动同步以提升在线服务数据的可用性 。未来,我们也将在测试环节中验证读写负载分离以及多机房备份的性能效果 。
目前,Doris 社区已经公布了后续版本中将推出的存算分离全新架构,能够利用低成本的共享存储系统简化上层计算节点的复杂度,使架构带来巨大的成本经济优势 。我们也希望能够进一步探索,基于Doris 本地高速缓存 + 共享存储系统的混合模式,在保障性能的同时降低系统存储开销 。
最后,非常感谢技术团队的积极响应与专业解答,希望通过这篇文章分享大语言模型在互联网业务中的应用,也欢迎更多人参与Doris 社区与超音数平台的开源框架构建 。最后,我们也会持续参与社区活动,将相关成果贡献回馈社区,希望Doris 飞速发展,越来越好!
- 【重要】如何获取超1400页《深度学习之图像识别》书籍配套教学PPT与视频等完整
- 阿里测试6年,如何从功能测试到自动化测试【希望大家少走弯路】
- 游戏音乐制作中必要的创作条件
- 新手必备 | 如何用U盘安装 Linux amp; Win7 双系统?
- 钱海航教你做设计:如何做好设计?
- 如何保障数据库和Redis缓存的一致性
- 如何快速的提高嵌入式的水平呢?
- Avada学习之-如何加入谷歌地图
- 关于数据打印的详细探讨:如何才能打印得更整齐
- 口袋参谋:30秒导出淘宝同行的全部数据,是如何做到的?