一种大数据互动交换系统的制作方法

文档序号:15047467发布日期:2018-07-27 23:00阅读:493来源:国知局

本发明属于电子技术领域,特别是涉及一种大数据互动交换系统。



背景技术:

随着企业数据量的不断增加,计算机需要处理的数据已经从mb级别达到tb级别,甚至pb级别,单个服务器已无法对企业所有数据进行存储与分析,需要将数据抽取汇总到大数据平台进行分析处理。企业遗留系统通常包含各种类型的数据,包含存储于关系数据库系统的业务数据,存储为文件形式的各种文档资料与日志文件,也包含来自大量传感器的实时监测数据等。如何对这些数据都高效、实时的进行采集是大数据项目成功的第一步。

目前已经存在一些单一类型的大数据采集系统,比如hadoop生态系统的sqoop系统,支持从关系数据库进行并行的数据抽取,目前已经支持oracle、sqlserver、mysql等各种主流数据库,并且支持通过mapreduce来并行的执行抽取任务。比如分布式消息采集系统kafka,是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。还比如nutch这种分布式的爬虫系统,可以从互联网并行抓取数据并存储于hadoop文件系统中。

关系数据库之间相互转化的工具已经广泛应用与企业,包含oracle、sqlserver也都提供了数据导入导出其他数据库的工具。informatica和ibm也有相关产品,支持关系数据库、xml等结构化半结构化数据的转换。但是目前还没有专门的系统来支持大数据平台中系统与传统关系数据库等进行方便的交换。因为大数据系统数量众多,还在不断增加,仅nosql数据库就有几十种,如何提供良好的系统架构来将这些数据库接入到交换系统,是具有挑战的问题。

目前这些大数据采集系统互相独立存在,而且hadoop的加载机制单一,比如从关系数据库抽取的数据只能加载到hive中,而不能加载到hbase中来实现一些快速的查询服务。另外在加载到hadoop中以后,也不存在一种方法支持数据在hadoop不同子系统进行流动。比如hive中的数据需要进行大量数据清理,而hive本身又不支持数据的修改,这时就需要将数据转移到hbase中来进行处理。



技术实现要素:

本发明的目的在于提供一种大数据互动交换系统,支持关系数据库、非结构化文档、传感器数据库与hadoop平台hive、hbase、hdfs系统之间数据双向流转,通过采用并行任务调度和采用内存来存储所有中间数据,实现高效的数据交换。

为了达到上述目的,本发明提供了一种大数据互动交换系统,所述系统包括:

控制交换中心,部署于spark平台,通过yarn资源管理框架将spark平台和hadoop平台部署于同一个集群;控制交换中心内存对象存储与spark中,所有中间数据与不同类型数据模型转换任务也由spark执行;包括都分散在不同的服务器中的关系数据库系统、非结构化文档、传感器数据;

hadoop大数据平台,包含hdfs、hbase、hive子系统,用于加载抽取的数据,并提供分析功能;

交换代理,部署于不同数据源系统之上或者控制交换中心;用于通过远程接口来和数据源进行交互;包括交换代理与交互控制中心之间的控制消息通道与数据通道。

作为本发明的一种优选技术方案,所述控制交换中心包含任务调度模块、内存对象管理模块、数据转换模块,所述控制交换中心用于通知数据源的交换代理进行数据抽取,并将数据传输到控制交换中心;所述控制交换中心用于进行源数据模型到内存对象模型的转换;所述控制交换中心还用于任务的统一调度。

作为本发明的一种优选技术方案,所述任务调度模块用于调度交换代理数据抽取、数据加载任务,数据模型转换任务,数据传输任务。

作为本发明的一种优选技术方案,所述内存对象管理模块用于管理中间数据的存储与更新;所述数据转换模块用于不同数据模型与统一内存对象之间的转换。

作为本发明的一种优选技术方案,当系统出现故障时,控制交换中心在进行每一个操作前记录日志,故障后重启系统,恢复失效前的状态,然后重新抽取所有丢失的数据,重构内存空间。

作为本发明的一种优选技术方案,控制与交换中心采用统一的内存对象模型来存储数据交换的中间数据,每一种数据源的数据通过交换代理实现数据模型与内存对象模型的映射转换;统一的内存对象模型采用sparkrdd格式来存储数据;数据在内存中中转,不写入磁盘。

作为本发明的一种优选技术方案,所述控制交换中心通过队列管理等待的任务。

作为本发明的一种优选技术方案,当内存空间不足,无法存储新到数据,控制交换中心根据调度策略通知交换代理,暂停数据抽取任务,等内存空间满足需要时,继续执行数据抽取任务

与现有技术相比,本发明的有益效果在于:

本发明提供一种大数据互动交换系统,所述大数据互动交换系统是结合了当前大数据技术的各种解决方案基础上,可以满足不同处理需求,所有交换任务统一进行调度控制,可以提高数据交换的效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明提供的大数据互动交换系统的第一种结构示意图。

图2是本发明提供的大数据互动交换系统的第二种结构示意图。

图3是本发明提供的大数据互动交换系统的第三种结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

下面通过具体实施例,对本发明进行详细的说明。

参见图1,一种大数据互动交换系统,所述系统包括:

第一个场景看图2,在某国家电网子公司,要对现在存储与关系数据库中大量用户用电记录进行分析,但是传统数据库无法提供高性能查询分析需求,因此需要将数据加载到hadoop平台hive系统进行分析。

首先需要选择一个对应数据库的交互代理,比如oracle交互代理,来实现数据的抽取,并传输到控制交换中心。控制交换中心将关系数据转换为内存对象模型。这里对应的内存对象模型,每一个表格就是一个类。该内存对象模型存储于sparkrdd中,即通过分布式内存存储。然后控制交换中心将rdd中内存对象模型转换为hive的数据模型,并交由hive交换代理将数据写入hive系统中。

在hive进行分析前,发现存在大量脏数据,需要进行数据清理,但是hive不支持对数据进行修改,因此将部分数据迁移到hbase来进行清理,然后再回写到hive中。这里需要实现hive和hbase的双向数据流动。从图中可以看到各代理、控制交换中心、大数据系统之间都是双向箭头。需要选择hive代理和hbase代理。因为hive和hbase数据模型并不同,因此用户需要定义规则,来选择hive哪些表哪些列要转化到hbase中,哪个列作为hbase的键,哪些列通过哪种形式作为hbase的列簇。具体的映射方法本发明不详细列出,可以通过多种方式实现。

对于向hive回写修改的数据,可以首先把对应的原始数据表删除,再写入修改后的数据,也可以将修改的数据写入新的表,和原始数据共存于hive系统。

第二个场景看图3,在具体的实施环境中,大量电力设备及所处环境布置了若干传感器,来实时采集设备运行参数、温度、湿度等信息,并存储于传感器服务器的键值对数据库。因为累积数据量特别大,现在需要将数据迁移到hbase中。可以选择键值对数据库交换代理来进行数据抽取,选择hbase交换代理来实现数据加载。键值对类型与hbase数据模型可以很容易映射,hbase就简化为一个键值对数据库来存在即可。

第三个场景,在若干服务器上不不断产生大量文件,这些文件的来源可能来自网络爬虫,也可能来自服务器日志,现在需要从这些文件实时抽取一些关键信息,实时高速的存放到hdfs中。为了提高数据吞吐量,我们可以设计专门的代理。该代理包含一个钩子程序,可以截获操作系统的文件消息,在服务器将要进行文件写操作时,同步解析消息命令,来获取文件内容,放到内存中,然后由交换代理发送到控制交换中心,再交由hdfs交换代理进行文件写入,这样所有中间数据都存在于内存,可以极大减少磁盘io,提高数据传输效率。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1