大数据环境下的数据存储及应用研究
2021-12-06吴飞
吴 飞
(中国直升机设计研究所,江西 景德镇333001)
0 引言
随着企业的业务成熟和数字化转型的不断推进,业务系统的数量和存储的数据量均呈现爆发性增长,结合日益发展成熟的大数据技术和数据中台概念的落地,企业内部也在构建存储、管理和利用海量数据的大数据平台。数据仓库在大数据环境中承担着数据存储的职责,能够很好地满足海量数据存储及分析利用的要求,但是其本身在应用上也存在一定的局限性,主要表现为在海量数据的查询、状态管控和展现上存在着效率低下的问题。为了更好地利用大数据的优势,可以采用多层数据存储的方式使数据既能完整统一,也能满足数据快速查询和分析利用的要求。
1 大数据概述
大数据作为互联网发展中的一次技术创新对全社会产生了巨大的冲击,数据量成倍增长后从量变引起了质变,深刻影响着企业的经营决策活动。“大数据”本身是一个很多技术概念的集合,即不能在有限时间内使用常用工具软件对数据进行采集、存储和处理的数据综合体。大数据一般存在以下4个特点:数据规模大、数据格式多、数据处理快和数据价值低[1]。
(1)数据量大,指涉及的数据体量巨大[2]。企业中的应用系统经过长年累月的使用,积累了越来越多的数据,且随着日常管理工作的日趋完善,信息系统仍在不断构建,数据量很容易就达到了PB级,这大大地超过了传统数据库所能存储和分析的量级。
(2)数据类型多,指数据源广泛且类别各异。企业中的数据已不再仅仅包含数据库中所存储的结构化数据,还包括文本等半结构化和音视频等非结构化数据,同时文本、图片、音视频等类型数据的占比日益增加。
(3)数据处理快,指数据分析加工快。企业中每秒都在产生数据,对数据处理的及时性也随之提出更高的要求,数据处理过慢则影响数据的使用。考虑数据价值的有效性,数据处理遵循1秒定律。
(4)数据价值低,不是指大数据本身没有价值,而是指有价值的数据在数据量中的占比低。企业中随着整体数据量的增大,无效的数据也随之变多,数据的价值需要不断的整理、挖掘和分析才能得到很好的体现,数据可用性程度较低。
2 数据存储设计
在设计大数据环境下数据的存储时,将采用的数据存储分为了三层:操作数据存储层、数据仓库层、分析结果存储层。其中,操作数据存储层主要使用关系型数据库,目的是在直接将数据抽取到数据仓库的过程中增加缓冲,确保数据仓库的稳定,同时将一些不符合规则的数据筛选出来;大数据仓库层则是使用Hive(数据仓库工具)进行数据的存储,将各类数据汇总后按数据主题分别存储;分析结果数据存储层使用的是关系型数据库和非关系型数据库组合的方式存储数据,提供数据给上层应用访问,详细的总体设计情况如图1所示。
图1 数据存储设计
2.1 操作数据存储层
操作数据存储层是大数据存储应用中的一个重要组成部分,也被称为贴源层。在操作数据存储层的设计上主要参考了数据仓库的设计和数据建模方法,方法的比较主要体现在ER模型(实体联系模型)和维模型上,但是ER模型和维模型在大数据存储的设计中不是互斥的,ER模型可以完整地展示数据之间的联系,而维模型可以保留实际的数据结构。因此不能简单地区分哪种模型更优,需要根据实际应用场景决定使用哪种数据存储设计,从而使数据更好地反映企业的业务情况。操作数据存储层具备了数据仓库和联机事务处理过程的一些特点,它也是通过集成各业务数据,按主题存储业务最新和详细数据的集合,能够实现全数据临时存储以及处理的要求。结合单位内部实际需求,操作数据存储主要完成了数据缓冲、转移查询和数据状态控制功能。
2.1.1 数据缓冲
大数据环境集成的数据来源十分复杂,一般表现为来源于多个应用系统,且数据的存储方式、业务模型等都各不相同,从而大大提高了数据抽取的难度。因此,操作数据存储层用于临时存储从业务系统中集成的数据,存储的数据与源数据的结构一致并且数据的关联关系也一致,仅对部分字段进行转换。因此在数据集成时基本不用考虑抽取转换的过程,更多的关注点在数据集成的方式和频率、数据量以及源数据的结构。
当源数据应用系统出现问题时,数据缓冲可以确保数据仓库完全不受影响,而数据仓库中存放的是完整的、所有的数据,其安全性和稳定性可以得到最好的保证。
2.1.2 转移查询
在大数据环境应用之前,各业务系统自身根据业务需要生成大量的分析报表,但是往往有些分析报表非常复杂,业务系统在实现大量复杂sql语句(结构化查询语言)时对业务系统的运行造成了巨大的压力。分析查询操作也可以直接在数据仓库中进行,然而数据仓库中数据存储量大,数据存储模式不再是关系型而转变为面向主题的方式,在应对简单报表生成和查询时反而显得效率低下,难以满足用户查询要求。操作数据存储层的数据从数据结构、数据关联关系和数据的完整性等方面都和源系统一致,因此可以在操作数据存储层实现业务系统的报表生成和数据检索功能,从而减轻业务系统的检索量。
2.1.3 数据状态控制
在应用系统众多的今天,企业内部仍然没有实现所有业务工作都能使用系统管理,而是通过邮件将Excel表分发到各部门再汇总统计,这部分工作往往由专人负责但是缺乏对数据的管控,数据无法有效地留存和再利用。此类规范性的数据在大数据环境中很受欢迎,数据的质量有保障,也可以很容易地对其进行分析,因此数据录入必不可少。
数据仓库中的数据是经过清洗和转换的,数据录入的数据不能直接存进数据仓库,需要经过审批后才能确定为有效数据,这种简单的审批操作无法直接在数据仓库中进行。操作数据存储层可以作为源数据库存储录入的数据,同时使用字段控制数据的状态满足数据审批和数据抽取的要求,仅当数据状态位为“1”时,数据才会从操作数据存储层中抽取到数据仓库中。
2.2 数据仓库层
数据仓库是一个基于主题存储的、数据高度集中的、分布式的、全生命周期的存放海量数据的集合,数据仓库中存放了完整可用的企业数据[3]。数据仓库和传统的关系型、非关系型数据库不同,传统的数据库在设计时更多考虑的是系统功能,而数据仓库存储数据是按照主题划分的。业务系统中存储的数据归属于各业务本身,对相同物品的描述、计量方式、存储类型等方面都存在差异。将存储在各应用系统中的数据经过数据抽取和转换后形成一致性的表达,再将数据存储至数据仓库进行管理。数据仓库的数据是全生命周期的,其可以对最新数据进行检索,也可以对历史数据进行追溯。数据仓库存储的数据理论上不应该再进行修改,当集成的数据源中的数据发生变化后,再加载到数据仓库时会形成新的数据条目,以此可以追溯数据的变化。但是考虑到数据本身的重要程度远远大于数据修改的代价,因此在本单位的数据仓库设计中主要考虑了数据存储和少量的数据更改。
2.2.1 数据存储
数据存储主要考虑业务的数据模式,根据业务的数据要求确定数据模型,一般建议使用星型模型,即将采集的数据经过预处理存入事实表,少量关键信息处理为维表[4]。在信息检索时可以很方便地对事实表进行操作,不必进行大量的join操作,能够明显地提升检索效率。同时星型模型的事实表可读性比较好,不用关联多个表就能获取大部分核心信息,设计维护都相对简单。如数据是基于时间维度产生的,就可以将时间信息从数据表中剥离,并以时间信息为维表构建数据存储模型,将其余信息存入事实表,通过这种存储方式可以很清晰地对各个历史时间段内某个主题的数据进行获取利用。
2.2.2 数据更改
数据仓库中的数据是从各系统抽取而来的,原则上并不能修改,而且数据仓库的技术本身也未提供修改的方法,但是考虑到有些集成的数据是通过人工录入得到的,虽然考虑了数据需要经过审批才能被生效,但是并不能确保数据100%准确无误。而错误的数据存储进数据仓库后很可能会对分析计算产生不良的影响,降低分析结果的准确率,因此需要确保数据可以被更改,可以通过维表将需要修改的数据分区进行删除并重新创建达到数据更改的目的。
2.3 分析结果数据存储层
分析结果数据存储层主要是将经过各种算法加工的数据与视觉编码进行映射后进行存储,这类结果数据一般有访问频率高和获取速度快两大使用特点,因此分析结果数据一般存入联机事务处理数据库中,以提高需要经常访问的数据的效率。数据库的选用和设计完全根据业务需求而定,如经过联机分析计算后的数据主要被拿来作图表的呈现和报表的生成,则可以选用关系型数据库存储结果数据;若分析后的数据仍然是比较离散的,引用数据者对离散数据还需要进行二次加工和分析,则可以选用非关系型数据库存储结果数据。为了满足数据对应用访问的要求,分析结果数据存储层一般采用关系型和非关系型数据库联合构建的方式,可以满足企业内部数据安全、高效使用的要求。
2.3.1 数据安全
数据经过分析处理后存储到分析结果数据库中,将数据仓库和用户隔离开。用户访问需要的数据时只能访问分析结果,不能直接去访问数据仓库,避免了用户直接连接数据仓库,保证数据仓库中的数据无法直接访问,减少人为修改的可能。同时也可以降低用户对数据的访问范围,对数据的使用无须访问多个主题中的数据,仅得到结果即可。
2.3.2 高效查询
数据仓库本身数据量大,且被设计为给联机分析处理提供数据支撑,不适合直接作为查询的源端使用,在获取数据的基础上还要再进一步分析计算,最短的时间也在5s以上,这对于使用页面访问数据来说是无法接受的,因此需要将计算后的数据存储在可以高效查询的数据库中,以提高数据的访问和使用效率。
2.3.3 应用解耦
数据经过分析计算后将结果数据存入分析结果数据库中,再将分析结果取出提供给其他应用使用。通过将各应用与数据仓库解耦的方式,一方面减少了应用高频率且重复性强的访问数据仓库,减轻数据仓库的压力,另一方面当数据仓库设计发生改变时,应用层仍然可以使用原方式使用数据。
3 结论
目前,大数据思想已经深入企业中,企业在管理和研发过程中均在探索大数据与实际业务的结合,通过数据存储的三层设计有效地解决了企业内部对于大数据的存储和利用问题,为企业更好地利用大数据技术提供了新的思路和解决方法。