dbaplus社群 05月17日 13:07
分布式数据库真的是伪需求吗?
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

文章探讨了分布式数据库在当前数据库技术发展中的地位,特别是在国产数据库替代浪潮下,用户对分布式数据库需求的重新审视。文章指出,虽然单元化方案能部分替代分布式数据库,但分布式数据库在特定场景下仍具备优势,如一体化管理、跨库查询、备份和高可用性等方面。文章还分析了分布式数据库在互联网、运维管理、复杂查询等场景下的应用,并讨论了价格因素,认为随着国产数据库的发展,分布式数据库的价格将更具竞争力。

💡 单元化方案虽然可以部分替代分布式数据库,但对于需要大量分片的场景,分布式数据库在管理、查询、备份和高可用性方面具有优势。

🌐 具有互联网业务特征的高并发交易系统天然适合分布式数据库,这类系统通常基于索引进行单表或少量表关联查询,易于适配。

⚙️ 对于运维管理需求,分布式数据库的多租户模式在纳管大量小型数据库时,相比容器化方案,在运维便捷性上更具优势。

🔍 对于查询相对复杂、数据量较大但对SQL执行延时不敏感的OLTP系统,TiDB等分布式数据库是理想选择,无需考虑分片键,方便扩展。

💰 尽管分布式数据库价格较高,但随着国产数据库的普及和市场发展,其价格有望下降,变得更具竞争力,厂商也已推出集中式版本以适应市场需求。

白鳝 2025-05-17 08:02 广东

单元化做到位就可以了吗?

每隔一段时间,“分布式数据库是必须的?还是伪需求?”这个问题就会被热炒一次,随着近期国产数据库替代工作的深入进行,最近很多用户对分布式数据库的应用场景问题,都在做更加深入的思考,所以近期也有不少这方面的争论。

其中最典型的观点,是不少人甚至觉得对分布式数据库的需求是个伪需求。

其主要观点是:任何应用,只要单元化工作做到位了,都可以用一系列集中式数据库拼凑出来,有没有分布式数据库都实现得了。而且目前很多用户在使用分布式数据库的时候,往往也采用单元化设计,一个数据库实例中跑一个相对独立的业务,尽可能少地产生分片数据。对于这种分布式数据库的使用方式,又退回了10多年前分布式数据库的雏形-分库分表的模式。

上述两种情况,确实在目前的很多用户侧出现,有些以前认为关键应用必须使用分布式数据库的用户,也在反思其之前的观点。再加上近期OceanBase和TiDB这两个老牌的云原生分布数据库厂商都在大力推广单机一体化,这些现象都成为“分布式数据库是伪需求”最好的注解。

当前确实对于分布式数据库的应用场景的思考更加理性一些了,记得2-3年前我和一些金融、运营商和大型央国企的数据库主管领导交流的时候,他们都认为以他们的数据库规模和业务的重要程度来看,分布式数据库是他们的必选。最近这段时间与他们交流的时候,他们的观点务实了许多。

虽然如此,“分布式数据库是个伪需求”这句话也还是太武断了,我们对分布式数据库的应用场景做更理性思考的时候,不能走向另外一个极端。一个企业是否需要使用分布式数据库,还是要看企业自身的特点和业务场景带来的真实需求。

具有互联网业务特征的应用,我就不多说了,这些以高并发交易为主的业务,天然是分布式数据库所擅长的。这些系统中对于数据查询,往往也是基于索引的单表或者两三张表的关联查询,这些系统很容易适配分布式数据库。

首先来看一个常见的场景,以前由数套Oracle RAC组成的系统迁移到国产数据库上的时候,可能可以分拆为一两百个集中式数据库,由应用改造后做分库分表。也可以将这些集中式数据库单元化存放到一套多节点分布式数据库上。

两种方案虽然都在应用上需要做很多的单元化改造,不过区别还是很大的。对于这种需要上百个分片来替代的场景,分布式数据库在一体化管理、轻量级跨库关联查询、数据库备份、高可用管理、灾备管理等方面还是具有较大的优势。对于资金不是大问题的行业来说,选择分布式数据库还是有优势的。

另外一个场景是,现在很多企业使用了上千甚至上万个小型的开源数据库,比如MySQL/PostgreSQL,虽然跑在这些数据库上的系统并非关键系统,但是一旦出问题,也会影响业务,因此运维管理是必须的。那么多的数据库要去管理和运维其实是十分费劲的,如果用几套分布式数据库集群,利用租户来纳管这些小库,在运维管理上可以简化很多。有朋友会说这种情况下怎么不用容器?搞个k8s集群不一样解决吗?

是的,k8s集群也可以实现类似的问题,不过K8s集群只是一种底层容器设施,Operator可以让数据运管变得更加简单,但是对于这些数据的监控与运维需求依然存在,分布式数据库多租户的方式在整体运维便捷性方面还是有优势的。目前这两种应用场景在企业用户侧都是存在的。

还有一些企业应用场景,也属于OLTP,不过查询相对复杂,数据量较大,对于SQL执行延时要求并不严苛。这种系统使用TiDB这样的数据库来说是十分适合的,在数据库设计的时候不需要考虑SHARDING KEY的问题,可以通过TiDB的天然的分布式特性扩充计算和存储节点,来适应业务的增长。唯一的缺点是,无法适应较为极致的低延时业务需求。

这个场景如果换成OceanBase,在交易延时上可能会更好一些,不过数据库设计要复杂一些,分区键、表组等的设计对于研发人员来说要求会更高一些。不过OceanBase强大的数据压缩特性,会让你在存储容量上节约大量的资金,在我们的一些用户侧,压缩比可以达到5:1。

从上面的几个例子来看,分布式数据库虽非万能,但是还是拥有十分丰富的应用场景的。可能有朋友觉得分布式数据库太贵了,很多企业用不起。

确实与集中式数据库目前的价格相比分布式数据库还是太贵

这是因为目前国产分布式数据库的用户都是比较有钱的,因此在销售策略上,分布式数据库的价格并不亲民。不过实际上很多分布式数据库的用户也并没有花你想象的价格购买产品,场地授权也是很普遍的。

随着国产数据库的普及程度的增加,分布式数据库的单价也会下降的。目前分布式数据库厂商推出集中式版本,并为其制定了一个与集中式数据库可竞争的价格,其实是为了保护其高端市场的利润,随着数据库产品的日益成熟,以及国内数据库市场的发展,分布式数据库的价格也会进入大家用得起的区间的。

作者丨白鳝

来源丨公众号:白鳝的洞穴(ID:baishan755

*仅为提供参考和学习交流,不代表dbaplus社群立场!dbaplus社群欢迎广大技术人员投稿,投稿邮箱:editor@dbaplus.cn

阅读原文

跳转微信打开

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

分布式数据库 国产数据库 单元化 应用场景 数据库价格
相关文章