一种获取隐性关系的方法和装置及计算机可读存储介质与流程

专利2022-06-30  63

本发明实施例涉及但不限于数据挖掘技术,尤指一种获取隐性关系的方法和装置及计算机可读存储介质。
背景技术
::显性关系是指不需要进行计算就能获得的关系,例如,户口本上每一个人与户主的关系在户口本上直接就体现出来,并不需要做额外的计算;而隐性关系是指需要进行计算才能提取的关系,例如,同住关系,需要根据酒店的入住信息表进行相关的计算才能得出。相关技术在查询具有隐性关系的数据之前,预先将原始数据存储在关系型数据库中,采用mr计算引擎计算原始数据之间是否具有隐性关系,将具有同一隐性关系的所有原始数据存储在关系型数据库中的同一张表格中,表格的名称为原始数据之间存在的隐性关系;在查询具有隐性关系的数据时,需要先将所有具有隐性关系的数据加载到内存中,用户通过输入隐性关系的名称即可查询到内存中的具有输入的隐性关系的所有数据。相关技术中,mr计算引擎在计算隐性关系时,计算速度比较慢,无法实现线上实时计算。技术实现要素:本发明实施例提供了一种获取隐性关系的方法和装置及计算机可读存储介质,能够提高隐性关系的获取速度。本发明实施例提供了一种获取隐性关系的方法,包括:根据隐性关系的查询条件和隐性关系需要满足的规则确定预先以表格形式存储在数据库中的原始数据中需要创建索引的字段,获取确定出的字段对应的索引;根据确定出的字段对应的索引在预先以表格形式存储在数据库中的原始数据中查找满足查询条件的原始数据,根据所述隐性关系需要满足的规则计算查找到的满足查询条件的原始数据与不满足查询条件的原始数据之间是否具有隐性关系。在本发明实施例中,所述根据隐性关系的查询条件和隐性关系需要满足的规则确定预先以表格形式存储在数据库中的原始数据中需要创建索引的字段之前,该方法还包括:接收到查询请求;其中,查询请求包括:所述隐性关系的查询条件和所述隐性关系需要满足的规则;所述根据所述隐性关系需要满足的规则计算查找到的满足查询条件的原始数据与不满足查询条件的原始数据之间是否具有隐性关系后,该方法还包括:输出不满足查询条件的原始数据中,与查找到的满足查询条件的原始数据之间具有隐性关系的原始数据。在本发明实施例中,所述根据隐性关系的查询条件和隐性关系需要满足的规则确定预先以表格形式存储在数据库中的原始数据中需要创建索引的字段之前,该方法还包括:预先将所述原始数据以表格形式存储在数据库中。在本发明实施例中,所述预先将所述原始数据以表格形式存储在数据库中包括:预先将所述原始数据以表格形式存储在分布式存储系统hbase列式数据库中;所述接收到查询请求之前,该方法还包括:采用phoenix创建所述hbase列式数据库中的原始数据对应的表;所述根据隐性关系的查询条件和隐性关系需要满足的规则确定预先以表格形式存储在数据库中的原始数据中需要创建索引的字段包括:根据所述隐性关系的查询条件和隐性关系需要满足的规则确定创建的表中需要创建索引的字段;所述根据确定出的字段对应的索引在预先以表格形式存储在数据库中的原始数据中查找满足查询条件的原始数据包括:根据所述确定出的字段对应的索引在创建的表中查找满足查询条件的原始数据。在本发明实施例中,所述隐性关系的查询条件包括至少一个查询项,每一个所述查询项包括:查询类型、查询字段和查询内容;所述隐性关系需要满足的规则包括至少一个比较项,每一个所述比较项包括:比较类型和比较字段。在本发明实施例中,所述根据所述隐性关系需要满足的规则计算查找到的满足查询条件的原始数据与不满足查询条件的原始数据之间是否具有隐性关系包括:根据所述确定出的字段对应的索引在不满足查询条件的原始数据中,查找与查找到的满足查询条件的原始数据之间满足比较类型为等于的比较项的原始数据,根据隐性关系需要满足的规则中比较类型不是等于的比较项计算查找到的满足查询条件的原始数据之间满足比较类型为等于的比较项的原始数据,与查找到的满足查询条件的原始数据之间是否具有隐性关系。在本发明实施例中,所述获取确定出的字段对应的索引包括以下任意一个或多个的组合:当已创建索引的字段中包含所述确定出的字段时,从已创建的索引中获取所述确定出的字段对应的索引;当所述已创建索引的字段中不包含所述确定出的字段时,创建所述确定出的字段对应的索引。在本发明实施例中,所述确定出的字段对应的索引为phoenix二级索引。本发明实施例提出了一种获取隐性关系的装置,包括处理器和计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令被所述处理器执行时,实现上述任一种获取隐性关系的方法。本发明实施例还提出了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一种获取隐性关系的方法的步骤。本发明一个实施例包括:根据隐性关系的查询条件和隐性关系需要满足的规则确定预先以表格形式存储在数据库中的原始数据中需要创建索引的字段,获取确定出的字段对应的索引;根据确定出的字段对应的索引在预先以表格形式存储在数据库中的原始数据中查找满足查询条件的原始数据,根据所述隐性关系需要满足的规则计算查找到的满足查询条件的原始数据与不满足查询条件的原始数据之间是否具有隐性关系。本发明实施例通过获取相应字段的索引,基于获得的相应字段的索引来实现数据的查询和隐性关系的计算,提高了隐性关系的获取速度。在本发明另一个实施例中,所述根据隐性关系的查询条件和隐性关系需要满足的规则确定预先以表格形式存储在数据库中的原始数据中需要创建索引的字段之前,该方法还包括:接收到查询请求;其中,查询请求包括:所述隐性关系的查询条件和所述隐性关系需要满足的规则;所述根据所述隐性关系需要满足的规则计算查找到的满足查询条件的原始数据与不满足查询条件的原始数据之间是否具有隐性关系后,该方法还包括:输出不满足查询条件的原始数据中,与查找到的满足查询条件的原始数据之间满足隐性关系需要满足的规则的原始数据。本发明实施例在接收到查询请求以后,基于查询请求获取相应字段的索引,基于获得的相应字段的索引来实现数据的查询和隐性关系的计算,最终得到具有隐性关系的数据,实现了在进行具有隐性关系的数据的查询时再进行隐性关系的计算,从而隐性关系需要满足的规则可以随意修改,不需要额外的存储,并基于索引提高了查询效率。本发明实施例的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明实施例而了解。本发明实施例的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。附图说明附图用来提供对本发明实施例技术方案的进一步理解,并且构成说明书的一部分,与本发明实施例的实施例一起用于解释本发明实施例的技术方案,并不构成对本发明实施例技术方案的限制。图1为本发明一个实施例提出的获取隐性关系的方法的流程图;图2为本发明另一个实施例提出的获取隐性关系的装置的结构组成示意图。具体实施方式下文中将结合附图对本发明实施例进行详细说明。需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互任意组合。在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。参见图1,本发明一个实施例提出了一种获取隐性关系的方法,包括:步骤101、根据隐性关系的查询条件和隐性关系需要满足的规则确定预先以表格形式存储在数据库中的原始数据中需要创建索引的字段,获取确定出的字段对应的索引。例如,需要查询的隐性关系为:查找姓名为“灰太狼”的旅客,入住日期为“2019-10-01”,入住旅馆名称为“大上海酒店”,而且满足rule1规则。其中,rule1规则为:入住同一旅馆,入住时间差在10分钟以内,离店时间差在10分钟以内。那么,查询请求中的隐性关系的查询条件包括:姓名为“灰太狼”的旅客,入住日期为“2019-10-01”,入住旅馆名称为“大上海酒店”;隐性关系需要满足的规则为rule1规则。在一个示例性实例中,隐性关系的查询条件包括至少一个查询项,每一个查询项包括:查询类型、查询字段和查询内容;隐性关系需要满足的规则包括至少一个比较项,每一个比较项包括:比较类型和比较字段。其中,比较字段包括:满足查询条件的原始数据中需要进行比较的字段和不满足查询条件的原始数据中需要进行比较的字段。当比较类型不是等于时,比较项还包括比较值,该比较值为比较类型对应的可以手动输入的部分。查询类型可以是等于、不等于、小于、小于或等于、大于、大于或等于等,比较类型可以是等于、小于、大于、大于或等于、小于或等于、两个比较参数的差值小于或等于,等等。查询类型、查询字段、查询内容、比较类型和比较参数均可以采用下拉列表的形式输入,也可以采用手动输入的形式输入。本发明实施例对具体的输入方式不作限定。例如,上述例子中,隐性关系的查询条件如表1所示,包括3个查询项,隐性关系需要满足的规则如表2所示,包括3个比较项。序号查询类型查询字段查询内容1等于lgmc大上海酒店2等于rzrq2019-10-013等于lkxm灰太狼表1表2在一个示例性实例中,需要创建索引的字段包括:上述查询字段中的所有字段,以及比较类型为等于的比较项中的所有比较字段。例如,上述例子中,原始数据存储在如表3所示的表中,那么需要创建索引的字段包括:lkxm,rzrq,lgmc。在一个示例性实例中,获取确定出的字段对应的索引包括以下任意一个或多个的组合:当已创建索引的字段中包含确定出的字段时,从已创建的索引中获取确定出的字段对应的索引;当已创建索引的字段中不包含确定出的字段时,创建确定出的字段对应的索引。在一个示例性实例中,确定出的字段对应的索引即是该字段中取值相同的所有行的地址信息。在一个示例性实例中,确定出的字段对应的索引可以是phoenix二级索引。步骤102、根据确定出的字段对应的索引在预先以表格形式存储在数据库中的原始数据中查找满足查询条件的原始数据,根据所述隐性关系需要满足的规则计算查找到的满足查询条件的原始数据与不满足查询条件的原始数据之间是否具有隐性关系。在一个示例性实例中,可以采用sql语句来实现满足查询条件的原始数据的查询,以及满足查询条件的原始数据与不满足查询条件的原始数据之间的比较。例如,上述例子中,进行查询和比较的sql语句为:select*from(select*fromstay_hotel_infowhererzrq='2019-10-01'andlgmc='大上海酒店'andxm='灰太狼')ajoin(select*fromstay_hotel_infowherelgmc='大上海酒店')bonabs(a.rzsj-b.rzsj)<=5andabs(a.ldsj-b.ldsj)<=5anda.lgbm=b.lgbm上述sql语句输出的就是存在隐性关系的原始数据。在一个示例性实例中,满足查询条件的原始数据是指满足所有查询项的原始数据,不满足查询条件的原始数据是指不满足至少一个查询项的原始数据。例如,上述例子中,满足查询条件的原始数据即是,旅客姓名为“灰太狼”,入住日期为“2019-10-01”,入住旅馆名称为“大上海酒店”的原始数据,不满足查询条件的数据则是不满足上述至少一条的原始数据,例如,旅客姓名不是“灰太狼”或入住日期不是“2019-10-01”,或入住旅馆名称不是“大上海酒店”的原始数据。在一个示例性实例中,根据所述隐性关系需要满足的规则计算查找到的满足查询条件的原始数据与不满足查询条件的原始数据之间是否具有隐性关系包括:计算查找到的满足查询条件的原始数据与不满足查询条件的原始数据之间是否满足隐性关系需要满足的规则,当满足隐性关系需要满足的规则时,确定查找到的满足查询条件的原始数据与不满足查询条件的原始数据之间具有隐性关系;当不满足隐性关系需要满足的规则时,确定查找到的满足查询条件的原始数据与不满足查询条件的原始数据之间不具有隐性关系。在一个示例性实例中,与查找到的满足查询条件的原始数据之间满足隐性关系需要满足的规则的原始数据是指与查找到的满足查询条件的原始数据之间满足所有的比较项的原始数据。例如,上述例子中,在将查找到的满足查询条件的原始数据与不满足查询条件的原始数据进行比较时,将满足查询条件的原始数据的旅馆名称lgmc字段与不满足查询条件的原始数据的旅馆名称lgmc字段进行比较,将满足查询条件的原始数据的入住时间rzsj字段与不满足查询条件的原始数据的入住时间rzsj字段进行比较,将满足查询条件的原始数据的离店时间ldsj字段与不满足查询条件的原始数据的离店时间ldsj字段进行比较,如果两者的lgmc字段相等,且rzsj字段的差值小于或等于5,且ldsj字段的差值小于或等于5,则确定两者之间具有隐性关系;如果两者的lgmc字段不相等,或rzsj字段的差值大于5,或ldsj字段的差值大于5,则确定两者之间不具有隐性关系。在一个示例性实例中,根据所述隐性关系需要满足的规则计算查找到的满足查询条件的原始数据与不满足查询条件的原始数据之间是否具有隐性关系包括:根据所述确定出的字段对应的索引在不满足查询条件的原始数据中,查找与查找到的满足查询条件的原始数据之间满足比较类型为等于的比较项的原始数据,根据隐性关系需要满足的规则中比较类型不是等于的比较项计算查找到的满足查询条件的原始数据之间满足比较类型为等于的比较项的原始数据,与查找到的满足查询条件的原始数据之间是否具有隐性关系。例如,上述例子中,先在不满足查询条件的原始数据中,查找旅馆名称lgmc字段为“大上海酒店”的原始数据,再将查找到的原始数据与满足查询条件的原始数据进行比较。本发明实施例通过获取相应字段的索引,基于获得的相应字段的索引来实现数据的查询和隐性关系的计算,提高了隐性关系的获取速度。在本发明另一个实施例中,根据隐性关系的查询条件和隐性关系需要满足的规则确定预先以表格形式存储在数据库中的原始数据中需要创建索引的字段之前,该方法还包括:步骤100、接收到查询请求;其中,查询请求包括:隐性关系的查询条件和隐性关系需要满足的规则。所述根据所述隐性关系需要满足的规则计算查找到的满足查询条件的原始数据与不满足查询条件的原始数据之间是否具有隐性关系后,该方法还包括:输出不满足查询条件的原始数据中,与查找到的满足查询条件的原始数据之间具有隐性关系的原始数据。在本发明另一个实施例中,步骤101之前,该方法还包括:预先将原始数据以表格形式存储在数据库中。例如,可以将酒店入住信息存储到hbase列式数据库中如表3所示的酒店入住信息登记表stay_hotel_info中。表3酒店入住信息登记表在一个示例性实例中,当将原始数据以表格形式存储在分布式存储系统(hbase,hadoopdatabase)列式数据库中时,所述接收到查询请求之前,该方法还包括:采用phoenix创建hbase列式数据库中的原始数据对应的表;相应的,步骤101中,根据隐性关系的查询条件和隐性关系需要满足的规则确定预先以表格形式存储在数据库中的原始数据中需要创建索引的字段包括:根据隐性关系的查询条件和隐性关系需要满足的规则确定创建的表中需要创建索引的字段;步骤102中,根据确定出的字段对应的索引在预先以表格形式存储在数据库中的原始数据中查找满足查询条件的原始数据包括:根据确定出的字段对应的索引在创建的表中查找满足查询条件的原始数据。在一个示例性实例中,可以采用sql语句创建表,例如,采用以下sql语句来创建:createtableifnotexistsmy_schema.stay_hotel_info(sfzhstring,lkxmstring,dhhmstring,rzrqstring,rzsjstring,ldrqstring,ldsjstring,lgbmstring,lgmcstring,fhstring,constraintpkprimarykey(sfzh,rzrq,lgbm))本发明实施例在接收到查询请求以后,基于查询请求获取相应字段的索引,基于获得的相应字段的索引来实现数据的查询和隐性关系的计算,最终得到具有隐性关系的数据,实现了在进行具有隐性关系的数据的查询时再进行隐性关系的计算,从而隐性关系需要满足的规则可以随意修改,不需要额外的存储,并基于索引提高了查询效率。本发明另一个实施例提出了一种获取隐性关系的装置,包括处理器和计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令被所述处理器执行时,实现上述任一种获取隐性关系的方法。本发明另一个实施例提出了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一种获取隐性关系的方法的步骤。参见图2,本发明另一个实施例提出了一种查询具有隐性关系的数据的装置,包括:索引获取模块202,用于根据隐性关系的查询条件和隐性关系需要满足的规则确定预先以表格形式存储在数据库中的原始数据中需要创建索引的字段,获取确定出的字段对应的索引;隐性关系计算模块203,用于根据确定出的字段对应的索引在预先以表格形式存储在数据库中的原始数据中查找满足查询条件的原始数据,根据所述隐性关系需要满足的规则计算查找到的满足查询条件的原始数据与不满足查询条件的原始数据之间是否具有隐性关系。在本发明另一个实施例中,还包括:请求接收模块201,用于接收到查询请求;其中,查询请求包括:隐性关系的查询条件和隐性关系需要满足的规则;隐性关系计算模块203还用于:输出不满足查询条件的原始数据中,与查找到的满足查询条件的原始数据之间具有隐性关系的原始数据。例如,需要查询的隐性关系为:查找姓名为“灰太狼”的旅客,入住日期为“2019-10-01”,入住旅馆名称为“大上海酒店”,而且满足rule1规则。其中,rule1规则为:入住同一旅馆,入住时间差在10分钟以内,离店时间差在10分钟以内。那么,查询请求中的隐性关系的查询条件包括:姓名为“灰太狼”的旅客,入住日期为“2019-10-01”,入住旅馆名称为“大上海酒店”;隐性关系需要满足的规则为rule1规则。在一个示例性实例中,隐性关系的查询条件包括至少一个查询项,每一个查询项包括:查询类型、查询字段和查询内容;隐性关系需要满足的规则包括至少一个比较项,每一个比较项包括:比较类型和比较字段。其中,比较字段包括:满足查询条件的原始数据中需要进行比较的字段和不满足查询条件的原始数据中需要进行比较的字段。当比较类型不是等于时,比较项还包括比较值,该比较值为比较类型对应的可以手动输入的部分。查询类型可以是等于、不等于、小于、小于或等于、大于、大于或等于等,比较类型可以是等于、小于、大于、大于或等于、小于或等于、两个比较参数的差值小于或等于,等等。查询类型、查询字段、查询内容、比较类型和比较参数均可以采用下拉列表的形式输入,也可以采用手动输入的形式输入。本发明实施例对具体的输入方式不作限定。例如,上述例子中,隐性关系的查询条件如表1所示,包括3个查询项,隐性关系需要满足的规则如表2所示,包括3个比较项。在一个示例性实例中,需要创建索引的字段包括:上述查询字段中的所有字段,以及比较类型为等于的比较项中的所有比较字段。例如,上述例子中,原始数据存储在如表3所示的表中,那么需要创建索引的字段包括:lkxm,rzrq,lgmc。在一个示例性实例中,索引获取模块202具体用于采用以下任意一个或多个的组合的方式实现获取确定出的字段对应的索引:当已创建索引的字段中包含确定出的字段时,从已创建的索引中获取确定出的字段对应的索引;当已创建索引的字段中不包含确定出的字段时,创建确定出的字段对应的索引。在一个示例性实例中,确定出的字段对应的索引即是该字段中取值相同的所有行的地址信息。在一个示例性实例中,确定出的字段对应的索引可以是phoenix二级索引。在一个示例性实例中,隐性关系计算模块203可以采用sql语句来实现满足查询条件的原始数据的查询,以及满足查询条件的原始数据与不满足查询条件的原始数据之间的比较。例如,上述例子中,进行查询和比较的sql语句为:select*from(select*fromstay_hotel_infowhererzrq='2019-10-01'andlgmc='大上海酒店'andxm='灰太狼')ajoin(select*fromstay_hotel_infowherelgmc='大上海酒店')bonabs(a.rzsj-b.rzsj)<=5andabs(a.ldsj-b.ldsj)<=5anda.lgbm=b.lgbm在一个示例性实例中,满足查询条件的原始数据是指满足所有查询项的原始数据,不满足查询条件的原始数据是指不满足至少一个查询项的原始数据。例如,上述例子中,满足查询条件的原始数据即是,旅客姓名为“灰太狼”,入住日期为“2019-10-01”,入住旅馆名称为“大上海酒店”的原始数据,不满足查询条件的数据则是不满足上述至少一条的原始数据,例如,旅客姓名不是“灰太狼”或入住日期不是“2019-10-01”,或入住旅馆名称不是“大上海酒店”的原始数据。在一个示例性实例中,隐性关系计算模块203具体用于采用以下方式实现根据所述隐性关系需要满足的规则计算查找到的满足查询条件的原始数据与不满足查询条件的原始数据之间是否具有隐性关系:计算查找到的满足查询条件的原始数据与不满足查询条件的原始数据之间是否满足隐性关系需要满足的规则,当满足隐性关系需要满足的规则时,确定查找到的满足查询条件的原始数据与不满足查询条件的原始数据之间具有隐性关系;当不满足隐性关系需要满足的规则时,确定查找到的满足查询条件的原始数据与不满足查询条件的原始数据之间不具有隐性关系。在一个示例性实例中,与查找到的满足查询条件的原始数据之间满足隐性关系需要满足的规则的原始数据是指与查找到的满足查询条件的原始数据之间满足所有的比较项的原始数据。例如,上述例子中,在将查找到的满足查询条件的原始数据与不满足查询条件的原始数据进行比较时,将满足查询条件的原始数据的旅馆名称lgmc字段与不满足查询条件的原始数据的旅馆名称lgmc字段进行比较,将满足查询条件的原始数据的入住时间rzsj字段与不满足查询条件的原始数据的入住时间rzsj字段进行比较,将满足查询条件的原始数据的离店时间ldsj字段与不满足查询条件的原始数据的离店时间ldsj字段进行比较,如果两者的lgmc字段相等,且rzsj字段的差值小于或等于5,且ldsj字段的差值小于或等于5,则确定两者之间具有隐性关系;如果两者的lgmc字段不相等,或rzsj字段的差值大于5,或ldsj字段的差值大于5,则确定两者之间不具有隐性关系。在一个示例性实例中,隐性关系计算模块203具体用于采用以下方式实现根据所述隐性关系需要满足的规则计算查找到的满足查询条件的原始数据与不满足查询条件的原始数据之间是否具有隐性关系:根据所述确定出的字段对应的索引在不满足查询条件的原始数据中,查找与查找到的满足查询条件的原始数据之间满足比较类型为等于的比较项的原始数据,根据隐性关系需要满足的规则中比较类型不是等于的比较项计算查找到的满足查询条件的原始数据之间满足比较类型为等于的比较项的原始数据,与查找到的满足查询条件的原始数据之间是否具有隐性关系。例如,上述例子中,先在不满足查询条件的原始数据中,查找旅馆名称lgmc字段为“大上海酒店”的原始数据,再将查找到的原始数据与满足查询条件的原始数据进行比较。在本发明另一个实施例中,还包括:数据存储模块204,用于预先将原始数据以表格形式存储在数据库中。例如,可以将酒店入住信息存储到hbase列式数据库中如表3所示的酒店入住信息登记表stay_hotel_info中。在一个示例性实例中,当将原始数据以表格形式存储在分布式存储系统(hbase,hadoopdatabase)列式数据库中时,数据存储模块204还包括:采用phoenix创建hbase列式数据库中的原始数据对应的表;相应的,索引获取模块202具体用于采用以下方式实现根据隐性关系的查询条件和隐性关系需要满足的规则确定预先以表格形式存储在数据库中的原始数据中需要创建索引的字段:根据隐性关系的查询条件和隐性关系需要满足的规则确定创建的表中需要创建索引的字段;隐性关系计算模块203具体用于采用以下方式实现根据确定出的字段对应的索引在预先以表格形式存储在数据库中的原始数据中查找满足查询条件的原始数据:根据确定出的字段对应的索引在创建的表中查找满足查询条件的原始数据。在一个示例性实例中,可以采用sql语句创建表,例如,采用以下sql语句来创建:createtableifnotexistsmy_schema.stay_hotel_info(sfzhstring,lkxmstring,dhhmstring,rzrqstring,rzsjstring,ldrqstring,ldsjstring,lgbmstring,lgmcstring,fhstring,constraintpkprimarykey(sfzh,rzrq,lgbm))本发明实施例在接收到查询请求以后,基于查询请求获取相应字段的索引,基于获得的相应字段的索引来实现数据的查询和隐性关系的计算,最终得到具有隐性关系的数据,实现了在进行具有隐性关系的数据的查询时再进行隐性关系的计算,从而隐性关系需要满足的规则可以随意修改,不需要额外的存储,并基于索引提高了查询效率。本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。虽然本发明实施例所揭露的实施方式如上,但所述的内容仅为便于理解本发明实施例而采用的实施方式,并非用以限定本发明实施例。任何本发明实施例所属领域内的技术人员,在不脱离本发明实施例所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本发明实施例的专利保护范围,仍须以所附的权利要求书所界定的范围为准。当前第1页1 2 3 当前第1页1 2 3 
技术特征:

1.一种获取隐性关系的方法,包括:

根据隐性关系的查询条件和所述隐性关系需要满足的规则确定预先以表格形式存储在数据库中的原始数据中需要创建索引的字段,获取确定出的字段对应的索引;

根据所述确定出的字段对应的索引在所述预先以表格形式存储在数据库中的原始数据中查找满足查询条件的原始数据,根据所述隐性关系需要满足的规则计算查找到的满足查询条件的原始数据与不满足查询条件的原始数据之间是否具有隐性关系。

2.根据权利要求1所述的方法,其特征在于,所述根据隐性关系的查询条件和隐性关系需要满足的规则确定预先以表格形式存储在数据库中的原始数据中需要创建索引的字段之前,该方法还包括:

接收到查询请求;其中,查询请求包括:所述隐性关系的查询条件和所述隐性关系需要满足的规则;

所述根据所述隐性关系需要满足的规则计算查找到的满足查询条件的原始数据与不满足查询条件的原始数据之间是否具有隐性关系后,该方法还包括:

输出所述不满足查询条件的原始数据中,与查找到的满足查询条件的原始数据之间具有隐性关系的原始数据。

3.根据权利要求1所述的方法,其特征在于,所述根据隐性关系的查询条件和隐性关系需要满足的规则确定预先以表格形式存储在数据库中的原始数据中需要创建索引的字段之前,该方法还包括:预先将所述原始数据以表格形式存储在数据库中。

4.根据权利要求3所述的方法,其特征在于,其中,所述预先将所述原始数据以表格形式存储在数据库中包括:

预先将所述原始数据以表格形式存储在分布式存储系统hbase列式数据库中;所述接收到查询请求之前,该方法还包括:

采用phoenix创建所述hbase列式数据库中的原始数据对应的表;

所述根据隐性关系的查询条件和隐性关系需要满足的规则确定预先以表格形式存储在数据库中的原始数据中需要创建索引的字段包括:

根据所述隐性关系的查询条件和隐性关系需要满足的规则确定创建的表中需要创建索引的字段;

所述根据确定出的字段对应的索引在预先以表格形式存储在数据库中的原始数据中查找满足查询条件的原始数据包括:

根据所述确定出的字段对应的索引在所述创建的表中查找满足查询条件的原始数据。

5.根据权利要求1~4任一项所述的方法,其特征在于,其中,

所述隐性关系的查询条件包括至少一个查询项,每一个所述查询项包括:查询类型、查询字段和查询内容;

所述隐性关系需要满足的规则包括至少一个比较项,每一个所述比较项包括:比较类型和比较字段。

6.根据权利要求5任一项所述的方法,其特征在于,其中,所述根据所述隐性关系需要满足的规则计算查找到的满足查询条件的原始数据与不满足查询条件的原始数据之间是否具有隐性关系包括:

根据所述确定出的字段对应的索引在不满足查询条件的原始数据中,查找与查找到的满足查询条件的原始数据之间满足比较类型为等于的比较项的原始数据,根据隐性关系需要满足的规则中比较类型不是等于的比较项计算查找到的满足查询条件的原始数据之间满足比较类型为等于的比较项的原始数据,与查找到的满足查询条件的原始数据之间是否具有隐性关系。

7.根据权利要求1~4任一项所述的方法,其特征在于,其中,所述获取确定出的字段对应的索引包括以下任意一个或多个的组合:

当已创建索引的字段中包含所述确定出的字段时,从已创建的索引中获取所述确定出的字段对应的索引;

当所述已创建索引的字段中不包含所述确定出的字段时,创建所述确定出的字段对应的索引。

8.根据权利要求1~4任一项所述的方法,其特征在于,其中,所述确定出的字段对应的索引为phoenix二级索引。

9.一种获取隐性关系的装置,包括处理器和计算机可读存储介质,所述计算机可读存储介质中存储有指令,其特征在于,当所述指令被所述处理器执行时,实现如权利要求1~8任一项所述的获取隐性关系的方法。

10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1~8任一项所述的获取隐性关系的方法的步骤。

技术总结
本发明实施例公开了一种获取隐性关系的方法和装置及计算机可读存储介质,包括:根据隐性关系的查询条件和隐性关系需要满足的规则确定预先以表格形式存储在数据库中的原始数据中需要创建索引的字段,获取确定出的字段对应的索引;根据确定出的字段对应的索引在预先以表格形式存储在数据库中的原始数据中查找满足查询条件的原始数据,根据所述隐性关系需要满足的规则计算查找到的满足查询条件的原始数据与不满足查询条件的原始数据之间是否具有隐性关系。本发明实施例通过获取相应字段的索引,基于获得的相应字段的索引来实现数据的查询和隐性关系的计算,提高了隐性关系的获取速度。

技术研发人员:何海鸿
受保护的技术使用者:北京明略软件系统有限公司
技术研发日:2020.01.22
技术公布日:2020.06.05

转载请注明原文地址: https://bbs.8miu.com/read-58250.html

最新回复(0)