传统关系型数据库、中间件+数据库、原生分布式数据库使用原则?

1、随着newsql数据库发展,数据库可以说是百花齐放,对于银行业应用系统来说,传统关系型数据库、中间件+关系型数据库、原生分布式数据库使用原则从几个维度考虑?2、对于某些OLAP应用来说,基于中间件+关系型数据库、原生分布式数据库、或者nosql数据库(hadoop、mpp)都可以实现时,是...显示全部

1、随着newsql数据库发展,数据库可以说是百花齐放,对于银行业应用系统来说,传统关系型数据库、中间件+关系型数据库、原生分布式数据库使用原则从几个维度考虑?
2、对于某些OLAP应用来说,基于中间件+关系型数据库、原生分布式数据库、或者nosql数据库(hadoop、mpp)都可以实现时,是从几个维度考虑使用什么数据库的?

收起
参与8

查看其它 1 个回答fanyqing的回答

fanyqingfanyqing课题专家组技术架构厦门银行

问题1。
传统关系型数据库,如Oracle、MySQL、DB2等,支持SQL操作,具备ACID属性,通常用于处理业务数据较小的OLTP。随着业务数据的增长,传统关系型数据库已慢慢无法满足业务需求,于是,应用系统开始考虑分库分表的方式,即将一个业务系统的数据按照一定的规则,分布到多个数据库上,这样每个数据库需要处理的数据可以更少,以此满足业务系统不断增加的数据处理需求。中间件+分布式数据库模式就是属于此种情形。其中中间件主要用于数据的分片与分布式事务的处理,对应用来说是透明的。因此,中间件+分布式数据库主要用于数据量大的OLTP业务。而原生分布式数据库需重构数据库系统,原生支持分布式事务处理与数据切分,原生分布式数据库根据其数据处理引擎,有些适用于OLTP场景,有些适用于OLAP场景,还有些适用于离线分析场景。因此,我们在选择数据库时,首先要考虑是应用于哪类业务场景,其次要考虑该业务所要处理的数据量、数据增长的速度,业务的并发量等。如果选择的是中间件+关系型数据库,在数据库设计时,需要特别注意分区键和分区策略的选择,合理布局数据,尽量避免跨节点的分布式事务处理,以提高数据库的效率。
问题2:
对于OLAP应用,虽然各类数据库都可以实现业务数据的处理需求,但实现的成本和实现的效果大不不同。比如,关系型数据库(包括中间件+关系型数据库),大都采用行存,适用于OLTP场景,如果用于OLAP,虽然可实现业务能力,但效率较差。即使是原生分布式数据库,因重构数据库系统,也要根据数据处理引擎,选择合适的原生分布式数据库来处理OLAP业务。至于NoSQL,因SQL支持能力有限,如果要用于OLAP,会增加应用的开发难度。故在实际应用时,需要根据业务场景,以及自身发技术储备,选择合适的数据库。

银行 · 2021-04-26
浏览1883

回答者

fanyqing
技术架构厦门银行
擅长领域: 分布式系统服务器数据库

fanyqing 最近回答过的问题

回答状态

  • 发布时间:2021-04-26
  • 关注会员:3 人
  • 回答浏览:1883
  • X社区推广