CN110990400B - 数据库查询方法、装置、计算机设备和存储介质 - Google Patents

数据库查询方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN110990400B
CN110990400B CN201911138591.8A CN201911138591A CN110990400B CN 110990400 B CN110990400 B CN 110990400B CN 201911138591 A CN201911138591 A CN 201911138591A CN 110990400 B CN110990400 B CN 110990400B
Authority
CN
China
Prior art keywords
service
query
database
data
sql
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
CN201911138591.8A
Other languages
English (en)
Other versions
CN110990400A (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.)
Zhejiang Dasou Vehicle Software Technology Co Ltd
Original Assignee
Zhejiang Dasou Vehicle Software Technology Co 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 Zhejiang Dasou Vehicle Software Technology Co Ltd filed Critical Zhejiang Dasou Vehicle Software Technology Co Ltd
Priority to CN201911138591.8A priority Critical patent/CN110990400B/zh
Publication of CN110990400A publication Critical patent/CN110990400A/zh
Application granted granted Critical
Publication of CN110990400B publication Critical patent/CN110990400B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/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/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/245Query processing
    • G06F16/2455Query execution
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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

Abstract

本申请涉及一种数据库查询方法、装置、计算机设备和存储介质。方法包括:接收终端发送的数据库查询请求,所述数据库查询请求中携带有业务标识;获取与所述业务标识对应的业务查询类型及条件字段;确定所述业务查询类型,并基于所述条件字段和与所述业务查询类型对应的业务转化逻辑生成用于数据分片并查询的SQL语段,其中,所述业务转化逻辑携带与业务标识的查询条件对应的语句参数;根据所述SQL语段中的SQL语句对数据库进行分库,对分库后的数据库进行数据查询,得到查询数据,并将查询数据发送所述终端。采用本方法能够根据业务标识实时生成SQL语句,从而提高数据库数据处理效率。

Description

数据库查询方法、装置、计算机设备和存储介质
技术领域
本申请涉及数据库领域,特别是涉及一种数据库查询方法、装置、计算机设备和存储介质。
背景技术
在大型应用中,数据库已经成为了不可缺少的部分,数据库的所有操作都需要通过数据库连接来完成。服务器需要通过与业务标识对应的结构化查询语言(SQL:Structured Query Language)语句对数据库进行检索操作。但SQL语句均为预先设定的简单逻辑,当数据库的业务量激增时,SQL语句无法应对数据库中数据表的个数及数据表的数据量的扩张,服务器基于SQL语句执行效率降低,服务器也容易发生崩溃等情况。
发明内容
基于此,有必要针对上述技术问题,提供一种能够根据业务标识实时生成SQL语句,从而提高数据库数据处理效率的数据库查询方法、装置、计算机设备和存储介质。
一种数据库查询方法,所述方法包括:
接收终端发送的数据库查询请求,所述数据库查询请求中携带有业务标识;
获取与所述业务标识对应的业务查询类型及条件字段;
确定所述业务查询类型,并基于所述条件字段和与所述业务查询类型对应的业务转化逻辑生成用于数据分片并查询的SQL语段,其中,所述业务转化逻辑携带与业务标识的查询条件对应的语句参数;
根据所述SQL语段中的SQL语句对数据库进行分库,对分库后的数据库进行数据查询,得到查询数据,并将查询数据发送至所述终端。
在其中一个实施例中,所述确定所述业务查询类型,并基于所述条件字段和与所述业务查询类型对应的业务转化逻辑生成用于数据分片并查询的SQL语段,包括:
当判定所述业务查询类型为自定义查询时,接收所述终端发送的与多级查询条件对应的语句参数;
根据所述语句参数在数据库中对应的值生成正则表达式;
基于所述条件字段中的条件值和所述正则表达式生成SQL语句,并根据逻辑算子将所述SQL语句生成SQL语段。
在其中一个实施例中,所述根据所述语句参数在数据库中对应的值生成正则表达式之后,包括:
将所述业务标识和所述正则表达式进行关联存储,并根据关联存储的正则表达式生成业务转化逻辑选择项。
在其中一个实施例中,所述确定所述业务查询类型,并基于所述条件字段和与所述业务查询类型对应的业务转化逻辑生成用于数据分片并查询的SQL语段,包括:
当判定所述业务查询类型为默认查询时,获取与所述业务查询类型对应的业务转化逻辑选择项并发送所述终端;
接收所述终端反馈的业务转化逻辑选中项;
根据所述业务转化逻辑选中项对应的业务转化逻辑和所述条件字段生成用于数据分片并查询的SQL语句,并根据逻辑算子将所述SQL语句生成SQL语段。
在其中一个实施例中,获取与所述业务标识对应的业务查询类型及条件字段,包括:
获取与所述业务标识关联的业务查询类型选择项以及条件字段选择项;
根据反馈的业务查询类型选中项以及条件字段选中项生成业务查询类型及条件字段。
在其中一个实施例中,所述根据所述SQL语段中的SQL语句对数据库进行分库,并对分库后的数据库进行数据查询,得到查询数据,包括:
解析所述SQL语段中的条件字段、语句参数和逻辑算子;
根据所述逻辑算子和所述语句参数对数据库进行分库;
在分库后的数据库中查询与所述条件字段对应的业务数据,并将查询到的业务数据进行汇总,得到查询数据。
一种数据库查询装置,所述装置包括:
请求接收模块,用于接收终端发送的数据库查询请求,所述数据库查询请求中携带有业务标识;
业务标识获取模块,用于获取与所述业务标识对应的业务查询类型及条件字段;
SQL语句生成模块,用于确定所述业务查询类型,并基于所述条件字段和与所述业务查询类型对应的业务转化逻辑生成用于数据分片并查询的SQL语段,其中,所述业务转化逻辑携带与业务标识的查询条件对应的语句参数;
数据查询模块,用于根据所述SQL语段中的SQL语句对数据库进行分库,对分库后的数据库进行数据查询,得到查询数据,并将查询数据发送至所述终端。
在其中一个实施例中,所述SQL语句生成模块,包括:
字段接收单元,用于当判定所述业务查询类型为自定义查询时,接收所述终端发送的与多级查询条件对应的语句参数;
表达式生成单元,用于根据所述语句参数在数据库中对应的值生成正则表达式;
SQL语段生成单元,用于基于所述条件字段中的条件值和所述正则表达式生成SQL语句,并根据逻辑算子将所述SQL语句生成SQL语段。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。
上述数据库查询方法、装置、计算机设备和存储介质,通过确定与业务标识对应的业务查询类型,生成与业务标识对应的且用于数据分片并查询的SQL语段,并根据SQL语段对数据库先进行分库,而后从分库后的数据库中进行数据查询,提高了服务器从数据库中查询的效率,并降低了服务器崩溃的概率,而且,SQL语段是针对业务标识生成的,可根据实际业务情况进行调整,从而实现了对数据库的查询负载均衡。
附图说明
图1为一个实施例中数据库查询方法的应用场景图;
图2为一个实施例中数据库查询方法的流程示意图;
图3为一个实施例中SQL语段生成步骤的流程示意图;
图4为另一个实施例中SQL语段生成步骤的流程示意图;
图5为另一个实施例中数据库查询方法的流程示意图;
图6为一个实施例中数据库查询装置的结构框图;
图7为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的数据库查询方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。服务器104接收终端102发送的数据库查询请求,数据库查询请求中携带有业务标识;服务器104获取与业务标识对应的业务查询类型及条件字段;服务器104确定业务查询类型,并基于条件字段和与业务查询类型对应的业务转化逻辑生成用于数据分片并查询的SQL语段;服务器104根据SQL语段中的SQL语句对数据库进行分库,对分库后的数据库进行数据查询,得到查询数据,并将查询数据发送终端102。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式智能设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种数据库查询方法,以该方法应用于图1中的服务器104为例进行说明,包括以下步骤:
步骤202,接收终端发送的数据库查询请求,数据库查询请求中携带有业务标识。
数据库查询请求用于根据业务从数据库中查询获取业务数据的请求指令。用户可以通过终端的客户端或者浏览器的形式,在目标应用的操作界面向该目标应用发起访问请求。在操作界面中,终端可以显示与业务关联的查询接入端口,当该查询接入端口被用户选中时,终端生成数据查询请求,该数据查询请求携带有与业务对应的业务标识。服务器接收终端发送的数据库查询请求。服务器根据数据库查询请求可以生成调用数据库中数据的调用请求,调用请求的表现形式可以是SQL语句或SQL语段。服务器可以根据数据库查询请求获取生成SQL语句或SQL语段的程序架构,并在该程序架构中执行后续步骤204和步骤206。服务器可以事先将该程序架构根据数据库的语言环境通过对应的语言指令包装成架构插件,根据数据库查询请求将该架构插件引入数据库所在的项目中进行查询。在一个实施例中,程序架构为druid架构,采用druid架构的解析引擎,不仅效率上有大幅度提升,而且项目体积也可以大幅度缩小。例如,当数据库的语言环境为Java环境时,服务器可以将该程序架构在Java环境通过java命令打包成jar架构插件,而后根据数据库查询请求像spring一样将jar架构插件引入到数据库所在的Java项目中使用,该架构插件的输入数据为数据库查询请求,输出数据为SQL语句或SQL语段。
步骤204,获取与业务标识对应的业务查询类型及条件字段。
条件字段是实现业务查询的参数条件,可以与某个或某几个业务变量对应,业务变量是数据库中各数据对应的参数变量。业务查询类型可以分为默认查询和自定义查询。默认查询是指预先设置的与业务标识存在关联的业务转化逻辑,可以用于进行多种特定形式的条件查询。默认查询可以设置为与一个或多个条件字段对应。例如,默认查询可以是查询某些表格中特定业务参数、查询存在所有表格中的业务参数、查询与某一时间段对应的表格数据、查询与某些业务参数存在映射关联的业务参数等。自定义查询是根据业务标识和用户输入的转化条件生成的业务转化逻辑,可以用于进行个性化的条件查询。自定义查询可以根据用户的选择与被选中的条件字段对应。服务器获取与业务标识对应的业务查询类型及条件字段。
步骤206,确定业务查询类型,并基于条件字段和与业务查询类型对应的业务转化逻辑生成用于数据分片并查询的SQL语段,其中,业务转化逻辑携带与业务标识的查询条件对应的语句参数。
服务器确定业务查询类型。服务器可以先判断业务查询类型,并根据判断结果获取对应的业务转化逻辑。业务转化逻辑携带与业务标识的查询条件对应的语句参数。服务器可以预先存储业务查询类型和业务转化逻辑之间的对应关系。服务器基于条件字段和与业务查询类型对应的业务转化逻辑生成用于数据分片并查询的SQL语段。
当业务查询类型为默认查询中的查询某些表格中特定业务参数时,业务转化逻辑可以是获取特定数据表格,并对特定数据表格进行分库,从分库后的数据库中获取与条件字段和语句参数对应的业务数据,并将获取到的业务数据进行汇总,得到查询数据;当业务查询类型为默认查询中的查询某一特定取值范围时,业务转化逻辑可以是获取全部取值范围,并根据全部取值范围和特定取值范围对特定数据表格进行分库,从分库后的数据库中获取与条件字段和语句参数对应的业务数据,并将获取到的业务数据进行汇总,得到查询数据;当业务查询类型为默认查询中的查询与某些业务参数存在映射关联的业务参数时,业务转化逻辑可以是获取全部取值,并对特定数据表格进行分库,从分库后的数据库中获取与条件字段和语句参数对应的业务数据,并将获取到的业务数据进行汇总,得到查询数据。当业务查询类型为自定义查询时,服务器获取输入的业务转化逻辑,并采用正则表达式的文本逻辑兼容业务转化逻辑,从而生成用于数据分片的正则表达式。
步骤208,根据SQL语段中的SQL语句对数据库进行分库,对分库后的数据库进行数据查询,得到查询数据,并将查询数据发送至终端。
服务器根据SQL语段中的SQL语句对数据库进行分库,对分库后的数据库进行数据查询,得到查询数据,并将查询数据发送终端。服务器解析SQL语段,查找SQL语段各SQL语句出现的条件字段,并确定各条件字段中各业务参数的对应关系,根据对应关系对数据库进行分库,而后服务器根据条件字段从分库后的数据库中获取与条件字段对应的业务数据,并将获取到的业务数据进行汇总,得到查询数据。服务器从SQL语段中确定数据输入端口和数据输出端口,输出端口输出的数据即为查询数据。服务器将查询数据发送终端。
上述数据库查询方法中,通过确定与业务标识对应的业务查询类型,生成与业务标识对应的且用于数据分片并查询的SQL语段,并根据SQL语段对数据库先进行分库,而后从分库后的数据库中进行数据查询,提高了服务器从数据库中查询的效率,并降低了服务器崩溃的概率,而且,SQL语段是针对业务标识生成的,是可根据实际业务情况进行调整,从而实现了对数据库的查询负载均衡。
在一个实施例中,如图3所示,确定业务查询类型,并基于条件字段和与业务查询类型对应的业务转化逻辑生成用于数据分片并查询的SQL语段,包括以下步骤:
步骤302,当判定业务查询类型为自定义查询时,接收终端发送的与多级查询条件对应的语句参数。
当判定业务查询类型为自定义查询时,服务器接收终端发送的与多级查询条件对应的语句参数。当业务查询类型为自定义查询时,终端可以显示语句参数输入界面,并获取输入的语句参数。语句参数可以是数据库中数据表的各业务参数。语句参数设置界面可以包括参数输入框,该参数输入框供用户录入SQL查询语句的语句参数。参数输入框可以包括查询结果字段输入框、数据源名称输入框及查询条件输入框,其中,查询结果字段输入框可供用户输入查询结果字段,数据源名称输入框可供用户输入数据源名称,查询条件输入框可供用户输入查询条件,查询结果字段、数据源名称及查询条件均为一条sql查询语句的语句参数。每一条sql查询语句的查询结果字段可以有多个,例如,查询结果字段可以包括数据源类别字段(数据源类别字段可以是投保人、受益人等)、属性参数字段(属性参数字段可以是年收入、生日、证件有效期、客户号、工作单位、联系地址、教育程度等)。语句参数设置界面中可以只包括一条sql查询语句对应的查询结果字段输入框、数据源名称输入框及查询条件输入框,也可以包括多条sql查询语句对应的查询结果字段输入框、数据源名称输入框及查询条件输入框。
步骤304,根据语句参数在数据库中对应的值生成用于数据分片的正则表达式。
正则表达式可以作为对字符串操作的一种逻辑公式,可以用事先定义好的一些特定字符及这些特定字符的组合,组成一个规则字符串,该规则字符串可以用来表达对字符串的一种过滤逻辑。服务器可以通过正则表达式可以从字符串中获取想要的特定部分,因此可以采用正则表达式对SQL语句进行过滤以获取查询条件,进而对该查询条件进行替换,生成一个能够采用JasperReport对查询参数进行数据库查询的引擎参数。正则表达式可以通过数据库中的groovy脚本执行,例如,服务器可以在Java环境中集成groovy基础类代码;加载groovy脚本;实例化脚本对象;执行脚本中正则表达式定义的校验方法,并传递待校验信息,进行校验,返回是否通过校验的标识,当通过时生成正则表达式。调用服务器根据语句参数在数据库中对应的值生成用于数据分片的正则表达式。
步骤306,基于条件字段中的条件值和正则表达式生成SQL语句,并根据逻辑算子将SQL语句生成SQL语段。
服务器基于条件字段中的条件值和正则表达式生成SQL语句,并根据逻辑算子将SQL语句生成SQL语段。服务器根据SQL语句可以在数据库中同时查找符合正则表达式和条件字段的数据。
上述数据库查询方法中,根据业务需要自定义生成与业务标识对应的且用于数据分片并查询的SQL语段,根据实际业务情况对数据查询进行调整,从而实现了对数据库的查询负载均衡,进一步提高了服务器从数据库中查询的效率,并降低了服务器崩溃的概率。
在一个实施例中,根据语句参数在数据库中对应的值生成正则表达式之后,包括以下步骤:将业务标识和正则表达式进行关联存储,并根据关联存储的正则表达式生成业务转化逻辑选择项。
服务器将业务标识和正则表达式进行关联存储,并根据关联存储的正则表达式生成业务转化逻辑选择项。服务器可以将输入的语句参数通过正则表达式和业务标识进行对应存储,以便用户在下次使用时可以直接从本地获取,不需要重新在参数输入框中输入各语句参数,而且也可以丰富SQL语句数据库,提高SQL语句利用率。
在一个实施例中,如图4所示,确定业务查询类型,并基于条件字段和与业务查询类型对应的业务转化逻辑生成用于数据分片并查询的SQL语段,包括以下步骤:
步骤402,当判定业务查询类型为默认查询时,获取与业务查询类型对应的业务转化逻辑选择项并发送终端。
当判定业务查询类型为默认查询时,服务器获取与业务查询类型对应的业务转化逻辑选择项并发送终端。业务转化逻辑选择项是预先设置的与业务转化逻辑对应的选择项。服务器可以将条件字段的条件值输入业务转化逻辑的预设位置处生成用于数据分片并查询的SQL语句。
步骤404,接收终端反馈的业务转化逻辑选中项。
业务转化逻辑选中项是用户选中的业务转化逻辑选择项。服务器接收终端反馈的业务转化逻辑选中项,并获取与业务转化逻辑选中项对应的业务转化逻辑。
步骤406,根据业务转化逻辑选中项对应的业务转化逻辑和条件字段生成用于数据分片并查询的SQL语句,并根据逻辑算子将SQL语句生成SQL语段。
逻辑算子用于将SQL语句连接成复杂SQL语段的运算字符串,例如,逻辑算子可以是“IF”、“where”、“else”、“pass”。服务器根据业务转化逻辑和条件字段生成用于数据分片并查询的SQL语句,并根据逻辑算子将SQL语句生成SQL语段。
上述数据库查询方法中,SQL语段是预先设置的业务转化逻辑快速生成的,在提高了服务器从数据库中查询的效率的同时,保证了SQL语段的准确率。
在另一个实施例中,获取与业务标识对应的业务查询类型及条件字段,包括以下步骤:获取与业务标识关联的业务查询类型选择项以及条件字段选择项;根据反馈的业务查询类型选中项以及条件字段选中项生成业务查询类型及条件字段。
服务器可以获取与业务标识关联的业务查询类型选择项以及条件字段选择项。例如,服务器可以获取xml规则文件,并根据xml规则文件在显示界面显示业务查询类型的代码选择项equal和regexp,其中,equal为默认查询,与预设业务转化逻辑对应;regexp为自定义查询,可以通过与终端通信获取由正则表达式生成的转化逻辑。服务器根据反馈的业务查询类型选中项以及条件字段选中项生成业务查询类型及条件字段。
在一些实施例中,如图5所示,根据SQL语段中的SQL语句对数据库进行分库,对分库后的数据库进行数据查询,得到查询数据,包括以下步骤:
步骤502,解析SQL语段中的条件字段、语句参数和逻辑算子。
逻辑算子描述了SQL操作里的不同动作,通过逻辑算子组成的有向无环图可以描述数据流的方向。服务器解析出SQL语段中的条件字段、语句参数和逻辑算子。服务器可以根据逻辑算子确定SQL语段中的各语句参数之间的查询先后顺序,服务器可以根据条件字段确定各语句参数的查询取值范围。
步骤504,根据逻辑算子和语句参数对数据库进行分库。
服务器根据逻辑算子和语句参数对数据库进行分库。服务器可以将与逻辑算子和语句参数对应的数据表分别存储在缓存区,实现对数据库的分库。服务器也可以根据逻辑算子和语句参数对数据库进行垂直分库,将关联度低的不同表存储在不同的数据库;服务器也可以根据逻辑算子和语句参数对数据库同时进行垂直分库和水平分库,将关联度低的不同表存储在不同的数据库。
步骤506,在分库后的数据库中获取与条件字段对应的业务数据,并将获取到的业务数据进行汇总,得到查询数据。
服务器在分库后的数据库中获取与条件字段对应的业务数据,并将获取到的业务数据进行汇总,得到查询数据。
上述数据库查询方法中,通过对数据库进行分库,将数据库表以及大量数据负载均衡到不同数据库当中,不仅提高了数据库查询效率,也避免某些分区访问量过大。
应该理解的是,虽然图2-5的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-5中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图6所示,提供了一种数据库查询装置,包括:请求接收模块602、业务标识获取模块604、SQL语句生成模块606和数据查询模块608,其中:
请求接收模块602,用于接收终端发送的数据库查询请求,数据库查询请求中携带有业务标识。
业务标识获取模块604,用于获取与业务标识对应的业务查询类型及条件字段。
SQL语句生成模块606,用于确定业务查询类型,并基于条件字段和与业务查询类型对应的业务转化逻辑生成用于数据分片并查询的SQL语段,其中,业务转化逻辑携带与业务标识的查询条件对应的语句参数。
数据查询模块608,用于根据SQL语段中的SQL语句对数据库进行分库,对分库后的数据库进行数据查询,得到查询数据,并将查询数据发送终端。
在一个实施例中,SQL语句生成模块包括字段接收单元、表达式生成单元和SQL语段生成单元,其中:
字段接收单元,用于当判定业务查询类型为自定义查询时,接收终端发送的与多级查询条件对应的语句参数。
表达式生成单元,用于根据语句参数在数据库中对应的值生成正则表达式。
SQL语段生成单元,用于基于条件字段中的条件值和正则表达式生成SQL语句,并根据逻辑算子将SQL语句生成SQL语段。
在一个实施例中,SQL语句生成模块包括选择项存储单元,其中:
选择项存储单元,用于将业务标识和正则表达式进行关联存储,并根据关联存储的正则表达式生成业务转化逻辑选择项。
在一些实施例中,SQL语句生成模块包括选择项获取单元、选中项接收单元和SQL语段生成单元,其中:
选择项获取单元,用于当判定业务查询类型为默认查询时,获取与业务查询类型对应的业务转化逻辑选择项并发送终端。
选中项接收单元,用于接收终端反馈的业务转化逻辑选中项。
SQL语段生成单元,用于根据业务转化逻辑选中项对应的业务转化逻辑和条件字段生成用于数据分片并查询的SQL语句,并根据逻辑算子将SQL语句生成SQL语段。
在一个实施例中,业务标识获取模块包括业务选择项获取单元和业务标识获取单元,其中:
业务选择项获取单元,用于获取与业务标识关联的业务查询类型选择项以及条件字段选择项。
业务标识获取单元,用于根据反馈的业务查询类型选中项以及条件字段选中项生成业务查询类型及条件字段。
在一个实施例中,数据查询模块包括解析单元、分库单元和查询单元,其中:
解析单元,用于解析SQL语段中的条件字段、语句参数和逻辑算子。
分库单元,用于根据逻辑算子和语句参数对数据库进行分库。
查询单元,用于在分库后的数据库中获取与条件字段对应的业务数据,并将获取到的业务数据进行汇总,得到查询数据。
关于数据库查询装置的具体限定可以参见上文中对于数据库查询方法的限定,在此不再赘述。上述数据库查询装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据库查询数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据库查询方法。
本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,该存储器存储有计算机程序,该处理器执行计算机程序时实现以下步骤:接收终端发送的数据库查询请求,数据库查询请求中携带有业务标识;获取与业务标识对应的业务查询类型及条件字段;确定业务查询类型,并基于条件字段和与业务查询类型对应的业务转化逻辑生成用于数据分片并查询的SQL语段,其中,业务转化逻辑携带与业务标识的查询条件对应的语句参数;根据SQL语段中的SQL语句对数据库进行分库,对分库后的数据库进行数据查询,得到查询数据,并将查询数据发送终端。
在一个实施例中,处理器执行计算机程序时实现的确定业务查询类型,并基于条件字段和与业务查询类型对应的业务转化逻辑生成用于数据分片并查询的SQL语段,包括:当判定业务查询类型为自定义查询时,接收终端发送的与多级查询条件对应的语句参数;根据语句参数在数据库中对应的值生成用于数据分片的正则表达式;基于条件字段中的条件值和正则表达式生成SQL语句,并根据逻辑算子将SQL语句生成SQL语段。
在一个实施例中,处理器执行计算机程序时实现的根据语句参数在数据库中对应的值生成正则表达式之后,包括:将业务标识和正则表达式进行关联存储,并根据关联存储的正则表达式生成业务转化逻辑选择项。
在一个实施例中,处理器执行计算机程序时实现的确定业务查询类型,并基于条件字段和与业务查询类型对应的业务转化逻辑生成用于数据分片并查询的SQL语段,包括:当判定业务查询类型为默认查询时,获取与业务查询类型对应的业务转化逻辑选择项并发送终端;接收终端反馈的业务转化逻辑选中项;根据业务转化逻辑选中项对应的业务转化逻辑和条件字段生成用于数据分片并查询的SQL语句,并根据逻辑算子将SQL语句生成SQL语段。
在一个实施例中,处理器执行计算机程序时实现的获取与业务标识对应的业务查询类型及条件字段,包括:获取与业务标识关联的业务查询类型选择项以及条件字段选择项;根据反馈的业务查询类型选中项以及条件字段选中项生成业务查询类型及条件字段。
在一个实施例中,处理器执行计算机程序时实现的根据SQL语段中的SQL语句对数据库进行分库,对分库后的数据库进行数据查询,得到查询数据,包括:解析SQL语段中的条件字段、语句参数和逻辑算子;根据逻辑算子和语句参数对数据库进行分库;在分库后的数据库中获取与条件字段对应的业务数据,并将获取到的业务数据进行汇总,得到查询数据。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:接收终端发送的数据库查询请求,数据库查询请求中携带有业务标识;获取与业务标识对应的业务查询类型及条件字段;确定业务查询类型,并基于条件字段和与业务查询类型对应的业务转化逻辑生成用于数据分片并查询的SQL语段,其中,业务转化逻辑携带与业务标识的查询条件对应的语句参数;根据SQL语段中的SQL语句对数据库进行分库,对分库后的数据库进行数据查询,得到查询数据,并将查询数据发送终端。
在一个实施例中,计算机程序被处理器执行时实现的确定业务查询类型,并基于条件字段和与业务查询类型对应的业务转化逻辑生成用于数据分片并查询的SQL语段,包括:当判定业务查询类型为自定义查询时,接收终端发送的与多级查询条件对应的语句参数;根据语句参数在数据库中对应的值生成用于数据分片的正则表达式;基于条件字段中的条件值和正则表达式生成SQL语句,并根据逻辑算子将SQL语句生成SQL语段。
在一个实施例中,计算机程序被处理器执行时实现的根据语句参数在数据库中对应的值生成正则表达式之后,包括:将业务标识和正则表达式进行关联存储,并根据关联存储的正则表达式生成业务转化逻辑选择项。
在一个实施例中,计算机程序被处理器执行时实现的确定业务查询类型,并基于条件字段和与业务查询类型对应的业务转化逻辑生成用于数据分片并查询的SQL语段,包括:当判定业务查询类型为默认查询时,获取与业务查询类型对应的业务转化逻辑选择项并发送终端;接收终端反馈的业务转化逻辑选中项;根据业务转化逻辑选中项对应的业务转化逻辑和条件字段生成用于数据分片并查询的SQL语句,并根据逻辑算子将SQL语句生成SQL语段。
在一个实施例中,计算机程序被处理器执行时实现的获取与业务标识对应的业务查询类型及条件字段,包括:获取与业务标识关联的业务查询类型选择项以及条件字段选择项;根据反馈的业务查询类型选中项以及条件字段选中项生成业务查询类型及条件字段。
在一个实施例中,计算机程序被处理器执行时实现的根据SQL语段中的SQL语句对数据库进行分库,对分库后的数据库进行数据查询,得到查询数据,包括:解析SQL语段中的条件字段、语句参数和逻辑算子;根据逻辑算子和语句参数对数据库进行分库;在分库后的数据库中获取与条件字段对应的业务数据,并将获取到的业务数据进行汇总,得到查询数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种数据库查询方法,所述方法包括:
接收终端发送的数据库查询请求,所述数据库查询请求中携带有业务标识;
获取与所述业务标识对应的业务查询类型及条件字段;
当判定所述业务查询类型为自定义查询时,接收所述终端发送的与多级查询条件对应的语句参数;根据所述语句参数在数据库中对应的值生成用于数据分片的正则表达式;基于所述条件字段中的条件值和所述正则表达式生成SQL语句;
当判定所述业务查询类型为默认查询时,获取与所述业务查询类型对应的业务转化逻辑选择项并发送所述终端;接收所述终端反馈的业务转化逻辑选中项;根据所述业务转化逻辑选中项对应的业务转化逻辑和所述条件字段生成用于数据分片并查询的SQL语句;
根据逻辑算子将所述SQL语句生成SQL语段;
根据所述SQL语段中的SQL语句对数据库进行分库,对分库后的数据库进行数据查询,得到查询数据,并将查询数据发送至所述终端。
2.根据权利要求1所述的方法,其特征在于,所述根据所述语句参数在数据库中对应的值生成正则表达式之后,包括:
将所述业务标识和所述正则表达式进行关联存储,并根据关联存储的正则表达式生成业务转化逻辑选择项。
3.根据权利要求1至2任意一项所述的方法,其特征在于,获取与所述业务标识对应的业务查询类型及条件字段,包括:
获取与所述业务标识关联的业务查询类型选择项以及条件字段选择项;
根据反馈的业务查询类型选中项以及条件字段选中项生成业务查询类型及条件字段。
4.根据权利要求1所述的方法,其特征在于,所述根据所述SQL语段中的SQL语句对数据库进行分库,对分库后的数据库进行数据查询,得到查询数据,包括:
解析所述SQL语段中的条件字段、语句参数和逻辑算子;
根据所述逻辑算子和所述语句参数对数据库进行分库;
在分库后的数据库中获取与所述条件字段对应的业务数据,并将获取到的业务数据进行汇总,得到查询数据。
5.一种数据库查询装置,其特征在于,所述装置包括:
请求接收模块,用于接收终端发送的数据库查询请求,所述数据库查询请求中携带有业务标识;
业务标识获取模块,用于获取与所述业务标识对应的业务查询类型及条件字段;
SQL语句生成模块,用于当判定所述业务查询类型为自定义查询时,接收所述终端发送的与多级查询条件对应的语句参数;根据所述语句参数在数据库中对应的值生成用于数据分片的正则表达式;基于所述条件字段中的条件值和所述正则表达式生成SQL语句;当判定所述业务查询类型为默认查询时,获取与所述业务查询类型对应的业务转化逻辑选择项并发送所述终端;接收所述终端反馈的业务转化逻辑选中项;根据所述业务转化逻辑选中项对应的业务转化逻辑和所述条件字段生成用于数据分片并查询的SQL语句;根据逻辑算子将所述SQL语句生成SQL语段;
数据查询模块,用于根据所述SQL语段中的SQL语句对数据库进行分库,对分库后的数据库进行数据查询,得到查询数据,并将查询数据发送至所述终端。
6.根据权利要求5所述的装置,其特征在于,所述SQL语句生成模块,包括:
选择项存储单元,用于将所述业务标识和所述正则表达式进行关联存储,并根据关联存储的正则表达式生成业务转化逻辑选择项。
7.根据权利要求5所述的装置,其特征在于,所述业务标识获取模块,包括:
业务选择项获取单元,用于获取与所述业务标识关联的业务查询类型选择项以及条件字段选择项;
业务标识获取单元,用于根据反馈的业务查询类型选中项以及条件字段选中项生成业务查询类型及条件字段。
8.根据权利要求5所述的装置,其特征在于,所述数据查询模块,包括:
解析单元,用于解析所述SQL语段中的条件字段、语句参数和逻辑算子;
分库单元,用于根据所述逻辑算子和所述语句参数对数据库进行分库;
查询单元,用于在分库后的数据库中获取与所述条件字段对应的业务数据,并将获取到的业务数据进行汇总,得到查询数据。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4中任一项所述的方法的步骤。
CN201911138591.8A 2019-11-20 2019-11-20 数据库查询方法、装置、计算机设备和存储介质 Active CN110990400B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911138591.8A CN110990400B (zh) 2019-11-20 2019-11-20 数据库查询方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911138591.8A CN110990400B (zh) 2019-11-20 2019-11-20 数据库查询方法、装置、计算机设备和存储介质

Publications (2)

Publication Number Publication Date
CN110990400A CN110990400A (zh) 2020-04-10
CN110990400B true CN110990400B (zh) 2023-07-04

Family

ID=70085147

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911138591.8A Active CN110990400B (zh) 2019-11-20 2019-11-20 数据库查询方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN110990400B (zh)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111444227A (zh) * 2020-04-15 2020-07-24 中国银行股份有限公司 一种查询需求的处理方法及系统
CN111522840B (zh) * 2020-04-27 2023-08-11 平安科技(深圳)有限公司 标签的配置方法、装置、设备及计算机可读存储介质
CN111563125B (zh) * 2020-05-08 2024-04-16 中国工商银行股份有限公司 数据存储系统、数据查询方法及装置
CN112000903B (zh) * 2020-07-03 2022-11-18 苏宁云计算有限公司 数据查询方法、装置、计算机设备和存储介质
CN112015752A (zh) * 2020-08-31 2020-12-01 杭州小电科技股份有限公司 一种数据动态查询的方法、装置、电子设备和存储介质
CN112052257B (zh) * 2020-09-03 2024-04-19 中国银行股份有限公司 一种业务处理方法、装置及设备
CN112131257B (zh) * 2020-09-14 2023-10-27 泰康保险集团股份有限公司 数据查询方法和装置
CN113779058A (zh) * 2020-10-16 2021-12-10 北京京东振世信息技术有限公司 获取业务数据的方法、装置、设备和计算机可读介质
CN112363994A (zh) * 2020-10-27 2021-02-12 杭州大搜车汽车服务有限公司 数据库的处理方法、装置、电子装置和存储介质
CN112632136A (zh) * 2020-12-11 2021-04-09 北京国电通网络技术有限公司 一种数据统计分析方法、装置、电子设备及存储介质
CN112905176B (zh) * 2021-02-08 2024-02-09 中国工商银行股份有限公司 基于SpringBoot的web系统后端实现方法及装置
CN113239044A (zh) * 2021-05-18 2021-08-10 安翰科技(武汉)股份有限公司 查询用sql记录的管理装置及应用系统
CN113312374A (zh) * 2021-05-18 2021-08-27 网银在线(北京)科技有限公司 数据查询方法、装置、设备及存储介质
CN113438304B (zh) * 2021-06-23 2023-04-07 平安消费金融有限公司 基于数据库集群的数据查询方法、装置、服务器及介质
CN113360520A (zh) * 2021-06-30 2021-09-07 中国农业银行股份有限公司 基于数据库的查询方法、装置和设备
CN113362177B (zh) * 2021-06-30 2024-03-19 中国农业银行股份有限公司 交易数据回溯方法及装置
CN113434518B (zh) * 2021-08-26 2021-12-03 西安热工研究院有限公司 时序数据库查询方法、系统、设备及存储介质
CN114139883B (zh) * 2021-11-10 2024-03-29 云南电网有限责任公司信息中心 一种电力企业物资域评价指标的计算方法
CN114637776A (zh) * 2021-12-31 2022-06-17 北京航天智造科技发展有限公司 一种基于规则引擎的数据管理方法和装置
CN116028568A (zh) * 2023-03-27 2023-04-28 北京中科江南信息技术股份有限公司 财政业务数据导出方法、装置及电子设备
CN116821174A (zh) * 2023-07-17 2023-09-29 深圳计算科学研究院 一种基于逻辑数据块的数据查询方法及其装置
CN117150569B (zh) * 2023-11-01 2024-02-27 深圳华付技术股份有限公司 一种银行业务库的安全交互方法和系统
CN117891847A (zh) * 2024-03-18 2024-04-16 辽宁牧龙科技有限公司 一种基于数据中台的数据查询装置及方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012113373A (ja) * 2010-11-20 2012-06-14 Nomura Research Institute Ltd プログラム開発支援システム及びデータ利用システム
CN105243019A (zh) * 2015-10-27 2016-01-13 北京神州绿盟信息安全科技股份有限公司 一种检测python代码漏洞的方法及装置
CN105512200A (zh) * 2015-11-26 2016-04-20 华为技术有限公司 一种分布式数据库处理的方法和设备
CN107133342A (zh) * 2017-05-16 2017-09-05 广州舜飞信息科技有限公司 一种IndexR实时数据分析库
CN108628986A (zh) * 2018-04-27 2018-10-09 深圳市牛鼎丰科技有限公司 数据查询方法、装置、计算机设备和存储介质
CN109697068A (zh) * 2017-10-24 2019-04-30 中移(苏州)软件技术有限公司 一种分库分表模式下逻辑sql语句翻译方法和装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012113373A (ja) * 2010-11-20 2012-06-14 Nomura Research Institute Ltd プログラム開発支援システム及びデータ利用システム
CN105243019A (zh) * 2015-10-27 2016-01-13 北京神州绿盟信息安全科技股份有限公司 一种检测python代码漏洞的方法及装置
CN105512200A (zh) * 2015-11-26 2016-04-20 华为技术有限公司 一种分布式数据库处理的方法和设备
CN107133342A (zh) * 2017-05-16 2017-09-05 广州舜飞信息科技有限公司 一种IndexR实时数据分析库
CN109697068A (zh) * 2017-10-24 2019-04-30 中移(苏州)软件技术有限公司 一种分库分表模式下逻辑sql语句翻译方法和装置
CN108628986A (zh) * 2018-04-27 2018-10-09 深圳市牛鼎丰科技有限公司 数据查询方法、装置、计算机设备和存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
金磐石.融合大数据技术架构在大型商业银行海量数据分析的应用.计算机系统应用.2018,全文. *

Also Published As

Publication number Publication date
CN110990400A (zh) 2020-04-10

Similar Documents

Publication Publication Date Title
CN110990400B (zh) 数据库查询方法、装置、计算机设备和存储介质
CN110069449B (zh) 文件处理方法、装置、计算机设备和存储介质
CN109408746B (zh) 画像信息查询方法、装置、计算机设备和存储介质
JP7073576B2 (ja) 関連付け推薦方法、装置、コンピュータ機器及び記憶媒体
CN109474578B (zh) 报文消息校验方法、装置、计算机设备和存储介质
CN109992601B (zh) 待办事项信息的推送方法、装置和计算机设备
CN109062925B (zh) 自动生成insert语句的方法、装置、计算机设备及存储介质
CN111309785B (zh) 基于Spring框架的数据库访问方法、装置、计算机设备和介质
CN110908778B (zh) 任务部署方法、系统和存储介质
CN111190901B (zh) 业务数据存储方法、装置、计算机设备和存储介质
CN110135888B (zh) 产品信息推送方法、装置、计算机设备和存储介质
CN109361628B (zh) 报文组装方法、装置、计算机设备和存储介质
CN112000903B (zh) 数据查询方法、装置、计算机设备和存储介质
CN110659297A (zh) 数据处理方法、装置、计算机设备和存储介质
US20240086401A1 (en) Object-based search processing
CN110275703B (zh) 键值对数据的赋值方法、装置、计算机设备和存储介质
CN109669951B (zh) 对象查询方法、装置、计算机设备和存储介质
CN109614399B (zh) 位图数据查询方法、装置、计算机设备和存储介质
CN104933096A (zh) 数据库的异常键识别方法、装置与数据系统
CN105760532B (zh) 基于Web Service的资源共享系统及方法
CN109492144B (zh) 软件系统的关联关系分析方法、装置和存储介质
CN111026972A (zh) 物联网中的订阅数据推送方法、装置、设备及存储介质
CN107633094B (zh) 一种集群环境中数据检索的方法和装置
WO2020057023A1 (zh) 自然语言的语义解析方法、装置、计算机设备和存储介质
CN114372075A (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