大数据存储方案选型 第1篇
实际上,是没有一个非常量化的指标来判定库表瓶颈的,因为每个系统的业务场景,查询复杂度都有不同。 但力有穷尽时,我们虽然可以尽量地从加从库读写分离、优化 sql、优化索引、复用连接等等方面进行优化,但总会有到达极限的时候的时候。
阿里巴巴开发手册建议是: 【推荐】单表行数超过500万行或者单表容量超过2GB,才推荐进行分库分表。 说明:如果预计三年后的数据量根本达不到这个级别,请不要在创建表时就分库分表。
表主要看容量,很多经验表明 上千万后性能会有显著下降,因此,我们可以把表容量定在一半多一点,600w。
使用缓存; 很多数据的特点大多数呈现为“二八定律”:80%的业务访问集中在20%的数据上。 使用缓存的方式可以通过程序代码将数据直接保存到内存中,例如通过使用Map或者ConcurrentHashMap;另一种,就是使用缓存框架:Redis、Ehcache、Memcache等。
页面静态化技术; 可以将这些静态的HTML、CSS、JS、图片资源等放置在缓存服务器上或者CDN服务器上,一般使用最多的应该是CDN服务器或者Nginx服务器提供的静态资源功能。
数据库优化; 数据库优化的方式很多,常见的可以分为:数据库表结构优化、SQL语句优化、分区、分表、索引优化、使用存储过程代替直接操作等 。
延迟修改; 延迟修改是对于一些高并发的并且修改频繁修改的数据,在每次修改的时候首先将数据保存到缓存中,然后定时将缓存中的数据保存到数据库中,程序可以在读取数据时可以同时读取数据库中和缓存中的数据。
读写分离;
使用NoSQL和Hadoop等技术; NoSQL是一种非结构化的非关系型数据库,由于其灵活性,突破了关系型数据库的条条框框,可以灵活的进行操作,另外,因为NoSQL通过多个块存储数据的特点,其操作大数据的速度也是相当快的
分布式部署数据库;
应用服务和数据服务分离; 应用服务器和数据库服务器进行分离的目的是为了根据应用服务器的特点和数据库服务器的特点进行底层的优化,这样的话能够更好的发挥每一台服务器的特性,数据库服务器当然是有一定的磁盘空间,而应用服务器相对不需要太大的磁盘空间,这样的话进行分离是有好处的,也能防止一台服务器出现问题连带的其他服务也不可以使用。
使用搜索引擎搜索数据库中的数据; 使用搜索引擎这种非数据库查询技术对网站应用的可伸缩分布式特性具有更好的支持。
进行业务的拆分; 例如一个大型的购物网站就会将首页、商铺、订单、买家、卖家等拆分为不通的子业务,一方面将业务模块分归为不同的团队进行开发,另外一方面不同的业务使用的数据库表部署到不通的服务器上,体现到拆分的思想,当一个业务模块使用的数据库服务器发生故障也不会影响其他业务模块的数据库正常使用。
存储选型的目的还是为了我们的使用场景和用户服务,因此在选型前需要回答一些业务指标 & 技术指标方面的问题,以便于我们清楚存储选型的应用环境。
设计实践中,要基于需求、业务驱动架构,无论选用 DB/NoSQL, 一定是以需求为导向,最终数据存储方案必然是各种权衡的综合性设计。
大数据存储方案选型 第2篇
在选择大数据存储方式时,需要考虑以下几个方面:
数据特点:分析数据的结构、大小、类型等对存储方式的选择有一定影响。例如,如果数据是结构化的且需要快速分析,可以选择列式数据库;如果数据是非结构化的且需要横向扩展,可以选择NoSQL数据库。
处理需求:根据对数据的处理需求,选择适合的存储方式。例如,如果需要进行大规模并行计算,可以选择分布式文件系统。
成本考虑:不同的存储方式有不同的成本,需要综合考虑成本与性能之间的平衡。
大数据存储方案选型 第3篇
监控与评估 定期监控存储系统的性能、容量和安全性,评估是否满足业务需求。
技术升级 关注存储技术的发展趋势,适时进行技术升级,以适应企业发展的需要。
选择适合企业的数据存储方案,需综合考虑数据需求、技术选项、成本效益等多方面因素。通过科学评估和比较,企业可以找到最适合自己的“数据家园”,为业务发展提供有力支撑。同时,随着业务的发展和技术的进步,企业应不断优化和升级数据存储方案,确保数据资产的安全和高效利用。
大数据存储方案选型 第4篇
NoSQL:Not Only SQL ,本质也是一种数据库的技术。
NoSQL数据库在整个数据库领域的江湖地位已经不言而喻。在大数据时代,虽然RDBMS很优秀,但是面对快速增长的数据规模和日渐复杂的数据模型,RDBMS渐渐力不从心,无法应对很多数据库处理任务,这时NoSQL凭借易扩展、大数据量和高性能以及灵活的数据模型成功的在数据库领域站稳了脚跟。
主流nosql:MongoDB、Hbase、Redis
MongoDB 是一个高性能,开源,无模式的文档型数据库,开发语言是C++。它在许多场景下可用于替代统的关系型数据库或键/值存储方式。
MongoDB优点:
1)更高的写负载,MongoDB拥有更高的插入速度。 2)处理很大的规模的单表,当数据表太大的时候可以很容易的分割表。 3)高可用性,设置M-S不仅方便而且很快,MongoDB还可以快速、安全及自动化的实现节点 (数据中心)故障转移。 4)快速的查询,MongoDB支持二维空间索引,比如管道,因此可以快速及精确的从指定位置 获取数据。MongoDB在启动后会将数据库中的数据以文件映射的方式加载到内存中。如果内 存资源相当丰富的话,这将极大地提高数据库的查询速度。 5)非结构化数据的爆发增长,增加列在有些情况下可能锁定整个数据库,或者增加负载从而 导致性能下降,由于MongoDB的弱数据结构模式,添加1个新字段不会对旧表格有任何影响, 整个过程会非常快速。
MongoDB分配的内存与吞吐率的测试 参考URL: _32523587/article/details/82534391
MongoDB的内存对吞吐率QPS的影响不是很大,当内存达到233M的时候,QPS几乎达到最大。分配的内存继续增大时,QPS没有明显的增加,但是CPU的使用率下降了。
与 大数据量查询性能对比 参考URL: _41715077/article/details/102879357
关于mongodb占用内存过大的问题 参考URL:
mongo为了优化他的读写效率,将内存当做缓存,所以你读写次数越多,缓存就越大。 mongo从开始,WiredTiger内部缓存默认使用下面较大的一个:
例如,我是8G内存,那么最大缓存*(8-1)=,mongo默认都是他的缓存。
解决方案: 修改(增加)cacheSizeGB配置。
原则上Oracle和MySQL能做的事情,MongoDB都能做(包括ACID事务)
NoSQL适合存储非结构化数据,如文章、评论: 1)这些数据通常用于模糊处理,如全文搜索、机器学习 2)这些数据是海量的,而且增长的速度是难以预期的, 3)根据数据的特点,NoSQL数据库通常具有无限(至少接近)伸缩性 4)按key获取数据效率很高,但是对join或其他结构化查询的支持就比较差
NoSQL 数据库都是通过牺牲了 ACID 特性来获取更高性能的,假设表数据有很强的事务特性需求,那么这类数据是不适合放在非关系型数据库。此外,选用 NoSQL 数据库时也要根据公司技术栈框架、业务特性、运维成本等多方面考虑。
MongDB 的使用场景很大程度上可以对标关系型数据库,但是比较适合处理那些没有 join、没有强一致性要求且表 Schema 会常变化的数据。
大数据存储方案选型 第5篇
分布式文件系统:分布式文件系统使用多个磁盘和服务器来存储大数据,这些磁盘和服务器之间可以并行访问和处理数据。常见的分布式文件系统包括Hadoop的HDFS和谷歌的GFS。
列式数据库:列式数据库将数据按列存储,相比于传统的行式数据库,列式数据库更适合用于大规模数据的存储和分析。列式数据库具有高压缩率、高查询性能等优势,适合于数据仓库、商业智能等应用。
NoSQL数据库:NoSQL数据库是一种非关系型数据库,它可以横向扩展以处理大规模的数据,并且可以提供良好的性能和可扩展性。常见的NoSQL数据库有MongoDB、Cassandra等。
大数据存储方案选型 第6篇
直接附加存储(DAS) 适用于小型企业或单一服务器环境,成本较低,但扩展性和灵活性较差。
网络附加存储(NAS) 适合中小型企业,易于管理和共享文件,支持多种协议,但可能存在性能瓶颈。
存储区域网络(SAN) 适用于大型企业和关键业务应用,提供高性能、高可用性和高扩展性,但成本较高。
云存储 适合各种规模的企业,按需付费,灵活扩展,但需考虑数据传输成本和安全性。
分布式存储 适用于大数据和云计算场景,具有高可用性和高性能,但管理和维护较为复杂。
大数据存储方案选型 第7篇
数据类型与规模 了解企业所处理的数据类型(如结构化数据、非结构化数据等)和数据规模,是选择数据存储方案的基础。不同类型和规模的数据对存储性能、容量和扩展性有不同的要求。
业务需求 分析企业的业务流程、数据访问频率和实时性要求。例如,电商平台在促销期间可能需要高并发访问和快速响应,这就要求存储方案具备较高的性能。
数据安全性 根据行业特点和法规要求,评估数据的安全性需求。金融、医疗等行业对数据安全性的要求较高,需选择符合行业标准的存储方案。