发明内容
本申请实施例通过提供的一种数据分析方法及装置、计算机存储介质,以解决现有技术中存在数据分析效率较低的问题。
根据本申请实施例的第一方面,提出一种用于定位异常数据的方法,所述方法包括:
获取待分析数据对应的属性值;
读取预先构建的用于表示节点关联性的图数据;其中,所述图数据为基于图计算技术构建的由节点和边组成的数据结构,所述节点对应有属性值,节点和节点通过边关联;
从所述图数据中筛选出与所述待分析数据具有相同属性值的节点。
可选的,所述从所述图数据中筛选出与所述待分析数据具有相同属性值的节点,具体包括:
A11:从所述图数据中确定当前节点;
A21:获取所述图数据中所述当前节点具有相同边的子节点;
A31:判断所述子节点对应的属性值是否与待分析数据的属性值相同;
A41:在所述子节点对应的属性值与待分析数据的属性值相同的情况下,筛选出所述子节点,并将所述子节点确定为当前节点,重复执行A21。
可选的,所述从所述图数据中确定当前节点,具体包括:
将所述图数据中的任意一个节点确定为当前节点。
可选的,所述从所述图数据中确定当前节点,具体包括:
根据所述待分析数据当前所在的节点,将所述图数据中该节点确定为当前节点。
可选的,在所述获取所述图数据中所述当前节点具有相同边的子节点之后,所述方法还包括:
A22:在获取到至少2个所述当前节点具有相同边的子节点的情况下,计算所述子节点与所述当前节点的距离;
A23:将距离最短的子节点确定为新的子节点。
可选的,所述计算所述子节点与所述当前节点的距离,具体包括:
根据所述子节点与所述当前节点相同边对应的权重值,计算距离。
可选的,所述方法还包括:
A42:在所述子节点对应的属性值与待分析数据的属性值不相同的情况下,将距离次短的子节点确定为新的子节点,重新执行A31。
可选的,所述方法还包括:
A43:在所有子节点对应的属性值与待分析数据的属性值都不相同的情况下,将所述当前节点从所述当前节点的父节点的子节点中排除;
A44:将所述当前节点的父节点确定为当前节点,重新执行A21。
可选的,所述A41,具体包括:
A411:在所述子节点对应的属性值与待分析数据的属性值相同的情况下,筛选出所述子节点;
A412:判断所述子节点与最初的父节点之间的层数是否超过预设迭代次数;
A413:在所述子节点与最初的父节点之间的层数不超过预设迭代次数,将所述子节点确定为当前节点,重复执行A21。
可选的,所述方法还包括:
A414:在所述子节点与最初的父节点之间的层数超过预设迭代次数,将所述当前节点从所述当前节点的父节点的子节点中排除,并将所述当前节点的父节点确定为当前节点,重新执行A21。
可选的,在所述获取待分析数据对应的属性值之前,所述方法还包括:
在监测到异常数据的情况下,将所述异常数据确定为待分析数据。
根据本申请实施例的第二方面,提出一种数据分析装置,所述装置包括:
获取单元,获取待分析数据对应的属性值;
读取单元,读取预先构建的用于表示节点关联性的图数据;其中,所述图数据为基于图计算技术构建的由节点和边组成的数据结构,所述节点对应有属性值,节点和节点通过边关联;
分析单元,从所述图数据中筛选出与所述待分析数据具有相同属性值的节点。
可选的,所述分析单元,具体包括:
确定子单元,从所述图数据中确定当前节点;
获取子单元,获取所述图数据中所述当前节点具有相同边的子节点;
判断子单元,判断所述子节点对应的属性值是否与待分析数据的属性值相同;
控制子单元,在所述子节点对应的属性值与待分析数据的属性值相同的情况下,筛选出所述子节点,并将所述子节点确定为当前节点,输入到所述获取子单元。
可选的,所述确定子单元,具体包括:
将所述图数据中的任意一个节点确定为当前节点。
可选的,所述确定子单元,具体包括:
根据所述待分析异常数据当前所在的节点,将所述图数据中该节点确定为当前节点。
可选的,在所述获取子单元之后,所述装置还包括:
计算子单元,在获取到至少2个所述当前节点具有相同边的子节点的情况下,计算所述子节点与所述当前节点的距离;
第二确定子单元,将距离最短的子节点确定为新的子节点。
可选的,所述计算子单元,具体包括:
根据所述子节点与所述当前节点相同边对应的权重值,计算距离。
可选的,所述装置还包括:
第二控制子单元,在所述子节点对应的属性值与待分析数据的属性值不相同的情况下,将距离次短的子节点确定为新的子节点,输入到所述判断子单元。
可选的,所述装置还包括:
排除子单元,在所有子节点对应的属性值与待分析数据的属性值都不相同的情况下,将所述当前节点从所述当前节点的父节点的子节点中排除;
第三控制子单元,将所述当前节点的父节点确定为当前节点,输入到所述获取子单元。
可选的,所述控制子单元,具体包括:
筛选子单元,在所述子节点对应的属性值与待分析数据的属性值相同的情况下,筛选出所述子节点;
第二判断子单元,判断所述子节点与最初的父节点之间的层数是否超过预设迭代次数;
第四控制子单元,在所述子节点与最初的父节点之间的层数不超过预设迭代次数,将所述子节点确定为当前节点,输入到所述获取子单元。
可选的,所述控制子单元,还包括:
第五控制子单元,在所述子节点与最初的父节点之间的层数超过预设迭代次数,将所述当前节点从所述当前节点的父节点的子节点中排除,并将所述当前节点的父节点确定为当前节点,输入到所述获取子单元。
可选的,在所述获取单元之前,所述装置还包括:
确定单元,在监测到异常数据的情况下,将所述异常数据确定为待分析数据。
根据本申请实施例的第三方面,提出一种计算机存储介质,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
获取待分析数据对应的属性值;
读取预先构建的用于表示节点关联性的图数据;其中,所述图数据为基于图计算技术构建的由节点和边组成的数据结构,所述节点对应有属性值,节点和节点通过边关联;
从所述图数据中筛选出与所述待分析数据具有相同属性值的节点。
本申请实施例中,利用图计算来分析复杂冗长的数据链路,由于图计算可以快速挖掘不同节点之间数据的关联性,可以应用于复杂冗长的数据链路。通过预先基于图计算技术构建的数据链路中所有节点关系的图数据;从而获取到待分析数据后,根据待分析数据对应的属性值快速利用图计算计算,定位于该待分析数据的属性值相同的节点;并且还可以针对性地展示定位的节点,从而帮助工作人员分析数据。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
如前所述,通常会对每一个节点配置数据分析***,从而可以分析流转到本节点的数据的数据链路。
然而,随着业务的多样化,节点数量越来越多;数据计算和存储技术的不断发展,数据的流转变得越来越复杂(例如数据的流转不仅涉及到线上、还涉及到线下)、数据链路越来越冗长。现有的数据分析***进行数据分析的效率越来越低,无法应对越来越多的子***,以及越来越长的数据链路。
另一方面,由于现有的数据分析***是需要配置在节点中的,所以数据分析***与节点是强偶合的,不利于业务***的扩展。因为,需要对每一个节点配置一个数据分析***,造成数据分析的成本越来越高。
如图1所示为本申请一实施例提供的一种数据分析的***架构图。本实施例中的数据分析***可以是独立于各个业务***;这样就将数据分析***与业务***解耦。
如图1所示,数据分析的过程,可以分为元数据采集阶段、图数据构建阶段以及数据分析阶段。
其中,所述元数据采集阶段:
所述元数据(Metadata),是描述数据的数据。一般的,元数据可以是描述数据的属性的信息。该属性的信息可以是用于支持如指示存储位置、历史数据、资源查找、文件记录等。
本实施例中,可以通过主动采集业务***中的元数据,供后续图数据构建。
一般的,元数据采集可以是通过T+1的方式定期采集,即第T日的元数据,是在T+1日同步到数据血缘分析***的。
在其它的一些实施例中,还可以是通过例如日志采集的方式,或者数据库动态采集的方式进行实时地元数据采集。
本实施例中通过主动采集各个业务***的元数据的方式,从而使得业务***与数据分析***进行解耦;当出现新的业务***后,只需添加对该新的业务***进行元数据的采集即可。
图数据构建阶段:
所述图数据为基于图计算技术构建的由节点和边组成的数据结构,所述节点对应有至少一个属性值,节点和节点可以通过边关联,边可以具有权重值。
图数据结构很好的表达了数据之间的关联性(Dependencies Between Data),关联性计算是大数据计算的核心,通过获得数据的关联性,就可以从海量数据中抽取有用的信息。而图数据对应的即为图计算。
以手机通话为例,如下表1所示为传统的数据结构:
主叫手机号 |
被叫手机号 |
通话时长 |
姓名 |
性别 |
18600000000 |
18600000001 |
3分钟 |
张三 |
男 |
18600000001 |
18600000000 |
2分钟 |
李四 |
女 |
如图2所示为一个可视化的图数据的示意图。
其中,两个节点对应的属性值包括手机号、姓名、性别;边的权重值为通话时长。
节点A的属性值为手机号18600000000,姓名张三,性别男;
节点B的属性值为手机号18600000001,姓名李四,性别女。
需要说明的是,通过边还可以示出图数据中不同节点之间数据流转的方向。图2中,节点A与节点B,通过权重值3的边可以看出方向是节点A指向节点B;
通过权重值2的边可以看出方向为节点B指向节点A。
通常,当第一节点指向第二节点的情况下,
可以相对于第一节点来说,可以定义第二节点为子节点;
相对于第二节点来说,可以定义第一节点为父节点。
当前很多图数据库可以提供图数据构建以及图计算,例如Graphx就可以实现复杂的图存储以及图计算。
在构建好图数据后,还需要将所述图数据进行存储。一般的,数据分析***还可以具有一个关联的图数据库,该图数据库用于存储图数据。所述图数据库可以是所述数据分析***内部的数据库(图1未示出),也可以是位于所述数据分析***之外的关联数据库(图1所示)。
数据分析阶段,请参见图3,为本申请一实施例提供的一种数据分析方法的示意流程图,所述方法包括以下步骤:
步骤120:获取待分析数据对应的属性值。
本实施例可以应用于数据分析***的服务端;
所述服务端可以是一种服务器、服务器集群或者基于服务器集群构建的云平台等。
所述待分析数据可以是工作人员输入的一个数据。工作人员就是想要对该数据进行分析。
而在另一个实施例中,所述待分析数据还可以是服务端自动获取的一个数据。
在一个用于分析异常数据的场景中:
在所述步骤120之前,所述方法还可以包括:
在监测到异常数据的情况下,将所述异常数据确定为待分析数据。
举例说明,当服务端监测到一个用于表示用户总资产的数据异常的情况下,就可以将该异常数据确定为待分析数据,进而服务端可以获取所述异常数据对应的属性值:总资产。
利用本实施例,可以快速定位异常数据关联的节点,从而供工作人员及时处理异常数据,避免造成不必要的损失。
步骤130:读取预先构建的用于表示节点关联性的图数据;其中,所述图数据为基于图计算技术构建的由节点和边组成的数据结构,所述节点对应有属性值,节点和节点通过边关联。
本实施例中所述图数据如前所示,此处不再进行赘述。
步骤140:从所述图数据中筛选出与所述待分析数据具有相同属性值的节点。
本实施例中,利用图计算技术可以快速从所述图数据中筛选出与所述待分析数据具有相同属性值的节点。
具体地,所述步骤140可以包括如下步骤:
A11:从所述图数据中确定当前节点;
A21:获取所述图数据中所述当前节点具有相同边的子节点;
A31:判断所述子节点对应的属性值是否与待分析数据的属性值相同;
A41:在所述子节点对应的属性值与待分析数据的属性值相同的情况下,筛选出所述子节点,并将所述子节点确定为当前节点,重复执行A21。
本实施例中,所述步骤A11,具体可以包括:
将所述图数据中的任意一个节点确定为当前节点。
或者,
根据所述待分析数据当前所在的节点,将所述图数据中该节点确定为当前节点。
如图4所示的一种可视化的图数据示意图。假设待分析的节点为节点A,并且待分析数据的属性值为X;
首先,可以将节点A确定为当前节点;
获取节点A具有相同边的子节点,即节点B;
判断节点B对应的属性值是否为X;
由于节点B对应的属性值为X,因此可以筛选出节点B,并将节点B确定为当前节点;进而获取节点B具有相同边的子节点,即节点C;
判断节点C对应的属性值是否为X;
由于节点C对应的属性值为X,因此可以筛选出节点C,并将节点C确定为当前节点;进而获取节点C具有相同边的子节点,即节点D;
判断节点D对应的属性值是否为X;
由于节点D对应的属性值为Y,不为X;
最终,筛选出的与待分析数据具有相同属性值的节点为:B、C。
也就是说,最终可以将待分析数据的根源定位于节点B和节点C之中。
本申请实施例中,利用图计算来分析复杂冗长的数据链路,由于图计算可以快速挖掘不同节点之间数据的关联性,可以应用于复杂冗长的数据链路。通过预先基于图计算技术构建的数据链路中所有节点关系的图数据;从而获取到待分析数据后,根据待分析数据对应的属性值快速利用图计算计算,定位于该待分析数据的属性值相同的节点。并且还可以针对性地展示定位的节点,这样大大减少了展示出节点的数量,从而帮助工作人员分析数据;另一方面,由于本申请提出的数据分析***与业务***解耦,只需要配置一个数据分析***即可,大大降低了数据分析的成本。
在上述图3所示实施例的基础上,在所述步骤A21之后,所述方法还可以包括:
A22:在获取到至少2个所述当前节点具有相同边的子节点的情况下,计算所述子节点与所述当前节点的距离;
A23:将距离最短的子节点确定为新的子节点。
本实施例中,所述计算所述子节点与所述当前节点的距离,可以包括:
根据所述子节点与所述当前节点相同边对应的权重值,计算距离。
在一个实现方式中,所述距离可以是根据预设图计算算法,结合权重值计算得出的。例如Dijkstea算法。
如图5所示,假设当前节点为节点A,则通过步骤A21可以获取到该节点A具有相同边的子节点为子节点B和子节点C;
假设计算子节点B与当前节点A的距离为2;子节点C与当前节点A的距离为3;则可以将距离最短的子节点B确定为新的子节点;
从而执行步骤A31,即判断子节点B对应的属性值是否与待分析数据的属性值相同。
需要说明的是,在所述步骤A31之后,所述方法还包括:
A42:在所述子节点对应的属性值与待分析数据的属性值不相同的情况下,将距离次短的子节点确定为新的子节点,重新执行A31。
依然如图5所示,如上所述,由于子节点B和当前节点A的距离最短,因此需要判断子节点B对应的属性值是否与待分析数据的属性值相同;
假设子节点B对应的属性值为Y,与待分析数据的属性值X不相同,则可以将距离次短的子节点C确定为新的子节点,从而执行步骤A31,即判断子节点C对应的属性值是否与待分析数据的属性值相同;
假设子节点C的属性值为X,与待分析数据的属性值X相同,则可以筛选出子节点C,并且将子节点C确定为当前节点,并重新执行步骤A21。
需要说明的是,在所述步骤A31之后,所述方法还包括:
A43:在所有子节点对应的属性值与待分析数据的属性值都不相同的情况下,将所述当前节点从所述当前节点的父节点的子节点中排除;
A44:将所述当前节点的父节点确定为当前节点,重新执行A21。
依然如图5所示,
首先,将节点A确定为当前节点,并且子节点为子节点B、子节点C;
由于子节点B和当前节点A的距离最短,因此需要判断子节点B对应的属性值是否与待分析数据的属性值相同;
假设子节点B对应的属性值和待分析数据的属性值相同,则可以筛选出子节点B,并将子节点B确定为当前节点;
获取当前节点B具有相同边的子节点,即子节点D和子节点E;
假设子节点D和子节点E对应的属性值都与待分析数据的属性值不相同,则需要返回当前节点的父节点,即将当前节点B的父节点A确定为当前节点;
重新获取当前节点A的子节点,其中需要排除子节点B;因此,当前节点A的子节点只有子节点C。
在上述图3所示实施例的基础上,所述步骤A41,具体地可以包括如下步骤:
A411:在所述子节点对应的属性值与待分析数据的属性值相同的情况下,筛选出所述子节点;
A412:判断所述子节点与最初的父节点之间的层数是否超过预设迭代次数;
A413:在所述子节点与最初的父节点之间的层数不超过预设迭代次数,将所述子节点确定为当前节点,重复执行A21;
A414:在所述子节点与最初的父节点之间的层数超过预设迭代次数,将所述当前节点从所述当前节点的父节点的子节点中排除,并将所述当前节点的父节点确定为当前节点,重新执行A21。
本实施例中,所述预设迭代次数可以人为预先设置的一个经验值。
如图6所示的一个可视化的图数据的示意图。假设节点A为最初的父节点;当前节点为节点K;
在所述子节点K对应的属性值与待分析数据的属性值相同的情况下,筛选出子节点K;
判断所述子节点K与最初的父节点A之间的层数是否超过预设迭代次数;
图6所示,子节点K与最初的父节点A之间的层数为5;
如果层数5超过预设迭代次数,则将所述当前节点从所述当前节点的父节点的子节点中排除,并将所述当前节点H的父节点F确定为当前节点,重新执行A21。
如果层数5不超过预设迭代次数,将所述子节点K确定为当前节点,重复执行A21。
与前述图3所示的数据分析方法实施例相对应,本申请还提供了一种数据分析装置的实施例。所述装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图7所示,为本申请提高安全性的装置所在设备的一种硬件结构图,除了图7所示的处理器、网络接口、内存以及非易失性存储器之外,实施例中装置所在的设备通常根据该提高安全性的实际功能,还可以包括其他硬件,对此不再赘述。
参见图8,为本申请一实施例提供的数据分析装置的模块图,所述装置可以包括:
获取单元310,获取待分析数据对应的属性值;
读取单元320,读取预先构建的用于表示节点关联性的图数据;其中,所述图数据为基于图计算技术构建的由节点和边组成的数据结构,所述节点对应有属性值,节点和节点通过边关联;
分析单元330,从所述图数据中筛选出与所述待分析数据具有相同属性值的节点。
在一个可选的实施例中:
所述定位单元330,具体包括:
确定子单元,从所述图数据中确定当前节点;
获取子单元,获取所述图数据中所述当前节点具有相同边的子节点;
判断子单元,判断所述子节点对应的属性值是否与待分析数据的属性值相同;
控制子单元,在所述子节点对应的属性值与待分析数据的属性值相同的情况下,筛选出所述子节点,并将所述子节点确定为当前节点,输入到所述获取子单元。
在一个可选的实施例中:
所述确定子单元,具体包括:
将所述图数据中的任意一个节点确定为当前节点。
在一个可选的实施例中:
所述确定子单元,具体包括:
根据所述待分析数据当前所在的节点,将所述图数据中该节点确定为当前节点。
在一个可选的实施例中:
在所述获取子单元之后,所述装置还包括:
计算子单元,在获取到至少2个所述当前节点具有相同边的子节点的情况下,计算所述子节点与所述当前节点的距离;
第二确定子单元,将距离最短的子节点确定为新的子节点。
在一个可选的实施例中:
所述计算子单元,具体包括:
根据所述子节点与所述当前节点相同边对应的权重值,计算距离。
在一个可选的实施例中:
所述装置还包括:
第二控制子单元,在所述子节点对应的属性值与待分析数据的属性值不相同的情况下,将距离次短的子节点确定为新的子节点,输入到所述判断子单元。
在一个可选的实施例中:
所述装置还包括:
排除子单元,在所有子节点对应的属性值与待分析数据的属性值都不相同的情况下,将所述当前节点从所述当前节点的父节点的子节点中排除;
第三控制子单元,将所述当前节点的父节点确定为当前节点,输入到所述获取子单元。
在一个可选的实施例中:
所述控制子单元,具体包括:
筛选子单元,在所述子节点对应的属性值与待分析数据的属性值相同的情况下,筛选出所述子节点;
第二判断子单元,判断所述子节点与最初的父节点之间的层数是否超过预设迭代次数;
第四控制子单元,在所述子节点与最初的父节点之间的层数不超过预设迭代次数,将所述子节点确定为当前节点,输入到所述获取子单元。
在一个可选的实施例中:
所述控制子单元,还包括:
第五控制子单元,在所述子节点与最初的父节点之间的层数超过预设迭代次数,将所述当前节点从所述当前节点的父节点的子节点中排除,并将所述当前节点的父节点确定为当前节点,输入到所述获取子单元。
在一个可选的实施例中:
在所述获取单元310之前,所述装置还包括:
确定单元,在监测到异常数据的情况下,将所述异常数据确定为待分析数据。
上述实施例阐明的***、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上描述了用于定位异常数据装置的内部功能模块和结构示意,其实质上的执行主体可以为一种计算机存储介质,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
获取待分析数据对应的属性值;
读取预先构建的用于表示节点关联性的图数据;其中,所述图数据为基于图计算技术构建的由节点和边组成的数据结构,所述节点对应有属性值,节点和节点通过边关联;
从所述图数据中筛选出与所述待分析数据具有相同属性值的节点。
在上述计算机存储介质的实施例中,应理解,该处理器可以是中央处理单元(英文:Central Processing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:Digital Signal Processor,简称:DSP)、专用集成电路(英文:Application SpecificIntegrated Circuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,而前述的存储器可以是只读存储器(英文:read-only memory,缩写:ROM)、随机存取存储器(英文:random access memory,简称:RAM)、快闪存储器、硬盘或者固态硬盘。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
本领域技术人员在考虑说明书及实践这里申请的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未申请的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。