CN112214494B - 检索方法及装置 - Google Patents

检索方法及装置 Download PDF

Info

Publication number
CN112214494B
CN112214494B CN202011132530.3A CN202011132530A CN112214494B CN 112214494 B CN112214494 B CN 112214494B CN 202011132530 A CN202011132530 A CN 202011132530A CN 112214494 B CN112214494 B CN 112214494B
Authority
CN
China
Prior art keywords
list
variable
value
statement
name
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
Application number
CN202011132530.3A
Other languages
English (en)
Other versions
CN112214494A (zh
Inventor
王党团
盛沛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bank of China Ltd
Original Assignee
Bank of China Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Bank of China Ltd filed Critical Bank of China Ltd
Priority to CN202011132530.3A priority Critical patent/CN112214494B/zh
Publication of CN112214494A publication Critical patent/CN112214494A/zh
Application granted granted Critical
Publication of CN112214494B publication Critical patent/CN112214494B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24564Applying rules; Deductive queries

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)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种检索方法及装置,其中该方法包括:根据用户选择的Hbase数据库表名,对数据库表创建快照;接收用户输入的检索条件参数;根据检索条件参数,生成检索条件语句,拼接出变量默认值语句;根据检索条件语句,及正则表达式实例,解析出变量名列表;根据变量默认值语句,得到变量名值列表;根据变量名列表和变量名值列表,得到变量类型指示列表;启动分布式分区任务作业,读取Hbase数据库表的快照文件;根据快照文件,得到新的变量名值列表作为查询结果列表;根据检索条件语句,查询结果列表,变量类型指示列表,及正则表达式实例,获取实例真伪值结果,输出集群文件检索结果。本发明实现了高效检索复杂条件下的大规模数据。

Description

检索方法及装置
技术领域
本发明涉及数据处理技术领域,尤其涉及检索方法及装置。
背景技术
本部分旨在为权利要求书中陈述的本发明实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
互联网时代,用户数据量和产品数据量规模巨大,业务人员和运营人员经常需要快速检索复杂条件下的业务数据和运营数据,以支持业务有效快速发展和生产运行安全,传统的关系型数据库已经无法存储超大规模数据,且即使通过分库分表等手段也无法高效检索非索引复杂条件下的大规模数据。
发明内容
本发明实施例提供一种检索方法,用以高效检索复杂条件下的大规模数据,该方法包括:
根据用户选择的Hbase数据库表名,对数据库表创建快照;接收用户输入的检索条件参数;根据所述检索条件参数,生成检索条件语句,拼接出变量默认值语句;
根据所述检索条件语句,以及建立的正则表达式实例,解析出变量名列表;
根据所述变量默认值语句,得到变量名值列表;
根据所述变量名列表和变量名值列表,得到变量类型指示列表;
启动分布式分区任务作业,读取Hbase数据库表的快照文件;
根据读取的Hbase数据库表的快照文件,得到新的变量名值列表作为查询结果列表;
根据检索条件语句,查询结果列表,变量类型指示列表,以及建立的正则表达式实例,获取实例的真伪值结果;
根据实例真伪值结果,输出集群文件检索结果。
本发明实施例还提供一种检索装置,用以高效检索复杂条件下的大规模数据,该装置包括:
流程总控模块,用于根据用户选择的Hbase数据库表名,对数据库表创建快照;接收用户输入的检索条件参数;根据所述检索条件参数,生成检索条件语句,拼接出变量默认值语句;启动分布式分区任务作业,读取Hbase数据库表的快照文件;
条件解析模块,用于根据所述检索条件语句,以及建立的正则表达式实例,解析出变量名列表;
类型解析模块,用于根据所述变量默认值语句,得到变量名值列表;
条件检查模块,用于根据所述变量名列表和变量名值列表,得到变量类型指示列表;
数据解析模块,用于根据读取的Hbase数据库表的快照文件,得到新的变量名值列表作为查询结果列表;
条件比较模块,用于根据检索条件语句,查询结果列表,变量类型指示列表,以及建立的正则表达式实例,获取实例的真伪值结果;
文件输出模块,用于根据实例真伪值结果,输出集群文件检索结果。
本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述检索方法。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述检索方法的计算机程序。
本发明实施例中,检索方案,与现有技术中无法高效检索非索引复杂条件下的大规模数据的技术方案相比,通过:根据用户选择的Hbase数据库表名,对数据库表创建快照;接收用户输入的检索条件参数;根据检索条件参数,生成检索条件语句,拼接出变量默认值语句;根据检索条件语句,及正则表达式实例,解析出变量名列表;根据变量默认值语句,得到变量名值列表;根据变量名列表和变量名值列表,得到变量类型指示列表;启动分布式分区任务作业,读取Hbase数据库表的快照文件;根据快照文件,得到新的变量名值列表作为查询结果列表;根据检索条件语句,查询结果列表,变量类型指示列表,及正则表达式实例,获取实例真伪值结果,输出集群文件检索结果,实现了高效检索复杂条件下的大规模数据。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为本发明实施例中检索方法的流程示意图;
图2为本发明实施例中得到查询结果列表的流程示意图;
图3为本发明实施例中检索的原理示意图;
图4为本发明实施例中Hbase数据库表的示意图;
图5为本发明实施例中集群文件的示意图;
图6为本发明实施例中json格式的集群文件示意图;
图7为本发明实施例中检索装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
在介绍本发明实施例之前,首先介绍本发明涉及的名词。
1.Hbase:一种可存储大规模结构化/非结构化数据的分布式数据库;
2.Spark:专为大规模数据处理而设计的快速通用引擎。
发明人发现如下技术问题:
1、使用传统的关系型数据库如oralce、mysql等,要实现大规模数据的复杂非索引字段条件查询,只能采用分库分表策略进行数据存储,然后各库各表分别进行全表扫描,最后结果统一汇总,应用架构复杂,处理性能低下,无法满足实际使用。
2、使用新型的非关系型数据库如hbase、mongodb等,要实现大规模数据的复杂非索引字段条件查询,hbase只能支持一个主键索引,主键方式查询性能高,非主键查询(Filter过滤器)性能低下,mongodb支持多索引创建但性能不高,非主键查询性能低下,无法满足实际使用。
由于现有数据库的数据存储格式局限性和检索机制局限性,对于大规模非索引字段动态查询功能支持有限,且需要经过数据库引擎机制,全表扫描数据,处理性能低下,无法满足实际使用需求。
本发明实施例提供检索方案的应用场景为大规模数据的动态条件检索,难点在于:
1、数据规模大:用户产品业务数据达到上亿行百万列,远远超出传统数据库存储能力。
2、查询条件动态复杂:用户可根据业务需求输入不同查询条件,字段数量和规则不受限制(如字段组合或聚集)。
3、非索引字段约束:查询语句中的条件字段列名在表上对应的字段上无索引创建,无法快速定位数据。
4、输出结果集大:作为分析类场景,查询结果数据集过大,数据库引擎内存中无法缓存。
由于发明人考虑到了上述技术问题,提出了一种检索方案,该方案为一种大规模数据动态条件检索方案,该方案把数据全部存储在HBASE数据库中,然后动态解析用户的输入条件,多任务并行直接扫描数据库存储文件,读取数据记录过滤条件列值,灌入检索条件和数据值到正则表达式中,根据判别结果真假值,输出符合条件的记录数据到文件中。
本发明实施例提供高效简易的解决方案,借用NoSql数据库存储数据,使用Spark内存计算框架,直接访问部分底层数据文件,条件检索过滤记录,避免了数据库引擎的限制和不足,实现了大规模数据动态条件复杂检索的功能和高性能。
下面对该检索方案进行详细介绍。
图1为本发明实施例中检索方法的流程示意图,如图1所示,该方法包括如下步骤:
步骤101:根据用户选择的Hbase数据库表名,对数据库表创建快照;接收用户输入的检索条件参数;根据所述检索条件参数,生成检索条件语句,拼接出变量默认值语句;
步骤102:根据所述检索条件语句,以及建立的正则表达式实例,解析出变量名列表;
步骤103:根据所述变量默认值语句,得到变量名值列表;
步骤104:根据所述变量名列表和变量名值列表,得到变量类型指示列表;
步骤105:启动分布式分区任务作业,读取Hbase数据库表的快照文件;
步骤106:根据读取的Hbase数据库表的快照文件,得到新的变量名值列表作为查询结果列表;
步骤107:根据检索条件语句,查询结果列表,变量类型指示列表,以及建立的正则表达式实例,获取实例的真伪值结果;
步骤108:根据实例真伪值结果,输出集群文件检索结果。
在一个实施例中,上述检索方法还可以包括:对所述变量名列表中的元素进行排序处理,得到排序的变量名列表;
根据读取的Hbase数据库表的快照文件,及排序的变量名列表,得到新的变量值列表作为查询结果列表。
具体实施时,上述对所述变量名列表中的元素进行排序处理,后续得到查询结果列表,进而最终得到检索结果的实施方案进一步提高了复杂条件下的大规模数据的检索效率和准确率。
在一个实施例中,如图2所示,根据读取的Hbase数据库表的快照文件,及排序的变量名列表,得到新的变量值列表作为查询结果列表,可以包括如下步骤:
步骤201:从排序的变量名列表中获取变量名;
步骤202:根据变量名和数据库的行格式数据,从Hbase数据库表的快照文件中检索出行主键key、蔟名、变量名对应的列名和列值;
步骤203:解析出列值对象中包含的对象结构;所述对象结构为列值的结构;
步骤204:将列名和对象结构中的数据值组成一个新的变量值列表作为查询结果列表。
具体实施时,上述得到查询结果列表的详细实施方案进一步提高了复杂条件下的大规模数据的检索效率和准确率。
在一个实施例中,根据实例真伪值结果,输出集群文件检索结果,可以包括:在判断实例为真时,将集群文件数据内容转换为json格式数据输出。
具体实施时,上述转换为json格式数据输出结果的详细实施方案灵活、方便。
在一个实施例中,所述Hbase数据库表可以包括用户标签信息表,所述用户标签信息表可以用于存放所有用户的全部标签;所述用户标签信息表每一行可以存储一个用户的全部标签;每一列可以存放一个标签,列名可以为标签编号,列值可以为标签对应用户的数据值。
具体实施时,上述Hbase数据库表格式便于高效进行复杂条件下的大规模数据的检索。
在一个实施例中,如图4所示,所述用户标签信息表可以包括:用户个人基本信息蔟、用户资产负债信息蔟和用户消费行为信息蔟。
具体实施时,上述Hbase数据库表格式进一步便于高效进行复杂条件下的大规模数据的检索。
下面结合图3,整体介绍本发明实施例提供的检索方案。
如图3所示,本发明实施例提供的检索方案可以包括流程总控模块、条件解析模块、类型解析模块、条件检查模块、数据解析模块、条件比较模块、文件输出模块等。
其中:
流程总控模块:接收用户输入条件参数,启动spark分布式任务作业,串联起各功能模块按流程处理。
条件解析模块:把用户输入的检索条件语句,检查语法是否正确,解析出全部的变量名称,保存在变量名称列表中。
类型解析模块:把用户输入的变量默认值语句,检查格式是否正确,根据输入的变量的默认值,解析出对应的数据类型指示,并保存在变量类型指示列表(变量类型指示列表包含变量名和类型两个变量,是一个key-value结构)中。
条件检查模块:检查用户输入的检索条件语句中的变量,是否在用户输入的变量类型语句中存在匹配,如果不存在则报错,根据变量默认值计算类型,返回变量类型指示列表。
数据解析模块:读取数据库底层数据文件记录,根据存储的数据结构类,解析出主键、蔟名、列名、列值等,赋值到类实例中,生产新的变量值列表。
条件比较模块:传入用户输入的检索条件语句到正则表达式实例中,根据变量名称列表(变量名列表)和变量类型指示列表,把变量值转换为对应数据类型的对象,赋值到正则表达式实例中,执行正则表达式,获取真伪值结果。
文件输出模块:把符合检索条件的记录的结果,转化为JSON格式,保存在文件中。
具体地,某项业务数据根据蔟名、列名分解,列值中存放列值对象,全部数据存储在Hbase数据库中一张宽表中。下面再详细介绍上述各个模块。
流程总控模块接收用户输入的表快照名称、表蔟名、检索条件语句、变量默认值语句、输出文件名称等参数,检查输入值是否空值等。打开spark计算引擎的会话,连接hbase数据库,调用条件解析模块,输入检索条件语句,获取变量名列表。
条件解析模块接收输入的检索条件语句,检查是否空值,创建正则表达式工厂,输入检索条件语句产生正则表达式实例,调用实例解析出检索条件语句中字符串中的变量名列表,返回变量名列表到流程总控模块。
流程总控模块调用列表排序函数,使用树集合对列表自动排序,输出按字母顺序排序的变量名列表,然后把列表中变量列名按顺序逐个压入hbase查询接口对象中。
流程总控模块调用类型解析模块,输入变量默认值语句,输出变量名值列表(变量名值列表包含变量名和值两个变量,是一个key-value结构)。
类型解析模块接收变量默认值语句,检查格式是否正确,根据变量名称、等于号、默认值、分隔符的格式语句,解析出变量与值的KV对列表,循环处理变量KV对列表,返回变量名值列表。
流程总控模块调用条件检查模块,输入变量名列表和变量名值列表,输出变量类型指示列表。
条件检查模块接收输入的变量名列表和变量名值列表,循环检查变量名列表中的变量名在变量名值列表中是否存在,如果变量名没有默认值,则返回错误,否则生成新的变量名值列表。计算新变量名值列表对应的数据类型,如果默认值为全数字类型,则变量类型标记为整型I,如果默认值为数字且后缀带L/l,则变量类型标记为长整型L,如果默认值全数字且带小数点,则变量类型标记为双精度类型D,否则默认标记为字符串类型S,生成变量类型指示列表,返回变量类型指示列表。
流程总控模块启动分布式分区任务作业,读取数据库表的快照文件,调用数据解析模块,输入条件变量名列表和数据库行格式数据。
数据解析模块接收变量名列表和行格式数据,根据变量名和数据格式,检索出行主键、蔟名、条件变量名对应的列名和列值,解析出列值对象中包含的对象结构,把列名和对象结构中的数据值组成一个新的变量值列表(单行查询结果列表),返回查询结果列表到流程总控模块。
流程总控模块调用条件比较模块,输入检索条件语句、查询结果列表、变量类型指示列表,输出该条记录是否符合检索条件的结果。
条件比较模块接收输入检索条件语句、查询结果列表、变量类型指示列表。创建正则表达式工厂,输入检索条件语句产生正则表达式实例。循环转换查询结果列表中变量的值为指示类型,变量类型指示为整型I,则把该值转换为整型数据,如果为长整型L,则把该值转换为长整形数据,如果为双精度D,则把该值转换为双精度数据,如果为字符串S,则把该值转换为字符数据,压入到正则表达式实例中。执行正则表达式,获取执行结果,如果符合条件,则返回为真,否则返回为假。
流程总控模块根据返回的结果值执行处理,如果为真,则生成一条新的查询数据结果(包含主键、查询的列名、查询的列值);否则如果为假,则跳过当前查询的记录行,执行下一行数据的数据解析模块、条件比较模块等。执行完成本分区的所有记录,返回查询数据结果数据集。
流程总控模块判断查询结果数据集是否为空,非空则调用文件输出模块,输入结果集,输出为集群文件。
文件输出模块接收结果集文件,把数据内容转换为json格式数据,写入集群文件中。
为了便于理解本发明如何实施,下面再举一例子进行说明。
例如:用户要检索“北京和上海地区,年龄在25到45周岁,大学以上学历,开通手机银行渠道,月消费金额超过1万以上,每月去星巴克咖啡消费5次以上,日均存款金额在100万到500万的客户姓名和手机号”。
该项业务数据表为用户标签信息表,存放所有用户的全部标签;每一行存储一个用户的全部标签;每一列存放一个标签,列名为标签编号,列值为标签对用的数据值。用户标签信息表采用Hbase列式数据库存储,行列动态扩展,如果该用户存在此标签,则此列存在,否则此列不存在。由于每个用户的拥有的标签总数不同,则每行数据的宽度也不同(列个数有多有少,非固定)。
用户标签信息表(USER_LABEL)根据业务使用规则,分为三个蔟:用户个人信息(Person)、用户资产负债信息(Asset)、用户消费行为信息(Consume)。
用户个人基本信息(Person)蔟包括:姓名(L1001)、年龄(L1002)、学历(L1003)、住址城市(L1004)、手机号(L1005)、手机银行渠道(L1006)等标签。
用户资产负债信息(Asset)蔟包括:存款日均余额(L2001)、存款当前余额(L2002)等。
用户消费行为信息(Consume)蔟包括:上月消费金额(L3001)、平均月消费金额(L3002)、星巴克咖啡月平均消费次数(L3003)等。
Hbase的用户标签信息表结构如图4所示:
操作用户在控制台选择用户标签信息表,下拉标签项输入检索条件,标签条件等界面操作省略,系统中最终条件取值对应如下:
北京和上海地区:(L1004==‘北京’||L1004==‘上海’)
年龄在25到45周岁:(L1002>=25&&L1002<=45)
大学以上学历:L1003>=3注0-小学1-初中2-高中3-大学4-研究生5-博士
开通手机银行渠道:L1006==1注0-未开通1-开通
月消费金额超过1万以上:L3002>=10000.00
每月去星巴克咖啡消费5次以上:L3003>=5
日均存款金额在100万到500万的客户:(L2001>=1000000&&L2001<=5000000)
流程总控模块根据用户选择的表名,自动对USER_LABEL表创建完成快照,快照表名为USER_LABEL_SNAPSHOT。根据用户输入的条件,拼写蔟名和列名,生成检索条件语句“(Person.L1004=='北京'||Person.L1004=='上海')&&(Person.L1002>=25&&Person.L1002<=45)&&Person.L1003>=3&&Person.L1006==1&&Consume.L3002>=10000.00&&Consume.L3003>=5&&(Asset.L2001>=1000000&&Asset.L2001<=5000000)”,根据列名称,自动关联出检索条件中的列数据类型参数,'0'标识整型,'0L'标识长整型,'0.0'标识浮点型,'.'标识字符串。拼接出变量默认值语句(检索列的类型指示):"Person.L1004=.;Person.L1002=0;Person.L1003=0;Person.L1006=0;Consume.L3002=0.0;Consume.L3003=0;Asset.L2001=0L",记录用户要求的输出文件名user_group_001.data。
条件解析模块接收输入的检索条件语句,检查列是否空值,创建正则表达式工厂,输入检索条件语句产生正则表达式实例,调用实例解析出检索条件语句中字符串中的变量名列表:
"Person.L1004,Person.L1002,Person.L1003,Person.L1006,Consume.L3002,Consume.L3003,Asset.L2001",返回变量名列表到流程总控模块。
流程总控模块调用列表排序函数,使用树集合对列表自动排序,输出按字母顺序排序的变量名列表("Asset.L2001,Consume.L3002,Consume.L3003,Person.L1002,Person.L1003,Person.L1004,Person.L1006"),然后把列表中变量列名按顺序逐个压入hbase查询接口对象中。
类型解析模块接收变量默认值语句,检查格式是否正确,根据变量名称、等于号、默认值、分隔符的格式语句,解析出变量与值的KV对列表,循环处理变量KV对列表,计算出变量名值列表:"Person.L1004=.,Person.L1002=0,Person.L1003=0,Person.L1006=0,Consume.L3002=0.0,Consume.L3003=0,Asset.L2001=0L",返回变量名值列表到流程总控模块。
流程总控模块调用条件检查模块,输入变量名列表("Person.L1004,Person.L1002,Person.L1003,Person.L1006,Consume.L3002,Consume.L3003,Asset.L2001")和变量名值列表("Person.L1004=.,Person.L1002=0,Person.L1003=0,Person.L1006=0,Consume.L3002=0.0,Consume.L3003=0,Asset.L2001=0L"),输出变量类型指示列表。
条件检查模块接收输入的变量名列表和变量名值列表,循环检查变量名列表中的变量名在变量名值列表中是否存在,如果变量名没有默认值,则返回错误,否则生成新的变量名值列表。计算新变量名值列表对应的数据类型,生成变量类型指示列表(("Person.L1004=S,Person.L1002=I,Person.L1003=I,Person.L1006=I,Consume.L3002=D,Consume.L3003=I,Asset.L2001=L")),返回变量类型指示列表。
流程总控模块启动分布式分区任务作业,读取数据库表的快照文件USER_LABEL_SNAPSHOT,调用数据解析模块,输入条件变量名列表("Asset.L2001,Consume.L3002,Consume.L3003,Person.L1001,Person.L1002,Person.L1003,Person.L1004,Person.L1005,Person.L1006")和数据库的行格式数据。
数据解析模块接收条件变量名列表和行格式数据,根据变量名和数据格式,检索出行主键key、蔟名、条件变量名对应的列名("Asset.L2001,Consume.L3002,Consume.L3003,Person.L1001,Person.L1002,Person.L1003,Person.L1004,Person.L1005,Person.L1006")和列值,解析出列值对象中包含的对象结构,该对象就是列值的结构,也就是标签的结构,对象结构如下所示:
把列名和对象结构中的数据值lbv组成一个新的变量值列表(单行查询结果列表)“key=’9200100’,Asset.L2001=′1358200′,Consume.L3002=′27600.00′,Consume.L3003=′14′,Person.L1001=′张A′,Person.L1002=′32′,Person.L1003=′4′,Person.L1004=′上海′,Person.L1005=′139XXXXXXXX′,Person.L1006=′1′”,主键key的值为客户号,每个值都为原生的字符串类型,返回查询结果列表到流程总控模块。
条件比较模块接收输入检索条件语句、查询结果列表、变量类型指示列表。创建正则表达式工厂,输入检索条件语句产生正则表达式实例。转换字符串类型为指示类型:
“Asset.L2001=1358200,Consume.L3002=27600.00,Consume.L3003=14,Person.L1002=32,Person.L1003=4,Person.L1004=′上海′,Person.L1006=1”,把查询结果值带人正则表达式(′上海′==′北京′||′上海′==′上海′)&&(32>=25&&32<=45)&&4>=3&&1==1&&27600.00>=10000.00&&14>=5&&(1358200>=1000000.00&&1358200<=5000000.00),执行正则表达式,获取执行结果,当前例子为真,则返真。
流程总控模块根据返回的结果值执行处理,则生成一条新的查询数据结果(包含主键、查询的列名、查询的列值:
key=’9200100’,Asset.L2001=′1358200′,Consume.L3002=′27600.00′,Consume.L3003=′14′,Person.L1001=′张A′,Person.L1002=′32′,Person.L1003=′4′,Person.L1004=′上海′,Person.L1005=′139XXXXXXXX′,Person.L1006=′1′),本例包括客户号、姓名、手机号、标签值,执行下一行数据的数据解析模块、条件比较模块等。执行完成本分区的所有记录,返回查询数据结果数据集。
流程总控模块调用文件输出模块,输入结果集,输出为集群文件。
文件输出模块接收结果集文件,格式如图5所示,把数据内容转换为json格式数据,格式如图6所示。写入集群文件中,文件名为user_group_001.data.json。
本发明实施例中还提供了一种检索装置,如下面的实施例所述。由于该装置解决问题的原理与检索方法相似,因此该装置的实施可以参见检索方法的实施,重复之处不再赘述。
图7为本发明实施例中检索装置的结构示意图,如图7所示,该装置包括:
流程总控模块01,用于根据用户选择的Hbase数据库表名,对数据库表创建快照;接收用户输入的检索条件参数;根据所述检索条件参数,生成检索条件语句,拼接出变量默认值语句;启动分布式分区任务作业,读取Hbase数据库表的快照文件;
条件解析模块02,用于根据所述检索条件语句,以及建立的正则表达式实例,解析出变量名列表;
类型解析模块03,用于根据所述变量默认值语句,得到变量名值列表;
条件检查模块04,用于根据所述变量名列表和变量名值列表,得到变量类型指示列表;
数据解析模块05,用于根据读取的Hbase数据库表的快照文件,得到新的变量名值列表作为查询结果列表;
条件比较模块06,用于根据检索条件语句,查询结果列表,变量类型指示列表,以及建立的正则表达式实例,获取实例的真伪值结果;
文件输出模块07,用于根据实例真伪值结果,输出集群文件检索结果。
在一个实施例中,所述流程总控模块还可以用于:对所述变量名列表中的元素进行排序处理,得到排序的变量名列表;
所述数据解析模块具体可以用于:根据读取的Hbase数据库表的快照文件,及排序的变量名列表,得到新的变量值列表作为查询结果列表。
在一个实施例中,所述数据解析模块具体可以用于:
从排序的变量名列表中获取变量名
根据变量名和数据库的行格式数据,从Hbase数据库表的快照文件中检索出行主键key、蔟名、变量名对应的列名和列值;
解析出列值对象中包含的对象结构;所述对象结构为列值的结构;
将列名和对象结构中的数据值组成一个新的变量值列表作为查询结果列表。
在一个实施例中,所述文件输出模块具体可以用于:在判断实例为真时,将集群文件数据内容转换为json格式数据输出。
本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述检索方法。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述检索方法的计算机程序。
本发明实施例中,检索方案,与现有技术中无法高效检索非索引复杂条件下的大规模数据的技术方案相比,实现了高效检索复杂条件下的大规模数据。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (12)

1.一种检索方法,其特征在于,包括:
根据用户选择的Hbase数据库表名,对数据库表创建快照;接收用户输入的检索条件参数;根据所述检索条件参数,生成检索条件语句,拼接出变量默认值语句;
根据所述检索条件语句,以及建立的正则表达式实例,解析出变量名列表;
根据所述变量默认值语句,得到变量名值列表;
根据所述变量名列表和变量名值列表,得到变量类型指示列表;其中,变量默认值语句以及变量名值列表包含检索列的类型指示信息;
启动分布式分区任务作业,读取Hbase数据库表的快照文件;
根据读取的Hbase数据库表的快照文件,得到新的变量值列表作为查询结果列表;
根据检索条件语句,查询结果列表,变量类型指示列表,以及建立的正则表达式实例,获取实例的真伪值结果;
根据实例真伪值结果,输出集群文件检索结果。
2.如权利要求1所述的检索方法,其特征在于,还包括:对所述变量名列表中的元素进行排序处理,得到排序的变量名列表;
根据读取的Hbase数据库表的快照文件,及排序的变量名列表,得到新的变量值列表作为查询结果列表。
3.如权利要求2所述的检索方法,其特征在于,根据读取的Hbase数据库表的快照文件,及排序的变量名列表,得到新的变量值列表作为查询结果列表,包括:
从排序的变量名列表中获取变量名;
根据变量名和数据库的行格式数据,从Hbase数据库表的快照文件中检索出行主键key、蔟名、变量名对应的列名和列值;
解析出列值对象中包含的对象结构;所述对象结构为列值的结构;
将列名和对象结构中的数据值组成一个新的变量值列表作为查询结果列表。
4.如权利要求1所述的检索方法,其特征在于,根据实例真伪值结果,输出集群文件检索结果,包括:在判断实例为真时,将集群文件数据内容转换为json格式数据输出。
5.如权利要求1所述的检索方法,其特征在于,所述Hbase数据库表包括用户标签信息表,所述用户标签信息表用于存放所有用户的全部标签;所述用户标签信息表每一行存储一个用户的全部标签;每一列存放一个标签,列名为标签编号,列值为标签对应用户的数据值。
6.如权利要求5所述的检索方法,其特征在于,所述用户标签信息表包括:用户个人基本信息蔟、用户资产负债信息蔟和用户消费行为信息蔟。
7.一种检索装置,其特征在于,包括:
流程总控模块,用于根据用户选择的Hbase数据库表名,对数据库表创建快照;接收用户输入的检索条件参数;根据所述检索条件参数,生成检索条件语句,拼接出变量默认值语句;启动分布式分区任务作业,读取Hbase数据库表的快照文件;
条件解析模块,用于根据所述检索条件语句,以及建立的正则表达式实例,解析出变量名列表;
类型解析模块,用于根据所述变量默认值语句,得到变量名值列表;
条件检查模块,用于根据所述变量名列表和变量名值列表,得到变量类型指示列表;其中,变量默认值语句以及变量名值列表包含检索列的类型指示信息;
数据解析模块,用于根据读取的Hbase数据库表的快照文件,得到新的变量值列表作为查询结果列表;
条件比较模块,用于根据检索条件语句,查询结果列表,变量类型指示列表,以及建立的正则表达式实例,获取实例的真伪值结果;
文件输出模块,用于根据实例真伪值结果,输出集群文件检索结果。
8.如权利要求7所述的检索装置,其特征在于,所述流程总控模块还用于:对所述变量名列表中的元素进行排序处理,得到排序的变量名列表;
所述数据解析模块具体用于:根据读取的Hbase数据库表的快照文件,及排序的变量名列表,得到新的变量值列表作为查询结果列表。
9.如权利要求8所述的检索装置,其特征在于,所述数据解析模块具体用于:
从排序的变量名列表中获取变量名;
根据变量名和数据库的行格式数据,从Hbase数据库表的快照文件中检索出行主键key、蔟名、变量名对应的列名和列值;
解析出列值对象中包含的对象结构;所述对象结构为列值的结构;
将列名和对象结构中的数据值组成一个新的变量值列表作为查询结果列表。
10.如权利要求7所述的检索装置,其特征在于,所述文件输出模块具体用于:在判断实例为真时,将集群文件数据内容转换为json格式数据输出。
11.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6任一所述方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至6任一所述方法。
CN202011132530.3A 2020-10-21 2020-10-21 检索方法及装置 Active CN112214494B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011132530.3A CN112214494B (zh) 2020-10-21 2020-10-21 检索方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011132530.3A CN112214494B (zh) 2020-10-21 2020-10-21 检索方法及装置

Publications (2)

Publication Number Publication Date
CN112214494A CN112214494A (zh) 2021-01-12
CN112214494B true CN112214494B (zh) 2023-10-24

Family

ID=74056305

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011132530.3A Active CN112214494B (zh) 2020-10-21 2020-10-21 检索方法及装置

Country Status (1)

Country Link
CN (1) CN112214494B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117891847A (zh) * 2024-03-18 2024-04-16 辽宁牧龙科技有限公司 一种基于数据中台的数据查询装置及方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101477524A (zh) * 2008-12-11 2009-07-08 金蝶软件(中国)有限公司 基于物化视图的系统性能优化方法及系统
CN108446289A (zh) * 2017-09-26 2018-08-24 北京中安智达科技有限公司 一种支持异构数据库的数据检索方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101477524A (zh) * 2008-12-11 2009-07-08 金蝶软件(中国)有限公司 基于物化视图的系统性能优化方法及系统
CN108446289A (zh) * 2017-09-26 2018-08-24 北京中安智达科技有限公司 一种支持异构数据库的数据检索方法

Also Published As

Publication number Publication date
CN112214494A (zh) 2021-01-12

Similar Documents

Publication Publication Date Title
US8533203B2 (en) Identifying synonyms of entities using a document collection
CN107391677B (zh) 携带实体关系属性的中文通用知识图谱的生成方法及装置
US7930322B2 (en) Text based schema discovery and information extraction
CN111506621B (zh) 一种数据统计方法及装置
CN111125086B (zh) 获取数据资源的方法、装置、存储介质及处理器
CN103440288A (zh) 一种大数据存储方法及装置
US9009029B1 (en) Semantic hashing in entity resolution
CN117150050B (zh) 一种基于大语言模型的知识图谱构建方法及系统
CN112579155A (zh) 代码相似性检测方法、装置以及存储介质
CN109885658B (zh) 指标数据提取方法、装置和计算机设备
Färber et al. The Microsoft Academic Knowledge Graph enhanced: Author name disambiguation, publication classification, and embeddings
CN112214494B (zh) 检索方法及装置
US20230020618A1 (en) Spreadsheet Flat Data Extractor
CN111898351B (zh) 基于Aviator的Excel数据自动导入方法、装置、终端设备及存储介质
CN116127047B (zh) 企业信息库的建立方法与装置
CN109740130B (zh) 用于生成文件的方法和装置
CN106682107B (zh) 数据库表关联关系确定方法及装置
CN115114297A (zh) 数据轻量存储及查找方法、装置、电子设备及存储介质
CN110765100B (zh) 标签的生成方法、装置、计算机可读存储介质及服务器
CN113641705A (zh) 一种基于计算引擎的营销处置规则引擎方法
CN107577690B (zh) 海量信息数据的推荐方法及推荐装置
CN116028620B (zh) 一种基于多任务特征协同的生成专利摘要的方法及系统
CN117290355B (zh) 一种元数据地图构建系统
JPWO2018100700A1 (ja) データ変換装置とデータ変換方法
CN115827700A (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
GR01 Patent grant
GR01 Patent grant