分享:YMatrix 售前负责人 王健
整理:墨天轮
导读
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是第一家提供完整向量化能力的厂商,拥有非常完善的向量化算子,支持包括聚集、索引、过滤、聚集排序、窗口函数等各种操作,全面满足了各种复杂场景的需求。
图6 MXVector 向量化计算引擎示意图
六、 异地容灾
此外,针对金融级客户,尤其是对高可用性要求极为关键的客户群体,YMatrix提供了先进的异地容灾解决方案。作为首个引入这项技术的提供商,YMatrix能够支持两套1x集群之间的数据同步,客户可以选择同步或异步模式,以满足不同业务需求。不仅如此,基于我们强大的读取能力,确保即使在灾难恢复模式下,客户也能够无缝访问和处理数据。
图7 YMatrix 异地容灾解决方案
从Greenplum迁移
最后和大家来分享一下YMatrix的金融替换案例,我们在某国有大行进行了Greenplum 4.3版本的替换,实现了重要的滚动迁移,取得了显著的成果。
我们采用分阶段迁移的方法。首先我们对集群业务进行了梳理,并迁移了关键业务,识别了增量字段,同步了增量数据。这其中的迁移效果显著,完全替换了旧系统,提升了加工和处理能力。原本需要数分钟的任务现在只需数秒完成,单任务处理提升至至少20个并行任务,原本多表关联超时的问题大幅改善,大表关联处理时间从13分钟降至50秒。
在高可用性方面,我们实现了全节点自动故障切换,解决了原有系统中手动切换的故障问题。迁移效率也显著提高。我们支持点对点节点直连,提升并发迁移速度,支持异构和同构迁移以及增量迁移。
图8 从Greenplum迁移到YMatrix过程
在具体迁移过程中,原架构使用的是x86+3通道服务器,迁移到鲲鹏信号体系后,节点数量从32台减少到10台。整个迁移过程耗时5小时,迁移了2万多张表和24TB数据。在分布式写入方面,我们充分利用了系统性能,达到了满负载写入。此外,我们还支持条件筛选、数据分布策略调整、数据一致性校验以及结果确认。此次迁移显著提升了系统的性能和稳定性,为金融行业提供了可靠的数据处理解决方案。如果大家YMatrix产品感兴趣,欢迎添加小助手。
我今天的分享就到这里,谢谢大家!
图9 点击了解更多YMatrix资讯
更多精彩内容,欢迎大家观看现场视频回放与会议资料
视频回放:https://www.modb.pro/video/9734
会议资料:https://www.modb.pro/doc/131873
评论

