写点什么

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

  • 2025-01-08
    北京
  • 本文字数:4102 字

    阅读完需:约 13 分钟

大小:2.00M时长:11:38
计算效率提升 10 倍,存储成本降低 60%,灵犀科技基于 Apache Doris 建设统一数据服务平台技术实践

导读:灵犀科技早期基于 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,提供实时的数据查询服务。



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


  • 系统复杂:集成多种数据组件增加了系统的复杂性,导致系统维护和故障排除困难。

  • 数据一致性:在多个数据库和存储系统之间同步数据时,会导致大量数据冗余,同时容易出现数据一致性问题,使得数据排错变得困难。

  • 系统扩展性:随着数据量的增长,系统的可扩展性不足,扩展所需资源也随之增加。

  • 使用成本: 团队成员需具备多样化技能,以管理和维护复杂的系统组件。维护多样化的系统导致较高的使用成本,包括硬件及软件的成本投入。

技术选型


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


  • 架构简洁:架构简洁,易于部署维护,简化开发流程,提升工作效率;

  • 多源数据融合能力:能够集成 HDFS、Kafka、MySQL 等多种数据源,具备高效的数据融合能力;

  • 高效的数据建模能力:相较于多组件架构,能够高效率的执行 SQL,实现快速建模;

  • 具备实时数据处理能力:能够支撑分钟级延迟的数据生产;

  • 数据服务能力:能同时高效满足表报分析与常规的数据查询服务;

  • 稳定可靠:具备容灾恢复能力,确保数据存储的高可靠性。

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


新架构中,使用 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 的最佳实践

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

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


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


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


使用参考负载管理文档



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



  • 普通角色的用户(非生产性用户),仅使用 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 和内存状态。此外,我们还建立了任务异常报警机制,实现了对问题的监控与处理。



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

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

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


原方案:


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


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


新方案:


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



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

总结与规划

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


  • 存算分离:进一步提升资源的利用率,精细化分配存储和计算资源。

  • 大模型 BI:将 Apache Doris 作为公司智能问答大模型的知识库,支撑大模型 BI 的查询。

2025-01-08 17:0810821
用户头像
李冬梅 加V:busulishang4668

发布了 1010 篇内容, 共 622.1 次阅读, 收获喜欢 1181 次。

关注

评论

发布
暂无评论

CleanMyMac4.12.1最新版安装包下载及功能详情

茶色酒

CleanMyMac CleanMyMac X CleanMyMac X2023

架构实战营模块一作业

张贺

架构实战营

Dubbo 3.1.3、3.2.0-beta.2 正式发布

Apache Dubbo

Java 开源 微服务 云原生 dubbo

HashMap 的初始值和最大值和扩容因子

HoneyMoose

极客时间运维进阶训练营第六周作业

9527

弹性伸缩、安全高效!华为云服务器助力企业数字化转型!

路过的憨憨

华为

体验华为云桌面的新办公形式,让你轻松办公

秃头也爱科技

企业数字化办公利器——华为云桌面Workspace

清欢科技

一文了解 Go 标准库 strconv:string 与其他基本数据类型的转换

陈明勇

Go golang string 11月月更 strconv

设计模式之美--MVC(1)的贫血模型、充血模型

GalaxyCreater

设计模式

Java HashMap 在获得 Key 的 Hash 值的时候用的是什么算法

HoneyMoose

会议都在云上开,华为云会议具有超高性价比

清欢科技

企业运维强驱动

秃头也爱科技

设计模式之美--MVC(1)充血模型的DDD开发模式例子

GalaxyCreater

设计模式

AngularJS进阶(九)控制器controller之间如何通信

No Silver Bullet

通信 AngularJS 12月月更

Java Hash 碰撞

HoneyMoose

Vision Transformer这两年

OneFlow

人工智能 深度学习 NLP 大模型

华为云云服务器:赢麻了是种什么体验?

路过的憨憨

华为

企业如何高质量上云?华为云服务器告诉你!

路过的憨憨

华为

企业上云原来如此简单,华为云带你体验云上风采

清欢科技

华为云CDN 真的有点“东西”!极速网上冲浪全靠它

爱科技的水月

一个有点咬文嚼字的 sorting 和 ordering

HoneyMoose

​ AngularJS进阶(七)AngularJS实现根据不同条件显示不同控件

No Silver Bullet

AngularJS 12月月更 条件筛选

华为云CDN,为你开启更快速的上网体验!

秃头也爱科技

一站式解决方案,华为云CDN这波双十一很强!

秃头也爱科技

三种基本排序

我是一个茶壶

排序算法 C语音 11月月更

Hash 的定义

HoneyMoose

双十一特惠,华为云桌面助力便捷高效办公!

爱科技的水月

Java HashMap 的扩容因子为什么是 0.75

HoneyMoose

JavaScript进阶(八)实现图片预览并导入服务器功能

No Silver Bullet

图片预览 AngularJS 12月月更

企业云上办公的最佳选择——华为云桌面Workspace

爱科技的水月

计算效率提升 10 倍,存储成本降低 60%,灵犀科技基于 Apache Doris 建设统一数据服务平台技术实践_数据库_SelectDB_InfoQ精选文章