什么是分片技术(Sharding)? Sharding 中文名叫数据分片(是指数据层的水平分区),是对数据进行横向扩展的一种方式。数据量增加,我可以通过加一台机器,来扩展其容纳能力和处理能力。 Sharding它解决三个关键问题: 1.数据的路由 是数据库告诉应用程序,你让我查的数据目前在哪个分片上,这条路怎么走过去。 2.数据的分片 是实际数据的存放地点,往往每个分片就是一台单独的服务器(含存储)。 3.分片的元数据信息保存 是被切割放在不同的机器上,那么需要有个集中的地点存放数据分片的信息,即分片元数据的信息。
总结一下就是:应用问路由怎么走,路由去查询元数据得知需要的数据在哪个分片上,最终应用访问到该分片上。 Oracle分片- 数据库架构模式
Oracle分片的优点
Sharding适合所有的数据库应用吗? 既然Sharding听上去很厉害,那么是不是现在只要遇到有性能问题的数据库,一律都可以使用Sharding技术来解决呢?当然不,Sharding不会也不可能是FAST=TRUE这样的参数。一个适合Sharding技术的应用,必须有非常好的数据模型,和清晰的数据分布策略(比如是一致性哈希,范围或者列表分区),并且访问这些数据也是总要通过shard key来过滤的,只有这样,才能在整个Sharded数据库架构中很好地将请求路由到合适的数据库上。这样的shard key可能会是客户编号,国家编号,身份证号码等。 Sharding适合的业务场景: 专用OLTP应用Custom OLTP Applications,海量扩展和高可用性 MassiveScalability and HA 大规模计费系统 Large billing systems 航空票务系统 Airline ticketing systems 在线金融服务Online financial services 媒体服务公司Media companies 在线信息服务Online information services 社交媒体公司Social media companies 分片数据库物理架构 Sharding分片数据库的物理架构如下所示: 分片数据库组件
存储SDB元数据metadata 跨片查询的协调数据库coordinator 包含应用的元数据定义和复制表 Contains application gold schema |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|