暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

YMatrix 王健:从Greenplum 到下一代数仓

yMatrix 2024-07-05
340

前言

Greenplum 宣布闭源为中国数据仓库市场带来了新的挑战和机遇,驱动着企业向下一代数据仓库的创新发展。【墨天轮数据库沙龙】邀请到 YMatrix 售前负责人 王健,为大家带来《从 Greenplum 到下一代数仓》主题分享,以下为演讲实录。

王健
YMatrix 售前负责人


逐渐成熟的中国数仓市场

在谈到中国数仓的发展时,我们必须提到一些关键企业,它们在技术引入和推广方面扮演了至关重要的角色,推动了整个行业的迅速成长。中国数仓市场最早由 Teradata 推动,1997年 Teradata 进入中国市场,迅速占据了中国金融市场约 50% 的份额。它凭借其强大的技术实力和市场经验,在中国市场取得了显著的成功。2014年,Teradata 在中国区的营收达到了 27 亿美元,展示了其在数据仓库领域的巨大影响力。然而,由于本地化支持不足、国产化浪潮的兴起以及技术创新停滞,Teradata 在 2023 年退出了中国市场。这一退出标志着一个时代的结束,同时也为本土数据仓库解决方案提供了发展的契机。

与 Teradata 不同,Greenplum 被誉为数仓的普及者。它将数仓的能力普及到更多的开发者、中小型公司甚至个人用户。它的优势和特点包括免费开源、广泛的用户基础、灵活性和易用性,其中 Greenplum 的一个重大举措是在 2015 年开源,并提供免费的数仓产品。这一举措极大地推动了其在商业客户和社区用户中的普及。然而,值得注意的是,Greenplum 在 2024 年初宣布闭源,这一举措可能会对其社区用户产生一定的影响,但其在数据仓库普及方面的贡献仍然不可忽视。


图1 Greenplum 特性与优势
Greenplum 闭源市场的影响是双重的:一方面,它为有研发能力的厂商提供了创新和竞争的机会,可以利用闭源后的Greenplum作为一个参照,通过开发出独特的功能和创新技术,来填补市场空白并拉开与竞争对手的距离。另一方面,它对缺乏研发能力的厂商和普通用户提出了更高的要求,需要他们适应新环境并寻找新的应对策略。

下一代数仓是什么

目前,数仓方案主要分为两种:传统 Hadoop 方案和基于 Greenplum 方案。

一、传统的数仓方案

Hadoop 方案

Hadoop 方案由多个组件组成,每个组件对应特定的功能模块。例如:

  • HDFS(Hadoop 分布式文件系统):用于存储文件,类似于存储系统。

  • Hive:将文件转换为表,通过 SQL 查询和展示结果。

  • Spark:进行批处理,生成 DWD(数据仓库详细层)或 DIS(数据集成服务)。

  • Flink:用于实时数据链路展示和分析。

  • HBase:进行高频数据检查。

  • MySQL/PG:用于实时报表展示。

图2 传统 Hadoop 方案

这种方案的问题在于架构复杂、数据链路长,每个环节如果出现问题都会影响上下游,变更和调整也会带来很大的影响。此外,Hadoop 方案主要按批次写入,尽管引入 Flink 可以实现实时写入,但整体架构依然复杂,查询性能不佳,数据存储压缩比低。

基于 Greenplum 方案

Greenplum 方案更多地利用云端关系数据库数据,通过定期(如T+1)将数据抽取过来,进行扩围、聚集和清洗,然后将数据导入 MySQL 或 PG 中进行数据展示。这种方案支持 T+1 的分析,适应了对数据时效性要求越来越高的需求。数据的新鲜度决定了其价值,用户更关注当前数据而非历史数据。

图3 基于 Greenplum 方案

Greenplum 方案的不足在于并发能力较弱,更新和删除操作效率低,需要独立的 ADS 服务来进行数据报告展示。此外,多层架构导致数据冗余,扩容不友好,需要停机,不利于应对大规模数据增长需求。

二、一栈式数仓架构

因此,下一代数仓需要适应现代数据处理的复杂环境和多样化需求,推动企业在数据时代的快速发展。YMatrix 的一栈式数据仓库架构具有多项功能和优化,提供了显著的性能提升和稳定的扩展性

在数据加工方面,YMatrix 与 Greenplum(GP)完全兼容,并在向量化处理和行业标准方面进行了多项优化,大幅提升了整体性能。对于复杂计算任务,我们通过 PR Python 在库内进行机器学习分析,显著提高了数据处理和分析的效率。YMatrix 架构具有良好的并发处理能力,在单表查询或 TPCP 测试中,它的性能可以达到单机 PostgreSQL 的水平,保持高并发情况下的稳定性能。我们的一栈式架构支持不停机扩容,所有数据节点能够自动故障切换,解决了 Greenplum 无法自动切换的问题,提升了系统的高可用性和稳定性。

此外,架构通过数据抽取和实时写入的方式,构建 ODS、DR、DWS 等数据层,并在数据集市层进行展示和访问。支持关系型数据库、时序数据和 JSON 数据的处理,满足多样化的数据需求。此外,架构具备行列混存的能力,提供了高效的压缩比和良好的压缩效果,在数据查询和检索分析过程中表现出色。支持关系型数据、时序数据和 JSON 数据的多模数据处理,确保灵活应对各种数据类型和需求。


图4 YMatrix 一栈式数据仓库架构示意图

三、 MatrixGate 数据高速实时入仓

在现代数据仓库架构中,高速实时入仓能力至关重要。YMatrix 一栈式数据仓库架构通过创新的组件和技术,实现了高效的数据写入和处理。

传统的 Greenplum(GP)写入方式需要通过 Maas 节点进行数据分发,然后写入到对应的存储节点。虽然 Greenplum 也有 GPS 的方式,能够直接写入存储节点,但其本质上仍然是一种批处理方式。
YMatrix 架构引入了 MatrixGate 组件进行流处理,具体来说,我们将大的批处理拆分成多个小的子批次(VP),这使得数据的写入和可见性大大提升。例如,当写入 1 亿行数据时,传统方式可能需要全部写入完毕才能看到结果,而我们的方式则是每写入 100 条数据就能立即看到这 100 条数据的结果,极大地提高了数据的时效性。
在许多场景中,我们的架构能够实现数百万行数据的高速写入。除此之外,我们还支持 upsert(更新插入)语义,确保在数据传输和写入过程中,数据不会出现重叠、错误或丢失的情况,达到数据的一致性和完整性。这些创新使得 YMatrix 架构能够更好地满足现代企业对高速实时数据处理的需求。
图5 MatrixGate 数据高速实时入仓示意图
四、 MARS3 存储引擎

YMatrix 在存储引擎方面进行了一些重要的优化,以解决 Greenplum(GP)常见的仅适合大批量数据导入、操作效率低下等问题。

YMatrix 引入了行列混存(Hybrid Row-Column Storage)的概念。在我们的表格内,部分数据按列存储,但整行数据能够在数据块内定位,避免了查询单行数据时需要读取大量数据文件的问题。此外,我们对数据块进行有序排序(Sorted Columns),通过指定排序字段,使数据块内的数据有序,从而提高压缩比和检索效率。

我们还针对每一列、每一范围,甚至每一数据块,采用自适应压缩算法(Adaptive Compression Algorithms),自动识别数据特征并选择最合适的压缩算法,从而提高压缩比。预聚集裁剪信息(Block Header Metadata)也存储在数据块头部,包括数据范围(如最大值和最小值)等统计信息,从而提高检索效率。通过预聚集信息实现阶段跳过(Segment Skipping),在筛选特定数据范围时,可以跳过不符合条件的数据块,加快数据筛选速度。

图6 MARS3 存储引擎示意图

五、 MXVector 向量化计算引擎

在讲到向量化引擎时,我们先了解下标量化与向量化的区别。标量化需要多次指令周期来计算例如 a 加 b 等于 c,而向量化则利用 CPU 的指令集,在单个指令周期内处理多个数据输入,例如同时计算三组 a 加三组 b,直接得出三组 c,显著提升了性能效率,通常达到指数级的提升。

通过引入 MXVector 向量化计算引擎,我们在查询性能优化方面取得了显著成效。对于一个带有复杂条件的查询,关闭向量化时可能需要 5 秒钟完成,但开启向量化后,仅需 30 毫秒即可完成,性能提升效果非常明显。

当前市场上许多厂商已经提供了向量化的解决方案,但在 PG 或 GP 领域,YMatrix 是第一家提供完整向量化能力的厂商,拥有非常完善的向量化算子,支持包括聚集、索引、过滤、聚集排序、窗口函数等各种操作,全面满足了各种复杂场景的需求。

图7 MXVector 向量化计算引擎示意图

六、 异地容灾

此外,针对金融级客户,尤其是对高可用性要求极为关键的客户群体,YMatrix 提供了先进的异地容灾解决方案。作为首个引入这项技术的提供商,YMatrix 能够支持两套 1x 集群之间的数据同步,客户可以选择同步或异步模式,以满足不同业务需求。不仅如此,基于我们强大的读取能力,确保即使在灾难恢复模式下,客户也能够无缝访问和处理数据。

图8 YMatrix 异地容灾解决方案

Greenplum 迁移

最后和大家来分享一下 YMatrix 的金融替换案例,我们在某国有大行进行了 Greenplum 4.3 版本的替换,实现了重要的滚动迁移,取得了显著的成果。

我们采用分阶段迁移的方法。首先我们对集群业务进行了梳理,并迁移了关键业务,识别了增量字段,同步了增量数据。这其中的迁移效果显著,完全替换了旧系统,提升了加工和处理能力。原本需要数分钟的任务现在只需数秒完成,单任务处理提升至至少 20 个并行任务,原本多表关联超时的问题大幅改善,大表关联处理时间从 13 分钟降至 50 秒。
在高可用性方面,我们实现了全节点自动故障切换,解决了原有系统中手动切换的故障问题。迁移效率也显著提高。我们支持点对点节点直连,提升并发迁移速度,支持异构和同构迁移以及增量迁移。

图9 从 Greenplum 迁移到 YMatrix 过程

在具体迁移过程中,原架构使用的是 x86+3 通道服务器,迁移到鲲鹏信号体系后,节点数量从 32 台减少到 10 台。整个迁移过程耗时 5 小时,迁移了 2 万多张表和 24TB 据。在分布式写入方面,我们充分利用了系统性能,达到了满负载写入。此外,我们还支持条件筛选、数据分布策略调整、数据一致性校验以及结果确认。此次迁移显著提升了系统的性能和稳定性,为金融行业提供了可靠的数据处理解决方案。如果大家 YMatrix产品感兴趣,欢迎添加小助手。

我今天的分享就到这里,谢谢大家!

感谢你的阅读,YMatrix 期待与志同道合的你一起同行。

扫码添加小 M 助手

加入官方技术交流群

电话 | 400-800-0824

官网 |www.ymatrix.cn

推荐阅读


YMatrix 荣膺第七届中关村国际前沿科技大赛大数据与云计算领域冠军



从 Hadoop 生态到 YMatrix 体系,某车企换来 10 倍性能提升



打造坚不可摧的数据库服务(下):注入 1000 次故障


最后修改时间:2024-07-15 11:53:41
文章转载自yMatrix,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论