查询效率提升 23 倍,中兴联合 YMatrix 为某运营商打造超融合数据底座

2023-12-01 · YMatrix Team
#案例实践

前言

中兴通讯作为全球领先的综合通信与信息技术解决方案提供商,业务覆盖 160 多个国家和地区,服务全球 1/4 以上人口,其中不乏全球各行业中的龙头企业。

本篇案例将会介绍中兴联合 YMatrix,共同为国内某家通信运营商提供超融合数据服务的实践。在场景测试中,YMatrix 在 38 秒内即完成对 28 亿数据量的查询,在 10 秒内完成 16 亿数据的计算,并对报表进行实时优化,极大降低了用户的工作复杂程度。

1. 背景

近年来,随着 5G 应用在工业、个人消费领域不断普及,巨大的网络规模所产生的海量数据迅猛增长,持续涌入国内通信运营商的底层数据库当中,使得底层数据架构面临的数据量、并发数的挑战日益严峻。

时序、文本等海量非结构化数据是增长最为迅猛的数据种类,为通信运营商后台数据的整合处理带来了极大的难度和压力;与此同时,随着业务的发展,业务部门对于数据分析的实时性的要求也越来越高。因此,基于海量数据的读写查询与高实时性分析能力,成为各大运营商底层数据系统需着重发展的方向之一。

日志查询是能够反映这一方向需求的典型场景之一。过去,该运营商不同业务线均有自己独立的日志系统,不同业务线间日志数据结构不同,并有着不同数据处理系统,给整个后台架构带来了极高的复杂度。同时,由于底层结构和处理逻辑不同,不同数据处理平台之间的协作困难,不仅运维难度高,而且数据无法互通,协同效率低下。

为此,该运营商针对底层数据架构开展了重构。作为承载、运行、分析数据的基础平台,其在整个 IT 系统中的重要性不言而喻,而与这种重要性相匹配的是对数据平台极高的性能要求:一方面区域内日常所产生数据体量极其庞大,海量数据的实时写入对数据库压力巨大;另一方面,不仅涉及的业务线繁多,并且业务线对查询反馈的实时性要求极高。

为此,中兴选择联合四维纵横,通过 YMatrix 超融合的极致性能,共同为该运营商提供高性能的实时写入查询体验。

2. 解决需求与现实的“冲突”

在实践过程中,有限的资源与苛刻的用户诉求之间不可避免会产生“冲突”。

  1. 海量数据与实时性的“冲突”

前端业务日均产生 32 亿的数据量,且需要实时入库,对数据库和磁盘的写入性能带来了极大的考验;

  1. 有限的硬件资源与较高的性能要求的冲突

作为一种硬性成本支出,硬件资源的充足与否,很大程度上决定了底层数据架构的性能表现。在测试现场,机器资源十分有限,只有 4 台 16 核的虚拟机,要支撑能够满足运营商如此大体量数据的实时写入与分析需求的高性能计算的数据架构,是非常困难的。

  1. 复杂查询方式与低执行耗时的冲突

由于业务需要,运营商不仅要求数据库能够在简单场景实现毫秒级返回,还要求在复杂场景 8 秒内返回;在全表聚合的查询方式下,十分考验数据库的计算性能。

  1. 海量数据与存储成本的冲突

相较 SSD 磁盘,HDD 磁盘不仅写入性能差而且容量有限。由于每日新增数据量巨大,客户十分关注数据库的压缩表现,期望以极致的数据压缩能力带来存储成本的降低。

3. YMatrix 实践:由复杂式迈向全站式

  1. 实时查询分析:向量化能力,从 15 分钟到 38 秒

在该运营商的日志查询场景中,查询页面主要分为通用日志、概要统计以及趋势分析三部分,YMatrix 重点针对聚类分析和趋势分析这两类场景进行了大幅性能优化。

聚类分析,就是由多张饼图所组成的统计概览图,每一张饼图代表着一个区域。其中,多个区域持续存在海量数据写入,同时每个区域的业务都需要访问数据库,从而产生多条并发查询。在项目前期对原系统进行性能测试摸底时,我们发现由于查询方式为全表聚合查询,每条并发查询需要占用到大量的 CPU 资源,当多个查询并发时计算所需资源已远远超出了现有系统所能承受的最大值,因此,当执行全天 7 并发查询 16 亿的数据,系统往往需要数分钟后才能返回所有结果。

通过对数据表的分布、排序、分区、字段类型以及压缩方式等维度进行优化,YMatrix 最终将每条并发所占用的 CPU 资源降低为过去的三分之一,极大节省了机器资源,为多条并发查询提供更加充足的性能空间,查询执行时间长的问题也迎刃而解。

趋势分析层面,运营商需要对 28 亿数据进行趋势分析,以便对业务做出合理决策。在此之前,运营商为了提升计算性能,开发人员在原有平台架构的基础上对许多函数进行了自定义,且其中包含大量的时序函数,导致计算逻辑十分复杂,28 亿体量的数据在 15 分钟仍未计算出结果,拉低了业务人员的查询体验。

得益于 YMatrix 的向量化执行引擎,原生的 time_bucket 函数非常适合趋势分析 SQL 场景,不仅一条 SQL 即可实现过去需要几百行 SQL 才能实现的功能,而且有着极其出色的性能表现。在后续首次测试中,YMatrix 在 38 秒内即完成对 28 亿数据量的查询,在 10 秒内完成 16 亿数据的计算,并对报表进行实时优化,极大降低了用户的工作复杂程度。

此外,YMatrix 还提供种类多样的应用场景查询功能,在明细查询外在如聚集查询,多维查询,多表关联方面表现出色,同时支撑高级语言分析(Python/R/Java),以及联邦查询(Hadoop 生态等)等增强功能,能够同时满足各类功能和性能需求。

  1. 海量数据的极致写入,写入性能提升四倍

磁盘性能的高低,对于数据写入的影响非常大。过去,由于现场机器的磁盘性能受限,数据写入速度严重影响了作为下游的数据查询与分析能力。

由于数据写入往往会占用较高的 CPU 使用率,在进行实时查询时往往会带来较大的时间损失。HDD 磁盘场景的写入性能较差,要在此基础上实现数据库的写入性能的大幅度提升,难度可想而知。

基于 YMatrix MARS3 存储引擎,中兴充分利用通信领域大数据的特点,多管齐下:一方面将数据同时发送至所有数据节点并行写入,另一方面在传输时压缩数据充分利用带宽,将磁盘性能利用到极致,最大限度的发挥了分布式数据系统的优势,最终将写入效率提升了四倍,大幅提升了运营商底层数据平台面向海量数据的快速写入能力。 3. 高效数据压缩,最大限度节省存储空间

对于运营商而言,日均产生数十亿的数据,如此大体量的数据会为最底层的存储带来极大的成本压力;而随着业务增长以及用户消费数据能力的提高,日均产生的数据量也必定会持续增长。因此,如何控制数据存储成本是底层数据系统从长期角度不得不考虑的问题。

基于 YMatrix 自研的 MARS3 存储引擎,通过使用高效的压缩算法,在该运营商应用场景中大幅减少了 IO 量,在数据压力较大的前提下帮助该运营商建立起低成本且高效的存储空间布局。此外,YMatrix 可为用户提供包括增量编码、面向浮点数优化的 Gorilla 编码等多种编码方式,以及透明压缩传输、zstd、lz4、gzip、delta-delta 等多种压缩算法,配合专利级编码链压缩技术,支持业务人员对每一个数据列的数据特征因地制宜地采用最适合编码方案并组合为编码链,从而达到最佳性价比,既实现数据的高效存储,又不会对查询性能产生负面影响。

在生产场景当中,YMatrix 的压缩比高达 20-100 倍,可节约大量的存储资源。同时由于 YMatrix 本身超融合的特性,可覆盖大部分应用场景,因此不存在调度、数据孤岛等情况,能够大幅度提升底层数据平台的性能,进而缩减服务器数量,大幅节省软硬件成本。

4. 后续规划

在服务器以及磁盘等硬件资源及性能无法升级的情况下,中兴与 YMatrix 的技术结合,不仅极大提升了运营商在海量数据的写入效率,同时通过强大的数据压缩能力节约了存储空间,更保证了来自业务侧对实时日志查询的性能需求。

接下来,为了进一步提升在高并发大数据量场景下的写入和查询效率,YMatrix 技术团队正进行窗口函数的改造优化,在这项工作完成后,查询效率将能够得到进一步的提升。此外,由于未来数据体量将会持续增长,对于数据写入和查询的性能考验会长期存在,后续 YMatrix 将会对多网元、多用户以及混合读写场景进行验证测试,尽可能降低数据增长所带来的压力,为全场景海量数据的实时查询提供更完善的技术支持。