APP下载

空管系统大数据存储

2018-03-23赵莽栓

电子技术与软件工程 2018年4期
关键词:储存大数据

赵莽栓

摘 要空管系统大数据存储和分析是该系统需要关注的重要内容,也是保证生产正常进行的技术说段。本文拟在打破传统的关系数据库的存储模式,着眼于图数据库的模式和相关技术论述空管系统大数据存储与数据分析,从图数据库的原理、方法、可应用性等方面叙述图数据库模式在空管系统中的应用,并阐述了空管系统大数据的存储与云部署以及基于图数据的数据分析模式。主要叙述了空管系统图数据库的设计模式、大数据存储、大数据计算和数据分析,并与关系型数据库和NoSQL数据库进行对比,以此说明了图数据库应用于空管系统的可行性。

【关键词】空管系统 大数据 储存

空中交通管制系统包括执行塔台和进近管制的终端区管制系统与执行区域和高空管制的区域管制系统,是国家信息化建设的重要组成部分,肩负着民航管理多架飞机起降和航行,保障飞行秩序和安全运行的任务。随着社会的发展和越来越多的飞机投入运营,空管系统承载的功能和压力也在逐步增大,每天有大量的数据在系统中流转,如何保障系统的稳定运行是必须要考虑的首要问题之一,这就涉及到数据存储机制与查询功能的改善;另外,随着数据积累的增大,可以通过计算机等手段对该数据进行统计分析和深层次挖掘其相关性以找出数据内在的信息和业务系统固有的缺陷,为后续的升级改造提供数字化依据。以下将以华东空管局为背景阐述空管系统的大数据存储和分析功能的构建。

1 概述

大数据存储和云计算是当今计算机领域的热门话题,主要应用于零售行业和传统运输业。其大数据存储是云计算的基础,只有解决了大数据的存储模式才能提供更加快捷的大数据运算,为云计算提供基于硬件的技术支持。Hadoop的产生使我们能够用普通机器建立稳定的处理TB级数据的集群,把传统而昂贵的并行计算等概念一下就拉到了我们的面前,但是Hadoop的Key-value模式和MapReduce机制的数据存储瓶颈以及功能开发的复杂性对开发人员提出了很高的要求。简洁、高效、易用、自平衡的云存储模式是解决当前诸多问题的关键,顺势而生的图数据库以其简洁高效、多种易用API接口和自带的负载均衡功能、易部署等特性越来越赢得业界的青睐。

任何数据存储模式都不能解决业务系统所有的数据问题,目前大型系统每天有大量的数据产生和流转,如何从上百G的数据中顺畅的查询出所需的记录是决定系统可用性和功能性的关键;虽然增加硬件投入可以有效缓解数据卡的现象,但找对数据存储模式更能起到事半功倍的效果。目前流行的云存储简而言之就是将大量的数据分而置之,将不同的数据分门别类,然后分配到不同层级的硬件上以减少查询的复杂度,但这种分而置之的存储架构是基于基本的存储模式的,所以选对基本的存储模式是实现云存储的关键。

空管数据除了基本的元信息数据外,主要包括雷达数据、电报数据、航班计划、航班运行数据、流控信息、电子进程单数据和航线基础管理数据等。这些数据之间具有相关性,其中航班计划数据是基础,电子进程单数据是核心,其它航空器相关的运行数据是和基础数据与核心数据密切相关的。目前的空管系统数据的存储大都采用ORACLE数据库,将这些相互关联的数据分割成离散的字段形式储存于数据表中,当使用时再将这些离散的数据组装成对象呈现到客户端。这种强行将关系打断的存储方式不仅查询效率低下,也没有有效的利用数据之间的自然联系,而是人为地将离散数据按一定规则强行组合在一起使用。由于数据之间的自然联系的丧失,导致了后续的数据分析中缺少诸多自然的属性,从而不能更好的挖掘空管数据间的相关性,不能为空管系统的更新换代提供很好的技术支持。

2 图数据库

图数据库基于最基本的图论算法,并以此为基础发展。图是定点和边的集合,是节点和关联的集合。图数据库管理系统是一种在线的数据库管理系统。它支持对图数据库模型的增删改查(CRUD)方法,一般用于事务(OLTP)系统中,并对事务性能进行了优化。选择图数据库的一个充分的理由是因为性能的显著提升,与传统的关系型数据库和NoSQL数据库相比,图数据库会随着数据集的不断增大,查询性能会趋于保持不变;而关系型数据库处理密集join(join-intensive)查询的性能会随之变差。作为开发者和数据架构师,我们总是希望根据问题域来决定如何连接数据,但现实情况往往是对问题域了解是逐渐加深的。因为图天生是可扩展的,这意味着我们可以对已经存在的结构添加不同种类的新联系、新节点、新标签和新子图,而不用担心破坏已有的查询或应用程序的性能,这种灵活性决定了我们不必在项目最初就穷思竭虑地把领域中的每一个细枝末节都考虑在模型中。另外,通过使用与当今增量和迭代的软件交付实践相吻合的软件流水线技术,能够象改进程序代码一样改进数据存储模型,现代图数据库可以让我们使用平滑的开发方式,配以优雅的系统维护,摒弃僵化的模式限制,再加上图数据库人性化的API,使我们可以用一种可控的方式来开发应用程序。

以Neo4j圖数据库为例,该图数据库提供了嵌入式Neo4j和服务器模式,并提供了多种API和遍历框架(Traversal Framework)以及Cypher查询语言;同时Neo4j集群提供了复制、使用队列写入缓冲区和全球化集群策略来更好的支持大数据存储和云计算。Neo4j本身没有负载均衡功能,而是依赖于网络基础设施的负载均衡能力。通过分离读写流量,将写操作定向到主节点,而读操作分散到整个集群来提升系统性能;通过高速缓存分片算法,提前将查询的部分区域放入高速缓存,借助一致性路由技术使整个集群的数据同步保持一致。

3 空管数据存储模型

传统的数据存储模型是基于关系型数据库的,而基于图数据库的数据存储模型将改变传统的思维模式,用一种面向对象的概念去设计基本的数据存储结构,是自上而下、自大而小的设计方法。以下就空管数据中的航班数据为例,对图数据库存储实现做一概念性的叙述。

3.1 基本数据库结构设计模式

航班数据可以由航班号、日期和位置唯一的确定该航班的状态,其中航班号属于元数据的范围,日期数据属于基础数据,位置信息(经纬度)来自于雷达数据。根据日期和航班号所关联的属性信息就可以唯一的确定该航班的基础数据,雷达数据中的经纬度与时间和该基础数据绑定就可以确定该航班的即时状态。

对图数据建模主要涉及节点、联系、和属性等因素。其中用节点来表示事物,如图1中的航班运行、日期、航班和位置;用联系来表示结构,如上图中的Belong_to、Flight_on、Flight_to、Positon_of、pos_to等;属性是表示节点或联系自身的具体内容信息。图1是对图数据库数据建模的一种概念性诠释,分4个层次:顶层是航班信息节点,该节点通过属性限定全局属性,如华东局、春季、民航、军用等;第二层是日期节点,该节点没有属性,只是单纯的日期节点,各日期节点之间通过Date_pre和Date_next联系起来,形成自然的时间序列,该节点通过Belong_to和航班节点相联系,以确定其归属;第三层节点是航班节点,该节点通过航班名称、航空公司名称和机型等属性信息标识,节点之间通过Flight_to联系相连接,形成一个队列来标识航班之间的前后顺序,各航班通过Flight_on联系与日期节点关联,以标示航班的所属日期;第四层节点是位置节点,该节点通过Position_of联系与航班节点相关联,以标示该位置属于哪一个航班,同时位置之间通过pos_to联系关联以标示位置之间的先后顺序。

数据的增删改查操作如下所述:插入数据:日期节点是一个自然顺序节点,插入是只需要按照日期节点的联系找到日期的位置,然后建立前后节点的联系即可;航班节点的插入首先找到日期节点,再根据日期和航班节点之间的联系找到新加入的节点的位置,重新建立航班节点之间的联系以及新加入航班节点与时间节点的联系;位置节点的插入首先按照日期-航班-位置的顺序找到应该插入节点的位置,然后重建位置节点之间的联系以及位置节点和航班节点之间的联系。修改数据:对任何一个节点,只需要按照从上到下的顺序,即航班运行-日期-航班-位置找到相应的节点,然后修改节点的属性及关系即可。删除数据:只需要按照从上到下的顺序,即航班运行-日期-航班-位置找到相应的节点,删除该节点时,如果该节点有下层的子节点时,子节点自动被删除。查询数据:只需要按照从上到下的顺序,即航班运行-日期-航班-位置找到相应的节点,读出该节点的属性和联系即可。

与关系型数据库模式相比,不论是插入还是查询都有很大的优势。尤其是查询,关系型数据的查询要想提高查询速度,除了增加硬件外,建立主键索引成为不二选择。而且随着数据表记录条数的增加,查询速度会越来越慢;而图数据库当数据达到一定的数量级后,其查询速度趋向于平稳,再增加记录查询时间也不会增加;这对数据密集型的业务系统有很大的帮助。图数据库与Hadoop相比,其设计模式更趋向于人性化,很容易将客观实体转变成数据结构因素;其开发模式也对程序员提出了较低的要求,对后续的快捷开发和快速应用提供支撑。

3.2 空管大数据存储实现

企业级大数据存储增容的实现分为垂直扩展和水平扩展,垂直扩展是升级数据库服务器以提供更加鲁棒的硬件性能,水平扩展是通过互联网技术,将大量的数据分门别类分散到不同的地方的不同级别的数据库服务器上以提供更加有效的数据服务。水平扩展技术是当前的热点,空管数据的存储也不例外,随着空管数据量的日趋增加和复杂化,将空管数据分散存储、就近查询以减少网络占用和硬件损耗是空管系统发展的趋势。

图数据库通过集群技术,使用主从复制实现高可用性和水平读扩展。通过将绝大部分写入操作直接在主节点上进行、从节点主要进行读操作的模式将读请求和写请求分开,并通过负载均衡器将写流量定向到主节点,而读流量分散到整个集群。而主从节点的数据同步是依靠图数据库的底层模块(配置选项)自动完成并通过内部的与或机制将数据延迟降低到最小的程度。通过高速缓存分片技术将每个请求路由到HA(高可用性)集群的特定实例上。如果应用程序的大多数查询都是局部图查询,即从图的一个或多个特定点开始,然后遍历周围的子图。那么这种一致地从一族节点开始查询,随后路由到同一数据库实例继续查询的机制将增加每个查询在热高速缓存中的命中可能性。

如图2所示,空管运行数据的存储采用主从节点的大数据存储模式,通过网络将主从节点互联,从节点之间相对隔绝;主节点存储实时运行的实际业务数据,通过策略将数据分门别类的复制到从节点上进行存储。这就要求在主从节点上分别建立有差异的图数据库结构,主数据库节点除了具备数据存储和数据写入读取功能外,还具备整个集群的主节点管理的功能;同样从节点除了存储数据外,还具备数据备份和提供查询服务的功能。

集群中数据的同步要求一致性,即保证使得主节点的写入是立即同步的,而整个集群的数据同步是最终一致的。要保证直接向主节点的写入能反映到下一个经过负载均衡的读请求上,图数据库采用一致性路由技术将写入操作定向到将用于响应后续的读取请求的从节点上。写入和读取基于请求中的一些领域条件被一致地路由。

3.3 空管大数据云计算

空管系统运行过程中产生的数据,比如航班计划、实时航班运行数据、雷达数据、电子进程单数据等,通过客户端生成后通过写入负载均衡器写入主节点数据库服务器,主节点服务器通过计算采用一致性路由技术将数据分门别类地同步到集群中的从节点上;客户端查询数据时,读出负载均衡器根据客户端的请求将请求分配到相应的从节点或主节点上。要保证云计算的顺利实施,底层数据同步策略的构建是关键,主要包括合理的规划主从数据库节点上的数据库结构,制定正确的一致性路由策略和同步机制,数据的区域分块技术,数据缓存和备份,以及存储网络的选择、带宽分配、硬件基础设施的合理配置等。同时,要尽量避免从节点的数据写入,因为从节点的写入比主节点慢一个数量级,从节点写入后,数据首先要路由到主节点上,然后再由主节点同步到各从节点上;同样的,主节点尽量避免数据的读取,以腾出资源让主节点有效地管理集群保持數据的即时同步。

在一个集群中主节点一般是唯一的,从节点可以有多个,当主节点失效时,由从节点中的一个担任主节点的角色继续提供服务。集群中每个数据库实例都包括了集群中的全部或部分数据,任何节点的失效都不会导致数据的丢失。从节点的加入可以很方便的进行,保证了云的横向易扩展性。而且集群的读吞吐量可以在理论上做到随集群中实例的个数线性增长。例如如果一个拥有5个结点的集群可以每秒响应500个读请求,那么再添加一个结点就可以将其扩容为每秒响应600个读请求。

4 数据分析概述

基于图数据库的大数据分析,是在数据存储网络发展的基础上逐渐发展的。概略的讲,数据分析的目的是通过各种数学的方法,归纳统计出数据之间的内在关系,为企业的后续规划提供数字化依据。目前数据挖掘领域方兴未艾,很多理论算法应用在了企业的大数据分析和挖掘上,如:决策树、贝叶斯算法,神经网络算法以及多种聚类分析算法。这些算法是对离散的数据进行归类,学习自学习以找出其内在的联系;但这些数学理论算法所计算的结果往往难以解释,甚至有些结果是错误的。主要是原始数据的基本联系被人为打碎存入数据库或者文件中,然后在用数学方法再建立该联系。对于数据分析,其模型的选取和方法的运用是决定能否建立该联系的决定因素,所有数据挖掘方法的选择是决定数据挖掘成败的主要因素。而图数据库与传统的关系型数据库、NoSQL数据库不同,图数据库的模式就是不打碎数据之间的相互联系而是将数据之间的关系有所增强,这种建立在紧密联系之上的数据分析不仅容易实施,而且更能揭示数据之间的近亲和远亲关系。

使用图数据库集群进行空管数据的分析,更能在很短的时间内揭示业务运行数据的规律,因为图数据库本身就是一张各数据节点之间相互联系的大表,只需按照既定的路径往下走,就可以找到需要的信息,而不用象关系型数据库那样经过大量的计算。比如航班准点率分析,只要按照航班运行-日期-航班这条路径就可以找到该日航班的所有运行数据,再和航班计划数据相比较即可以得出准点率。

空管大数据分析的目的除了统计出一定时间内业务数据之间的相关性,还要通过分析数据来确定最佳的数据云存储模式。所以数据分析不能仅限于航班、雷达等数据的聚类、分类等统计计算,还应着眼于数据流量、流向及数据均衡性的分析,通过对云存储数据量和数据流向、数据查询量等数据的计算,可以得出数据和系统运行之间的相关性,据此可以合理的分配带宽、硬件以及现场维护人员。为了达到大数据分析的目的,首先要对数据流进行归约化整合;其次建立大数据分析模型;然后将流经节点的数据在不影響业务正常运行的情况下,分配一定的硬件和软件资源对数据进行预处理,将预处理后的结果存储在单独的一台计算机上,等到数据达到一定的量后,将数据放入分析模型中进行计算,按一定梯度分别计算叠加年限的数据,再通过对比来验证分析模型的正确性。在数据分析领域,正确的数据分析模型至关重要,而模型的建立基于数据元素之间的相互联系和正确的验证方法。图数据库本身提供的Cypher工具只提供了统计功能,要进行大数据的分析,还应该借助于数据挖掘技术,运用数学方法对预处理后的数据进行计算,可以达到较好的分析效果。

5 结论

基于图数据库的空管大数据存储与分析,采用类似面向对象的思维模式,在保持数据之间相互关系的基础上,重建数据的存储模型;并运用集群技术提供图数据库的云存储部署,将大批量的空管数据分而置之于网络中,采用一致性路由技术保持数据的一致性。建立在图数据库存储模式之上的大数据分析,做好数据的预处理,通过学习自学习确立好正确的分析模型是关键因素。通过本文的探讨,图数据对于空管大数据存储和分析有其自然的优越性,对提高数据的利用率和查询效率以及数据的二次开发都有较好的作用。

参考文献

[1]Ian Robinson,Jim Webber,Emil Eifrem著.图数据库[M].人民邮电出版社,2011.

作者单位

华东空管局设备维修中心研发部 上海市 201702

猜你喜欢

储存大数据
冬季养羊这样储存草料
安防云储存时代已来
没有冰箱怎么储存食物?
松鼠怎样储存食物
大数据环境下基于移动客户端的传统媒体转型思路
精液长时间冷冻储存与冷冻复苏率的相关性研究
冬眠