作者:百观科技数据工程团队 高级工程师 齐鹏
背景介绍
公司介绍
百观科技成立于 2016 年,是以数据为核心驱动力的市场研究和信息服务公司。百观以全域数据为基础,通过客观科学的数据分析,解锁数据价值,为客户提供具有现实指导意义的洞察和解决方案。
百观的数据产品和解决方案目前覆盖 10+行业、200,000+企业的上百种商业分析维度,获得了市场广泛的认可。当前,百观的客户主要包括国内外大型基金、主权基金、PE/VC 机构、头部咨询和企服公司、知名消费企业和互联网企业等。
业务特征
自 2016 年起,百观持续积累了海量的行业数据,并且每年都呈现显著的增长趋势。这些数据不仅规模庞大,更兼具多样的数据类型、复杂的数据结构和丰富的数据场景 。为了从这些数据中挖掘有价值的洞见,百观的数据团队需要执行繁琐且复杂的数据处理流程 ,包括数据清洗、转换、聚合以及多维度综合分析等多个环节。尤其是在业务高峰时期,完整的数据处理流程叠加庞大的数据体量,使得算力需求呈指数级增长。
百观数据工程团队认为,技术方法论的本质是一种经济学:在供需框架下,以尽可能小的成本满足尽可能多的需求场景,发挥最大效能,创造技术价值。因此,如何平衡灵活丰富的数据分析算法与海量数据处理需求,以及如何在高算力需求下实现成本优化,成为了百观数据工程团队面临的核心挑战和亟待解决的关键问题。
为了应对新的业务挑战,百观选择与阿里云合作,利用其强大的 EMR 平台对老系统进行重构,落地了符合业务场景和分析师习惯的工程解决方案。
为什么选择阿里云 EMR
在这样的业务场景下,数据工程团队面临以下挑战:
维度 | 稳定性 | 性能 | 可扩展性 | 成本 |
---|---|---|---|---|
存储 | + 长期存储 + 避免意外丢失 + 多粒度备份 + 有效灾备 | + 海量规模高速读写 + 备份易找回 | + 易于扩展容量 + 支持多种数据格式 | + 高性价比 + 支持冷热分层 |
计算 | + 日常保证基础算力 + 能够正确处理任务异常和失败 | + 高峰期应对计算资源突增,响应速度快 + 在原生 Spark 生态基础上,引入中间件,进一步压榨计算性能 | + 支持核心软件的自定义配置 + 支持计算环境的开发与扩展 | + 高性价比 + 进一步提高计算资源利用率 |
面对这些技术痛点,相较于其他数据平台产品,阿里云 EMR 具备显著的优势:
- 依托高可用的 OSS 存储
相较于其他数据生产平台,EMR 依托 OSS 实现数据存储,因此得以搭建完善的 LakeHouse,从而既能够向下支持多样化的数据,又能够向上承载复杂的数据操作和业务生产。
- 开箱即用的标准开源技术生态
EMR 除了包含核心的 Spark、Hadoop 生态之外,还支持多种数据生态的各类软件,包括:
- LakeHouse 的关键实现:Iceberg/Hudi/Delta
- 实时数据流框架:Paimon/Flink
- OLAP 分析平台:Trino/Presto等
这些平台工具已经做到开箱即用的状态,无需重新部署,只需根据需求调整参数,即可用于生产环境。
- 高度可定制化的运行环境
在保留开箱即用的基础上,EMR 为用户提供了高度定制化的选项,除了内置软件的参数均可调整之外,对于有能力的用户,可以深入 EMR 集群的系统内部做更自由的开发,以满足复杂且多样的生产需求。
- 兼容面广的 Datalake Formation
LakeHouse 需要一套功能完善、兼容广泛且高性能的数据目录(Catalog),Datalake Formation(DLF)能够满足这一需求,并且配合 DLF-Auth 得以实现更精细的数据权限管控。
- 灵活的弹性调度控制
作为弹性计算,EMR 提供丰富的细节参数,让用户可以根据自身业务特征定制弹性策略。
目前 EMR 已支持托管弹性策略,用户亦可以忽略复杂的参数,直接一键开启弹性计算模式。
- 完善的服务保障
在以上完备的技术方案基础上,阿里云提供了专业的技术支持,可以帮助优化方案的实现并解答各种疑难问题。
技术方案设计

百观数据平台,主要面向数据工程师、数据分析师和数据科学家,其业务场景以数据的即席分析为主,以定时调度任务为辅,并提供简单易读的 OLAP 查询,覆盖数据接入、数据清洗、数据分析与聚合、数据交付全流程。
数据接入
数据从外部系统,通过百观数据工程团队自研工具等方式,定时写入 OSS。这种方法简单直接,避免了各个数据引擎之间的对接和转换,最大程度提高研发效率。
数据清洗
数据接入 OSS 后,即可使用 Spark 和 Iceberg 等方式,通过拆解、整理和清洗等方式,最终接入数据湖,并生成 Catalog。这一步沿用了先前的 Iceberg 方案,并且会将数据作业集成到 Airflow 上,定时发送到 EMR 集群进行处理。
聚合与分析
在这一环节,数据分析师与数据科学家合作,完成聚合、分析及更多数据科学方面的研究。这部分工作主要是通过自建的 Notebook 提交到 EMR 集群,其计算环境复杂多样,不同场景下的计算量也有巨大差异。
EMR 的标准化、自研定制化、高灵敏弹性调度等特性能够很好地应对这种复杂数据研究的场景,不仅确保开发者灵活处理复杂数据,还降低了运维难度,甚至直接降低计算成本。
核心组件的实践
以下介绍三个核心组件的实践。
DLF on Iceberg 方案
在数据工程团队测试中,DLF 能够完美继承 Spark/Hive 表,同时也能够接入 Iceberg 表。但数据工程团队发现了潜在的致命问题,在大规模 Iceberg 表的场景中,DLF 疑似存在性能下降,这些性能问题会导致计算失败,致使核心业务受阻。在发现该隐患后,数据工程团队立刻将该问题上报给 EMR 产研团队,并且与其紧密合作,从多份日志中拼凑出问题的全貌,共同分析问题有可能的成因和解决方案。最终,EMR 产研团队成功解决该问题,由此可以打通 DLF 与 Iceberg 的高性能无缝集成,也实现了 LakeHouse 的完整构建。
EMR 集群弹性调度策略
阿里云 EMR 早先并未提供托管弹性调度,而是将调度配置直接交给用户选择,经验丰富的用户可以根据自身业务特性调配出多样化的弹性规则。数据工程团队先前直接使用当时托管的弹性调度算法,并未深入研究 EMR 弹性资源调度的问题。因此,尽管数据工程团队对该问题颇有见解,但由于缺乏实践操作和相关数据,且难以复刻生产环境进行测试,一旦调整不当,就会陷入"既无法满足业务响应,又无法及时回收空闲资源"的两难境地。于是,数据工程团队决定求助于 EMR 产研团队,而EMR 产研团队亦能及时响应,多次主动与百观数据团队进行沟通,最终共同设计出一套阶梯式的高效低成本的弹性调度模式。
目前EMR 托管弹性调度已上线三个月,这期间百观数据工程团队依托该功能持续稳定为公司业务提供支持,集群利用率由原先 45%左右提高至接近 70%。
OLAP 方案的打磨
数据工程团队此前使用AWS Athena,这套 OLAP 引擎依托于 Trino 实现了 Serverless 式的数据查询服务,这意味着:
- 已有的查询 SQL 均符合 Trino 语法
- 单条查询成本低
- Serverless Trino 的计算资源充足,性能有保障
阿里云数据产品生态包含多种类型的数据库,这些数据库在各自领适用领域内有足够强的优势。尽管目前没有直接提供 Serverless版本的Trino,但阿里云EMR内包含有社区版Trino。
数据工程团队对该场景的考量,优先是存量SQL兼容性,其次是成本,因此在做过几轮对比后,最终选择EMR Trino作为该场景的解决方案。
数据工程团队充分评估了阿里云倚天ARM ECS机型的性格规格,认为其卓越的内存计算能力与Trino的OLAP应用高度契合。基于倚天机型的EMR Trino不仅完美满足了兼容性需求,同时还在性价比上展现出巨大优势,对比测试结果如下:
方案 | 成本 | SQL 兼容性 | 性能 |
---|---|---|---|
EMR Trino x86_64 | 较高 | 兼容 | 一般 |
EMR Trino 倚天 | 相同规模显著低于 x86_64 | 兼容 | 相同成本下好于x86_64 |
最终,数据工程团队选择 EMR Trino 搭配倚天机型,这是符合业务需求的最优 OLAP 方案,且性价比提高 20%以上。得益于阿里云 EMR 高度开放的技术生态和其产研团队的精细打磨,这套技术方案在生产系统上长期稳定运行。
显著的提升
相较于百观先前使用的系统,在完成平台重构后,新旧平台在性能、成本等方面有显著收益。
性能层面
由于 EMR 集群性能的提升,以下指标得到了显著优化:
性能指标 | 重构前 | 重构后 | 优化百分比 |
---|---|---|---|
EMR 集群启动速度 | 13min+ | 3min+ | 70%+ |
EMR 集群扩容速度 | 10min+ | 2min+ | 70%+ |
EMR 集群缩容速度 | 5min+ | 2min+ | 60%+ |
核心作业执行时间 | 45min+ | 15min+ | 60%+ |
成本层面
在同等数据规模、相同计算量的条件下,以下成本指标得到了显著优化:
成本指标 | 重构前 | 重构后 | 优化百分比 |
---|---|---|---|
单位时间的计算成本 - 元/CU/时 - 中位数 (1 CU按照1核CPU+4GB内存折算) | 0.72 | 0.23 | 68% |
在此基础上,EMR 的月均成本也得到 50%以上的优化。
业务层面
得益于性能和成本方面的双重优化,业务层面获得了多方面收益:
- 数据响应时间: 部分业务由小时级提高到分钟级,生产速度得到大幅提升。
- 数据研发模式: 更快的数据生产有利于分析师进行更密集的数据操作,使团队间协作更为紧密。
- 数据探查深度: 更强的计算性能有利于业务方进行更复杂的数据探查,以便得出更有价值的数据研究。
- 业务增长空间: 总体优化为业务增长提供了有力支持。
总结与展望
百观科技作为数据要素市场的重要开拓者和数据技术的先进践行者,其业务团队和数据工程团队一致认可此次平台重构。百观 CTO 说:"本次EMR数据湖系统的构建,全面满足了百观的业务需求、提高计算效率、大幅降低成本,是百观与阿里云之间一次成功的深度合作,这离不开阿里云深厚技术积淀和阿里云同事们高效且专业的帮助。事实证明,阿里云 EMR 系列产品及背后的团队已经做到了'国际主流,国内领先'的水准。"
随着业务的发展,百观将继续开展更加多样化、更加有深度的数据洞察,这需要在技术架构、技术过程、技术工具等方面进行立体式升级。阿里云在数据场景还有更多成熟的解决方案,如:实时数仓 Hologres、EMR Serverless Spark 等,这些产品有着突出的优势,值得进一步尝试与合作,共同探索弹性计算的创新场景。