CN115129851A - 线路筛选方法、装置、存储介质及电子设备 - Google Patents
线路筛选方法、装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN115129851A CN115129851A CN202210784325.8A CN202210784325A CN115129851A CN 115129851 A CN115129851 A CN 115129851A CN 202210784325 A CN202210784325 A CN 202210784325A CN 115129851 A CN115129851 A CN 115129851A
- Authority
- CN
- China
- Prior art keywords
- rule
- text
- rule text
- regular
- line
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/335—Filtering based on additional data, e.g. user or group profiles
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
- G06F16/334—Query execution
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例公开了一种线路筛选方法、装置、存储介质及电子设备。该方法包括:配置第一规则文本,并将第一规则文本与预存储的所有第二规则文本进行正交校;当校验结果指示第一规则文本与第二规则文本不存在交集时,存储第一规则文本;基于第一规则文本从线路数据库中筛选出满足条件的目标线路。本方案可以提高数据查询准确性。本方案在查询之前判定规则文本是否存在正交,避免了线路集合之间存在正交的可能性,而不用等筛选出具体线路后再比对判定线路集合之间是否存在正交,提高了线路查询准确性。
Description
技术领域
本申请涉及电子设备技术领域,尤其涉及一种线路筛选方法、装置、存储介质及电子设备。
背景技术
OD(Origin-Destination)指交通出行上的起点网格跟终点网格之间的线路。全国的OD数量至少是千万级别甚至亿级别以上的。每条OD都有各种各样的指标,例如,最近7天这条OD的下单量,表示最近7天这条线路乘客打车的订单量;最近7天这条OD的配对单量,表示最近7天这条线路乘客的下单与司机接单能配对上的订单量等等。
由于OD数据量巨大,目前行业上对于OD的存储均是存储在HDFS(Hadoop FileSystem,Hadoop文件系统)中。为了筛选出存储在HDFS中的OD,则需通过Hive计算引擎执行Hive SQL语句。当运营人员想要获取部分特定OD时,需要编写Hive SQL查询语句。然而,大部分的运营人员并不是研发人员,很多都没有计算机相关知识。而仅有少部分的资深运营人员才具备编写Hive SQL的能力,导致运营人员入门门槛高。
实际应用中,需要获取特定的部分OD做处理,如价格调整。当符合某一条件时,则涨价;当符合另一条件时,则降价等等。然而,当前只能通过人工检查或者将查询出来的OD进行比对,前者容易出错,后者则效率低下。
发明内容
本申请实施例提供一种线路筛选方法、装置、存储介质及电子设备,可提高数据查询准确性。
第一方面,本申请实施例提供一种线路筛选方法,包括:
配置第一规则文本,其中,第一规则文本是由一个或多个条件组成的逻辑表达式;
将第一规则文本与预存储的所有第二规则文本进行正交校验,第二规则文本是由一个或多个条件组成的逻辑表达式;
当校验结果指示第一规则文本与第二规则文本不存在交集时,存储第一规则文本;
基于第一规则文本从线路数据库中筛选出满足条件的目标线路。
第二方面,本申请实施例提供了一种线路筛选装置,包括:
配置单元,用于配置第一规则文本,其中,第一规则文本是由一个或多个条件组成的逻辑表达式;
校验单元,用于将第一规则文本与预存储的所有第二规则文本进行正交校验,第二规则文本是由一个或多个条件组成的逻辑表达式;
存储单元,用于当校验结果指示第一规则文本与第二规则文本不存在交集时,存储第一规则文本;
筛选单元,用于基于第一规则文本从线路数据库中筛选出满足条件的目标线路。
在一实施方式中,所述校验单元用于:
当第一规则文本与第二规则文本满足预设条件时,按照第一匹配规则进行正交校验;
当第一规则文本与第二规则文本不满足预设条件时,按照第二匹配规则进行正交校验;
其中,预设条件包括:第一规则文本和第二规则文的外层逻辑运算符均为第一预设逻辑运算符,或者第一规则文本的外层逻辑运算符为第一预设逻辑运算符、第二规则文本不存在外层逻辑运算符,或者第一规则文本不存在外层逻辑运算符、第二规则文本的外层逻辑运算符为第一预设逻辑运算符。
在一实施方式中,所述筛选单元具体用于:
将第一规则文本转换为指定计算引擎可执行的查询语句;
根据所述查询语句从线路数据库中筛选出满足条件的目标线路。
在一实施方式中,所述筛选单元进一步用于:
将所述查询语句发送给容器化集群管理系统;
基于所述容器化集群管理系统下的多个作业调度器并行执行所述查询语句,以从所述线路数据库中查询与所述查询语句匹配的线路;
通过所述作业调度器将查询到的线路回写到指定线路数据库;
从所述指定线路数据库中读取查询到的线路,作为所述目标线路。
在一实施方式中,所述线路筛选装置还包括:
判断单元,用于判断是否存在与第一规则文本相同的第二规则文本;
查询单元,用于若判断单元判定为是时,则基于第一规则文本直接从所述指定线路数据库中查询匹配的线路。
在一实施方式中,所述线路筛选装置还包括:
提示单元,用于当校验结果指示第一规则文本与第二规则文本存在交集时,生成用于指示第一规则文本配置错误的提示信息。
在一实施方式中,第二规则文本与第一规则文本存储在同一存储区域。
第三方面,本申请实施例还提供了一种计算机可读存储介质,所述存储介质中存储有多条指令,所述指令适于由处理器加载以执行上述的线路筛选方法。
第四方面,本申请实施例还提供了一种电子设备,包括处理器及存储器,所述处理器与所述存储器电性连接,所述存储器用于存储指令和数据,处理器用于执行上述的线路筛选方法。
本申请实施例,通过配置第一规则文本,并将第一规则文本与预存储的所有第二规则文本进行正交校;当校验结果指示第一规则文本与第二规则文本不存在交集时,存储第一规则文本;基于第一规则文本从线路数据库中筛选出满足条件的目标线路。本方案可以提高数据查询准确性。本方案在查询之前判定规则文本是否存在正交,避免了线路集合之间存在正交的可能性,而不用等筛选出具体线路后再比对判定线路集合之间是否存在正交,提高了线路查询准确性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的线路筛选方法的一流程示意图。
图2a是本申请实施例提供的基于kubernetes的大规模线路OD的筛选匹配方法的流程示意图。
图2b是本申请实施例提供的预测模型架构示意图。
图3是本申请实施例提供的逻辑表达式示例的示意图。
图4是本申请实施例提供的电子设备的一结构示意图。
图5是本申请实施例提供的电子设备的另一结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
当运营人员想要获取部分特定线路OD时,需要编写Hive SQL查询语句。然而,大部分的运营人员并不是研发人员,导致了运营人员入门门槛高。
获取特定的部分线路OD的目的是需要对这些线路OD做处理,如价格调整。也就是当符合某一条件时,则涨价;当符合另一条件时,则降价等等。实际应用中,对线路OD的处理必定不能又涨价又降价。因此,需要校验筛选条件之间是否存在交集,以保证不同条件下筛选出来的OD集合之间互斥。
当前,Hive SQL查询语句执行是一次性的,当退出查询页面时,相应的Hive SQL查询语句也随之丢失,导致历史查询语句无法复用。
另外,通过编写Hive SQL并基于Hive计算引擎进行线路OD查询的方式,每次查询都是分钟级别的,导致查询效率低下。
基于此,本申请实施例提供一种线路筛选方法、装置、存储介质及电子设备,旨在提高大规模线路OD的查询准确性和查询效率。以下将分别进行详细说明。
在一实施例中,提供一种线路筛选方法,应用于智能手机、平板电脑、笔记本电脑等电子设备中。参考图1,该线路筛选方法的具体流程可以如下:
101、配置第一规则文本,其中,第一规则文本是由一个或多个条件组成的逻辑表达式。
本方案中,第一规则文本所采用的语言是人类自然语言。逻辑表达式可以只有一层逻辑,最多只能有两层逻辑,并且每层仅允许存在一种逻辑运算符,也即每层的逻辑运算符只能是“并且”、“或者”二者选其一,而不能同时存在。每个条件由三部分组成:属性、关系运算符、属性的值。例如如,车型是小面包车为一个条件;其中车型、年龄便是一种属性;为、大于、介于便是一种关系运算符;属性的值可以是一个具体值或是一个范围,如小面包车、18~25岁便是属性的值。需要说明的是,文本类型与数值类型的关系运算符与属性值稍有不同,例如,车型这个属性是便是文本类型,而不能说车型大于小面包车。
在一实施方式中,可以通过web业务系统配置第一文本规则,用户可以通过web前端网页输入检索逻辑表达式,通过Web前端页面进行限制,以保证运营人员输入的正确性。例如,用户可通过web网页输入逻辑表达式:((会员等级是VIP)并且(性别是男性)并且(车型是中型面包车))。
102、将第一规则文本与预存储的所有第二规则文本进行正交校验,第二规则文本是由一个或多个条件组成的逻辑表达式。
本方案中,正交校验指校验多条规则文本之间是否有交集。具体的,Web业务系统将所有规则文本发送给规则文本正交校验引擎进行正交校验。其中,预存储的第二规则文本是之前查询过的历史规则文本。在查询过后,可以存储在限定的存储区域中。例如,可以在针对某一规则文本查询过后,将该规则文本存储在MySql中。
由于不同用户需求不同,输入的规则文本可能存在较多情况。为了提升校验效率,可对规则文本进行分类,针对不同类的规则文本执行不同的校验策略。也即,在一实施方式中,在将第一规则文本与预存储的所有第二规则文本进行正交校验时,可以包括以下流程:
当第一规则文本与第二规则文本满足预设条件时,按照第一匹配规则进行正交校验;
当第一规则文本与第二规则文本不满足预设条件时,按照第二匹配规则进行正交校验;
其中,预设条件包括:第一规则文本和第二规则文的外层逻辑运算符均为第一预设逻辑运算符,或者第一规则文本的外层逻辑运算符为第一预设逻辑运算符、第二规则文本不存在外层逻辑运算符,或者第一规则文本不存在外层逻辑运算符、第二规则文本的外层逻辑运算符为第一预设逻辑运算符。
为方便描述,将某一个规则描述为A规则,将另一个规则描述为B规则,将A规则的某一个一层逻辑表达式描述为α一层逻辑表达式,将B规则的另一个一层逻辑表达式描述为β一层逻辑表达式,依次类推。
具体的,当A规则的外层逻辑运算符为“并且”同时B规则的外层逻辑运算符为“并且”,或者A规则的外层逻辑运算符为“并且”同时B规则不存在外层逻辑运算符,或者A规则不存在外层逻辑运算符同时B规则的外层逻辑运算符为“并且”,则进行规则文本全匹配,否则进行规则文本任意匹配。具体步骤如下:
规则文本全匹配阶段a1:
如果A规则与B规则存在至少一个相同的属性,则进入下一阶段a2。否则A规则与B规则一定不存在正交。
规则文本全匹配阶段a2:
找出A规则与B规则中具有相同属性的一层逻辑表达式。将具有相同属性的一层逻辑表达式进行两两比较,判定该具有相同属性的一层逻辑表达式是进入条件全匹配阶段c,还是进入条件任意匹配阶段d,直到具有相同属性的所有一层逻辑表达式比较完毕。如果A规则的α一层逻辑表达式的内层逻辑运算符为“并且”同时B规则中的β一层逻辑表达式的内层逻辑运算符为“并且”,或者如果A规则的α一层逻辑表达式的内层逻辑运算符为“并且”同时B规则中的β一层逻辑表达式不存在内层逻辑运算符,或者如果A规则的α一层逻辑表达式不存在内层逻辑运算符同时B规则中的β一层逻辑表达式的内层逻辑运算符为“并且”,则进入条件全匹配阶段c。否则进入条件任意匹配阶段d。
规则文本全匹配阶段a3:
等待条件全匹配阶段c或者条件任意匹配阶段d所返回的结果。当且仅当所有结果都为真,A规则与B规则存在正交,否则,A规则与B规则不存在正交。
规则文本任意匹配阶段b1:
若A规则与B规则存在至少一个相同的属性,则进入下一阶段b2。否则A规则与B规则一定存在正交。
规则文本任意匹配阶段b2:
找出A规则与B规则中具有相同属性的一层逻辑表达式。将具有相同属性的一层逻辑表达式进行两两比较,判定该具有相同属性的一层逻辑表达式是进入条件全匹配阶段c,还是进入条件任意匹配阶段d,直到具有相同属性的所有一层逻辑表达式比较完毕。如果A规则的α一层逻辑表达式的内层逻辑运算符为“并且”同时B规则中的β一层逻辑表达式的内层逻辑运算符为“并且”,或者如果A规则的α一层逻辑表达式的内层逻辑运算符为“并且”同时B规则中的β一层逻辑表达式不存在内层逻辑运算符,或者如果A规则的α一层逻辑表达式不存在内层逻辑运算符同时B规则中的β一层逻辑表达式的内层逻辑运算符为“并且”,则进入条件全匹配阶段c。否则进入条件任意匹配阶段d。
规则文本任意匹配阶段b3:
等待条件全匹配阶段c或者条件任意匹配阶段d所返回的结果。当返回的结果中有任意一个为真时,A规则与B规则存在正交;否则A规则与B规则不存在正交。
条件全匹配阶段c:
找出α一层逻辑表达式与β一层逻辑表达式具有相同属性的条件,将具有相同属性的条件进行两两比较,判定其属性值是否存在正交,直至具有相同属性的所有条件比较完毕。当且仅当具有相同属性的条件均不存在正交时,α一层逻辑表达式与β一层逻辑表达式不正交,此时记录此次条件全匹配阶段c的结果为假,并将结果返回到进入的规则文本匹配阶段,也即如果本次条件全匹配阶段c是由规则文本全匹配阶段a2进入的,则返回到规则文本全匹配阶段a3,如果本次条件全匹配阶段c是由规则文本任意匹配阶段b2进入的,则返回到规则文本任意匹配阶段b3;否则α一层逻辑表达式与β一层逻辑表达式存在正交,此时记录此次条件全匹配阶段c的结果为真,并将结果返回到进入的规则文本匹配阶段,也即如果本次条件全匹配阶段c是由规则文本全匹配阶段a2进入的,则返回到规则文本全匹配阶段a3,如果本次条件全匹配阶段c是由规则文本任意匹配阶段b2进入的,则返回到规则文本任意匹配阶段b3。
条件任意匹配阶段d:
找出α一层逻辑表达式与β一层逻辑表达式具有相同属性的条件,将具有相同属性的条件进行两两比较,判定其属性值是否存在正交,直至具有相同属性的所有条件比较完毕。当具有相同属性的任一条件存在正交时,α一层逻辑表达式与β一层逻辑表达式存在正交,此时记录本次条件任意匹配阶段d的结果为真,并将结果返回到进入的规则文本匹配阶段,也即如果本次条件任意匹配阶段d是由规则文本全匹配阶段a2进入的,则返回到规则文本全匹配阶段a3,如果本次条件任意匹配阶段d是由规则文本任意匹配阶段b2进入的,则返回到规则文本任意匹配阶段b3;否则α一层逻辑表达式与β一层逻辑表达式不存在正交,此时记录本次条件任意匹配阶段d的结果为假,并将结果返回到进入的规则文本匹配阶段,也即如果本次条件任意匹配阶段d是由规则文本全匹配阶段a2进入的,则返回到规则文本全匹配阶段a3,如果本次条件任意匹配阶段d是由规则文本任意匹配阶段b2进入的,则返回到规则文本任意匹配阶段b3。
为了避免重复查询,节省设备资源,在配置完第一规则文本之后,可以判断是否存在与第一规则文本相同的第二规则文本。若存在,则基于第一规则文本直接从指定线路数据库中查询匹配的线路。在本方案中,该指定线路数据库中的线路OD是预先从更底层的存储区域中写入到当前存储区域中的线路OD。需要说明的是,该指定线路数据库的读取速度快、可以允许业务端对其数据进行修改,能及时响应业务端的需求。在本方案中,该指定线路数据库可以为Hbase。
103、当校验结果指示第一规则文本与第二规则文本不存在交集时,存储第一规则文本。
本方案实施例中,在判定第一规则文本与第二规则文本不存在交集时,存储第一规则文本,并可将第二规则文本与第一规则文本存储在同一存储区域。当校验结果指示第一规则文本与第二规则文本存在交集时,生成用于指示第一规则文本配置错误的提示信息。
例如,当规则文本正交校验引擎判定第一规则文本与第二规则文本不正交,则将规则文本写入到MySql中进行存储,同时将规则文本发给规则文本转Hive SQL引擎;否则则结束,并返回Web业务系统提示规则文本存在正交。
104、基于第一规则文本从线路数据库中筛选出满足条件的目标线路。
本方案中,线路数据库HDFS。Hive、Hbase的底层都是HDFS,都需要HDFS的支持,没有HDFS,Hive与Hbase将无法运行。Hive本质上是计算引擎,包含元表,提供了一种映射关系,但本身不存储数据;Hbase本身是一个会存储数据的数据库,但本身存储的数据又会存储到底层的HDFS中。
在一实施方式中,基于第一规则文本从线路数据库中筛选出满足条件的目标线路,包括以下流程:
将第一规则文本转换为指定计算引擎可执行的查询语句;
根据查询语句从线路数据库中筛选出满足条件的目标线路。
在本方案中,可通过规则文本转Hive SQL引擎,将人类自然语言格式的规则文本转换为可用于Hive查询的SQL语句。在规则文本转Hive SQL引擎中,预先存储了属性与Hive表字段的映射关系、关系运算符与Hive SQL查询语句关系运算符的映射关系,逻辑运算符与Hive SQL查询语句逻辑运算符的映射关系。
具体的,获取外层逻辑运算符,并转换为Hive SQL查询语句的逻辑运算符,记录为logic-1。然后,循环一层逻辑表达式,对每个一层逻辑表达式进行解析,得到多个条件与内层逻辑运算符logic-2。接着,循环每个条件,将条件中的属性与关系运算符转换为Hive表字段与Hive SQL查询语句关系运算符,并将多个转换后的条件使用logic-2进行连接得到一层逻辑表达式对应的Hive SQL查询语句。最后,使用logic-1,将循环后得到的所有一层逻辑表达式对应的Hive SQL查询语句进行连接。将得到的Hive SQL查询语句添加上查询的select的表名,得到完整的Hive SQL查询语句,实现人类自然语言到Hive SQL查询语句的转换。
在一实施方式中,根据查询语句从线路数据库中筛选出满足条件的目标线路,可以包括以下流程:
将查询语句发送给容器化集群管理系统;
基于容器化集群管理系统下的多个作业调度器并行执行该查询语句,以从线路数据库中查询与查询语句匹配的线路;
通过作业调度器将查询到的线路回写到指定线路数据库;
从指定线路数据库中读取查询到的线路,作为目标线路。
具体的,该容器化集群管理系统可以为kubernetes,作业调度器为kubernetes下的Job类。启动kubernetes的多个Job任务,同时将可用于Hive查询的SQL语句发送给多个Job,并执行Hive SQL的查询,实现分布式并发,以提升查询性能。Job可将查询到的线路OD回写至Hbase中存储,Web业务系统通过查询Hbase中存储的线路OD,最终筛选出期望的目标线路。
由上可知,本实施例提供的线路筛选方法,通过配置第一规则文本,并将第一规则文本与预存储的所有第二规则文本进行正交校;当校验结果指示第一规则文本与第二规则文本不存在交集时,存储第一规则文本;基于第一规则文本从线路数据库中筛选出满足条件的目标线路。本方案可以提高数据查询准确性。本方案在查询之前判定规则文本是否存在正交,避免了线路集合之间存在正交的可能性,而不用等筛选出具体线路后再比对判定线路集合之间是否存在正交,提高了线路查询准确性。
在本申请又一实施例中,还提供一种基于kubernetes的大规模线路OD的筛选匹配方法。参考图2a,下面将对提供的线路OD的筛选匹配方法进行详细描述。具体如下:
(一)、Web业务系统配置规则文本,与MySql中存储的规则文本比较。
具体的,若在MySql中已经存在相同的规则文本,则直接从Hbase中查询线路OD,否则进入下一步。
(二)、通过规则文本正交引擎判定规则文本是否正交。
具体的,Web业务系统将所有规则文本发送给规则文本正交校验引擎。规则文本是由一个或多个条件组成的一条逻辑表达式。逻辑表达式可以只有一层逻辑,但最多只能有两层逻辑,并且每层仅允许存在一种逻辑运算符,也就是每层的逻辑运算符只能是“并且”、“或者”二者选其一,而不能同时存在。例如,((会员等级是VIP)并且(性别是男)并且(车型是中型面包车))是符合规则的;而((会员等级是VIP)并且(性别是男)或者(车型是中型面包车))则是不符合规则的。当一层逻辑表达的条件仅有一个时,可以不包含逻辑运算符,如((会员等级是VIP))。此限制通过Web前端页面进行限制,以保证运营人员输入的正确性。参考图2b,图2b为配置的一条规则文本,其跟人类使用的自然语言无差异。
本申请实施例中,组成逻辑表达式的条件由三部分组成:属性、关系运算符、属性的值。本方案中,正交指多条规则文本之间是否有交集,具体可通过规则文本正交校验引擎判定是否正交。例如:((会员等级是VIP)并且(年龄大于18岁))与((会员等级是VIP)并且(年龄大于30岁)),由于在年龄属性上,大于18岁涵盖了大于30岁,因此两者之间存在正交。
为方便描述,将某一个规则描述为A规则,将另一个规则描述为B规则。将A规则的某一个一层逻辑表达式描述为α一层逻辑表达式,将B规则的另一个一层逻辑表达式描述为β一层逻辑表达式,依次类推。规则文本正交引擎判定规则之间是否存在正交的算法如下:
当A规则的外层逻辑运算符为“并且”同时B规则的外层逻辑运算符为“并且”,或者A规则的外层逻辑运算符为“并且”同时B规则不存在外层逻辑运算符,或者A规则不存在外层逻辑运算符同时B规则的外层逻辑运算符为“并且”,则进行规则文本全匹配,否则进行规则文本任意匹配。
(三)如果不正交,则将规则文本存储在MySql中,并发送至规则文本转Hive SQL引擎。否则结束,并提示正交。
具体的,若规则文本正交校验引擎判定不正交,则将规则文本写入到MySql中进行存储,同时将规则文本发给规则文本转Hive SQL引擎;否则结束流程,并返回Web业务系统提示规则文本存在正交。
(四)通过规则文本转Hive SQL引擎,将人类自然语言的规则文本转换为可用于Hive SQL执行的查询语句。
本方案中,规则文本转Hive SQL引擎用于将人类自然语言格式的规则转换为可用于Hive查询的SQL语句。
在规则文本转Hive SQL引擎中,存储了属性与Hive表字段的映射关系、关系运算符与Hive SQL查询语句关系运算符的映射关系,逻辑运算符与Hive SQL查询语句逻辑运算符的映射关系。具体实施时,包括以下步骤:
(11)获取外层逻辑运算符,转换为Hive SQL查询语句的逻辑运算符,并暂时缓存起来,记录为logic-1;
(21)循环一层逻辑表达式,对每个一层逻辑表达式进行解析,得到多个条件与内层逻辑运算符logic-2;
(22)循环每个条件,将条件中的属性与关系运算符转换为Hive表字段与Hive SQL查询语句关系运算符,并将多个转换后的条件使用logic-2进行连接得到一层逻辑表达式对应的Hive SQL查询语句;
(23)等待循环后得到的所有一层逻辑表达式对应的Hive SQL查询语句,使用logic-1将所有一层逻辑表达式对应的Hive SQL查询语句进行连接;
(24)将得到的Hive SQL查询语句添加上查询的select的表名。得到完整的HiveSQL查询语句。
例如,规则文本:((车型是小面包车)并且(年龄介于18-25岁之间))或者((会员等级是VIP)并且(性别是男性)并且(车型属于中面包车,大货车))或者((性别是女性)或者(年龄大于30岁)),其为包含两层逻辑的逻辑表达式。通过规则文本转Hive SQL引擎,可将其转换为如下SQL查询语句:
Select*fromtable_name where
((vehicle=‘小面包’)and(age>=25))
or
(level=‘VIP’)and(gender=‘男性’)and(vehicle in(‘中面包车’,‘大货车’))
or
((gender=‘女性’)or(age>30))
(五)通过将Hive SQL查询语句发送至kubernetes中的多个Job执行。
具体的,启动kubernetes的多个Job任务,同时将可用于Hive查询的SQL语句发送给多个Job。由多个Job执行Hive SQL的查询,实现分布式并发。其中每个Job都仅执行一条由规则文本转换而成的Hive SQL查询语句。若有n条由规则文本转换而成的Hive SQL查询语句,则同时启动n个Job同时执行。假设执行一条Hive SQL查询语句耗费时间t,则之前的技术方案中执行的总耗费时间为:t*n;当使用多个Job分布式执行时,则仅耗费时间t。
(六)通过Job回写查询到的OD至Hbase。
实际应用中,规则A下的线路OD若没有存储在Hbase中,则web业务系统则查询不到。因此,需要先通过Job根据规则A把从Hive中拉取线路OD并写到Hbase中,Web业务系统才能根据规则A查询到OD。
(七)通知Web业务系统从Hbase查询OD。
具体的,通过将查询到的OD数据回写至Hbase,由于Hbase的实时性能,通过Web业务系统查询Hbase中的OD,最终获取期望的OD,使得查询效率大大提升。
本申请实施例提供的产品销量预测方法,可使用人类自然语言查询存储在HDFS中OD,降低了使用者的入门门槛。
使用规则文本正交引擎判定逻辑表达式是否存在正交,可在查询之前便可避免了OD集合之间存在正交的可能性,而不用等筛选出具体OD再人工比对判定OD集合之间是否存在正交,省去了人力成本,从而降低了人效。
基于kubernetes的多Job并行执行,使得一次的Hive SQL的耗时查询,分发到多个Job并行同时执行,大大缩短了查询时间,提升了查询效率。
引入Hbase,通过Job将查询到的OD回写至Hbase中。由于Hbase的实时性,使得在相同的筛选条件下,首次查询实现秒级别(由于首次需要通过Job执行Hive SQL查询,即使分发到多个Job去执行,也只能降低到秒级别,达不到实时级别),除了首次查询之外的后续其它查询实现实时级别。最终解决了查询效率慢的问题。
在本申请又一实施例中,还提供一种线路筛选装置。该线路筛选装置可以软件或硬件的形式集成在电子设备中,该电子设备具体可以包括手机、平板电脑、笔记本电脑等设备。如图3所示,该线路筛选装置300可以包括:配置单元301、校验单元302、存储单元303、筛选单元304,其中:
配置单元301,用于配置第一规则文本,其中,第一规则文本是由一个或多个条件组成的逻辑表达式;
校验单元302,用于将第一规则文本与预存储的所有第二规则文本进行正交校验,第二规则文本是由一个或多个条件组成的逻辑表达式;
存储单元303,用于当校验结果指示第一规则文本与第二规则文本不存在交集时,存储第一规则文本;
筛选单元304,用于基于第一规则文本从线路数据库中筛选出满足条件的目标线路。
在一实施方式中,所述校验单元302用于:
当第一规则文本与第二规则文本满足预设条件时,按照第一匹配规则进行正交校验;
当第一规则文本与第二规则文本不满足预设条件时,按照第二匹配规则进行正交校验;
其中,预设条件包括:第一规则文本和第二规则文的外层逻辑运算符均为第一预设逻辑运算符,或者第一规则文本的外层逻辑运算符为第一预设逻辑运算符、第二规则文本不存在外层逻辑运算符,或者第一规则文本不存在外层逻辑运算符、第二规则文本的外层逻辑运算符为第一预设逻辑运算符。
在一实施方式中,所述筛选单元304具体用于:
将第一规则文本转换为指定计算引擎可执行的查询语句;
根据所述查询语句从线路数据库中筛选出满足条件的目标线路。
在一实施方式中,所述筛选单元304进一步用于:
将所述查询语句发送给容器化集群管理系统;
基于所述容器化集群管理系统下的多个作业调度器并行执行所述查询语句,以从所述线路数据库中查询与所述查询语句匹配的线路;
通过所述作业调度器将查询到的线路回写到指定线路数据库;
从所述指定线路数据库中读取查询到的线路,作为所述目标线路。
在一实施方式中,所述线路筛选装置300还可以包括:
判断单元,用于判断是否存在与第一规则文本相同的第二规则文本;
查询单元,用于若判断单元判定为是时,则基于第一规则文本直接从所述指定线路数据库中查询匹配的线路。
在一实施方式中,所述线路筛选装置300还可以包括:
提示单元,用于当校验结果指示第一规则文本与第二规则文本存在交集时,生成用于指示第一规则文本配置错误的提示信息。
在一实施方式中,第二规则文本与第一规则文本存储在同一存储区域。
由上可知,本申请实施例提供的线路筛选装置,通过配置第一规则文本,并将第一规则文本与预存储的所有第二规则文本进行正交校;当校验结果指示第一规则文本与第二规则文本不存在交集时,存储第一规则文本;基于第一规则文本从线路数据库中筛选出满足条件的目标线路。本方案可以提高数据查询准确性。本方案在查询之前判定规则文本是否存在正交,避免了线路集合之间存在正交的可能性,而不用等筛选出具体线路后再比对判定线路集合之间是否存在正交,提高了线路查询准确性。
在本申请又一实施例中还提供一种电子设备,该电子设备可以是智能手机、平板电脑等智能终端。如图4所示,电子设备400包括处理器401和存储器402。其中,处理器401与存储器402电性连接。
处理器401是电子设备400的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或加载存储在存储器402内的应用,以及调用存储在存储器402内的数据,执行电子设备的各种功能和处理数据,从而对电子设备进行整体监控。
在本实施例中,电子设备400中的处理器401会按照如下的步骤,将一个或一个以上的应用的进程对应的指令加载到存储器402中,并由处理器401来运行存储在存储器402中的应用,从而实现各种功能:
配置第一规则文本,其中,第一规则文本是由一个或多个条件组成的逻辑表达式;
将第一规则文本与预存储的所有第二规则文本进行正交校验,第二规则文本是由一个或多个条件组成的逻辑表达式;
当校验结果指示第一规则文本与第二规则文本不存在交集时,存储第一规则文本;
基于第一规则文本从线路数据库中筛选出满足条件的目标线路。
在一实施方式中,在将第一规则文本与预存储的所有第二规则文本进行正交校验时,处理器401可以执行以下操作:
当第一规则文本与第二规则文本满足预设条件时,按照第一匹配规则进行正交校验;
当第一规则文本与第二规则文本不满足预设条件时,按照第二匹配规则进行正交校验;
其中,预设条件包括:第一规则文本和第二规则文的外层逻辑运算符均为第一预设逻辑运算符,或者第一规则文本的外层逻辑运算符为第一预设逻辑运算符、第二规则文本不存在外层逻辑运算符,或者第一规则文本不存在外层逻辑运算符、第二规则文本的外层逻辑运算符为第一预设逻辑运算符。
在一实施方式中,在基于第一规则文本从线路数据库中筛选出满足条件的目标线路时,处理器401可以执行以下操作:
将第一规则文本转换为指定计算引擎可执行的查询语句;
根据所述查询语句从线路数据库中筛选出满足条件的目标线路。
在一实施方式中,在根据所述查询语句从线路数据库中筛选出满足条件的目标线路时,处理器401可以执行以下操作:
将所述查询语句发送给容器化集群管理系统;
基于所述容器化集群管理系统下的多个作业调度器并行执行所述查询语句,以从所述线路数据库中查询与所述查询语句匹配的线路;
通过所述作业调度器将查询到的线路回写到指定线路数据库;
从所述指定线路数据库中读取查询到的线路,作为所述目标线路。
在一实施方式中,在配置第一规则文本之后,将第一规则文本与预存储的第二规则文本进行正交校验之前,处理器401还可以执行以下操作:
判断是否存在与第一规则文本相同的第二规则文本;
若是,则基于第一规则文本直接从所述指定线路数据库中查询匹配的线路。
在一实施方式中,处理器401还可以用于执行以下操作:
当校验结果指示第一规则文本与第二规则文本存在交集时,生成用于指示第一规则文本配置错误的提示信息。
存储器402可用于存储应用和数据。存储器402存储的应用中包含有可在处理器中执行的指令。应用可以组成各种功能模块。处理器401通过运行存储在存储器402的应用,从而执行各种功能应用以及线路筛选。
在一些实施例中,如图5所示,电子设备400还包括:显示屏403、控制电路404、射频电路405、输入单元406、传感器408以及电源409。其中,处理器401分别与显示屏403、控制电路404、射频电路405、输入单元406、摄像头407、传感器408以及电源409电性连接。
显示屏403可用于显示由用户输入的信息或提供给用户的信息以及电子设备的各种图形用户接口,这些图形用户接口可以由图像、文本、图标、视频和其任意组合来构成。
控制电路404与显示屏403电性连接,用于控制显示屏403显示信息。
射频电路405用于收发射频信号,以通过无线通信与电子设备或其他电子设备构建无线通讯,与服务器或其他电子设备之间收发信号。
输入单元406可用于接收输入的数字、字符信息或用户特征信息(例如指纹),以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。其中,输入单元406可以包括指纹识别模组。
摄像头407可用于采集图像信息。其中,该摄像头可以是具有一个镜头的单摄像头,也可以具有两个或多个镜头。
传感器408用于采集外部环境信息。传感器408可以包括环境亮度传感器、加速度传感器、光传感器、运动传感器、以及其他传感器。
电源409用于给电子设备400的各个部件供电。在一些实施例中,电源409可以通过电源管理系统与处理器401逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
尽管图5中未示出,电子设备400还可以包括扬声器、蓝牙模块等,在此不再赘述。
由上可知,本申请实施例提供的电子设备,通过配置第一规则文本,并将第一规则文本与预存储的所有第二规则文本进行正交校;当校验结果指示第一规则文本与第二规则文本不存在交集时,存储第一规则文本;基于第一规则文本从线路数据库中筛选出满足条件的目标线路。本方案可以提高数据查询准确性。本方案在查询之前判定规则文本是否存在正交,避免了线路集合之间存在正交的可能性,而不用等筛选出具体线路后再比对判定线路集合之间是否存在正交,提高了线路查询准确性。
在一些实施例中,还提供了一种计算机可读存储介质,该存储介质中存储有多条指令,该指令适于由处理器加载以执行上述任一线路筛选方法。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,RandomAccessMemory)、磁盘或光盘等。
以上对本申请实施例所提供的线路筛选方法、装置、存储介质及电子设备进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种线路筛选方法,其特征在于,包括:
配置第一规则文本,其中,第一规则文本是由一个或多个条件组成的逻辑表达式;
将第一规则文本与预存储的所有第二规则文本进行正交校验,第二规则文本是由一个或多个条件组成的逻辑表达式;
当校验结果指示第一规则文本与第二规则文本不存在交集时,存储第一规则文本;
基于第一规则文本从线路数据库中筛选出满足条件的目标线路。
2.根据权利要求1所述的方法,其特征在于,所述将第一规则文本与预存储的所有第二规则文本进行正交校验,包括:
当第一规则文本与第二规则文本满足预设条件时,按照第一匹配规则进行正交校验;
当第一规则文本与第二规则文本不满足预设条件时,按照第二匹配规则进行正交校验;
其中,预设条件包括:第一规则文本和第二规则文的外层逻辑运算符均为第一预设逻辑运算符,或者第一规则文本的外层逻辑运算符为第一预设逻辑运算符、第二规则文本不存在外层逻辑运算符,或者第一规则文本不存在外层逻辑运算符、第二规则文本的外层逻辑运算符为第一预设逻辑运算符。
3.根据权利要求1所述的方法,其特征在于,所述基于第一规则文本从线路数据库中筛选出满足条件的目标线路,包括:
将第一规则文本转换为指定计算引擎可执行的查询语句;
根据所述查询语句从线路数据库中筛选出满足条件的目标线路。
4.根据权利要求3所述的方法,其特征在于,所述根据所述查询语句从线路数据库中筛选出满足条件的目标线路,包括:
将所述查询语句发送给容器化集群管理系统;
基于所述容器化集群管理系统下的多个作业调度器并行执行所述查询语句,以从所述线路数据库中查询与所述查询语句匹配的线路;
通过所述作业调度器将查询到的线路回写到指定线路数据库;
从所述指定线路数据库中读取查询到的线路,作为所述目标线路。
5.根据权利要求4所述的方法,其特征在于,在配置第一规则文本之后,将第一规则文本与预存储的第二规则文本进行正交校验之前,还包括:
判断是否存在与第一规则文本相同的第二规则文本;
若是,则基于第一规则文本直接从所述指定线路数据库中查询匹配的线路。
6.根据权利要求1所述的方法,其特征在于,还包括:
当校验结果指示第一规则文本与第二规则文本存在交集时,生成用于指示第一规则文本配置错误的提示信息。
7.根据权利要求1-6任一项所述的方法,其特征在于,第二规则文本与第一规则文本存储在同一存储区域。
8.一种线路筛选装置,其特征在于,包括:
配置单元,用于配置第一规则文本,其中,第一规则文本是由一个或多个条件组成的逻辑表达式;
校验单元,用于将第一规则文本与预存储的所有第二规则文本进行正交校验,第二规则文本是由一个或多个条件组成的逻辑表达式;
存储单元,用于当校验结果指示第一规则文本与第二规则文本不存在交集时,存储第一规则文本;
筛选单元,用于基于第一规则文本从线路数据库中筛选出满足条件的目标线路。
9.一种计算机可读存储介质,其特征在于,所述存储介质中存储有多条指令,所述指令适于由处理器加载以执行权利要求1-7任一项所述的线路筛选方法。
10.一种电子设备,其特征在于,包括处理器及存储器,所述处理器与所述存储器电性连接,所述存储器用于存储指令和数据;所述处理器用于执行权利要求1-7任一项所述的线路筛选方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210784325.8A CN115129851A (zh) | 2022-07-05 | 2022-07-05 | 线路筛选方法、装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210784325.8A CN115129851A (zh) | 2022-07-05 | 2022-07-05 | 线路筛选方法、装置、存储介质及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115129851A true CN115129851A (zh) | 2022-09-30 |
Family
ID=83381658
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210784325.8A Pending CN115129851A (zh) | 2022-07-05 | 2022-07-05 | 线路筛选方法、装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115129851A (zh) |
-
2022
- 2022-07-05 CN CN202210784325.8A patent/CN115129851A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220222921A1 (en) | Method for generating image classification model, roadside device and cloud control platform | |
US20150089415A1 (en) | Method of processing big data, apparatus performing the same and storage media storing the same | |
CN113742366B (zh) | 数据处理方法、装置、计算机设备及存储介质 | |
US11580455B2 (en) | Facilitating machine learning configuration | |
CN111316308A (zh) | 用于识别错误订单请求的系统及方法 | |
CN113052567A (zh) | 基于智慧政企云服务的大数据分析方法及大数据云平台 | |
CN111427577A (zh) | 代码处理方法、装置及服务器 | |
CN110569289A (zh) | 基于大数据的列数据处理方法、设备及介质 | |
US20240061883A1 (en) | Declarative modeling paradigm for graph-database | |
CN114237743B (zh) | 界面加载方法、装置、电子设备和存储介质 | |
CN110019813A (zh) | 寿险案例检索方法、检索装置、服务器及可读存储介质 | |
AU2023266277B2 (en) | Metadata tag auto-application to posted entries | |
KR102153259B1 (ko) | 데이터 도메인 추천 방법 및 추천된 도메인을 이용하여 통합 데이터 저장소 관리 시스템을 구축하는 방법 | |
CN115129851A (zh) | 线路筛选方法、装置、存储介质及电子设备 | |
US20220284060A1 (en) | Question Answering Method and Apparatus Based on Knowledge Graph | |
US11620309B2 (en) | Data reconciliation and inconsistency determination for posted entries | |
CN113033816B (zh) | 机器学习模型的处理方法、装置、存储介质及电子设备 | |
CN113779231B (zh) | 基于知识图谱的大数据可视化分析方法、装置及设备 | |
EP4361913A1 (en) | Vehicle sharing service optimization | |
US20220405617A1 (en) | Artificial intelligence collectors | |
CN116468044A (zh) | 数据集生成方法、装置、电子设备和存储介质 | |
CN116974898A (zh) | 一种数据处理方法、装置、设备以及计算机可读存储介质 | |
CN116992323A (zh) | 城市治理事件的分类方法、分类模型的训练方法及装置 | |
CN118132618A (zh) | 企业数据源深度挖掘 | |
CN116775955A (zh) | 数据标签固化方法、装置、计算机设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |