面对大数据的爆炸式增长,且具有大数据量、异构型、高时效性的需求时,数据的存储不仅仅有存储容量的压力,还给系统的存储性能、数据管理乃至大数据的应用方面带来了挑战。
这些大量的数据结构复杂,种类繁多,如何对分布、多态、异构的大数据进行管理的问题已经不期而至,传统的数据存储方式面对大数据的猛烈增长已不能满足需求,需要开展分布式存储的研究。
随着数据量的爆炸式增长,不断刺激着计算机技术的发展,如何利用大数据为人们生活所用,即是大数据的应用问题。大数据的应用在人类活动中所涉及的范围越来越大,与我们已经密不可分。
数据转换是按照预先设计好的规则将抽取的数据进行转换,在转化过程中,我们需要对数据进行清洗、整理和集成,即发现数据中的错误数据并进行相应的改正,将原来不同规则的数据整理集成为统一的规则。
全量抽取发现空值并处理:
发现源数据中字段空值,按照一定的规则进行加载或者替换,比如可以用“0”或者按照该字段的平均取值来替换。
规范数据格式:
将不同源系统的不同数据格式统一规范。
转化过程需要将这些不同的表示格式统一成为唯一的规范格式。
拆分数据:
有时候需要一句业务需求对字段进行分解。比如通话主叫号码02381322854,可进行区域码和电话号码分解为主叫地区023和主叫号码81322854。
数据存储系统能力的提升主要有三个方面,一是提升系统的存储容量,二是提升系统的吞吐量,三是系统的容错性
存储容量:提升系统容量有两种方式:一种是提升单硬盘的容量,通过不断采用新的材质和新的读写技术,目前单个硬盘的容量已经进入TB时代。一种是在多硬盘的情况的下如何提升整体的存储容量。
吞吐量:对于单个硬盘,提升吞吐量的主要方法是提高硬盘转速、改进磁盘接口形式或增加读写缓存等。而要提升数据存储系统的整体吞吐量,比较典型的技术是早期的专用数据库机体系。
容错性:数据存储容错是指当系统中的部件或节点由于硬件或软件故障,导致数据、文件损坏或丢失时,系统能够自动将这些损坏或丢失的文件和数据恢复到故障发生前的状态,使系统能够维持正常运行的技术。
分布式系统:分布式系统可以解决大数据存储的问题,为大数据的存储提供了方式。分布式系统的定义包括两个方面:第一是关于硬件的:机器本身是独立的。第二个方面是关于软件的:对于用户来说,他们就像跟单个系统打交道。这两个方面一起阐明了分布式系统的本质,缺一不可。
NoSQL数据库:它是“Not Only SQL”的缩写,意义是:适用关系型数据库的时候就使用关系型数据库,不适用的时候也没必要非使用关系型数据库不可,可以考虑使用更加合适的数据存储方式。
云存储:云存储是伴随着云计算技术的发展而衍生出来的一种新兴的网络存储技术,它是云计算的重要组成部分,也是云计算的重要应用之一;它不仅是数据信息存储的新技术、新设备模型,也是一种服务的创新模型。
(1)保持数据的一致性(事务处理)
(2)由于以标准化为前提,数据更新的开销很小(相同的字段基本上都只有一处)
(3)可以进行JOIN等复杂查询
(4)存在很多实际成果和专业技术信息(成熟的技术)
(1)大量数据的写入处理
(2)为有数据更新的表做索引或表结构(schema)变更
(3)字段不固定时应用
(4)对简单查询需要快速返回结果的处理
1、键值存储
临时性键值存储的特点:
1)在内存中保存数据
2)可以进行非常快速的保存和读取处理
3)数据有可能丢失
永久性键值存储的特点:
1)在硬盘上保存数据
2)可以进行非常快速的保存和读取处理
3)数据不会丢失
此类型数据库适合处理的数组类型的特点:
1)同时在内存和硬盘上保存数据
2)可以进行非常快速的保存和读取处理
3)保存在硬盘上的数据不会消失(可以恢复)
4)适合处理数组类型的数据
2、面向文档的数据库
2.1 不定义表结构
即使不定义表结构,也可以像定义了表结构一样使用。关系型数据库在变更表结构时比较费事,而且为了保持一致性还需要修改程序。然而NoSQL数据库则可省去这些麻烦,确实是方便快捷。
2.2 可以使用复杂的查询条件
跟键值存储不同的是,面向文档的数据库可以通过复杂的查询条件来获取数据。虽然不具备事务处理和JOIN这些关系型数据库所具有的处理能力,但除此以外的其他处理基本上都能实现,这是非常容易使用的NoSQL数据库。
3、面向列的数据库
面向列的数据库具有高扩展性,即使数据增加也不会降低相应的处理速度(特别是写入速度),所以它主要应用于需要处理大量数据的情况。另外,利用面向列的数据库的优势,把它作为批处理程序的存储器来对大量数据进行更新也是非常有用的。但是由于面向列的数据库跟现行数据库存储的思维方式有很大不同,应用起来是非困难。
云存储的概念是指通过网络技术、分布式文件系统、服务器虚拟化、集群应用等技术将网络中海量的异构存储设备构成可弹性扩张、低成本、低能耗的共享存储资源池,并提供数据存储访问、处理功能的系统服务。
2.4.1 云存储的分类
**公共云存储:**公共云存储可以划出一部分用作私有云存储,一个公司可以拥有或控制基础架构以及应用的部署,私有云存储可以部署在企业数据中心或相同地点的设施上。
内部云存储:这种云存储跟私有云存储比较类似,唯一的不同点在于它在企业的防火墙内部。目前可提供私有云的平台主要有Eucalyptus、3A Cloud、minicloud安全办公私有云、联想网盘等。
混合云存储:这种云存储把公共云、内部云或私有云结合在一起。主要用于按客户要求的访问,特别是需要临时配置容量的时候,从公共云上划出一部分容量配置一种内部云或私有云可以帮助公司面对迅速增长的负载波动或高峰。正因如此,混合云存储带来了跨公共云和私有云分配应用的复杂性。
2.4.2 云存储的特点
1、低成本
2、服务模式
3、弹性伸缩
4、高可靠
5、高可用
6、超大容量存储
7、安全
2.4.3 存储系统的类别
块存储系统:
它是能直接访问原始的未格式化的磁盘。这种存储的特点就是速度快、空间利用率高。块存储多用于数据库系统,它可以使用未格式化的磁盘对结构化数据进行高效读写。而数据库最适合存放的是结构化数据。
文件存储系统:
它使用格式化磁盘提供文件系统的使用界面。在计算机上打开或关闭文档的时候,看到的就是文件系统。尽管文件系统在磁盘上提供了一层有用的抽象,但是它不适合于管理大量的数据,或者超量使用文件中的部分数据。
对象存储系统:
它指的是一种基于对象的存储设备,具备智能、自我管理能力,通过Web服务协议实现对象的读写和存储资源的访问。对象存储的优势在于它可以存放无限增长的内容非结构化或半结构化的数据。除此之外,对象存储还具备低成本、高可靠的优点。
数据仓库系统以数据仓库为核心,将各种应用系统集成在一起,为统一的历史数据分析提供坚实的平台,通过数据分析与报表模块的查询和分析工具OLAP(联机分析处理)、决策分析、数据挖掘完成对信息的提取,以满足决策的需要。数据仓库系统通常是指一个数据库环境,而不是指一件产品。数据仓库系统的体系结构分为源数据层、数据存储与管理层、OLAP服务器层和前端分析工具层。
1)数据抽取
2)数据转换
3)数据装载
数据装载是把经过转换的数据按计划增量或全部导入到数据仓库中去。一般情况下,数据装载应该在系统完成了更新之后进行。如果在数据仓库中的数据来自多个相互关联的企业系统,则应该保证在这些系统同步工作时移动数据。数据装载包括基本装载、追加装载、破坏性合并和建设性合并等方式。
4)元数据管理
元数据(Metadata)是描述数据的数据,也就是对业务数据本身进行及其运行环境的描述与定义的数据。所有的抽取数据源定义、抽取数据项定义、抽取规则、数据转换规则、数据格式变换规则、装载方法、装载时间等等都在元数据中定义。它指导数据抽取、转换、装载的全过程。