海量数据的存储和访问成为了系统设计的瓶颈问题,尤其是在现在,随着互联网应用的广泛普及,海量数据存储对于一个大型的互联网应用,对于系统的稳定性和扩展性造成了极大的问题,每天几十亿的海量数据存储无疑对数据库造成了相当高的负载。
海量数据存储可采用水平进行切分数据库,同时可以最大能力限度的降低了了宕机造成的损失。可以降低单台机器的负载,通过负载均衡策略,有效的降低了单台机器的访问负载,降低了宕机的可能性,海量数据存储通过集群方案,通过读写分离策略更是最大限度了提高了应用中读取(Read)数据的速度和并发量。解决因单点数据库的数据库宕机的问题不能被访问。
什么是数据切分,海量数据存储通过建立一系列的切分规则将这些数据技术水平主要分布到不同的DB或table中,在通过提供相应的DB路由 或者 table路由管理规则可以找到自己需要我们查询的具体的DB或者table,这里就是所说的“sharding”通常是指“水平以及切分”, 以进行Query操作,这也是本文的重点,特别是海量数据存储还会有什么样的细分和路由方式是这样的?行文至此,读者之间难免有所疑问,接下来举个比较简单的例子,我们需要针对学生一个Blog应用中的日志来说明,比如工作日志分析文章(article)表有如下数据字段。
我们能做到这一点,对于文章中的所有文章10001〜20000的海量数据存储成DB2表userID的信息,在文章DB1 1至10000的所有USERID到表中,依此类推,直到DBN的文章。以此可以类推,利用海量数据存储进行分库的规则,反向的路由到具体的DB,这个发展过程需要我们不能称之为“DB路由”。
海量数据存储考虑到数据分割的DB设计,这将违反通常的规则和约束,我们必须在数据库表中有冗余字段,例如上面文章示例中的字段,这些字段用于区分字段或标记称为子库的字段。当然,刚才的示例并不能很好地反映user_id冗余,因为user_id这个字段即使不分割库也会出现。海量数据存储不只是出现在分库的场景只出现在许多大型应用冗余字段,冗余是必要的,这涉及到高效DB的设计,这也不会去。
以上,就是有关海量数据存储地简单介绍,你们明白了吗?
更多产品了解
欢迎扫码加入云巴巴企业数字化交流服务群
产品交流、问题咨询、专业测评
都在这里!
2022-11-22 11:05:58
2022-11-22 16:05:57
2022-11-21 10:34:48
2022-11-22 16:06:07
2022-11-22 11:06:53
2020-04-20 17:32:40
甄选10000+数字化产品 为您免费使用
申请试用
评论列表