nosql技术特色,请简要总结一下nosql数据库的技术特点

十年网站开发经验+多家企业客户+靠谱的建站团队

量身定制+运营维护+专业推广+无忧售后,网站问题一站解决

NoSQL太火,冒出太多产品了,保守估计也成百上千了。

互联网公司常用的基本集中在以下几种,每种只举一个比较常见或者应用比较成功的例子吧。

1.In-MemoryKVStore:Redis

inmemorykey-valuestore,同时提供了更加丰富的数据结构和运算的能力,成功用法是替代memcached,通过checkpoint和commitlog提供了快速的宕机恢复,同时支持replication提供读可扩展和高可用。

2.Disk-BasedKVStore:Leveldb

真正基于磁盘的key-valuestorage,模型单一简单,数据量不受限于内存大小,数据落盘高可靠,Google的几位大神出品的精品,LSM模型天然写优化,顺序写盘的方式对于新硬件ssd再适合不过了,不足是仅提供了一个库,需要自己封装server端。

3.DocumentStore:Mongodb

分布式nosql,具备了区别mysql的最大亮点:可扩展性。mongodb最新引人的莫过于提供了sql接口,是目前nosql里最像mysql的,只是没有ACID的特性,发展很快,支持了索引等特性,上手容易,对于数据量远超内存限制的场景来说,还需要慎重。

4.ColumnTableStore:HBase

这个富二代似乎不用赘述了,最大的优势是开源,对于普通的scan和基于行的get等基本查询,性能完全不是问题,只是只提供裸的api,易用性上是短板,可扩展性方面是最强的,其次坐上了Hadoop的快车,社区发展很快,各种基于其上的开源产品不少,来解决诸如join、聚集运算等复杂查询。

NoSQL,泛指非关系型的数据库。NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题。

虽然关系型数据库系统RDBMS在安装和使用上仍然占有主要地位,但毋庸置疑,非关系型数据库NoSQL技术已经成为今天发展最快的数据库技术。

NoSQL详解:如何找到对的技术

四种主要的NoSQL数据库和它们主要的应用场景

键值数据库:当数据以键的形式访问时,比如通过国际标准书号ISBN找一本书,键值数据库是最理想的。在这里,ISBN是键,书籍的其他信息就是值。必须知道键才能查询,不过值是一堆无意义的数据,读取之后必须经过翻译。

文档存储数据库:该数据库以文档的形式管理和存储数据。有点类似于键值数据库,但文档数据库中的数据有结构。与键值数据库中值是一堆无意义的数据不同,文档数据库中数据以文档的结构被描述,典型的是JavaScriptObjectNotation(JSON)或XML.文档存储数据库中的数据可以通过定义的任何模式进行查询,但键值数据库只能通过它的键进行查询。

关系数据库经过几十年的发展,已经非常成熟,但同时也存在不足:

表结构是强约束的,业务变更时扩充很麻烦。

如果对大数据量的表进行统计运算,I/O会很高,因为即使只针对某列进行运算,也需要将整行数据读入内存。

全文搜索只能使用Like进行整表扫描,性能非常低。

针对这些不足,产生了不同的NoSQL解决方案,在某些场景下比关系数据库更有优势,但同时也牺牲了某些特性,所以不能片面的迷信某种方案,应将其作为SQL的有利补充。

NoSQL!=NoSQL,而是:

NoSQL=NotOnlySQL

典型的NoSQL方案分为4类:

Redis是典型,其value是具体的数据结构,包括string,hash,list,set,sortedset,bitmap,hyperloglog,常被称为数据结构服务器。

以list为例:

LPOPkey是移除并返回队列左边的第一个元素。

如果用关系数据库就比较麻烦了,需要操作:

Redis的缺点主要体现在不支持完成的ACID事务,只能保证隔离性和一致性,无法保证原子性和持久性。

最大的特点是no-schema,无需在使用前定义字段,读取一个不存在的字段也不会导致语法错误。

特点:

以电商为例,不同商品的属性差异很大,如冰箱和电脑,这种差异性在关系数据库中会有很大的麻烦,而使用文档数据库则非常方便。

文档数据库的主要缺点:

关系数据库是按行来存储的,列式数据库是按照列来存储数据。

按行存储的优势:

在某些场景下,这些优势就成为劣势了,例如,计算超重人员的数据,只需要读取体重这一列进行统计即可,但行式存储会将整行数据读取到内存中,很浪费。

而列式存储中,只需要读取体重这列的数据即可,I/O将大大减少。

除了节省I/O,列式存储还有更高的压缩比,可以节省存储空间。普通行式数据库的压缩比在3:1到5:1左右,列式数据库在8:1到30:1,因为单个列的数据相似度更高。

列式存储的随机写效率远低于行式存储,因为行式存储时同一行多个列都存储在连续空间中,而列式存储将不同列存储在不连续的空间。

一般将列式存储应用在离线大数据分析统计场景,因为这时主要针对部分列进行操作,而且数据写入后无须更新。

关系数据库通过索引进行快速查询,但在全文搜索的情景下,索引就不够了,因为:

假设有一个交友网站,信息表如下:

需要匹配性别、地点、语言列。

需要匹配性别、地点、爱好列。

实际搜索中,各种排列组合非常多,关系数据库很难支持。

全文搜索引擎是使用倒排索引技术,建立单词到文档的索引,例如上面的表信息建立倒排索引:

所以特别适合根据关键词来查询文档内容。

上面介绍了几种典型的NoSQL方案,及各自的适用场景和特点,您可以根据实际需求进行选择。

它们可以处理超大量的数据。

它们运行在便宜的PC服务器集群上。

PC集群扩充起来非常方便并且成本很低,避免了“sharding”操作的复杂性和成本。

它们击碎了性能瓶颈。

“SQL并非适用于所有的程序代码,”对于那些繁重的重复操作的数据,SQL值得花钱。但是当数据库结构非常简单时,SQL可能没有太大用处。

没有过多的操作。

虽然NoSQL的支持者也承认关系数据库提供了无可比拟的功能集合,而且在数据完整性上也发挥绝对稳定,他们同时也表示,企业的具体需求可能没有那么多。

Bootstrap支持

因为NoSQL项目都是开源的,因此它们缺乏供应商提供的正式支持。这一点它们与大多数开源项目一样,不得不从社区中寻求支持。

优点:

易扩展

NoSQL数据库种类繁多,但是一个共同的特点都是去掉关系数据库的关系型特性。数据之间无关系,这样就非常容易扩展。也无形之间,在架构的层面上带来了可扩展的能力。

大数据量,高性能

NoSQL数据库都具有非常高的读写性能,尤其在大数据量下,同样表现优秀。这得益于它的无关系性,数据库的结构简单。一般MySQL使用QueryCache,每次表的更新Cache就失效,是一种大粒度的Cache,在针对web2.0的交互频繁的应用,Cache性能不高。而NoSQL的Cache是记录级的,是一种细粒度的Cache,所以NoSQL在这个层面上来说就要性能高很多了。

灵活的数据模型

NoSQL无需事先为要存储的数据建立字段,随时可以存储自定义的数据格式。而在关系数据库里,增删字段是一件非常麻烦的事情。如果是非常大数据量的表,增加字段简直就是一个噩梦。这点在大数据量的web2.0时代尤其明显。

高可用

NoSQL在不太影响性能的情况,就可以方便的实现高可用的架构。比如Cassandra,HBase模型,通过复制模型也能实现高可用。

主要应用:

ApacheHBase

这个大数据管理平台建立在谷歌强大的BigTable管理引擎基础上。作为具有开源、Java编码、分布式多个优势的数据库,Hbase最初被设计应用于Hadoop平台,而这一强大的数据管理工具,也被Facebook采用,用于管理消息平台的庞大数据。

ApacheStorm

用于处理高速、大型数据流的分布式实时计算系统。Storm为ApacheHadoop添加了可靠的实时数据处理功能,同时还增加了低延迟的仪表板、安全警报,改进了原有的操作方式,帮助企业更有效率地捕获商业机会、发展新业务。

ApacheSpark

该技术采用内存计算,从多迭代批量处理出发,允许将数据载入内存做反复查询,此外还融合数据仓库、流处理和图计算等多种计算范式,Spark用Scala语言实现,构建在HDFS上,能与Hadoop很好的结合,而且运行速度比MapReduce快100倍。

ApacheHadoop

该技术迅速成为了大数据管理标准之一。当它被用来管理大型数据集时,对于复杂的分布式应用,Hadoop体现出了非常好的性能,平台的灵活性使它可以运行在商用硬件系统,它还可以轻松地集成结构化、半结构化和甚至非结构化数据集。

ApacheDrill

你有多大的数据集?其实无论你有多大的数据集,Drill都能轻松应对。通过支持HBase、Cassandra和MongoDB,Drill建立了交互式分析平台,允许大规模数据吞吐,而且能很快得出结果。

ApacheSqoop

也许你的数据现在还被锁定于旧系统中,Sqoop可以帮你解决这个问题。这一平台采用并发连接,可以将数据从关系数据库系统方便地转移到Hadoop中,可以自定义数据类型以及元数据传播的映射。事实上,你还可以将数据(如新的数据)导入到HDFS、Hive和Hbase中。

ApacheGiraph

这是功能强大的图形处理平台,具有很好可扩展性和可用性。该技术已经被Facebook采用,Giraph可以运行在Hadoop环境中,可以将它直接部署到现有的Hadoop系统中。通过这种方式,你可以得到强大的分布式作图能力,同时还能利用上现有的大数据处理引擎。

ClouderaImpala

Impala模型也可以部署在你现有的Hadoop群集上,监视所有的查询。该技术和MapReduce一样,具有强大的批处理能力,而且Impala对于实时的SQL查询也有很好的效果,通过高效的SQL查询,你可以很快的了解到大数据平台上的数据。

Gephi

它可以用来对信息进行关联和量化处理,通过为数据创建功能强大的可视化效果,你可以从数据中得到不一样的洞察力。Gephi已经支持多个图表类型,而且可以在具有上百万个节点的大型网络上运行。Gephi具有活跃的用户社区,Gephi还提供了大量的插件,可以和现有系统完美的集成到一起,它还可以对复杂的IT连接、分布式系统中各个节点、数据流等信息进行可视化分析。

MongoDB

这个坚实的平台一直被很多组织推崇,它在大数据管理上有极好的性能。MongoDB最初是由DoubleClick公司的员工创建,现在该技术已经被广泛的应用于大数据管理。MongoDB是一个应用开源技术开发的NoSQL数据库,可以用于在JSON这样的平台上存储和处理数据。目前,纽约时报、Craigslist以及众多企业都采用了MongoDB,帮助他们管理大型数据集。(Couchbase服务器也作为一个参考)。

十大顶尖公司:

AmazonWebServices

Forrester将AWS称为“云霸主”,谈到云计算领域的大数据,那就不得不提到亚马逊。该公司的Hadoop产品被称为EMR(ElasticMapReduce),AWS解释这款产品采用了Hadoop技术来提供大数据管理服务,但它不是纯开源Hadoop,经过修改后现在被专门用在AWS云上。

Forrester称EMR有很好的市场前景。很多公司基于EMR为客户提供服务,有一些公司将EMR应用于数据查询、建模、集成和管理。而且AWS还在创新,Forrester称未来EMR可以基于工作量的需要自动缩放调整大小。亚马逊计划为其产品和服务提供更强大的EMR支持,包括它的RedShift数据仓库、新公布的Kenesis实时处理引擎以及计划中的NoSQL数据库和商业智能工具。不过AWS还没有自己的Hadoop发行版。

Cloudera

Cloudera有开源Hadoop的发行版,这个发行版采用了ApacheHadoop开源项目的很多技术,不过基于这些技术的发行版也有很大的进步。Cloudera为它的Hadoop发行版开发了很多功能,包括Cloudera管理器,用于管理和监控,以及名为Impala的SQL引擎等。Cloudera的Hadoop发行版基于开源Hadoop,但也不是纯开源的产品。当Cloudera的客户需要Hadoop不具备的某些功能时,Cloudera的工程师们就会实现这些功能,或者找一个拥有这项技术的合作伙伴。Forrester表示:“Cloudera的创新方法忠于核心Hadoop,但因为其可实现快速创新并积极满足客户需求,这一点使它不同于其他那些供应商。”目前,Cloudera的平台已经拥有200多个付费客户,一些客户在Cloudera的技术支持下已经可以跨1000多个节点实现对PB级数据的有效管理。

Hortonworks

和Cloudera一样,Hortonworks是一个纯粹的Hadoop技术公司。与Cloudera不同的是,Hortonworks坚信开源Hadoop比任何其他供应商的Hadoop发行版都要强大。Hortonworks的目标是建立Hadoop生态圈和Hadoop用户社区,推进开源项目的发展。Hortonworks平台和开源Hadoop联系紧密,公司管理人员表示这会给用户带来好处,因为它可以防止被供应商套牢(如果Hortonworks的客户想要离开这个平台,他们可以轻松转向其他开源平台)。这并不是说Hortonworks完全依赖开源Hadoop技术,而是因为该公司将其所有开发的成果回报给了开源社区,比如Ambari,这个工具就是由Hortonworks开发而成,用来填充集群管理项目漏洞。Hortonworks的方案已经得到了Teradata、Microsoft、RedHat和SAP这些供应商的支持。

IBM

当企业考虑一些大的IT项目时,很多人首先会想到IBM。IBM是Hadoop项目的主要参与者之一,Forrester称IBM已有100多个Hadoop部署,它的很多客户都有PB级的数据。IBM在网格计算、全球数据中心和企业大数据项目实施等众多领域有着丰富的经验。“IBM计划继续整合SPSS分析、高性能计算、BI工具、数据管理和建模、应对高性能计算的工作负载管理等众多技术。”

Intel

和AWS类似,英特尔不断改进和优化Hadoop使其运行在自己的硬件上,具体来说,就是让Hadoop运行在其至强芯片上,帮助用户打破Hadoop系统的一些限制,使软件和硬件结合的更好,英特尔的Hadoop发行版在上述方面做得比较好。Forrester指出英特尔在最近才推出这个产品,所以公司在未来还有很多改进的可能,英特尔和微软都被认为是Hadoop市场上的潜力股。

MapRTechnologies

MapR的Hadoop发行版目前为止也许是最好的了,不过很多人可能都没有听说过。Forrester对Hadoop用户的调查显示,MapR的评级最高,其发行版在架构和数据处理能力上都获得了最高分。MapR已将一套特殊功能融入其Hadoop发行版中。例如网络文件系统(NFS)、灾难恢复以及高可用性功能。Forrester说MapR在Hadoop市场上没有Cloudera和Hortonworks那样的知名度,MapR要成为一个真正的大企业,还需要加强伙伴关系和市场营销。

Microsoft

微软在开源软件问题上一直很低调,但在大数据形势下,它不得不考虑让Windows也兼容Hadoop,它还积极投入到开源项目中,以更广泛地推动Hadoop生态圈的发展。我们可以在微软的公共云WindowsAzureHDInsight产品中看到其成果。微软的Hadoop服务基于Hortonworks的发行版,而且是为Azure量身定制的。

微软也有一些其他的项目,包括名为Polybase的项目,让Hadoop查询实现了SQLServer查询的一些功能。Forrester说:“微软在数据库、数据仓库、云、OLAP、BI、电子表格(包括PowerPivot)、协作和开发工具市场上有很大优势,而且微软拥有庞大的用户群,但要在Hadoop这个领域成为行业领导者还有很远的路要走。”

PivotalSoftware

EMC和Vmware部分大数据业务分拆组合产生了Pivotal。Pivotal一直努力构建一个性能优越的Hadoop发行版,为此,Pivotal在开源Hadoop的基础上又添加了一些新的工具,包括一个名为HAWQ的SQL引擎以及一个专门解决大数据问题的Hadoop应用。Forrester称PivotalHadoop平台的优势在于它整合了Pivotal、EMC、Vmware的众多技术,Pivotal的真正优势实际上等于EMC和Vmware两大公司为其撑腰。到目前为止,Pivotal的用户还不到100个,而且大多是中小型客户。

Teradata

对于Teradata来说,Hadoop既是一种威胁也是一种机遇。数据管理,特别是关于SQL和关系数据库这一领域是Teradata的专长。所以像Hadoop这样的NoSQL平台崛起可能会威胁到Teradata。相反,Teradata接受了Hadoop,通过与Hortonworks合作,Teradata在Hadoop平台集成了SQL技术,这使Teradata的客户可以在Hadoop平台上方便地使用存储在Teradata数据仓库中的数据。

AMPLab

通过将数据转变为信息,我们才可以理解世界,而这也正是AMPLab所做的。AMPLab致力于机器学习、数据挖掘、数据库、信息检索、自然语言处理和语音识别等多个领域,努力改进对信息包括不透明数据集内信息的甄别技术。除了Spark,开源分布式SQL查询引擎Shark也源于AMPLab,Shark具有极高的查询效率,具有良好的兼容性和可扩展性。近几年的发展使计算机科学进入到全新的时代,而AMPLab为我们设想一个运用大数据、云计算、通信等各种资源和技术灵活解决难题的方案,以应对越来越复杂的各种难题。

THE END
1.数据挖掘概念(AnalysisServices有关如何将 SQL Server 工具应用于业务方案的示例,请参阅数据挖掘基础教程。 定义问题 与以下关系图的突出显示相同,数据挖掘过程的第一步就是明确定义业务问题,并考虑解答该问题的方法。 该步骤包括分析业务需求,定义问题的范围,定义计算模型所使用的度量,以及定义数据挖掘项目的特定目标。这些任务转换为下列问题: https://technet.microsoft.com/zh-cn/library/ms174949(en-us,sql.105).aspx
2.数据挖掘类文章属于什么类型mob64ca12e83232的技术博客数据挖掘类文章属于什么类型 数据挖掘是一种从大量数据中提取隐含的、有用信息和知识的过程。它涉及统计学、机器学习、数据库技术等多门学科,因此数据挖掘类文章通常属于数据分析、机器学习和统计学等类别。本文将介绍数据挖掘的基本概念,并结合具体的代码示例,展示如何使用Python进行简单的数据挖掘任务。https://blog.51cto.com/u_16213397/12827058
3.数据挖掘师在市场中的地位与未来的展望随着大数据技术的飞速发展,数据挖掘这一领域也迎来了前所未有的爆炸性增长。作为一名专业的数据分析人员,数据挖掘师不仅需要具备深厚的数学和统计学知识,还要有强大的编程能力以及对业务模式的深刻理解。在这个信息爆炸时代,能够从海量数据中提取有价值信息的人才是最宝贵的。 https://www.f3kg3td6j.cn/jun-lei-zi-xun/496259.html
4.《电子商务概论》习题及答案1、电子交易交换数据、获得数据自动捕获数据信息技术核心基础对象目的电报当贸易开始以莫尔斯码点和线的形式在电线中传输的时候计算机的电子数据处理技术20世纪70年代末结构性特点动态性特点社会性特点层次性特点商务性、服务性、集成性、可扩展性、安全性协调性商务性安全性SET(安全电子交易SSL(安全套接层协议层业务全球https://www.360doc.cn/document/80521207_1047343768.html
5.数据挖掘一些面试题总结(DataMining)基于web数据挖掘技术有哪些数据挖掘一些面试题总结(Data Mining) Data-Mining试题 2011Alibaba数据分析师(实习)试题解析 一、异常值是指什么?请列举1种识别连续型变量异常值的方法? 异常值(Outlier) 是指样本中的个别值,其数值明显偏离所属样本的其余观测值。在数理统计里一般是指一组观测值中与平均值的偏差超过两倍标准差的测定值。https://blog.csdn.net/bentley2010/article/details/7746335
6.人工智能经典习题集及各章总结(期末考试必备)江阴雨辰互联2.人工智能研究的基本内容是什么? 解:基本内容是:搜索技术、知识表示、规划方法、机器学习、认知科学、自然语言理解与机器翻译、专家系统与知识工程、定理证明、博弈、机器人、数据挖掘与知识发现、多Agent系统、复杂系统、足球机器人、人机交互技术等。 3.人工智能主要有哪几大研究学派? https://www.yc00.com/xiaochengxu/1690506190a360936.html
7.医德医风与职业道德(精选8篇)1、简述什么是医德?什么是医德修养? 答: 2、请回答出《执业医师法》中规定的医师在执业活动中应履行的义务?答: 3、请回答出医院在医德医风群众监督方面采取了哪些措施? 答: 4、请回答开展“三好一满意”活动的主要目的。答: 5、请回答非国家工作人员受贿、行贿立案追诉标准。答: https://www.360wenmi.com/f/file7i1sov06.html
8.上海财经大学保研有什么要求培养具备良好的政治素养和职业道德,具有扎实的统计背景,能熟练掌握数据采集、处理、分析和开发技能,具备互联网数据挖掘和计算机数据处理技术,具有对现实经济、社会问题进行统计分析和解决能力,能够采用数据科学领域中的各种方法有效解决在信用卡风险、营销分析等商务领域的相关问题的高端人才。 http://www.okaoyan.com/baoyanxialingying/450293_20.html
9.Spark经典面试题汇总《一》总的来说,Spark具有高效的性能、容错性、多语言支持、强大的数据处理能力和良好的可扩展性,适用于各种大规模数据处理任务,如机器学习、图像处理、数据挖掘、日志分析等。 2Spark有几种部署方式,请分别简要论述? Spark有三种常见的部署方式,分别是本地模式、单例模式和Yarn模式。 https://blog.itpub.net/70024924/viewspace-2937152/
10.问答题:请简述数据挖掘的主要任务。答案:数据挖掘的主要任务包括数据预处理、探索性数据分析、数据变换、特征选择、模型构建和模型评估等。其中,数据预处理包括数据清理、集成、转换和归约等;探索性数据分析是通过可视化等方法来了解数据的分布和特征;数据变换是通过规范化、标准化或编码等手段将数据进行转换,使其更适合进一步分析;特征选择是从数据中选取https://easylearn.baidu.com/edu-page/tiangong/questiondetail?id=1776600137396358135&fr=search
11.ai论文写作app申请课题数据挖掘是指从大量数据中自动发现模式,生成规则,并对数据进行分析和预测的一种技术。在课题申请中,数据挖掘可以用来分析历史申请数据,预测课题的成功率等。 例如,我们可以使用数据挖掘技术来分析历史课题申请数据,找出成功的课题申请的共同特点,然后针对这些特点来优化自己的课题申请。 https://tool.a5.cn/article/show/78290.html