基于storm的物联网数据处理系统及方法

文档序号:9810290阅读:464来源:国知局
基于storm的物联网数据处理系统及方法
【技术领域】
[0001]本发明涉及物联网数据处理技术领域,特别是基于storm的物联网数据处理系统及方法。
【背景技术】
[0002]物联网是通过新一代的IT技术(如RFID射频识别技术、云计算技术等)将传感器装备或者嵌入到全球各行各业的物体中,通过相互之间的链接形成“物联网”,然后通过云计算技术和超级计算机对收集到的海量数据进行处理和分析,达到对物体智能化管理和控制的目的。
[0003]随着云计算大数据的发展,数据的处理趋于分布式处理,海量数据通过分布到不同的节点运算来提高数据的处理能力。而目前分布式平台中,storm平台具有开发灵活性高,处理能力强,对于物联网的实时流数据处理的适配性好,高可靠性和可扩展性好等优点,本系统采用storm平台作为基础计算平台。
[0004]但基于storm框架的软件重用性和数据处理系统的可扩展性有一定的局限,软件的开发周期长,成本高。

【发明内容】

[0005]为了解决上述现有技术中的不足,本发明提供一种基于storm的物联网数据处理系统,用户可以灵活地选择不同功能的组合,方便开发人员的二次开发,降低系统二次开发的成本。
[0006]基于storm的物联网数据处理系统,包括数据预处理插件,用于接收物联网数据,以及
[0007]数据格式的预处理,将多结构的数据转换为统一数据格式;
[0008]语句解析插件,用于提供给用户交互的功能,接收用户需要对数据源进行操作的语句,
[0009]将用户执行语句进行词法语法解析,形成解析树发送给逻辑处理插件;
[0010]逻辑处理插件,通过解析树提取语义并进行功能选择,将功能号和该功能执行所需要的参数以json格式封装在数据包中发送给功能执行插件;
[0011]功能执行插件,通过所述逻辑处理插件的数据包选择具体的功能模块,并提取对应的参数传入该模块,最后执行该功能。
[0012]所述数据预处理插件包括数据接收模块、数据预处理模块和数据发送模块。
[0013]所述数据接收模块和数据预处理模块支持来自RFID装置、传感器或二维码的数据格式。
[0014]所述语句解析插件包括语句接收模块和语句解析模块。
[0015]所述逻辑处理插件包括系统配置模块和逻辑处理模块。
[0016]所述功能执行插件包括持续查询模块、删除查询模块、算子监听模块和创建流模块。
[0017]本发明还提供一种基于storm的物联网数据处理方法,步骤如下:
[0018]S1、数据预处理插件中的数据接收模块接收来自数据发送器的数据,数据预处理模块将数据由原始格式转换为系统可识别的格式,数据发送模块将数据发送到语句解析插件;
[0019]S2、语句解析插件接收用户对于系统操作的csql语句,并对语句的词法和语法进行解析,查看固定关键字是否缺失,生成解析树传到逻辑处理插件;
[0020]S3、逻辑处理插件对提取解析树的关键字,判断该解析树是否为create语句的解析树,如果是则将create语句中数据格式定义语句进行语义提取,配置数据接入格式,将配置的数据格式封装在固定数据包中,传入功能执行插件;如果解析树是查询语句的解析树,则提取关键字和参数,发送给功能执行插件构建拓扑进行查询计算;如果是create语句和查询语句以外的解析树,则提取对应的功能和该功能的参数,传递给功能执行插件进行具体执行;
[0021 ] S4、功能执行插件接收到数据包后,根据语句命令选择相应的功能执行。
[0022]所述逻辑处理插件输出数据包括功能号和功能执行的参数信息。
[0023 ] 本发明通过s torm平台处理物联网流数据,则充分利用s torm平台对于流数据的支持和分布式运算能力,将无限、实时的数据分发到不同的计算节点进行计算,然后统一返回给用户;由于物联网数据多样化,存在无结构化,半结构化和结构化数据,本发明通过数据预处理插件对物理网数据采集的数据接受并通过数据预处理将数据处理成为结构化数据,并提供create语句来定义数据格式,可以灵活地处理物联网多样化的数据;采用插件化设计,每一个插件可以独立开发,各个插件之间不相互依赖,通过插件管理器,用户可以自由替换,增加,删除插件,减小了系统之间的耦合性,增加了系统的可扩展性和可维护性;每个插件之间都采用模块化设计,并通过代工的设计模式,通过插件管理器可以替换每个插件中部分不满足用户需求的模块功能,使系统具有更好的适配性;通过java的反射机制来加载算子和通过最优逻辑树的关键字与算子之间的匹配关系来选择算子,并允许用户自定义算子和修改算子和关键字的匹配关系,使用户灵活地选择不同能的组合。
【附图说明】
[0024]图1为基于storm的物联网数据处理系统实施例的框图;
[0025]图2为图1中实施例的模块结构图;
[0026]图3为图1中实施例的应用场景图。
【具体实施方式】
[0027]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0028]如图1所示,基于storm的物联网数据处理系统分为5个部分:插件管理器,数据预处理插件,语句解析插件,逻辑处理插件和功能执行插件。
[0029]插件管理器:负责加载、运行和管理插件。
[0030]数据预处理插件:数据预处理插件负责接收传感器节点产生的物联网数据,以及数据格式的预处理,将多结构的数据转换为结构化数据格式。
[0031]语句解析插件:语句解析插件负责将用户执行语句进行词法语法解析,形成解析树。
[0032]逻辑处理插件:逻辑处理插件通过解析树提取语义并进行功能选择,并将功能号和该功能执行需要的参数信息以json格式封装在数据包中,发送给功能执行插件执行。例如,如果是查询功能,则进行逻辑调优,形成最优逻辑树,并且将功能号和最优逻辑树的json格式封装在数据包中发送。如果是创建流功能,则通过解析树配置数据源的数据格式,并且将创建流功能号和数据格式的json格式封装在数据包中发送。
[0033]功能执行插件:功能执行插件负责执行具体的功能,例如,如果是查询则建立Topology提交storm集群运行。
[0034]插件管理器为本系统的管理模块,不允许用户做修改和定义,但提供了用户修改和替换插件的接口。另外,插件管理器利用java中的代工设计模式提供了替换插件中部分功能模块的功能,用户可以根据需求,对于插件中的模块功能进行替换,实现了不仅替换插件,并且替换插件内部模块的功能。每个插件的模块定义如图2所示。其中每一个模块都是独立的功能抽象,用户只要根据接口规范实现功能类并通过插件管理器,便可以修改插件内部申旲块的功能。
[0035]数据预处理插件默认提供各类传感器、RFID、二维码和视屏流数据的接收,并对数据进行数据清理和结构化调整,可使用本系统自定义的csql语言中的create语句能够描述的数据格式,create语句的巴科斯范式定义为〈” create” streamname “{”> {attribut1ntype”由于是插件化设计,用户可以自定义数据预处理插件,将数据的数据格式预处理为系统能够识别的数据格式,并通过create语句对系统进行定义,系统可以对数据进行处理。
[0036]语句解析插件默认使用antlr开发的词法和语法解析器,解析的语言为自定义的csql语言,该语言的create语句由上一给出,而查询语句语法与cql语言语法相同,其中词法解析器主要分析用户输入的单词是否正确,而语法解析器则通过每一个单词的比对进行语法的校验,csql语言主要提供的创建流语句、监听流语句,删除流语句和查询语句的词法和语法分析,并通过词法和语法分析生成解析树。如果用户需要对于词法和语法解析进行重新定义,则利用插件管理器移除语句解析插件并加载自定义插件,插件需要能够接收数据采集插件采集的数据并能够正确解析用户传入的语句。如果是部分解析功能需要调整,则通过实现解析接口,并利用插件管理器中的功能替换接口来传入该解析实例,系统则会在该语句解析时调用用户自定义解析,并输
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1