计算效率提升 10 倍,存储成本降低 60%,灵犀科技基于 Apache Doris 建设统一数据服务平台

server/2025/1/8 20:13:22/

导读:灵犀科技早期基于 Hadoop 构建大数据平台,在战略调整和需求的持续扩增下,数据处理效率、查询性能、资源成本问题随之出现。为此,引入 Apache Doris 替换了复杂技术栈,升级为集存储、加工、服务为一体的统一架构,实现存储成本下降 60%,计算效率提升超 10 倍的显著成效。

灵犀科技有限公司(简称灵犀科技)是奇点控股旗下的高科技企业,专注于为企业提供 SaaS 服务、定制化决策工具、智能匹配交易平台以及开放的大数据生态系统。灵犀科技深耕于企业产业分析,积累了大量相关信息,基于这些数据构建了独特的产业链结构,向政府和企业提供精准拓客服务,助力产业升级与招商。

灵犀科技早期基于 Hadoop 构建大数据平台,以 Hive、Clickhouse、Starrocks 搭建离线数仓,Flink、Redis 搭建实时数仓。2023 年随着公司的战略调整和需求扩增,数据处理效率、查询性能、资源成本问题随之出现。为了快速应对业务的发展需要,灵犀科技引入 Apache Doris 搭建了集存储、加工、服务为一体的统一架构,有效解决上述挑战,实现存储成本下降 60%,计算效率提升超 10 倍 的显著成效。

早期架构及痛点

基于 Hadoop 体系的大数据平台架构如下图所示,分为实时及离线两条数据处理链路:

  • 离线处理链路:在离线数据处理流程中,数据通过爬虫、埋点、业务系统和算法分析等多种方式被采集,通过 HDFS Put 命令和 SeaTunnel 工具被导入/同步到 Hive 的 ODS 层中。使用 Hive 对数据进行更新、清洗、聚合、主题构建。因 Hive 存在计算性能限制,又引入 ClickHouse 优化大规模数据集的多维聚合计算,引入 StarRocks 进行多源数据的 ID 映射。最终,处理后的数据通过 Seatunnel 同步到 TiDB,提供业务的实时查询需求。
  • 实时处理链路:在实时数据处理流程中,数据通过爬虫的方式写入 Kafka,Flink 读取 Kafka 的信息并根据系统下发在 Redis 的数据处理规则,完成数据的处理并最终写入 TiDB,提供实时的数据查询服务。

早期架构及痛点.png

整体架构中,各组件的职能明确,并承载公司多年的数据服务工作。然而,随着 2023 年公司战略调整和需求扩大,数据处理效率、查询性能受到影响,架构疲态尽显。具体问题包括:

  • 系统复杂:集成多种数据组件增加了系统的复杂性,导致系统维护和故障排除困难。
  • 数据一致性:在多个数据库和存储系统之间同步数据时,会导致大量数据冗余,同时容易出现数据一致性问题,使得数据排错变得困难。
  • 系统扩展性:随着数据量的增长,系统的可扩展性不足,扩展所需资源也随之增加。
  • 使用成本: 团队成员需具备多样化技能,以管理和维护复杂的系统组件。维护多样化的系统导致较高的使用成本,包括硬件及软件的成本投入。

技术选型

为了快速应对业务发展需要,灵犀科技决定对架构进行升级。经过对多种大数据组件的对比,最终选择引入 Apache Doris 来构建公司新一代数据服务平台,Apache Doris 是一种低成本且能满足以下特性的架构:

  • 架构简洁:架构简洁,易于部署维护,简化开发流程,提升工作效率;
  • 多源数据融合能力:能够集成 HDFS、Kafka、MySQL 等多种数据源,具备高效的数据融合能力;
  • 高效的数据建模能力:相较于多组件架构,能够高效率的执行 SQL,实现快速建模;
  • 具备实时数据处理能力:能够支撑分钟级延迟的数据生产;
  • 数据服务能力:能同时高效满足表报分析与常规的数据查询服务;
  • 稳定可靠:具备容灾恢复能力,确保数据存储的高可靠性。

基于 Apache Doris 的统一数据服务平台

基于 Apache Doris 的统一数据服务平台.png

新架构中,使用 Apache Doris 替代了原先架构中数据存储与数据分析引擎,实现集存储、形成集存储、加工、服务为一体的统一架构,依赖于 Apache Doris 的湖仓一体能力,实现数据的宽入->窄处理→宽出,具体来讲:

  • 数据宽入: Apache Doris 提供多样化数据导入方式,结合 Multi-Catalog 能力,可实现多数据源的快速导入。具体来讲,使用 Broker Load 导入 HDFS 冷数据(历史数据),使用 Catalog 导入类 MySQL 静态数据,使用 Routine Load 导入埋点数据以及爬虫数据(增量实时数据),使用 Binlog Routine Load 导入业务应用数据(增量实时数据)。
  • 窄处理:利用 Doris 实现数据的统一存储及计算。Doris 采用列式存储,按列进行数据的编码压缩和读取,能够实现极高的压缩比,并利用 Doris 的极速计算引擎进行数据分析
  • 数据宽出:Doris 提供各类异构数据源的查询和写入能力,支持用户将这些外部数据源统一到 Doris 的元数据映射结构上,当用户通过 Doris 查询这些外部数据源时,能够提供一致的查询体验。

在数仓建模上遵循维度建模思路。ODS 层采用明细模型(Duplicate Key),保证了数据完整变更链路的存储,数据不做任何的加工处理;DWD、DM、APP 层选用主键模型(Unique Key),在数据的录入过程中完成的数据更新。为确保一致性的数据服务,基于 Doris 提供统一的应用服务,避免多组件间数据传输导致数据孤岛,同时避免多组件繁重的数据存储和同步成本。

经过半年多使用,以 Apache Doris 为基石的数仓建设取得了显著成果:

  • 从存储成本来看,同样的数据规模,原先架构需要 130+TB 磁盘资源,使用 Doris 后,仅需 60TB 即可,成本下降超过 60%。
  • 从计算性能来看,下图测试结果可清晰得知 Doris 显著优势,与 Hive 的数仓计算耗时相比,Doris 计算效率提升超 10 倍。

基于 Apache Doris 的统一数据服务平台-2.png

基于 Apache Doris 的最佳实践

01 负载隔离实现资源高效管理

Doris 的多租户和资源隔离方案,主要目的是为了多用户在同一 Doris 集群内进行数据操作时,减少相互之间的干扰,能够将集群资源更合理的分配给各用户。

灵犀科技基于 Apache Doris 资源隔离方案对集群资源进行了租户级别的隔离。针对在线与离线任务,将节点资源划分为 Online 和 Offline 两个标签,并将 BE 节点均匀分配到这两个标签上。表数据依然以 3 副本的方式存储,其中 2 个副本存放在 Online 资源组,1 个副本存放在 Offline 资源组。Online 资源组主要用于高并发低延迟的在线数据服务,而一些大查询或离线 ETL 操作,则可以使用 Offline 资源组中的节点执行。从而实现在统一集群内同时提供在线和离线服务的能力。

同时,定义了多租户,并为每个租户分配不同的资源权限,通过租户级别的资源隔离,提高了资源使用效率,确保各业务模块按需获得计算与存储资源。在数据存储方面也进行了类似的划分,从而实现数据生产与业务应用的同时兼顾,提高了数据管理的可控性,降低了运维复杂度。

使用参考负载管理文档

01 负载隔离实现资源高效管理.png

为了在确保集群稳定性的同时充分利用资源,我们将用户划分为多种角色,以应对不同时间段的资源需求。举例来说:

01 负载隔离实现资源高效管理-2.png

  • 普通角色的用户(非生产性用户),仅使用 Offline 组的资源
  • 系统忙时(早上 8 点到晚上 8 点),生产用户可使用的资源仅为 Offline 组的资源
  • 系统闲时(晚上 8 点到第二天早上 8 点),生产用户可使用所有的服务资源处理数据
  • 应用系统用户,仅使用 Online 组的资源

资源划分确保了应用系统在高峰时段的资源不被挤占,同时也兼顾了夜间大批量数据处理的性能需求。

02 多重机制保障集群稳定性

在一体化数仓建设中,集群需同时支持服务应用和数据生产,因此集群的稳定性显得格外重要。为此,灵犀科技采取了以下安全保障措施:

  • 熔断机制:由于集群面向多种服务应用,常常会出现不规范的使用场景。为应对这种情况,我们引入了熔断机制。当 SQL 运行超过设定时长时,系统会及时报警并终止该查询,以实现熔断效果。
# 查询正常执行的查询
select * from information_schema.active_queries# 通过查询时长设置熔断,杀掉长查询
kill query {query_ID}
  • 监控报警:借助飞轮科技提供的 Doris Manager 进行巡检监控,及时上报集群的 CPU、内存状态,同时我们也建立了任务的异常报警机制,实现了问题监控和处理。通过 Doris Manager 的巡检监控,我们能够及时上报集群的 CPU 和内存状态。此外,我们还建立了任务异常报警机制,实现了对问题的监控与处理。

02 多重机制保障集群稳定性.png

  • 流量控制:针对常规的任务处理,控制整体的应用并发,合理利用闲时时间进行的数据的生产工作,确保能够在高峰期保持系统的高性能,同时在低峰期最大化资源的使用,提高了整体系统的生产效率。

03 Doris 支撑企业相似度高效分析

公司依托详尽的企业信息,从多维度——包括企业类型、组织形式、经营范围以及产品服务等,构建了全面的企业产业链信息库。灵犀科技采用先进的数组结构来存储这些数据,并充分利用 Doris Array 数据结构以及强大的数据函数功能,精准分析企业间的相似度,以帮助企业更精准的招商引资。

原方案:

过往的方案中,采取每日将数据库中的新增数据同步至向量库,并转化为向量化数据进行存储。当用户发起请求时,将请求数据同样转化为向量,并查询向量库以获取相似企业的 ID 列表。随后,还需通过这些 ID 再次访问数据库,以获取并展示详细的企业信息。

这一流程存在显著弊端:数据冗余存储导致资源浪费,且数据不同步问题严重影响了结果的准确性。此外,每次页面请求都需要依次访问两个服务,不仅响应时间长,代码复杂度也较高,一旦出现问题,排查难度极大。

新方案:

为解决上述问题,引入 Doris 制定全新的方案。利用 Doris Array 的数据结构,承载企业所属产业、行业等相关信息,比如:一家企业的产业编码为 [“160”, “208”, “219”, “399”],表示这家企业属于智能制造、汽车、新能源、物联网产业。然后运用数据相交函数 array_intersect计算两家企业在产业、行业之间的相交度,为企业相似度分析提供数据支撑。简化模型如下:

03 Doris 支撑企业相似度高效分析.png

与之前方案不同的是,引入 Doris 之后,只需一次 SQL 请求即可完成相似度计算并返回企业详细计算,代码简单且流程缩短,接口响应时间稳定在 5 秒以内,较原方案快了 1 倍;同时,系统也无需进行冗余数据的存储及同步操作,避免了数据不一致的问题。

总结与规划

截至目前,灵犀科技基于 Apache Doris 建设的统一数据数据平台已上线并稳定运行,有效解决了数据孤岛问题,实现了数据整合与流通。在数据集成(ETL)、标准化、治理和可视化等方面取得显著进展,相较于原有的多组件架构,数据生产能力提升超过 10 倍、存储成本节省超 60%。未来,灵犀科技将进一步探索 Apache Doris 潜力,并在以下方面进行深入实践:

  • 存算分离:进一步提升资源的利用率,精细化分配存储和计算资源。
  • 大模型 BI:将 Apache Doris 作为公司智能问答大模型的知识库,支撑大模型 BI 的查询。

最后,衷心感谢 Apache Doris 社区和 SelectDB 伙伴的积极支持,期待与大家在未来继续深入合作。


http://www.ppmy.cn/server/156575.html

相关文章

STM32 I2C通信外设

单片机学习! 目录 前言 一、I2C外设简介 1.1 硬件I2C外设 1.2 硬件I2C功能 1.2.1 多主机模型 1.2.2 7位地址和10位地址的模式 1.2.3 通讯速度 1.2.4 支持DMA 1.2.5 兼容SMBus协议 1.2.6 芯片型号资源 二、I2C框图 2.1 引脚 2.2 SDA数据控制 2.3 SCL时…

在 macOS 上,你可以使用系统自带的 终端(Terminal) 工具,通过 SSH 协议远程连接服务器

文章目录 1. 打开终端2. 使用 SSH 命令连接服务器3. 输入密码4. 连接成功5. 使用密钥登录(可选)6. 退出 SSH 连接7. 其他常用 SSH 选项8. 常见问题排查问题 1:连接超时问题 2:权限被拒绝(Permission denied&#xff09…

如何使用脚手架工具开始,快速搭建一个 Express 项目的基础架构

前言 将从如何使用脚手架工具开始,快速搭建一个 Express 项目的基础架构。接着,文章将详细讲解 Express 中间件的概念、分类以及如何有效地使用中间件来增强应用的功能和性能。最后,我们将讨论如何制定合理的接口规范,以确保 API …

基于32单片机的智能语音家居

一、主要功能介绍 以STM32F103C8T6单片机为控制核心,设计一款智能远程家电控制系统,该系统能实现如下功能: 1、可通过语音命令控制照明灯、空调、加热器、窗户及窗帘的开关; 2、可通过手机显示和控制照明灯、空调、窗户及窗帘的开…

HTML5 + Bootstrap5 网站底部代码分享与解析

文章概述 本文主要是分享一个 HTML5 结合 Bootstrap5 实现的一个网站底部模块,适配电脑端与手机端,样式虽然不炫酷,但是中规中矩,适合初学 Bootstrap5 以及普通网站底部模块需要的人。 原文链接:HTML5 Bootstrap5 网…

计算机网络:网络层知识点及习题(一)

网课资源: 湖科大教书匠 1、概述 网络层实现主机到主机的传输,主要有分组转发和路由选择两大功能 路由选择处理机得出路由表,路由表再生成转发表,从而实现分组从不同的端口转发 网络层向上层提供的两种服务:面向连接…

朴素贝叶斯方法

一般来说训练时的一个实例有很多属性用一个<a1,a2,....,an>来表示一个数据&#xff0c;那么此时根据最大后验概率的计算公式可以得出&#xff1a; 其中&#xff0c; H 是目标值集合。 估计每个 P&#xff08;hi&#xff09;很容易&#xff0c; 只要计算每个目标值 hi出现…

【计算机网络安全】CA和安全电子邮件

实验四 网络安全应用&#xff08;加密解密2&#xff09; 实验人员&#xff1a;第五组全体成员 实验目的&#xff1a; 1&#xff1a;学习使用MD5加密破解软件。 2&#xff1a;理解字符串和文件的加密解密的原理和方法。 3&#xff1a;理解邮件的加密解密的原理和方法。 …