一种与数据处理工具交互的数据流建模和处理系统的制作方法

文档序号:14443750阅读:144来源:国知局
本发明涉及一种与数据处理工具交互的数据流建模和处理系统,属于数据处理
技术领域
:。
背景技术
::云计算、物联网、移动互连、社交媒体等新兴信息技术和应用模式的快速发展,促使全球数据量急剧增加,推动人类社会迈入大数据时代。如今市场上有很多用于大数据处理的开源和闭源的处理系统、引擎和工具。例如,hadoop生态系统中的所有工具,这些工具之间并不全部相互兼容。这些工具是通过不同的团队用不同的语言写成,具有不同的api和不同的功能。没有一个共同的方法能够轻松地将他们集成在一个计算环境中。这就导致每一次数据分析时,都需要大量的软件编程和集成工作。在现有技术中,没有通用的方法将这些处理系统、引擎和工具集成在一起,开发人员只能为每一个模块编写定制化代码,用软件代码和脚本对他们进行集成。开发人员编写代码结束后,实施人员在生产环境中施行该代码。一旦有错误产生或者需要做出变更,开发人员需要核查几千行代码,才能找出错误所在,然后对代码进行更改。开源和闭源的数据处理系统、引擎和工具在数据流处理中扮演着不同的角色,通过写海量代码来将数据流处理中的这些定制化模块结合在一起,耗时耗力。例如,如果用另外一个模块替换其中一个模块,编程人员就要写好几百行的代码。现有技术还具有以下缺点:1.没有标准的api来操作、管理和使用这些开源和闭源的数据处理系统、引擎和工具。开发人员必须为不同的api编写定制化代码。2.不同种类的数据处理系统、引擎和工具之间没有共同的、标准的api来进行数据交换。同样地,开发人员需要为数据交换api编写定制化代码。3.没有gui界面,就不能轻松管理数据处理过程。如果需要进行一些操作,例如开始、暂停、停止等,开发人员需要首先完成该操作的代码编写。用户不能轻松地操作或者做出变更。4.没有共同的数据交换格式,数据流中的每一个模块都不相同,都有各自的交换格式,将他们结合在一个数据流处理方案中,不容易让它们顺畅地进行数据交换。需要开发人员为每一个交换环节开发出客制化代码。一旦完成数据流处理方案的设计,用户想要做出调整和改变将会十分困难。5.现有技术需要固定的软件代码,实施过程也十分严格,不灵活。一旦软件代码完成编写,就不容易改变。在实施数据流处理方案时,不可能在生产环境中对组成数据流处理方案的每一个模块进行调整。因此,如果要修改,开发人员必须再次修改代码,修改完成后,再次在开发环境中实施。6.与此前不同类型的数据产生后,需要客户反馈数据类型及其详细信息,然后数据分析人员做出分析,接着,开发人员根据分析开发相关处理程序,最终实施人员对原有方案进行更新和维护。这样使得整个开发周期变得十分漫长,在此期间,数据不能被使用,还有可能损失数据。7.系统运行时,人们不能监控到数据流处理方案中的每一个处理环节的运行状态,如果其中有一个环节出现了拥堵状况,会导致整个系统速率变慢,难以满足大数据企业的需求。8.在现有技术的数据流处理中,人们不能直观地完成处理环节的具体操作,例如对组件进行配置,需要首先由开发人员进行代码开发,然后实施人员来部署处理方案,复杂的实施步骤增加了维护难度。9.很难支持复杂的数据行为,数据流单向流动,不支持数据重复操作,不能多方向接收或发送数据。10.数据处理模型共享难度大(例如,从开发环境到生产环境)。软件代码或配置文件必须复制安装到目标环境中,而且需要重启整个项目程序。这样容易的操作方式会导致整个项目操作中断,或操作失败。技术实现要素:本发明要解决的技术问题是:为克服上述问题,提供一种高效处理不同来源的海量流数据的数据流建模和处理系统。本发明解决其技术问题所采用的技术方案是:一种与数据处理工具交互的数据流建模和处理系统,包括:图形用户界面,用于创建数据流图;界面服务器,连接于图形用户界面,接受图形用户界面的数据流图,并解析成命令函数;执行端,包括数据处理工具,所述执行端与界面服务器连接,接受其发送的命令函数进行操作,最终将结果通过界面服务器发送到图形用户界面。优选地,所述图形用户界面包括多种用于建立数据流图的组件,每个组件模拟执行端的数据处理工具其中之一的功能,在图形用户界面中将组件组合在一起可创建数据流图。优选地,所述界面服务器与图形用户界面之间的控制函数采用统一的源代码进行编译。优选地,所述界面服务器还可以进行以下操作:(1)编辑和运行数据处理工具中的脚本;(2)从数据处理工具中调用预写的函数;(3)将用户从图形用户界面发出的数据处理模型、查询和其他api命令翻译给数据处理工具;(4)对数据处理工具进行定时自动操作;(5)将数据处理工具的运行状态、操作状况及错误报告给图形用户界面。优选地,所述数据处理工具包括日志采集系统、消息系统和分析处理平台、计算引擎、查询搜索和报告工具、存储工具、集群管理和监控和容器和缓存工具或商业智能工具。优选地,所述查询搜索和报告工具包括phoenix、stinger、presto、sparksql、pig、apacheimpala、apachedrill、apachetajo、sqoop、nutch、lucene、solrcloud、solr、elasticsearch、sphinx、senseidb或jaspersoft。优选地,所述计算引擎包括以下四种:(1)流式数据计算引擎:puma、rainbird、yahoos4、apachestorm、datatorrent、sparkstreaming或flink;(2)迭代计算引擎:apachehama、apachegiraph、haloop或twister;(3)离线批量计算引擎:hadoopmapreduce、apachespark、nosqldatabases、columnorienteddatabases或sqldatabases;(4)机器学习引擎:mahout、mllib、datamelt、keel、orange、rattle、spmf、weka或hivemall。优选地,所述日志采集系统包括scribe、flume、logstash、chukwa或fluentd。优选地,所述存储工具至少包括以下5种:(1)键值存储工具:leveldb、rocksdb、hyperdex、tokyocabinet、voldemort、amazondynamo、tair、accumulo、redis、leveldb或sstable;(2)表格存储工具:oceanbase、amazonsimpledb、vertica、cassandra、hypertable、foundationdb或hadoophive;(3)文件存储工具:couchdb、mongodb或hadoophdfs;(4)关系型数据库工具:oracledb、mariadb、postgresql、ibmdb2、mssqlserver、pivotalgreenplum或aerospike;(5)其他存储工具:hibari、neo4j、orientdb、flockdb、riak、blazegraph、tokudb、hadoophbase、recordio或infobright。优选地,所述消息系统包括stormmq、zeromq、rabbitmq、activemq、jafka、apachekafka、netty、apacheavro、thrift、flatbuffers、cap’nproto、messagepack或protocolbuffers。优选地,所述集群管理和监控和容器和缓存工具包括nagios、ganglia、apacheambari、oozie、zookeeper、consul、dapper、zipkin、docker、kubernetes、lmctfylinux、ignite、terracotta、pivotalgemfire/geode、gridgain或infinispan。优选地,商业智能工具包括hpcc、pandas、reef、openstack、talendopenstudio、jaspersoft、pentaho、spagobi、knime、birt、intelligentminer、spss、pivotalgreenplum、rapidminer或disco。本发明的有益效果是:本发明具有以下优点:1.通过图形用户界面与界面服务器让使用者可以通过简单的图形设计来完成对数据流图的设计和执行,增加了处理效率,降低了该工作的难度,增加了本系统的适用人群。2.本系统在设计数据流图和执行数据流图的过程中,都可以直观的操作和得到反馈执行结果,在某一数据处理工具执行出现问题时,可及时发现并进行解决,避免了现有技术中要进行大量排查才能找到问题。3.界面服务器自行的将数据流图解析成命令函数发送到数据处理工具,用户可通过简单的操作获得复杂的数据处理行为,并且可以多次重复执行。附图说明下面结合附图和实施例对本发明进一步说明。图1是本发明一个实施例的结构框图;图2是本发明另一个实施例的结构框图;图3是本发明一个实施例的流程图。具体实施方式现在结合附图对本发明作进一步详细的说明。这些附图均为简化的示意图,仅以示意方式说明本发明的基本结构,因此其仅显示与本发明有关的构成。实施例1如图1所示的本发明所述一种与数据处理工具交互的数据流建模和处理系统,包括:图形用户界面(graphicaluserinterface,简称gui,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面,用户可在图形用户界面中通过简单的操作来创建数据流图,给予用户一个简单实用的编辑平台;界面服务器,连接于图形用户界面,接收图形用户界面的数据流图,并解析成命令函数,数据流图中包括数据的整体处理过程,其中会有在其中某个步骤需要相应的数据处理工具进行处理,界面服务器先将数据流图中需要的数据处理工具解析出,再解析出这些数据处理工具在对应的位置需要做出哪些数据处理,将每个数据处理工具要作出的数据处理转换成相应的命令函数,分布发送到相应的数据处理工具,如图2中所示,界面服务器可以设置多个,具体数量可根据需要设置;执行端,即为数据处理的最终执行端,包括数据处理工具,所述执行端与界面服务器连接,接受其发送的命令函数进行操作,因为数据处理工具种类繁多,界面服务器在转换命令函数时对应每个数据处理工具进行分别编译,最终将结果通过界面服务器发送到图形用户界面,反馈后可让使用者实时的了解数据流图的执行情况及处理结果。本发明通过以上设置具有以下优点:1.通过图形用户界面与界面服务器让使用者可以通过简单的图形设计来完成对数据流图的设计和执行,不需要通过编写代码来开发(设计)模型和处理数据。只需要在gui上拖拽组件就能开发(设计)模型。用于数据处理的算法会产生形成图形化界面的,而不是需要使用编程语言的编程步骤,降低了该工作的难度,增加了本系统的适用人群。2.本系统在设计数据流图和执行数据流图的过程中,都可以直观的操作和得到反馈执行结果,在某一数据处理工具执行出现问题时,可及时发现并进行解决,避免了现有技术中要进行大量排查才能找到问题。3.界面服务器自行的将数据流图解析成命令函数发送到数据处理工具,用户可通过简单的操作获得复杂的数据处理行为,并且可以多次重复执行。4.可以使用样本数据进行数据建模实验这种方式开发数据处理模型。本系统中数据处理模型可以导出到文件夹中,然后共享,再导入到各自的系统中。并且开发完成后,该实验模型就能部署到生产环境之后,无需做任何修改。5.以本发明开发数据处理方案时,由于组件和界面服务器都是提前测试好的,其中的bug很少。在优选的实施方式中,所述图形用户界面包括多种用于建立数据流图的组件,每个组件模拟执行端的数据处理工具其中之一的功能,在图形用户界面中将组件组合在一起可创建数据流图,所述数据处理工具采用现有技术中已有的工具,在图形用户界面中可根据需要设置数据处理工具对应的组件,在实际使用中,组件可进行分类和规划,针对设计不同的数据流图设置不同的组件,如图2中所示,可将同类的组件对应一个界面服务器设置,也可以单独对应,以同类组件数量区别设置。本发明使用时,先在图形用户界面上编辑数据流图,将需要的组件拖拽至编辑区进行编辑,编辑完成后,运行该数据流图,图形用户界面将数据流图的操作发送给界面服务器,比如开始、暂停、停止、输入、输出、发送等。图形用户界面将查询操作也发送给界面服务器,界面服务器将这些信息进行转化为多个命令函数,然后发送给执行端的对应的数据处理工具。数据处理工具收到这些命令函数后,就开始工作,然后给图形用户界面发送指示。在优选的实施方式中,所述界面服务器与图形用户界面之间的控制函数采用统一的源代码进行编译,因界面服务器针对图形用户界面的操作进行相应处理,因此其之间的控制函数采用同一标准的源代码进行编译,可有效的增加效率,不需要在不同标准的代码之间进行转换。在优选的实施方式中,所述界面服务器还可以进行以下操作:(1)编辑和运行数据处理工具中的脚本;(2)从处数据理工具库中调用预写的函数;(3)将用户从图形用户界面发出的数据处理模型翻译给数据处理工具库、并向数据处理工具库发出查询命令和其他api命令发送,除了数据流图之外,用户还可以通过图形用户界面进行其他以上操作;(4)对数据处理工具进行定时自动操作,控制方式更加多样化;(5)将数据处理工具的运行状态、操作状况及错误报告给图形用户界面,及时反应数据处理情况,让用户及时作出对应。在优选的实施方式中,所述数据处理工具包括日志采集系统、消息系统和分析处理平台、计算引擎、查询搜索和报告工具、存储工具、集群管理和监控和容器和缓存工具或商业智能工具,以上工具为本发明较优选的选择,但不限于此,还可根据需要选择其他现有的数据处理工具。在优选的实施方式中,所述查询搜索和报告工具包括phoenix、stinger、presto、sparksql、pig、apacheimpala、apachedrill、apachetajo、sqoop、nutch、lucene、solrcloud、solr、elasticsearch、sphinx、senseidb或jaspersoft,但不限于此,还可根据需要选择其他。在优选的实施方式中,所述计算引擎包括以下四种:(1)流式数据计算引擎:puma、rainbird、yahoos4、apachestorm、datatorrent、sparkstreaming或flink;(2)迭代计算引擎:apachehama、apachegiraph、haloop或twister;(3)离线批量计算引擎:hadoopmapreduce、apachespark、nosqldatabases、columnorienteddatabases或sqldatabases;(4)机器学习引擎:mahout、mllib、datamelt、keel、orange、rattle、spmf、weka或hivemall,但不限于此,还可根据需要选择其他。在优选的实施方式中,所述日志采集系统包括scribe、flume、logstash、chukwa或fluentd,但不限于此,还可根据需要选择其他。在优选的实施方式中,所述存储工具至少包括以下5种:(1)键值存储工具:leveldb、rocksdb、hyperdex、tokyocabinet、voldemort、amazondynamo、tair、accumulo、redis、leveldb或sstable;(2)表格存储工具:oceanbase、amazonsimpledb、vertica、cassandra、hypertable、foundationdb或hadoophive;(3)文件存储工具:couchdb、mongodb或hadoophdfs;(4)关系型数据库工具:oracledb、mariadb、postgresql、ibmdb2、mssqlserver、pivotalgreenplum或aerospike;(5)其他存储工具:hibari、neo4j、orientdb、flockdb、riak、blazegraph、tokudb、hadoophbase、recordio或infobright,但不限于此,还可根据需要选择其他。在优选的实施方式中,所述消息系统包括stormmq、zeromq、rabbitmq、activemq、jafka、apachekafka、netty、apacheavro、thrift、flatbuffers、cap’nproto、messagepack或protocolbuffers,但不限于此,还可根据需要选择其他。在优选的实施方式中,所述集群管理和监控和容器和缓存工具包括nagios、ganglia、apacheambari、oozie、zookeeper、consul、dapper、zipkin、docker、kubernetes、lmctfylinux、ignite、terracotta、pivotalgemfire/geode、gridgain或infinispan,但不限于此,还可根据需要选择其他。在优选的实施方式中,商业智能工具包括hpcc、pandas、reef、openstack、talendopenstudio、jaspersoft、pentaho、spagobi、knime、birt、intelligentminer、spss、pivotalgreenplum、rapidminer或disco,但不限于此,还可根据需要选择其他。以上数据处理工具的具体类型为现有的工具,上述均为工具的英文名称或简称,均在现有技术中可查。实施例2在实施例1所述一种与数据处理工具交互的数据流建模和处理系统的基础上,本实施例提供一个具体实施的例子,图3描述了一个数据处理过程,包括sqlquery由用户定义,查询存储在hive表格中的数据,查询结果发送至计算引擎spark中,spark做进一步的计算和转化,然后将转化的数据输出给hive。这些数据再次存储在hive中的另一张表格中。为了实现上述数据处理目标,在本发明系统中,用户首先需要在图形用户界面上编辑数据流图,将对应sqlquery、spark和hive的组件拖拽至编辑区进行编辑,按照图3进行编辑出相应的数据流图。编辑完成后,运行该数据流图,图形用户界面将数据流图的操作发送给界面服务器,界面服务器将这些信息进行转化成命令函数,然后发送给sqlquery、spark和hive,执行完之后在将结果反馈给图形用户界面。以上述依据本发明的理想实施例为启示,通过上述的说明内容,相关工作人员完全可以在不偏离本项发明技术思想的范围内,进行多样的变更以及修改。本项发明的技术性范围并不局限于说明书上的内容,必须要根据权利要求范围来确定其技术性范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1