免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: send_linux

[MongoDB] NoSQL层出不穷,如何学习及选择NoSQL? [复制链接]

论坛徽章:
0
发表于 2014-12-19 18:03 |显示全部楼层
好活动,支持支持。

论坛徽章:
0
发表于 2014-12-20 09:21 |显示全部楼层
从来没有接触过这东西,也没有听说过,但既然说出来了,也就肯定有存在的价值。

论坛徽章:
6
CU大牛徽章
日期:2013-03-14 14:14:08CU大牛徽章
日期:2013-03-14 14:14:26CU大牛徽章
日期:2013-03-14 14:14:29处女座
日期:2014-04-21 11:51:59辰龙
日期:2014-05-12 09:15:10NBA常规赛纪念章
日期:2015-05-04 22:32:03
发表于 2014-12-20 09:48 |显示全部楼层
send_linux 发表于 2014-12-17 14:31
大数据技术在近几年发展十分迅速,在互联网公司以及传统公司都得到了广泛的应用。NoSQL一直伴随着大数据技术 ...


NoSQL现在确实很多了,但是不是所有的业务都适合,这个大家都清楚

而且不同的NoSQL解决的问题完全不一样

RDS加NoSQL才是大部分数据库问题的解决之道

论坛徽章:
6
CU大牛徽章
日期:2013-03-14 14:14:08CU大牛徽章
日期:2013-03-14 14:14:26CU大牛徽章
日期:2013-03-14 14:14:29处女座
日期:2014-04-21 11:51:59辰龙
日期:2014-05-12 09:15:10NBA常规赛纪念章
日期:2015-05-04 22:32:03
发表于 2014-12-20 09:49 |显示全部楼层
action08 发表于 2014-12-17 18:53
建议了解一下,也是互联网技术的一个小变革,以前很火的


对数据库这个行业来说,NoSQL还是很革命性的吧

不是小变革哦,可以说是大数据技术的基础

论坛徽章:
0
发表于 2014-12-20 17:21 |显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
49
15-16赛季CBA联赛之福建
日期:2016-06-22 16:22:002015年亚洲杯之中国
日期:2015-01-23 16:25:12丑牛
日期:2015-01-20 09:39:23未羊
日期:2015-01-14 23:55:57巳蛇
日期:2015-01-06 18:21:36双鱼座
日期:2015-01-02 22:04:33午马
日期:2014-11-25 09:58:35辰龙
日期:2014-11-18 10:40:07寅虎
日期:2014-11-13 22:47:15申猴
日期:2014-10-22 15:29:50摩羯座
日期:2014-08-27 10:49:43辰龙
日期:2014-08-21 10:47:58
发表于 2014-12-20 23:12 |显示全部楼层
苏州微信 发表于 2014-12-20 17:21
NoSql是一个好东西。之前和朋友写了一个nosql的client,感觉nosql真的很强大。
特别处理海量数据和快速访问 ...


兄弟的ID有广告嫌疑哦

论坛徽章:
0
发表于 2014-12-21 00:20 |显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
9
寅虎
日期:2014-06-03 14:10:05午马
日期:2015-01-08 16:49:52白羊座
日期:2015-01-16 12:58:182015年迎新春徽章
日期:2015-03-04 09:57:092015元宵节徽章
日期:2015-03-06 15:51:33NBA常规赛纪念章
日期:2015-05-04 22:32:03IT运维版块每日发帖之星
日期:2015-08-04 06:20:0015-16赛季CBA联赛之北京
日期:2015-12-14 09:40:0315-16赛季CBA联赛之青岛
日期:2016-07-25 11:23:07
发表于 2014-12-21 00:22 |显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
2
水瓶座
日期:2014-06-12 08:22:39IT运维版块每日发帖之星
日期:2015-08-05 06:20:00
发表于 2014-12-22 10:01 |显示全部楼层
(1)大数据技术有哪些?它们和NoSQL的关系是什么?

     以前学习的时候总结过。。个人觉得有四方面:
1.跨粒度计算(In-DatabaseComputing)Z-Suite支持各种常见的汇总,还支持几乎全部的专业统计函数。得益于跨粒度计算技术,寻出最优化的计算方案,继而把所有开销较大的、昂贵的计算都移动到数据存储的地方直接计算,我们称之为库内计算(In-Database)。这一技术大大减少了数据移动,降低了通讯负担,保证了高性能数据分析。
2.并行计算(MPP Computing)能够把计算分布到多个计算节点,再在指定节点将计算结果汇总输出。Z-Suite能够充分利用各种计算和存储资源,不管是服务器还是普通的PC,她对网络条件也没有严苛的要求。。
3.列存储 (Column-Based)Z-Suite是列存储的。基于列存储的数据集市,不读取无关数据,能降低读写开销,同时提高I/O 的效率,从而大大提高查询性能。另外,列存储能够更好地压缩数据,一般压缩比在5 -10倍之间,这样一来,数据占有空间降低到传统存储的1/5到1/10 。良好的数据压缩技术,节省了存储设备和内存的开销,却大大了提升计算性能。
4.内存计算得益于列存储技术和并行计算技术。一般地,内存访问速度比磁盘访问速度要快几百倍甚至上千倍。通过内存计算,CPU直接从内存而非磁盘上读取数据并对数据进行计算。内存计算是对传统数据处理方式的一种加速,是实现大数据分析的关键应用技术。

(2)NoSQL兴起的原因是什么?有哪些主要的类型?这些类型NoSQL的特点是什么?

    兴起原因:由于我们需要处理的数据集越来越大,其存储量已经远远超过了单机的容量,数据处理的需求也远远超过了单机CPU的运算能力。所以我们需要分布式的解决方案。对数据提供速度的要求越来越高,很多应用场景需要数据层提供更高的写性能和数据吞吐。比如日志型应用,对写性能的要求可能非常高,当写性能成为瓶颈时,通常我们很难难过升级单机配置来解决。所以分布式的需求在这里变得也很重要。
类型:
1.键-值对数据库
       具备高度可扩展性,但却无法帮助开发人员顺畅处理复杂数据集。如果大家需要进行磁盘备份、分布式散列表并通过一致性对数据内容加以检查,那么上述方案既具备良好的规模化能力、又能提供出色的处理速度。
2.列族/大表数据库
      以HBase为代表的某些数据库则从开发之初就以列族作为设计思路。这是键-值数据库的一种更为先进的表现形式。数据的产生速度通常非常之快,而且往往一次性来自多个位置、增长幅度惊人,需要出色的写入能力以及以时间片段为基础的高性能读取配。
3.文档数据库
      非常适合面向对象型编程。这些数据并不一定都是以报告的形式出现,但MongoDB等方案通常也会包含一定程度的MapReduce功能。至少在MongoDB当中,大家可以对任何内容加以查询,而且即使不借助索引机制也不至于出现我们无法接受的性能问题。
4.图形数据库
     不太关注数据规模或者可用性,而主要针对我们的数据之间存在怎样的相关性以及用户需要如何执行计算任务。图形数据库往往与索引机制紧密相连、从而实现更理想的搜索与查找效果,但图形部分必须经过遍历;对于这一点,大家需要在一部分初始节点上加以修正。









论坛徽章:
32
CU大牛徽章
日期:2013-05-20 10:45:13每日论坛发贴之星
日期:2015-09-07 06:20:00每日论坛发贴之星
日期:2015-09-07 06:20:00数据库技术版块每日发帖之星
日期:2015-12-13 06:20:0015-16赛季CBA联赛之江苏
日期:2016-03-03 11:56:13IT运维版块每日发帖之星
日期:2016-03-06 06:20:00fulanqi
日期:2016-06-17 17:54:25IT运维版块每日发帖之星
日期:2016-07-23 06:20:0015-16赛季CBA联赛之佛山
日期:2016-08-11 18:06:41JAVA
日期:2016-10-25 16:09:072017金鸡报晓
日期:2017-01-10 15:13:292017金鸡报晓
日期:2017-02-08 10:33:21
发表于 2014-12-22 15:37 |显示全部楼层
本帖最后由 jieforest 于 2014-12-22 20:20 编辑

不错的活动

(1)大数据技术有哪些?它们和NoSQL的关系是什么?
先回答第二问。大数据技术指的是对海量的结构化和非结构化的数据进行提取、管理、处理、分析、存储等的技术。所以大数据技术和NoSQL的关系是包含关系。NoSQL技术主要是面向结构化数据和非结构化数据进行存储和管理的技术。所以NoSQL只是大数据的一个方面,大数据技术中,涉及存储的还可以是关系数据库,以及分布式文件系统等。
大数据技术很多,占据主流地位的大数据技术有:Hadoop、Storm、Spark等,它们又是由很多更具体的技术所组成。
比如组成Hadoop大数据平台的技术有:HDFS、YARN、MapReduce、Ambari、Avro、Cassandra、Chukwa、HBase、Hive、Mahout、Pig、Tez、ZooKeeper等。

(2)NoSQL兴起的原因是什么?有哪些主要的类型?这些类型NoSQL的特点是什么?
主要还是因为Web 2.0时代的到来,关系数据库越来越不能满足互联网应用的需求,导致了NoSQL的兴起。这些需求包括:
1)数据的高并发读写
2)数据的高可用性
3)海量数据存储
4)海量数据的实时分析
NoSQL的主要类型包括:
1)文档型数据库
特点:面向集合存储,模式自由,使用高效的二进制数据存储等。
2)键值存储数据库
特点:以键为索引的存储方式,访问速度极快。
3)图数据库
特点:以节点/关系/属性为基础存储数据,善于处理大量复杂、互连接、低结构化的数据。
4)列式数据库
特点:以列相关存储架构进行数据存储,适合于批量数据处理和即席查询。
5)内存数据库
特点:将数据放在内存中直接操作,数据处理速度比传统数据库的数据处理速度要快很多。

(3)每种NoSQL有什么代表性的开源系统?其主要适合什么样的场景?
1)文档型数据库
代表:MongoDB、CouchDB、CouchBase、MarkLogic、Clusterpoint
应用场景:适用于数据变化较少,执行预定义查询,进行数据统计的应用程序。适用于需要提供数据版本支持的应用程序。
2)键值存储数据库
代表:Dynamo、FoundationDB、MemcacheDB、Redis、Riak、Aerospike
应用场景:高读取、快速检索。
3)图数据库
代表:Neo4j、OrientDB、ArangoDB、MapGraph
应用场景:社会关系,公共交通网络,地图及网络拓谱。
4)列式数据库
代表:Cassandra、HBase、Accumulo、Druid、Vertica
应用场景:适合于批量数据处理和即席查询。
5)内存数据库
代表:Redis、Membase
应用场景:适用于数据变化快且数据库大小可遇见(适合内存容量)的应用程序。

(4)如果需要自己构建一个NoSQL系统,主要需要考虑哪些核心问题?
首先确定适用的应用场景,功能大而全是不现实的。
其次根据应用场景确定存储方式。
选择存储引擎,是自行开发还是借用开源引擎。
再次是设计访问协议,一般是基于TCP基础上的自定义协议。
接着是开发管理系统,提供NoSQL数据库的基本管理功能。
再次是编写各种语言的驱动包。
最后是提供客户端GUI工具。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP