大家好,我是mikechen。
分布式数据库是非常重要的分布式系统,大型网站以及各大厂都会广泛应用,本篇就全面来给大家详解分布式数据库@mikechen
本篇已收于mikechen原创超30万字《阿里架构师进阶专题合集》里面。
分布式数据库,从名字上可以拆解为:分布式+数据库,由多个独立实体组成,并且彼此通过网络进行互联的数据库,这就是分布式数据库。
分布式数据库,主要包含如下4大特征:
1.分布透明性
分布式数据库的第一大特征就是:分布透明性,有了分布透明性,用户的应用程序书写起来就如同数据没有分布一样。
用户不必关心数据的逻辑分区,不必关心数据物理位置分布的细节,也不必关心重复副本,以及冗余数据的一致性等问题。
这些问题都会由分布式数据库来解决,所以分布式透明性就成了分布式数据库的第一大特征。
2.集中节点结合
为了保证数据库的安全性、完整性,对共享数据库的控制是集中的,数据库是用户共享的资源在集中式数据库中的。
3.复制透明性
在分布式数据库系统中,可以把一个场地的数据,复制到其他场地存放,用户不用关心数据库在网络中各个节点的复制情况。
被复制的数据的更新,都由系统自动完成,应用程序可以使用复制到本地的数据在本地完成分布式操作。
4.易于扩展性
在大多数网络环境中,单个数据库服务器最终会不满足使用,如果服务器软件支持透明的水平扩展,那么就可以增加多个服务器,来进一步分布数据和分担处理任务。
简单总结一下,分布式数据库发展大概经历了三个阶段:
第一代是:分布式存储系统
也称为 NoSQL,2013 年之前比较流行,基本思路是牺牲 SQL,牺牲事务、一致性和企业级功能,只支持简单的 KV 操作从而做到可扩展。
第二代:是分布式数据库
以 Google Spanner 系统为代表,支持可扩展的 SQL,在第一代 NoSQL 系统的基础之上引入了 SQL 和分布式事务,保证强一致性,但是不太注重 SQL 兼容性和性价比。
第三代:是透明扩展的企业级数据库
也就是我说的"下一代企业级分布式数据库",以 OceanBase、TiDB 为代表,分布式架构对业务透明,支持完备的兼容 MySQL 和 Oracle 的企业级功能,支持 HTAP 混合负载。
市面上分布式数据库产品分成几大类:
1.物联网方向
时序数据库产品,满足IoT数据的收集、存储和统计,常见的有:InfluxDB、Kudu、kdb、OpenTSDB等。
2.交易关系方向
替代传统交易关系型数据库产品Oracle,DB2等满足不了海量吞吐、海量并发、海量交易、海量存储的在线交易业务场景。
例如:
3.分析关系方向
解决结构化数据存储和数据分析的业务场景,不过这块收到KV分析型产品巨大的冲击。
常见的有:
4.KV分析方向
Hadoop、Spark是当下的基石,国内国外较多公司都是在其基础上再做二次研发,尤其是实现兼容SQL标准语法。
5.KV文档方向
解决在线文档类型的非结构化数据存储、数据处理,都在努力兼容SQL标准语法。
常见的有:
6.HTAP方向
随着分布式数据库的发展,我们又迎来了新的一次融合,那就是 OLTP 与 OLAP 将再一次合并为 HTAP(融合交易分析处理)数据库。
常见的分布式数据库有:
谷歌Spanner可以说是NewSQL数据库的鼻祖,后来的好多数据库,比如:TiDB、CockroachDB都是借鉴了Spanner的思想。
以上
本篇已收于mikechen原创超30万字《阿里架构师进阶专题合集》里面。