CN104778258B - 一种面向协议数据流的数据抽取方法 - Google Patents
一种面向协议数据流的数据抽取方法 Download PDFInfo
- Publication number
- CN104778258B CN104778258B CN201510187447.9A CN201510187447A CN104778258B CN 104778258 B CN104778258 B CN 104778258B CN 201510187447 A CN201510187447 A CN 201510187447A CN 104778258 B CN104778258 B CN 104778258B
- Authority
- CN
- China
- Prior art keywords
- data
- parameter
- rule
- current
- parsing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种面向协议数据流的数据抽取方法,属于数据仓库领域。本发明根据工业领域中数据帧的结构特点,给出了一种通用的面向协议数据流的数据抽取机制,具体包括三个步骤:(1)提取描述性信息,获取抽取数据项所需要的解析参数;(2)利用解析参数,确定数据帧中数据域的模式信息,主要包括数据域的结构、格式和类型;(3)根据解析参数和数据域的模式信息,实现对数据项的抽取,并转换成结构化的数据保存。本发明可以对各种类型的协议数据帧的数据实现有效而准确地抽取,更能保证数据抽取的扩展性、通用性以及灵活性,即在通信协议改变的情况下本发明也能适用。
Description
技术领域
本发明属于数据仓库技术领域,更具体地,涉及一种面向协议数据流的数据抽取方法。
背景技术
近年来,随着物联网、云计算、大数据等技术的快速发展,相关的工业设备向着智能化的方向迈进,使得工业信息化的发展进程不断地加快。通过将全球的工业系统与先进计算、数据分析工具、低成本的传感设备和更高联网水平的高度融合,将重构全球工业,提高生产效率,工业的创新和变革正在展开。互联网技术和工业技术的深度融合将深刻地改变人们的生活方式,让世界更快速、更安全、更清洁并且更经济,必将由此引发全球范围内的再一次的技术革命,美国著名公司GE将此次技术革命称之为“工业互联网革命”,即是由工业互联网技术而引发的生产力革命。而工业互联网技术能广泛应用的基础即要解决能将海量分布的智能工业设备中的实时数据快速高效地集成到数据仓库中。
智能工业设备的智能性即在于设备的行为能够通过软件程序快速灵活地定制设计,例如改变交互过程,协议数据参数或者是应用层的数据通信协议,并且要求数据采集系统要能够同样快速及时地响应这种变化。传统的数据采集技术通过二次开发的方式,也能适应这种变化,但是往往开发周期很长,无法从根本上满足及时快速响应的要求。具体来讲,在对于工业互联网系统更加智能化和信息化的系统而言,传统的数据采集技术在通用性、扩展性以及灵活性方面存在着明显的不足。
智能设备对数据采集系统的挑战最根本地在于智能设备能够更灵活地选择各种应用层的数据通信协议,构建全球工业系统统一标准的数据通信协议在短期内是不可能实现的,长远来看也会面临很多困难,而传统的数据采集技术无法从根本上解决上述技术问题。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供一种面向协议数据流的数据抽取方法,既满足当前对协议数据流的数据抽取要求,又保证了数据抽取的通用性、灵活性以及可扩展性。
本发明提供一种面向协议数据流的数据抽取方法,包括以下步骤:
步骤1建立针对工业通信协议的数据抽取规则,所述数据抽取规则包括参数解析规则和模式信息规则,分别保存于参数解析规则文件和模式信息规则文件,其中,所述参数解析规则文件用于描述数据帧的类型与结构,所述模式信息规则文件用于描述数据转换与处理规则;
步骤2读取所述参数解析规则文件,将其中所描述的不同解析节点实例化成具体的对象,生成由实例对象构成的数据解析树;读取所述模式信息规则文件,生成数据模式映射表;
步骤3从协议数据流中接收数据帧,并利用所述数据解析树从所述数据帧中提取出关于数据项内容的描述性信息,以获取抽取数据项所需要的解析参数;
步骤4利用所述解析参数以及所述数据模式映射表,确定所述数据帧中数据域的模式信息,其中,所述模式信息包括所述数据域的结构、格式和类型;
步骤5根据所述解析参数以及所述模式信息,利用有限状态机实现对所述数据帧中数据项的抽取,并将抽取的数据项转换成结构化的数据保存。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有以下有益效果:
本方法通过对现有工业中数据帧的共同特点,定义了数据帧的公共模型及其描述方法与参数,并允许相关领域的设计开发人员基于该模型对新的数据协议进行配置建模,而无需重新设计开发协议软件,最终实现数据帧的解析与数据抽取的目的。面向协议数据流的数据抽取方法可以对各种类型的协议数据帧的数据实现有效而准确地抽取,更能保证数据抽取的扩展性、通用性以及灵活性,即在协议改变的情况下该方法也能适用,显著提高了在工业领域中对二进制的数据帧数据抽取的普适性
附图说明
图1为本发明实施例数据抽取的过程示意图;
图2为本发明实施例树形解析节点的示意图;
图3为本发明实施例数据解析树和数据模式映射表生成的过程示意图;
图4为本发明实施例数据模式的结构示意图;
图5为本发明实施例基于树形结构的参数解析的过程示意图;
图6为本发明实施例基于有限状态机的数据项提取和结构化生成的过程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
本发明包括以下三个部分:提取描述性信息,以获取抽取数据项所需要的解析参数,为数据域中数据的抽取做准备;利用上阶段所获取的解析参数,确定数据帧中数据域的模式信息,数据域的模式信息主要了包括数据域的结构、格式和类型;根据解析参数和数据域的模式信息,实现对数据项的抽取,并转换成结构化的数据保存。
图1所示为本发明实施例中数据抽取的过程示意图,具体包括以下步骤:
步骤1建立针对实际应用工业通信协议的数据抽取规则,包括参数解析规则和模式信息规则,该两类规则分别保存于参数解析规则文件和模式信息规则文件。其中,参数解析规则文件主要用于描述数据协议的数据帧的类型与结构,例如某一种类型的数据帧包含什么数据内容,偏移地址、长度等信息;模式信息规则文件主要用于描述数据转换与处理规则,包括原子参数处理规则和组合参数处理规则,并包含了转换与处理函数名及相关参数。
步骤2读取参数解析规则文件,将该参数解析规则文件中所描述的不同节点实例化成具体的对象,在内存中构建由实例对象构成的数据解析树;读取模式信息规则文件,在内存中构建数据模式映射表。
步骤3从协议数据流中接收数据帧,并利用数据解析树从数据帧中提取出关于数据项内容的描述性信息,获取抽取数据项所需要的解析参数,为数据域中数据内容的抽取做准备。其中,协议数据流是指按照步骤1中提及的工业通信协议建立的数据通信通道,数据帧为数据通信的基本单元。
步骤4利用步骤3所获取的解析参数以及步骤2生成的数据模式映射表,确定该数据帧中用于保存待抽取数据的数据域的模式信息,其中,数据域的模式信息主要包括数据域的结构、格式和类型。
步骤5根据步骤3获取的解析参数以及步骤4获取的数据域的模式信息,利用有限状态机实现对数据帧中的数据项的抽取,并将抽取的数据项转换成结构化的数据保存。
本发明数据抽取方法的关键在于数据抽取规则,其中数据抽取规则的参数解析规则和模式信息规则由相应配置文件信息生成。在本发明实施例中,通过XML格式对参数解析规则文件和模式信息规则文件进行内容管理。
下面将分别介绍参数解析规则文件和模式信息规则文件的格式。
在本发明实施例中,参数解析规则文件将通过如下单个解析节点的配置示例以说明:
在本发明实施例中,模式信息规则文件通过如下单个数据模式的配置示例以说明:
本发明中的参数解析方法的生成关键是参数解析和解析节点队列采用基于树形的数据结构,以下将详细说明参数解析和解析节点队列的相关参数。
在本发明实施例中,根据参数解析规则的结构形式将参数解析规则分为两种主要类型:原子参数解析结构以及组合参数解析结构。
其中,原子参数解析结构包含六个主要属性,采用六元组来描述:In=<Ad,Be,L,D,Rn,DT>,其中In表示原子参数解析结构;Ad表示位置分布类型;Be表示语义单元起始地址;L表示原子语义单元的长度;D表示与源数据实现逻辑与的操作数;Rn表示需要右偏移位数;DT表示目标数据格式。
组合参数解析结构,包含两个主要属性,采用二元组来描述:InS=<G,Lin>,其中InS表示组合参数解析结构;G表示组合规则,即通过G将多个原子信息单元组合成有实际意义的信息单元;Lin表示参数解析集,包含了多个配置属性如上述的原子参数解析结构In。
在本发明实施例中,解析节点选择方式主要分为两种形式:基于特征字选择方式和基于令牌选择方式。
其中,基于特征字选择方式是一种基于特征字查询的解析节点选择方式,包含一个哈希映射表用于特征字的快速查询。该哈希映射表包含了所有解析节点特征字的哈希表,可用二元组(key,value)表示,其中key对应解析节点的特征字,value为key对应的解析节点的名称。
基于令牌选择方式是一种利用解析参数值作为判断依据查找解析节点的方式,包含一个模式信息链表,链表中的每个解析节点由三部分组成:逻辑算子F,通过该逻辑算子F以及抽取参数集P中的对应参数来判断是否选择当前的解析节点;抽取参数集P,为与当前逻辑算子F相对应的相关参数;节点名称N,表示当前解析节点对应的解析节点名称。
图2所示为本发明实施例步骤2中数据解析树和数据模式映射表生成的过程示意图,具体包括以下子步骤:
在步骤201中,获取节点的配置信息,读取参数解析规则文件,依次读取文件中的配置信息并转换为XML格式对应的参数解析规则DOM对象;
在步骤202中,根据参数解析规则DOM对象中节点的<Node Type>判断当前节点的参数解析类型,如果只有一个原子解析参数,则执行步骤203,否则表示存在多个原子解析参数,执行步骤204;
在步骤203中,读取参数解析规则DOM对象中的<Address Distribution>、<BeginAddress>、<Length>、<Data>、<Right offset>和<Data Type>等参数,并相应赋予位置分布类型Ad、语义单元的起始地址Be、原子语义单元的长度L、与源数据实现逻辑与的操作数D、右偏移位数Rn、目标数据格式DT,完成原子参数解析结构In的初始化,然后执行步骤205;
在步骤204中,从参数解析规则DOM对象中,按照步骤203的方式读取多个原子参数解析结构,并构建组合参数解析结构,将读取的多个原子参数解析结构赋予参数解析集Lin,并进一步读取组合规则G以及参数解析集;
在步骤205中,根据参数解析规则DOM对象中<Extraction Parameter>标签下各子标签内容是否为空来判断当前节点的解析节点选择方式,如果不为空则当前节点采用基于特征字选择方式,执行步骤206,否则执行步骤207,即当前节点采用基于令牌选择方式;
在步骤206中,创建基于哈希表的解析节点映射表,将解析节点名称N作为Key值,用在内存中建立的对应解析节点对象Op的引用作为Value值,构建(Key,Value)对插入到解析节点哈希映射表中,继续执行步骤208;
在步骤207中,依次读取解析节点名称N、逻辑算子F以及抽取参数集P,并将其按参数解析规则文件中的顺序插入到模式信息链表中;
在步骤208中,判断参数解析规则文件是否读取完成,如果是则执行步骤209,否则执行步骤201;
在步骤209中,读取模式信息规则文件,依次读取该文件中各个数据项的模式信息;
在步骤210中,读取模式信息中的各个元组信息,并采用链式结构将其存储于内存中,具体结构如图3所示。图3所示为本发明实施例的数据模式的结构示意图,模式信息在内存中的存储结构为一链表——模式信息链表,链表的每个节点均包含属性标识、操作函数及参数集,该参数集进一步包含数据帧中对应数据项的偏移地址和长度;
在步骤211中,以模式标识Mn作为Key值,对应的模式信息链表入口地址作为Value值建立基于哈希表的数据模式映射表;
在步骤212中,判断模式信息规则文件是否读取完毕,如果是则本步骤结束,执行步骤3,否则继续执行步骤209。
图4所示为本发明实施例树形解析节点的示意图,采用多叉树结构,每个父节点包含有多个子节点。
图5所示为本发明实施例步骤3中基于树形结构的参数解析的过程示意图,具体包括以下子步骤:
在步骤301中,接收待解析的数据帧;
在步骤302中,根据解析树根节点的名称到解析节点对象映射表中获取根解析节点对象Op;
在步骤303中,执行当前解析节点的解析函数,判断当前参数解析类型,如果是原子参数类型,则执行步骤304,否则执行步骤307;
在步骤304中,读取解析节点对象Op中配置的抽取参数Ep信息,并根据起始地址Be和长度L定位到当前参数的数据帧区域,获取数据项内容;
在步骤305中,用逻辑与操作数D与步骤304中获取的数据项内容做逻辑与操作,将结果再按右偏移位数Rn向右偏移,获取参数在数据区域的有效位;
在步骤306中,根据目标数据格式DT将从数据帧中获取的数据转换成目标数据,然后执行步骤312;
在步骤307中,遍历模式信息链表,依次读取抽取参数Ep的信息;
在步骤308中,根据读取的抽取参数Ep中的起始地址Be和长度L定位到当前参数的数据帧区域并获取数据项内容,用逻辑与操作数D与获取的数据项内容做逻辑与操作,将结果再按右偏移位数Rn向右偏移,获取参数在数据区域的有效位,根据目标数据格式DT将从数据帧中获取的数据转换成目标数据;
在步骤309中,将步骤308抽取的参数存储到一个临时的抽取参数链表;
在步骤310中,判断是否到达模式信息链表尾,是则执行311,否则执行307;
在步骤311中,根据组合规则G以及已获取的相关参数,得到组合参数数据;
在步骤312中,根据参数名称Ps(来自模式信息规则文件中的<ParameterSet>标签下的参数),将获取的参数值输出到共享参数列表中;
在步骤313中,判断当前节点的选择方式,如果是基于特征字的选择方式,则执行步骤314,否则执行步骤315,即为基于令牌的选择方式;
在步骤314中,根据步骤312获取的参数值,从解析节点映射表中获取对应解析节点的名称,然后执行步骤316;
在步骤315中,根据获取的参数值、抽取参数以及逻辑算子,依次遍历模式信息链表,直到得到节点名称;
在步骤316中,通过节点名称,获取下一节点的解析节点对象Op;
在步骤317中,判断当前是否到达解析树的叶子节点,是则参数解析过程结束,否则执行步骤303。
本发明实施例中提供的数据项提取和结构化生成方法核心是利用有限状态机来实现对数据项的数据提取,以下将对本发明中的有限状态机模型做详细说明。
有限状态机的包括三个主要方面:转移状态、输入事件以及转移函数。
有限状态机转移状态:状态机的状态集Q={B,M,V,Q,T,E},包括六个状态分别为B、M、V、Q、T和E,其中B表示起始状态,表示数据域数据抽取的开始状态或者是数据域中某个数据记录抽取的开始状态;E表示结束状态,表示当前数据域的数据抽取过程全部完成;M、V、Q、T状态分别表示提取完数据标识、数据元素值、数据质量以及数据时间后所处的状态。
有限状态机的输入事件:状态机有穷的输入符号集合∑={b,m,v,q,t,e},包括六个输入事件b、m、v、q、t和e,其中b事件表示抽取完记录的最后一个元组数据,但当前数据域抽取未结束,数据域中数据记录的个数表示为N,每次抽取完一条数据记录后N递减1,根据N的值来判断数据域抽取是否结束,当N大于0时则表示抽取未完。反之,当N等于0表示抽取结束,事件b可以表述为b=<le,N1>,le表示最后元组事件,N1表示N取值大于0;e事件表示抽取完成后记录的最后一个元组数据,并且当前数据域抽取已经全部完成,e=<le,N0>,le如b中表述一样,N0表示N等于0事件;事件m、v、q、t分别表示下一阶段的要实际抽取的数据为数据标识、数据元素值、数据质量以及数据时间。有限状态机通过循环遍历数据模式映射表,分别生成数据模式标识所对应的事件,当遍历到链表尾时产生事件l。事件e表示收取结束。
有限状态机的转移函数:有限状态机的状态转移函数主要是实现数据提取以及缺失属性的数据补齐。数据提取是通过当前事件所对应的二元组数据提取参数Me=<OF,OP>,其中OF表示操作函数,OP表示函数参数集,从数据域中提取当前数据记录的元组属性,该元组属性来自模式信息规则文件的<Attributes Node>标签包含的所有参数,对于函数参数集OP中的起始地址是当前元组属性相对当前属性所在数据项的偏移地址,在数据抽取过程要不断更新数据记录的起始地址,定义L=L0+n×Ld,其中L0表示数据域的起始偏移,n表示当前已抽取的数据记录数,Ld表示数据记录的长度,对于特定类型的数据模式,其数据记录的长度是相同的。例如对于状态转移函数S(B,v)所描述的过程即为当前状态为B接收到事件v,状态要转移到V状态,在元组属性完整的情况下,B状态首先应该收到的应该是m事件,即数据标识事件,所以这里就存在着数据标识属性的缺失,需要补齐该数据记录中的数据标识。同样对于S(V,b)则缺失了数据质量和数据时标,需要对应补齐。缺失的属性取值有两种形式:数据预处理阶段的解析参数和默认参数。即首先在解析参数表中查找是否有对应的属性值,如果没有找到则通过读取默认的参数,例如对于时标的默认参数即为系统当前时间。对于数据标识属性缺失,其属性值V=f(Vb,np)来表示,Vb为数据起始标识,np表示当前已经处理数据记录,f表示对Vb和np的数据运算,运算函数f由具体的数据协议的数据项定义,具体以回调函数的形式配置到模式信息规则文件中。
图6所示为本发明实施例步骤5中基于有限状态机的数据项提取和结构化生成的过程示意图,具体包括以子下步骤:
在步骤501中,根据上述步骤3生成的参数,获取数据项的抽取参数,例如起始偏移地址Offset、数据项个数N以及数据时标Time等信息;
在步骤502中,从起始偏移地址Offset处开始读取数据帧,定位数据域的初始地址,并将数据模式偏移到首地址处;
在步骤503中,根据数据模式的偏移地址获取到当前的输入事件以及元组提取参数,并执行步骤504;
在步骤504中,判断当前所处状态以及输入事件,判断条件用SSe表示,如下表1中所示,其中下标S表示当前所处状态,e表示当前输入事件,例如表1中SBv,则表示当前状态处在初始B状态,接收到v事件。如果当前为SBm,则执行步骤505,如果当前为SBv,则执行步骤506,如果当前为SMv,则执行步骤507,如果当前为SVq,则执行步骤508,如果当前为SVt,则执行步骤509,如果当前为SQt,则执行步骤510,如果当前为SVe,则执行步骤511,如果当前为SQe,则执行步骤512,如果当前为STe,则执行步骤513,如果当前STb,则执行步骤514,如果当前SQb,则执行步骤515,如果当前为SVb,则执行步骤516;
表1
在步骤505中,通过数据标识的操作函数OF和函数参数集OP,从指定偏移处提取出数据项中的数据标识,数据项循环个数减1,有限状态机状态转移到状态M,并执行步骤517;
在步骤506中,根据解析参数中的数据项基地址Ba和当前已抽取数据项个数ND,得到数据记录地址,补齐当前数据记录的数据地址,通过数据值v的提取操作函数OF和函数参数集OP,从指定偏移处提取出数据项中的数据值v,数据项循环个数减1,有限状态机状态转移到状态V,并执行步骤517;
在步骤507中,通过数据值v的提取操作函数OF和函数参数集OP,从指定偏移处提取出数据项中的数据值v,有限状态机状态转移到状态V,并执行步骤517;
在步骤508中,通过数据质量q的提取操作函数OF和函数参数集OP,从指定偏移处提取出数据项中的数据质量q,有限状态机状态转移到状态Q,并执行步骤517;
在步骤509中,从解析参数中获取到当前数据项的数据质量q,补齐当前数据记录的数据质量q,通过数据时间t的提取操作函数OF和函数参数集OP,从指定偏移处提取出数据项中的数据时间t,有限状态机状态转移到状态T,并执行步骤517;
在步骤510中,通过数据时间t的提取操作函数OF和函数参数集OP,从指定偏移处提取出数据项中的数据时间t,有限状态机状态转移到状态T,并执行步骤517;
在步骤511中,从解析参数中获取到当前数据项的数据质量q,补齐当前数据记录的数据质量q,从解析参数获取到该数据帧的数据时间t,补齐当前数据记录的数据时间,有限状态机状态转移到终止状态E,结束流程;
在步骤512中,从解析参数获取到该数据帧的数据时间t,补齐当前数据记录的数据时间,有限状态机状态转移到终止状态E,结束流程;
在步骤513中,有限状态机状态转移到终止状态E,结束流程;
在步骤514中,有限状态机状态转移到开始状态B,并执行步骤517;
在步骤515中,从解析参数获取到该数据帧的数据时间t,补齐当前数据记录的数据时间,有限状态机状态转移到开始状态B,并执行步骤517;
在步骤516中,从解析参数中获取到当前数据项的数据质量q,补齐当前数据记录的数据质量,从解析参数获取到该数据帧的数据时间t,补齐当前数据记录的数据时间,有限状态机状态转移到开始状态B,并执行步骤517;
在步骤517中,判断当前是否为数据项的最后一个元组,如果是则执行步骤518,否则执行步骤519;
在步骤518中,判断当前数据项个数是否为0,如果是则执行步骤520,否则执行步骤521;
在步骤519中,数据模式偏移到下一元组属性地址处,并执行步骤503;
在步骤520中,生成结束事件e,执行步骤504;
在步骤521中,数据模式偏移到首地址处,生成开始事件b,并执行步骤504。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种面向协议数据流的数据抽取方法,其特征在于,包括:
步骤1建立针对工业通信协议的数据抽取规则,所述数据抽取规则包括参数解析规则和模式信息规则,分别保存于参数解析规则文件和模式信息规则文件,其中,所述参数解析规则文件用于描述数据帧的类型与结构,所述模式信息规则文件用于描述数据转换与处理规则;
步骤2读取所述参数解析规则文件,将其中所描述的不同解析节点实例化成具体的对象,生成由实例对象构成的数据解析树;读取所述模式信息规则文件,生成数据模式映射表;
步骤3从协议数据流中接收数据帧,并利用所述数据解析树从所述数据帧中提取出关于数据项内容的描述性信息,以获取抽取数据项所需要的解析参数;
步骤4利用所述解析参数以及所述数据模式映射表,确定所述数据帧中数据域的模式信息,其中,所述模式信息包括所述数据域的结构、格式和类型;
步骤5根据所述解析参数以及所述模式信息,利用有限状态机实现对所述数据帧中数据项的抽取,并将抽取的数据项转换成结构化的数据保存。
2.如权利要求1所述的方法,其特征在于,所述参数解析规则分为原子参数解析结构以及组合参数解析结构,其中,所述原子参数解析结构包含六个主要属性,采用六元组来描述:In=<Ad,Be,L,D,Rn,DT>,其中In表示原子参数解析结构,Ad表示位置分布类型,Be表示语义单元起始地址,L表示原子语义单元的长度,D表示与源数据实现逻辑与的操作数,Rn表示需要右偏移位数,DT表示目标数据格式;所述组合参数解析结构包含两个主要属性,采用二元组来描述:InS=<G,Lin>,其中InS表示组合参数解析结构,G表示组合规则,即通过G将多个原子信息单元组合成有实际意义的信息单元,Lin表示参数解析集,包含了多个原子参数解析结构In。
3.如权利要求1所述的方法,其特征在于,所述解析节点选择方式分为基于特征字选择方式和基于令牌选择方式,其中:
所述基于特征字选择方式包含一个哈希映射表用于特征字的快速查询,该哈希映射表包含了所有解析节点特征字的哈希表,可用二元组(key,value)表示,其中key对应解析节点的特征字,value为key对应的解析节点的名称;
所述基于令牌选择方式包含一个模式信息链表,所述模式信息链表中的每个解析节点由三部分组成:逻辑算子,通过所述逻辑算子以及抽取参数集中的对应参数来判断是否选择当前的解析节点;抽取参数集,为与当前逻辑算子相对应的相关参数;节点名称,表示当前解析节点对应的解析节点名称。
4.如权利要求1-3中任一项所述的方法,其特征在于,所述步骤2包括以下子步骤:
在步骤201中,获取解析节点的配置信息,读取所述参数解析规则文件,依次将其中的配置信息转换为XML格式对应的参数解析规则DOM对象;
在步骤202中,根据所述参数解析规则DOM对象判断当前解析节点的参数解析类型,如果只有一个原子解析参数,则执行步骤203,否则执行步骤204;
在步骤203中,读取所述参数解析规则DOM对象中的参数并相应赋予原子参数解析结构的各属性,然后执行步骤205;
在步骤204中,从所述参数解析规则DOM对象中,按照所述步骤203的方式读取多个原子参数解析结构,并构建组合参数解析结构,将读取的多个原子参数解析结构赋予参数解析集,并进一步读取组合规则以及参数解析集;
在步骤205中,根据所述参数解析规则DOM对象中抽取参数标签下各子标签内容是否为空来判断当前解析节点的解析节点选择方式,如果不为空则执行步骤206,否则执行步骤207;
在步骤206中,创建基于哈希表的解析节点映射表,将解析节点名称作为Key值,用在内存中建立的对应解析节点对象的引用作为Value值,构建(Key,Value)对插入到所述解析节点哈希映射表中,然后执行步骤208;
在步骤207中,依次读取解析节点名称、逻辑算子以及抽取参数集,并将其按所述参数解析规则文件中的顺序插入到模式信息链表中;
在步骤208中,判断所述参数解析规则文件是否读取完成,是则执行步骤209,否则执行步骤201;
在步骤209中,读取所述模式信息规则文件,依次读取其中各个数据项的模式信息;
在步骤210中,读取所述模式信息中的各个元组信息,并采用链式结构将其存储于内存中;
在步骤211中,以模式标识作为Key值,对应的模式信息链表入口地址作为Value值建立基于哈希表的数据模式映射表;
在步骤212中,判断所述模式信息规则文件是否读取完毕,是则执行所述步骤3,否则继续执行步骤209。
5.如权利要求1-3中任一项所述的方法,其特征在于,所述步骤3包括以下子步骤:
在步骤301中,接收待解析的数据帧;
在步骤302中,根据解析树根节点的名称到解析节点对象映射表中获取根解析节点对象;
在步骤303中,执行当前解析节点的解析函数,判断当前参数解析类型,如果是原子参数类型则执行步骤304,否则执行步骤307;
在步骤304中,读取解析节点对象中配置的抽取参数信息,并根据起始地址和长度定位到当前参数的数据帧区域,获取数据项内容;
在步骤305中,用逻辑与操作数与所述步骤304中获取的数据项内容做逻辑与操作,将结果再按右偏移位数向右偏移,获取参数在数据区域的有效位;
在步骤306中,根据目标数据格式将从数据帧中获取的数据转换成目标数据,然后执行步骤312;
在步骤307中,遍历模式信息链表,依次读取抽取参数的信息;
在步骤308中,根据读取的抽取参数中的起始地址和长度定位到当前参数的数据帧区域并获取数据项内容,用逻辑与操作数与获取的数据项内容做逻辑与操作,将结果再按右偏移位数向右偏移,获取参数在数据区域的有效位,根据目标数据格式将从数据帧中获取的数据转换成目标数据;
在步骤309中,将所述步骤308抽取的参数存储到一个临时的抽取参数链表;
在步骤310中,判断是否到达模式信息链表尾,是则执行311,否则执行307;
在步骤311中,根据组合规则以及已获取的相关参数,得到组合参数数据;
在步骤312中,根据参数名称,将获取的参数值输出到共享参数列表中;
在步骤313中,判断当前节点的选择方式,如果是基于特征字的选择方式,则执行步骤314,否则执行步骤315;
在步骤314中,根据所述步骤312获取的参数值,从解析节点映射表中获取对应解析节点的名称,然后执行步骤316;
在步骤315中,根据获取的参数值、抽取参数以及逻辑算子,依次遍历模式信息链表,直到得到节点名称;
在步骤316中,通过节点名称,获取下一节点的解析节点对象;
在步骤317中,判断当前是否到达解析树的叶子节点,是则执行步骤4,否则执行步骤303。
6.如权利要求1-3中任一项所述的方法,其特征在于,所述步骤5包括以下子步骤:
在步骤501中,根据所述步骤3获得的解析参数,获取数据项的抽取参数;
在步骤502中,从起始偏移地址处开始读取数据帧,定位数据域的初始地址,并将数据模式偏移到首地址处;
在步骤503中,根据数据模式的偏移地址获取当前的输入事件以及元组提取参数;
在步骤504中,判断当前所处状态以及输入事件,如果当前判断条件为SBm,则执行步骤505,如果当前判断条件为SBv,则执行步骤506,如果当前判断条件为SMv,则执行步骤507,如果当前判断条件为SVq,则执行步骤508,如果当前判断条件为SVt,则执行步骤509,如果当前判断条件为SQt,则执行步骤510,如果当前判断条件为SVe,则执行步骤511,如果当前判断条件为SQe,则执行步骤512,如果当前判断条件为STe,则执行步骤513,如果当前判断条件为STb,则执行步骤514,如果当前判断条件为SQb,则执行步骤515,如果当前判断条件为SVb,则执行步骤516,其中,有限状态机的转移状态包括六个状态分别为B、M、V、Q、T和E,其中B表示起始状态,表示数据域数据抽取的开始状态或者是数据域中某个数据记录抽取的开始状态,E表示结束状态,表示当前数据域的数据抽取过程全部完成,M、V、Q、T状态分别表示提取完数据标识、数据元素值、数据质量以及数据时间后所处的状态;有限状态机的输入事件包括六个输入事件b、m、v、q、t和e,其中b事件表示抽取完记录的最后一个元组数据,事件m、v、q、t分别表示下一阶段的要实际抽取的数据为数据标识、数据元素值、数据质量以及数据时间,e事件表示抽取完成后记录的最后一个元组数据;
在步骤505中,通过数据标识的操作函数和函数参数集,从指定偏移处提取出数据项中的数据标识,数据项循环个数减1,有限状态机状态转移到状态M,并执行步骤517;
在步骤506中,根据解析参数中的数据项基地址和当前已抽取数据项个数,得到数据记录地址,补齐当前数据记录的数据地址,通过数据值的提取操作函数和函数参数集,从指定偏移处提取出数据项中的数据值,数据项循环个数减1,有限状态机状态转移到状态V,并执行步骤517;
在步骤507中,通过数据值的提取操作函数和函数参数集,从指定偏移处提取出数据项中的数据值,有限状态机状态转移到状态V,并执行步骤517;
在步骤508中,通过数据质量的提取操作函数和函数参数集,从指定偏移处提取出数据项中的数据质量,有限状态机状态转移到状态Q,并执行步骤517;
在步骤509中,从解析参数中获取到当前数据项的数据质量,补齐当前数据记录的数据质量,通过数据时间的提取操作函数和函数参数集,从指定偏移处提取出数据项中的数据时间,有限状态机状态转移到状态T,并执行步骤517;
在步骤510中,通过数据时间的提取操作函数和函数参数集,从指定偏移处提取出数据项中的数据时间,有限状态机状态转移到状态,并执行步骤517;
在步骤511中,从解析参数中获取到当前数据项的数据质量,补齐当前数据记录的数据质量,从解析参数获取到该数据帧的数据时间,补齐当前数据记录的数据时间,有限状态机状态转移到终止状态E,结束流程;
在步骤512中,从解析参数获取到该数据帧的数据时间,补齐当前数据记录的数据时间,有限状态机状态转移到终止状态E,结束流程;
在步骤513中,有限状态机状态转移到终止状态E,结束流程;
在步骤514中,有限状态机状态转移到开始状态B,并执行步骤517;
在步骤515中,从解析参数获取到该数据帧的数据时间,补齐当前数据记录的数据时间,有限状态机状态转移到开始状态B,并执行步骤517;
在步骤516中,从解析参数中获取到当前数据项的数据质量,补齐当前数据记录的数据质量,从解析参数获取到该数据帧的数据时间,补齐当前数据记录的数据时间,有限状态机状态转移到开始状态B,并执行步骤517;
在步骤517中,判断当前是否为数据项的最后一个元组,如果是则执行步骤518,否则执行步骤519;
在步骤518中,判断当前数据项个数是否为0,如果是则执行步骤520,否则执行步骤521;
在步骤519中,数据模式偏移到下一元组属性地址处,并执行步骤503;
在步骤520中,生成结束事件e,执行步骤504;
在步骤521中,数据模式偏移到首地址处,生成开始事件b,并执行步骤504。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510187447.9A CN104778258B (zh) | 2015-04-21 | 2015-04-21 | 一种面向协议数据流的数据抽取方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510187447.9A CN104778258B (zh) | 2015-04-21 | 2015-04-21 | 一种面向协议数据流的数据抽取方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104778258A CN104778258A (zh) | 2015-07-15 |
CN104778258B true CN104778258B (zh) | 2018-04-24 |
Family
ID=53619722
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510187447.9A Active CN104778258B (zh) | 2015-04-21 | 2015-04-21 | 一种面向协议数据流的数据抽取方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104778258B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106844605B (zh) * | 2017-01-17 | 2019-11-29 | 深圳市金证科技股份有限公司 | 批量数据逻辑处理方法及装置 |
CN108696381B (zh) * | 2017-04-12 | 2020-07-03 | 腾讯科技(深圳)有限公司 | 一种协议配置方法及装置 |
CN107197001B (zh) * | 2017-05-05 | 2019-12-27 | 工业和信息化部电信研究院 | 一种工业互联网组件信息方法 |
CN107659380A (zh) * | 2017-09-05 | 2018-02-02 | 上海歌尔泰克机器人有限公司 | 消息发送、消息读取方法、设备及系统 |
CN108183890B (zh) * | 2017-12-18 | 2021-03-02 | 武汉精伦电气有限公司 | 一种数据通信协议的解析方法及系统 |
CN108256829B (zh) * | 2018-01-26 | 2020-07-31 | 北京语言大学 | 一种面向erp技能在线阅卷的数据抽取方法及系统 |
CN110324280A (zh) * | 2018-03-29 | 2019-10-11 | 西门子公司 | 工业云中的协议配置系统、装置和方法 |
CN110933095A (zh) * | 2019-12-04 | 2020-03-27 | 锐捷网络股份有限公司 | 一种报文解析方法及装置 |
CN112559096B (zh) * | 2020-12-23 | 2022-10-14 | 中国科学院长春光学精密机械与物理研究所 | 一种空间载荷输入数据解析系统及方法 |
CN112788000B (zh) * | 2020-12-28 | 2024-01-19 | 安徽百诚慧通科技股份有限公司 | 一种udp数据包解析方法、系统和存储介质 |
CN114116868A (zh) * | 2021-11-24 | 2022-03-01 | 重庆零壹空间航天科技有限公司 | 火箭撬采样数据处理方法、装置、计算机设备和存储介质 |
CN114090523B (zh) * | 2022-01-19 | 2022-06-07 | 荣耀终端有限公司 | 电子设备及其xml文件的节点解析方法、介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6400759B1 (en) * | 1997-06-30 | 2002-06-04 | Integrated Telecom Express, Inc. | Device driver for rate adaptable modem with forward compatible and expandable functionality |
CN103678408A (zh) * | 2012-09-21 | 2014-03-26 | 阿里巴巴集团控股有限公司 | 一种查询数据的方法及装置 |
CN104346135A (zh) * | 2013-08-08 | 2015-02-11 | 腾讯科技(深圳)有限公司 | 数据流并行处理的方法、设备及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8484666B2 (en) * | 2010-09-13 | 2013-07-09 | Microsoft Corporation | Optimizations for implementing multi-stack stack hosts |
-
2015
- 2015-04-21 CN CN201510187447.9A patent/CN104778258B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6400759B1 (en) * | 1997-06-30 | 2002-06-04 | Integrated Telecom Express, Inc. | Device driver for rate adaptable modem with forward compatible and expandable functionality |
CN103678408A (zh) * | 2012-09-21 | 2014-03-26 | 阿里巴巴集团控股有限公司 | 一种查询数据的方法及装置 |
CN104346135A (zh) * | 2013-08-08 | 2015-02-11 | 腾讯科技(深圳)有限公司 | 数据流并行处理的方法、设备及系统 |
Non-Patent Citations (1)
Title |
---|
智能数据抽取技术在决策支持系统中的应用研究;王亚芬;《情报学报》;19960424;第89页-第93页 * |
Also Published As
Publication number | Publication date |
---|---|
CN104778258A (zh) | 2015-07-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104778258B (zh) | 一种面向协议数据流的数据抽取方法 | |
CN110941612B (zh) | 基于关联数据的自治数据湖构建系统及方法 | |
CN103631882B (zh) | 基于图挖掘技术的语义化业务生成系统和方法 | |
US9870382B2 (en) | Data encoding and corresponding data structure | |
US20110191277A1 (en) | Automatic data mining process control | |
CN102033748A (zh) | 一种数据处理流程代码的生成方法 | |
CN105282123A (zh) | 一种网络协议识别方法和装置 | |
CN111651447B (zh) | 一种智能建造全寿期数据处理分析管控系统 | |
CN102893281A (zh) | 信息搜索设备、信息搜索方法、计算机程序和数据结构 | |
CN111027703B (zh) | 一种量子线路查询的方法、装置、存储介质及电子装置 | |
CN102270232A (zh) | 一种存储优化的语义数据查询系统 | |
CN110059085B (zh) | 一种面向Web 2.0的JSON数据解析与建模方法 | |
CN107251021A (zh) | 过滤数据沿袭图 | |
CN108052619A (zh) | 一种基于配置信息匹配及相似度提取网页信息的方法 | |
CN103559234A (zh) | RESTful Web服务的自动化语义标注系统和方法 | |
CN106503214A (zh) | 一种基于Redis内存数据库的复杂规则匹配方法 | |
CN105808729B (zh) | 基于论文间引用关系的学术大数据分析方法 | |
CN104392171A (zh) | 一种基于数据关联的自动内存证据分析方法 | |
CN110765276A (zh) | 知识图谱中的实体对齐方法及装置 | |
CN103294791A (zh) | 一种可扩展标记语言模式匹配方法 | |
CN110472019A (zh) | 舆情搜索方法及装置 | |
CN105843809A (zh) | 数据处理方法和装置 | |
CN110377790B (zh) | 一种基于多模态私有特征的视频自动标注方法 | |
CN102629352B (zh) | 面向实时感知环境的复合事件模式匹配方法及系统 | |
CN110377700A (zh) | 一种专业知识语义检索系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |