大数据技术体系 && NoSQL数据库的基本原理

1、NoSQL产生的原因

  目前关系型数据库难以应对日益增多的海量数据,横向的分布式扩展能力比较弱,因此构建出非关系型数据库(所谓的NoSQL),其目的是为了构建一种结构简单、分布式、易扩展、效率高且使用方便的新型数据库系统。

2、NoSQL特点

NoSQL一般提供数据的分布式存储、数据表的统一管理和维护、以及快速的分布式写入和简单查询能力等。

  • 一是流行的NoSQL软件满足业务需求而生
  • 二是知名的NoSQL软件都是开源

3、NoSQL的典型应用场景

  • 海量日志数据、业务数据或监控数据的管理和查询
  • 特殊的或复杂的数据模型的简化处理
  • 作为数据仓库、数据挖掘系统或OLAP系统的后台数据支撑

数据仓库:企业管理和决策中面向主题的、集成的、与时间相关的、不可修改的数据集合。

数据仓库可以从多个数据源收集经营数据,并且将数据进行预处理,如清洗、提取和转换等操作,将数据转换成统一的模式。处理后的数据会根据决策的需求进行组织,形成面向主题的、集成化的、较稳定的数据集合,数据内容则反映了经营和业务的历史变化

数据挖掘:从大量数据集中发现有用的新模式的过程。

OLAP:联机分析处理,OLAP可以看作是一种基于数据仓库系统的应用,一般面向决策人员和数据分析人员,针对特定的商务主题对海量数据进行查询和分析等

OLTP:联机事务处理,即利用传统关系型数据库实现的、基于事务的业务系统。

数据库:数据信息的集合,按照数据结构来存储和组织信息数据的软件容器或仓库

4、关系型数据库与NoSQL的区别

  • 关系型数据库能够更好地保持数据的完整性和事务的一致性,以及支持对数据的复杂操作
  • 非关系型数据库在分布式环境下对数据的简单管理和查询

5、大数据的技术体系

5.1 特征

主要包含几个特征:大容量、多样化、高速率、有价值、数据全在线

  • 多样化:大数据业务可能需要对多种数据类型进行处理,同时来自不同的业务系统,数据格式不同、不同的领域。也可以对半结构化(例如日志)和非结构化数据进行处理(例如照片和视频等)

5.2 采集

大数据采集的过程:把原始数据加载到分布式的大数据管理系统的过程。有2种采集的方式:

  • 在线采集:直接监视数据源的变化,以实时或准实时的方式将产生的新数据获取,并装载到大数据系统中。装载的过程:推模式或拉模式,即数据分发服务主动查看数据变化并获取数据
  • 离线采集:定期将数据从数据源上传到大数据系统中的方式。

5.3 存储

采用的是分布式架构,并支持通过网络方式访问。

  • DAS:直连式存储,存储设备是通过电缆直接连到服务器
  • NAS:网络接入存储,存储设备连接到网络中,通常是标准的TCP/IP网络。客户端通过网络文件存取协议(NFS)存储数据
  • SAN:存储区域网络,存储设备组成单独的网络,大多利用光纤连接。
  • 云存储:将存储作为服务提供出来。

云存储的优势:

  • 用户不再需要购买存储设备与管理软件,而是通过易用化的网络接口租用存储服务
  • 用户不再需要对存储系统进行运维,而是通过付费让云存储服务提供商进行数据备份和系统维护

云存储常见类型

  • 对象存储:数据放入容器,客户端利用http或restful等应用层接口分别访问元数据和数据块
  • 文件存储:基于云模式实现的NAS服务,即可租用、免维护的网络文件系统服务
  • 块存储(卷存储):可以实现在云主机中挂载一个虚拟盘符的功能(例如将一个存储卷映射为windows主机下的虚拟D盘),以及云主机镜像和快照存储等功能
  • 键值对存储:在云平台上直接实现键值对形式的NoSQL数据库,免安装、免维护、用户可以直接使用
  • 数据库存储:在云平台上直接实现的关系型数据库
  • 快照存储和镜像存储:在云平台上的虚拟机镜像和实例快照进行存储。一般是基于块存储实现
  • 消息队列存储:异步消息是分布式系统中的一种重要通信方式。消息的发送者一般会将消息发送到一个可靠的存储容器,并等待接收者收取该消息。

5.4 大数据的管理和使用

原因:将数据汇总到一处,很难实现且效率低下。

遵循“计算本地化”策略,所谓计算本地化,首先需要将数据存储在多个网络节点之上,各个节点既是存储节点也是处理节点 。

查询和处理数据时,将查询指令或处理数据所需的程序分发都各个节点,每个节点只处理或分析一部分数据,最好是本节点的数据。程序随数据移动的并行处理的方式,在较短时间内完成了处理任务

NoSQL系统会自行实现分布式存储,例如MongoDB系统;HBase系统基于HDFS分布式文件系统构建,并将所有文件操作交给HDFS,自身只负责数据库表的操作

大数据的存储和管理实现了文件方式的大数据管理,但对大数据的使用存在困难,无法直接看出数据结构和关系,没有库表的概念

NoSQL等工具会对大数据实现表格化管理、快速查询支持,以及提供数据库系统的集群的监控、扩展等维护管理功能。

NoSQL在大数据业务中的基本功能就是实现:分布式数据组织、管理和分布式数据查询,有两种方式。

  • 第一种是半结构化存储的大数据文件映射为表,即对文件进行纵向分割,对每个列定义其名称和属性,将这些名称属性作为元数据管理起来,即实现表格化管理。由于是分块存储,映射成表后,也可以实现分布式查询
  • 第二种是要求数据按照自身所规定的格式进行存储,可能需要通过数据导入等方式将原始数据按照新的格式重新存储一遍

分布式环境下大数据可以的操作:预处理、数据统计分析、数据挖掘

  预处理工具:Hadoop的MapReduce模块、Spark

  大数据挖掘和机器学习引擎:hadoop的Mahout、Spark的Mlib、谷歌的TensorFlow

6、数据可视化

从形式上可以大致分为统计图形和主题图两类

7、大数据安全和治理

7.1 身份管理和访问控制

  • 身份管理:对用户身份(凭证)的管理和身份认证。
  • 访问控制:指按照用户的身份或属性来限制和管理用户对资源的访问权限

大数据场景下,数据存储在集群环境中,且集群节点随数据增长而添加。除了要解决客户端访问集群时的认证授权问题,还要解决集群间各节点的认证授权问题,以防止攻击者冒充某个服务节点。NoSQL数据库提供了基于用户名口令的认证与授权方式,实现客户端到服务器的认证授权,Hadoop等大数据系统提供了Kerberos认证的身份管理和权限管理,一方面提供对客户端的身份认证,另一方面提供节点或组件之间的身份认证

7.2 大数据加密

主要包括传输加密和存储加密

  • 数据存储加密,常见的策略是将加密的数据上传到存储平台,使用时下载到本地再解密
  • 传输加密,不仅要解决加密算法的问题,也要解决秘钥传输和身份认证等一系列问题,通过SSL协议和数据分块后进行透明加密等方式解决这些问题

Hadoop目前采用SSL协议和数据分块后进行透明加密等方式

隐私保护和准标识符保护

猜你喜欢

转载自www.cnblogs.com/wendyw/p/12623978.html