关于大数据中的NOSQL
NOSQL
与关系型数据库相比,NoSQL 数据库具有以下几个优点:
- 易扩展
- 大数据量,高性能
- 灵活的数据模型
- 高可用
NoSQL 即 Not Only SQL,可直译“不仅仅是 SQL”,这项技术正在掀起一场全新的数据库革命性运动。
NoSQL 的出现打破了长久以来关系型数据库与 ACID 理论大一统的局面。NoSQL 数据存储不需要固定的表结构,通常也不存在连接操作。在大数据存取上具备关系型数据库无法比拟的性能优势。
1.易扩展
NoSQL 数据库种类繁多,但是一个共同的特点都是去掉关系数据库的关系型特性。数据之间无关系,这样就非常容易扩展。无形之间,在架构的层面上带来了可扩展的能力。
2.大数据量,高性能
NoSQL 数据库都具有非常高的读写性能,尤其在大数据量下,同样表现优秀。这得益于它的无关系性,数据库的结构简单。一般 MySQL 使用 Query Cache,每次表一更新 Cache 就失效,它是一种大粒度的 Cache,在针对 web2.0 的交互频繁的应用,Cache 性能不高。而 NoSQL 的 Cache 是记录级的,是一种细粒度的 Cache,所以 NoSQL 在这个层面上来说性能就高很多了。
3.灵活的数据模型
NoSQL 无须事先为要存储的数据建立字段,随时可以存储自定义的数据格式。而在关系数据库里,增删字段是一件非常麻烦的事情。如果是非常大数据量的表,增加字段简直就是一个噩梦。这点在大数据量的 web2.0 时代尤其明显。
4.高可用
NoSQL 在不太影响性能的情况,就可以方便地实现高可用的架构。比如 Cassandra,HBase 模型,通过复制模型也能实现高可用。
当然,NoSQL 也存在很多缺点,例如,并未形成一定标准,各种产品层出不穷,内部混乱,各种项目还需时间来检验,缺乏相关专家技术的支持等。
关系型数据库中的表都是存储一些格式化的数据结构,每个元组字段的组成都一样,即使不是每个元组都需要所有的字段,但数据库会为每个元组分配所有的字段,这样的结构可以便于表与表之间进行连接等操作,但从另一个角度来说它也是关系型数据库性能瓶颈的一个因素。
非关系型数据库以键值对存储,它的结构不固定,每一个元组可以有不一样的字段,每个元组可以根据需要增加一些自己的键值对,这样就不会局限于固定的结构,可以减少一些时间和空间的开销。
常用的数据库
- 结构化数据库
- 非结构化数据库
Hadoop
Hadoop是一个开发和运行处理大规模数据的软件平台,是Appach的一个用java语言实现开源软件框架,实现在大量计算机组成的集群中对海量数据进行分布式计算。
HDFS(Hadoop分布式文件系统)
源自于Google的GFS论文,发表于2003年10月,HDFS是GFS克隆版。
是Hadoop体系中数据存储管理的基础。它是一个高度容错的系统,能检测和应对硬件故障,用于在低成本的通用硬件上运行。HDFS简化了文件的一致性模型,通过流式数据访问,提供高吞吐量应用程序数据访问功能,适合带有大型数据集的应用程序。
Mapreduce(分布式计算框架)
源自于google的MapReduce论文,发表于2004年12月,Hadoop MapReduce是google MapReduce 克隆版。MapReduce是一种计算模型,用以进行大数据量的计算。其中Map对数据集上的独立元素进行指定的操作,生成键-值对形式中间结果。Reduce则对中间结果中相同“键”的所有“值”进行规约,以得到最终结果。MapReduce这样的功能划分,非常适合在大量计算机组成的分布式并行环境里进行数据处理。
Hive
hive是一个著名的离线处理的数据仓库,可以通过类SQL语言轻松的访问大量的数据集,也可以访问HDFS中的文件,但是其底层的实现是MapReduce,所以具有较高的可扩展性。
Hive 中所有的数据都存储在 HDFS 中,Hive的数据模型主要有:
Database、Table、Partition、Bucket四部分。
Spark
Spark是一个闪电般快速的实时处理框架。它进行内存计算以实时分析数据。由于 Hadoop MapReduce 仅执行批处理并且缺乏实时处理功能,因此它开始出现。因此,引入了Apache Spark,因为它可以实时执行流处理,也可以处理批处理。
可以看出,Hadoop 做每一次迭代运算的时间基本相同,而 Spark 除了第一次载入数据到内存以外,别的迭代时间基本可以忽略。
由于 Spark 可以把迭代过程中每一步的计算结果都缓存在内存中,所以非常适用于各类迭代算法。Spark 第一次启动时需要把数据载入到内存,之后的迭代可以直接在内存里利用中间结果做不落地的运算。所以,后期的迭代速度快到可以忽略不计。在当今机器学习和人工智能大热的环境下,Spark 无疑是更好的数据处理引擎。
PySpark
PySpark 是 Spark 为 Python 开发者提供的 API。
PySpark提供了 PySpark Shell ,它将Python API链接到spark核心并初始化Spark上下文。大多数数据科学家和分析专家都使用Python,因为它具有丰富的库集。将Python与Spark集成对他们来说是一个福音。
Apache Spark是用 Scala编程语言 编写的。为了用Spark支持Python,Apache Spark社区发布了一个工具PySpark。使用PySpark,您也可以使用Python编程语言中的 RDD 。正是由于一个名为 Py4j 的库,他们才能实现这一目标。PySpark提供了 PySpark Shell ,它将Python API链接到spark核心并初始化Spark上下文。今天,大多数数据科学家和分析专家都使用Python,因为它具有丰富的库集。将Python与Spark集成对他们来说是一个福音。
关于大数据中的NOSQL相关推荐
- 基于简单sql语句的sql解析原理及在大数据中的应用
基于简单sql语句的sql解析原理及在大数据中的应用 李万鸿 老百姓呼吁打土豪分田地.共同富裕,总有一天会实现. 全面了解你所不知道的外星人和宇宙真想:http://pan.baidu.com/s/1 ...
- 华西生物医学大数据中心俞鹏课题组博士后招聘启事
四川大学华西医院生物医学大数据中心俞鹏课题组拟招收博士后数名.主要从事:1)生物信息学及实验验证,2)生物医学信息学,3)生物医学文献审编和本体构建,4)药用植物基因组学及合成生物学,5)化学信息学. ...
- ACM图灵奖获得者:想从大数据中获益,先解决集成问题!
文章讲的是ACM图灵奖获得者:想从大数据中获益,先解决集成问题!如今,大数据对所有行业都产生了深远影响:从医疗保健.汽车.电信到物联网.随着数据浪潮的持续,企业都在寻找更新的管理和分析方法.收集可行的 ...
- 大数据中常见的端口号 总结汇总大全(最新)
大数据中常见的端口号 总结大全 如图所示: 常见端口汇总: Hadoop: 50070:HDFS WEB UI端口 8020 : 高可用的HDFS RPC端口 9000 : 非高可用的HDFS RPC ...
- 【Spark Summit East 2017】管道泄漏问题:像女士一样在大数据中做个的标记
更多精彩内容参见云栖社区大数据频道https://yq.aliyun.com/big-data:此外,通过Maxcompute及其配套产品,低廉的大数据分析仅需几步,详情访问https://www.a ...
- 如何才能在大数据中获取价值
从数据中获取价值都是一个挑战,不管你所在的行业和企业规模如何.然而,在早期阶段,这一挑战与可用数据量没多大关系.如果对数据处理过程和数据值提取的结构设计不合理,那么至少按照现在的标准,企业有数据和没数 ...
- python运用在大数据中精准生活_大数据分析技术在生活中的广泛应用
段雯琼++薛然++任亚丽 摘 要 文章介绍了大数据技术的即时性.准确性和预测性,并将大数据技术与公共交通.医药领域.移动通信网络优化相结合,从而方便了人们的生活,提高了人们的生活质量. [关键词]大数 ...
- 腾讯位置大数据中区域热力图数据的数据解析
腾讯位置大数据中提供了位置流量趋势数据.区域热力图数据.人口迁徙数据.今天就来讲讲区域热力图,如何获取数据,以及对数据的解读 一.数据的获取 F12打开开发者工具,点击NetWork,如上图所示则为当 ...
- 大数据中数据挖掘技术的挑战
2019独角兽企业重金招聘Python工程师标准>>> 首先,数据挖掘简单的来说就是从一堆数据里面找有价值的东西.现在数据也是资产,将来会有一个经营数据的公司.所以数据是新的石油,我 ...
最新文章
- 转javascript图片预加载技术
- PyQt5 图形界面 - Qt Designer创建qrc资源文件引用图片资源实例演示,QTextBrower组件引用图片资源方法展示
- 修改mysql数据库的编码格式
- java网络编程(五)
- 业务规则的生命周期管理
- springboot打包时加入本地jar打包
- 【图嵌入】DeepWalk原理与代码实战
- [九省联考2018]秘密袭击coat
- MTK功能机2503 GPIO配置
- 微信小程序生成二维码最新版
- 【Excel 教程系列第 5 篇】查找重复值
- 智能终端演绎IT产业大变革
- 软工网络15团队作业4——Alpha阶段敏捷冲刺之Scrum 冲刺博客(Day2)
- linux netcdf编译,Netcdf4安装指南
- 微信小程序vue+nodejs+uniapp家装 装修装饰公司管理系统
- Android中切换Activity的动画
- Consider marking one of the beans as @Primary, updating the consumer to accept multiple beans,报错解决
- php做mes系统,mes系统的七大功能是什么
- 河北工业大学 离散数学学习资料分享(课件,教材,习题,总结)
- 亚马逊云(AWS)、微软云(Azure)、阿里云性能对比之哪家好?