CN106294468B - 处理业务数据的方法和装置 - Google Patents

处理业务数据的方法和装置 Download PDF

Info

Publication number
CN106294468B
CN106294468B CN201510296171.8A CN201510296171A CN106294468B CN 106294468 B CN106294468 B CN 106294468B CN 201510296171 A CN201510296171 A CN 201510296171A CN 106294468 B CN106294468 B CN 106294468B
Authority
CN
China
Prior art keywords
data source
sql statement
standard
connection
statement
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
CN201510296171.8A
Other languages
English (en)
Other versions
CN106294468A (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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201510296171.8A priority Critical patent/CN106294468B/zh
Publication of CN106294468A publication Critical patent/CN106294468A/zh
Application granted granted Critical
Publication of CN106294468B publication Critical patent/CN106294468B/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种处理业务数据的方法和装置,属于计算机通信技术领域。所述方法包括:获取用户输入的预设结构化查询语言SQL语句;判断所述预设结构化查询语言SQL语句是自定义SQL语句还是标准SQL语句;如果所述预设结构化查询语言SQL语句是所述自定义SQL语句,则获取所述自定义SQL语句对应的数据源的可用的数据库连接;将所述自定义SQL语句转换为多个所述标准SQL语句;在所述自定义SQL语句对应的数据源的可用的数据库连接对应的数据库中执行多个所述标准SQL语句对应的业务数据操作。本发明通过自定义SQL语句可以实现在线分布式处理业务数据,减小了延时,且不需要在线写很多SQL语句,比较简单。

Description

处理业务数据的方法和装置
技术领域
本发明涉及计算机通信技术领域,具体涉及一种处理业务数据的方法和装置。
背景技术
随着计算机通信技术的发展,可以通过计算机实现很多业务,在通过计算机实现业务时,业务对应的业务数据一般都会通过相应的数据库进行存储。而对于数据量比较大的业务,需要通过分库分表方式进行数据存储才能满足业务的存储需求。对于存在分库分表的数据库,如果业务数据是与路由相关的,则可以通过路由规则进行查询(即通过特定的分表字段处理业务数据),通过路由规则精准的定位到指定的表,查询到相应的业务数据,对业务数据进行订正、结构变更等处理;如果业务数据是与路由无关的,则需要通过离线分析查询,或者通过在线写很多SQL(Structured Query Language,结构化查询语言)语句来分析查询,对分析查询到的业务数据进行订正、结构变更等处理。而且,当前也会将业务数据存放在不同类型的数据库中,如将一些业务数据存放在MySQL数据库、一些业务数据存放在Oracle数据库、一些业务数据存放在SQLServer数据库等,对于业务数据存放在不同类型的数据库的情况,一般是将业务数据抽取到统一的管理***中,然后进行离线分析查询。
现有处理业务数据的方法,离线分析处理的方法可以用于处理与路由无关的业务数据和存放在不同类型的数据库的业务数据,然而离线分析处理的方法是一种离线的方式,会存在较大的延时;在线写很多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语句对应的数据源的可用的数据库连接,将汇总整理得到的所述自定义SQL语句对应的数据源的可用的数据库连接存储在所述自定义SQL语句对应的数据源对应的全局数据源连接池中。
进一步地,将所述自定义SQL语句转换为多个标准SQL语句之后,还包括:
对多个所述标准SQL语句进行合并优化;
相应地,在所述自定义SQL语句对应的数据源的可用的数据库连接对应的数据库中执行多个所述标准SQL语句对应的业务数据操作,包括:
在所述自定义SQL语句对应的数据源的可用的数据库连接对应的数据库中执行合并优化后的多个所述标准SQL语句对应的业务数据操作。
进一步地,所述自定义SQL语句包括:无路由查询分表语句、无密码查询指定库语句、有密码查询语句和/或提示Hint支持语句。
进一步地,判断所述预设结构化查询语言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语句对应的数据源的可用的数据库连接;
转换模块,用于将所述自定义SQL语句转换为多个所述标准SQL语句;
第一执行模块,用于在所述自定义SQL语句对应的数据源的可用的数据库连接对应的数据库中执行多个所述标准SQL语句对应的业务数据操作。
进一步地,所述自定义连接获取模块包括:
第一判断单元,用于判断所述自定义SQL语句是否符合预设语法标准;
第一转换单元,用于如果所述自定义SQL语句符合所述预设语法标准,则将所述自定义SQL语句中的数据连接信息转换为对应的数据源;
第二判断单元,用于判断所述自定义SQL语句对应的数据源对应的全局数据源连接池中是否存在所述自定义SQL语句对应的数据源的数据库连接;
第一自定义连接获取单元,用于如果所述自定义SQL语句对应的数据源对应的全局数据源连接池中存在所述数据库连接,则从所述自定义SQL语句对应的数据源对应的全局数据源连接池中取出所述数据库连接,对所述自定义SQL语句对应的数据源对应的全局数据源连接池中取出的所述数据库连接进行可用性检测,得到所述自定义SQL语句对应的数据源的可用的数据库连接。
进一步地,所述自定义连接获取模块还包括:
第二自定义连接获取单元,用于如果所述自定义SQL语句对应的数据源对应的全局数据源连接池中没有存在所述数据库连接,则根据所述自定义SQL语句对应的数据源进行汇总整理得到所述自定义SQL语句对应的数据源的可用的数据库连接,将所述自定义SQL语句对应的数据源的可用的数据库连接存储在所述自定义SQL语句对应的数据源对应的全局数据源连接池中。
进一步地,所述转换模块包括:
合并优化单元,用于对多个所述标准SQL语句进行合并优化;
相应地,所述第一执行模块包括:
执行单元,用于在所述自定义SQL语句对应的数据源的可用的数据库连接对应的数据库中执行合并优化后的多个所述标准SQL语句对应的业务数据操作。
进一步地,所述自定义SQL语句包括:无路由查询分表语句、无密码查询指定库语句、有密码查询语句和/或提示Hint支持语句。
进一步地,所述装置还包括:
标准连接获取模块,用于如果所述判断模块的判断结果是所述预设结构化查询语言SQL语句是所述标准SQL语句,则获取所述标准SQL语句对应的数据源的可用的数据库连接;
第二执行模块,用于在所述标准SQL语句对应的数据源的数据库连接对应的数据库中执行所述标准SQL语句对应的业务数据操作。
进一步地,所述标准连接获取模块包括:
第三判断单元,用于判断所述标准SQL语句是否符合预设语法标准;
第二转换单元,用于如果所述标准SQL语句符合预设语法标准,则将所述标准SQL语句中的数据连接信息转换为对应的数据源;
第四判断单元,用于判断所述标准SQL语句对应的数据源对应的全局数据源连接池中是否存在数据库连接;
第一标准连接获取单元,用于如果所述标准SQL语句对应的数据源对应的全局数据源连接池中存在数据库连接,则从所述标准SQL语句对应的数据源对应的全局数据源连接池中取出数据库连接,对从所述标准SQL语句对应的数据源对应的全局数据源连接池中取出的数据库连接进行可用性检测,得到所述标准SQL语句对应的数据源的可用的数据库连接。
进一步地,所述标准连接获取模块还包括:
第二标准连接获取单元,用于如果所述标准SQL语句对应的数据源对应的全局数据源连接池中没有存在数据库连接,则根据所述标准SQL语句对应的数据源进行汇总整理得到所述标准SQL语句对应的数据源的数据库连接,将汇总整理得到的所述标准SQL语句对应的数据源的数据库连接存储在所述标准SQL语句对应的数据源对应的全局数据源连接池中。
进一步地,所述业务数据操作包括:对业务数据进行查询、订正和/或结构变更。
与现有技术相比,本发明可以获得包括以下技术效果:
1)通过自定义SQL语句可以实现在线分布式处理业务数据,减小了延时,且不需要在线写很多SQL语句,比较简单。
2)通过将自定义SQL语句转换成实际要执行的标准SQL语句,可以一种低成本的方式提供服务,极大的提高了生产效率。
当然,实施本发明的任一产品必不一定需要同时达到以上所述的所有技术效果。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明实施例的第一种处理业务数据的方法流程图;
图2是本发明实施例的第二种处理业务数据的方法流程图;
图3是本发明实施例的第三种处理业务数据的方法流程图;
图4是本发明实施例的第四种处理业务数据的方法流程图;
图5是本发明实施例的第五种处理业务数据的方法流程图;
图6是本发明实施例的第六种处理业务数据的方法流程图;
图7是本发明实施例的第一种处理业务数据的装置结构示意图;
图8是本发明实施例的第二种处理业务数据的装置结构示意图。
具体实施方式
以下将配合附图及实施例来详细说明本发明的实施方式,藉此对本发明如何应用技术手段来解决技术问题并达成技术功效的实现过程能充分理解并据以实施。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
如在说明书及权利要求当中使用了某些词汇来指称特定组件。本领域技术人员应可理解,硬件制造商可能会用不同名词来称呼同一个组件。本说明书及权利要求并不以名称的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的准则。如在通篇说明书及权利要求当中所提及的“包含”为一开放式用语,故应解释成“包含但不限定于”。“大致”是指在可接收的误差范围内,本领域技术人员能够在一定误差范围内解决所述技术问题,基本达到所述技术效果。此外,“耦接”一词在此包含任何直接及间接的电性耦接手段。因此,若文中描述一第一装置耦接于一第二装置,则代表所述第一装置可直接电性耦接于所述第二装置,或通过其他装置或耦接手段间接地电性耦接至所述第二装置。说明书后续描述为实施本发明的较佳实施方式,然所述描述乃以说明本发明的一般原则为目的,并非用以限定本发明的范围。本发明的保护范围当视所附权利要求所界定者为准。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者***不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者***所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者***中还存在另外的相同要素。
实施例描述
下面以一实施例对本发明方法的实现作进一步说明。如图1所示,为本发明实施例的一种处理业务数据的方法流程图,该方法包括:
S101:获取用户输入的预设结构化查询语言SQL语句。
具体地,为了可以在处理与路由无关的业务数据和存放在不同类型的数据库的业务数据时,不需要通过离线分析处理、在线写很多SQL语句,本实施例设置了自定义SQL语句,通过自定义SQL语句可以处理与路由无关的业务数据和存放在不同类型的数据库的业务数据,可以实现分布式处理。本实施例中的SQL语句包括二种,一种是标准SQL语句(即符合SQL92标准的语句),一种为自定义SQ语句。用户可以根据实际应用需要输入自定义SQL语句或标准SQL语句。
S102:判断预设结构化查询语言SQL语句是自定义SQL语句还是标准SQL语句。
具体地,自定义SQL语句包括:无路由查询分表语句、无密码查询指定库语句、有密码查询语句和/或Hint(提示)支持语句。无路由查询分表语句的一个具体实例如下:selectt.*from#disptable#as t where t.gmt_create>'2010-04-02'。无密码查询指定库语句的一个具体实例如下:select t1.*from`dbname.table_name(db_ip:db_port)`as t1,其中,dbname表示数据库名字、table_name表示表名、db_ip表示数据库IP地址、db_port表示数据库接口等。有密码查询语句的一个具体实例如下:select t1.*from`dbname.table_name(db_type,db_ip:db_port,user,password)`as t1,db_type表示支持的数据库类型(例如:MySQL数据库、SQLServer数据库、PostgreSQL数据库、Oracle数据库、Oceanbase数据库等)。Hint支持语句的一个具体实例如下:select/*+not_global_calculate*/user_id,count(*)from#table#group by user_id,可以支持多个Hint定义,使得执行的SQL达到性能最优。
S103:如果预设结构化查询语言SQL语句是自定义SQL语句,获取自定义SQL语句对应的数据源的可用的数据库连接。
具体地,参见图2,获取自定义SQL语句对应的数据源的可用的数据库连接,包括:
S103a:判断自定义SQL语句是否符合预设语法标准,如果自定义SQL语句符合预设语法标准,则执行S103b;如果自定义SQL语句不符合预设语法标准,则结束。
即判断自定义SQL语句是否符合预设的定义标准、描述方式等。
S103b:将自定义SQL语句中的数据连接信息转换为对应的数据源。
S103c:判断自定义SQL语句对应的数据源对应的全局数据源连接池中是否存在数据库连接,如果自定义SQL语句对应的数据源对应的全局数据源连接池中存在数据库连接,则执行S103d;如果数据源对应的全局数据源连接池中没有存在数据库连接,则执行S103e。
S103d:从自定义SQL语句对应的数据源对应的全局数据源连接池中取出数据库连接,对从自定义SQL语句对应的数据源对应的全局数据源连接池中取出的数据库连接进行可用性检测,得到自定义SQL语句对应的数据源的可用的数据库连接,然后执行S104。
具体地,可用性检测即对数据库连接对应的数据库进行连接检测以判断该数据库连接是否可用。
S103e:根据自定义SQL语句对应的数据源进行汇总整理得到自定义SQL语句对应的数据源的可用的数据库连接,将汇总整理得到的自定义SQL语句对应的数据源的可用的数据库连接存储在全局数据源连接池中,然后执行S104。
S104:将自定义SQL语句转换为多个标准SQL语句。
具体地,将自定义SQL语句转换为多个标准SQL语句,多个标准SQL语句中可能有一部分是对同一数据库进程处理等(即多个标准SQL语句中有一部分语句可以同时执行等),因此将自定义SQL语句转换为多个标准SQL语句之后,还可以包括:对多个标准SQL语句进行合并优化。
具体地,对多个标准SQL语句进行合并优化,可以按照数据库的维度或者按照服务器的维度实现一部分标准SQL语句的合并优化处理。例如:查询同一个数据源下的表时,可以将若干个标准SQL语句合并为一个标准SQL语句执行,通过合并优化完成算法的选择、并发度控制、Hash Join等。
具体地,为了便于理解,列举一个将自定义SQL语句转换为多个标准SQL语句的实例如下:自定义SQL语句为:select*from#user#where gmt_create>'2015-04-2800:00:00',其中,#user#为逻辑表,#user#的定义规则如下:user表一共为100张表,分表为user_00、user_01…user_99,当前表分布在10个数据库中,分表为db0、db1…db9。
将上述自定义SQL语句转换成为多个标准SQL语句为:
select*from user_00where gmt_create>'2015-04-2800:00:00';
select*from user_01where gmt_create>'2015-04-2800:00:00';
select*from user_02where gmt_create>'2015-04-2800:00:00';
select*from user_99where gmt_create>'2015-04-2800:00:00'。
分别在10个数据库上执行上述100条标准SQL语句。
S105:在自定义SQL语句对应的数据源的可用的数据库连接对应的数据库中执行多个标准SQL语句对应的业务数据操作。
其中,业务数据操作包括:对业务数据进行查询、订正和/或结构变更等。自定义SQL语句对应的数据源的可用的数据库连接对应的数据库可以是多个不同类型的数据库,例如可以是:MySQL数据库、SQLServer数据库、PostgreSQL数据库、Oracle数据库、Oceanbase数据库等。
并且,当步骤S104还对多个标准SQL语句进行合并优化时,相应地,S105在可用的数据库连接对应的数据库中执行多个标准SQL语句对应的业务数据操作,包括:在自定义SQL语句对应的数据源的可用的数据库连接对应的数据库中执行合并优化后的多个标准SQL语句对应的业务数据操作。
具体地,在本实施例的一优选实施例中,参见图3,S105在自定义SQL语句对应的数据源的可用的数据库连接对应的数据库中执行多个标准SQL语句对应的业务数据操作之后,还包括:
S106:获取在自定义SQL语句对应的数据源的可用的数据库连接对应的数据库中执行多个标准SQL语句对应的业务数据操作的操作结果。
S107:将在自定义SQL语句对应的数据源的可用的数据库连接对应的数据库中执行多个标准SQL语句对应的业务数据操作的操作结果进行汇总,保存在临时表中,并将在自定义SQL语句对应的数据源的可用的数据库连接对应的数据库中执行多个标准SQL语句对应的业务数据操作的操作结果显示在用户界面。
具体地,在本实施例的一优选实施例中,参见图4,S102判断预设结构化查询语言SQL语句是自定义SQL语句还是标准SQL语句之后,还包括:
S108:如果预设结构化查询语言SQL语句是标准SQL语句,则获取标准SQL语句对应的数据源的可用的数据库连接。
具体地,参见图5,获取标准SQL语句对应的数据源的可用的数据库连接,包括:
S108a:判断标准SQL语句是否符合预设语法标准,如果标准SQL语句符合预设语法标准,则执行S108b;如果标准SQL语句不符合预设语法标准,则结束。
S108b:将标准SQL语句中的数据连接信息转换为对应的数据源。
S108c:判断标准SQL语句对应的数据源对应的全局数据源连接池中是否存在数据库连接,如果标准SQL语句对应的数据源对应的全局数据源连接池中存在数据库连接,则执行S108d;如果标准SQL语句对应的数据源对应的全局数据源连接池中没有存在数据库连接,则执行S108e。
S108d:从标准SQL语句对应的数据源对应的全局数据源连接池中取出数据库连接,对从标准SQL语句对应的数据源对应的全局数据源连接池中取出的数据库连接进行可用性检测,得到从标准SQL语句对应的数据源的可用的数据库连接,然后执行S109。
S108e:根据标准SQL语句对应的数据源进行汇总整理得到标准SQL语句对应的数据源的可用的数据库连接,将汇总整理得到的标准SQL语句对应的数据源的可用的数据库连接存储在全局数据源连接池中,然后执行S109。
S109:在标准SQL语句对应的数据源的可用的数据库连接对应的数据库中执行标准SQL语句对应的业务数据操作。
其中,业务数据操作包括:对业务数据进行查询、订正和/或结构变更等。
具体地,在本实施例的一优选实施例中,参见图6,S109在标准SQL语句对应的数据源的可用的数据库连接对应的数据库中执行标准SQL语句对应的业务数据操作之后,还包括:
S110:获取在标准SQL语句对应的数据源的可用的数据库连接对应的数据库中执行标准SQL语句对应的业务数据操作的操作结果。
S111:将在标准SQL语句对应的数据源的可用的数据库连接对应的数据库中执行标准SQL语句对应的业务数据操作的操作结果进行汇总,保存在临时表中,并将在标准SQL语句对应的数据源的可用的数据库连接对应的数据库中执行标准SQL语句对应的业务数据操作的操作结果显示在用户界面。
本实施例所述的处理业务数据的方法,通过自定义SQL语句可以实现在线分布式处理业务数据,减小了延时,且不需要在线写很多SQL语句,比较简单。通过将自定义SQL语句转换成实际要执行的标准SQL语句,可以一种低成本的方式提供服务,极大的提高了生产效率。
如图7所示,是本发明实施例的一种处理业务数据的装置结构图,该装置包括:
获取模块201,用于获取用户输入的预设结构化查询语言SQL语句;
判断模块202,用于判断预设结构化查询语言SQL语句是自定义SQL语句还是标准SQL语句;
自定义连接获取模块203,用于如果预设结构化查询语言SQL语句是自定义SQL语句,则获取自定义SQL语句对应的数据源的可用的数据库连接;
转换模块204,用于将自定义SQL语句转换为多个标准SQL语句;
第一执行模块205,用于在自定义SQL语句对应的数据源的可用的数据库连接对应的数据库中执行多个标准SQL语句对应的业务数据操作。
进一步地,自定义连接获取模块203包括:
第一判断单元,用于判断自定义SQL语句是否符合预设语法标准;
第一转换单元,用于如果自定义SQL语句符合预设语法标准,则将自定义SQL语句中的数据连接信息转换为对应的数据源;
第二判断单元,用于判断自定义SQL语句对应的数据源对应的全局数据源连接池中是否存在自定义SQL语句对应的数据源的数据库连接;
第一自定义连接获取单元,用于如果自定义SQL语句对应的数据源对应的全局数据源连接池中存在所述数据库连接,则从自定义SQL语句对应的数据源对应的全局数据源连接池中取出所述数据库连接,对自定义SQL语句对应的数据源对应的全局数据源连接池中取出的所述数据库连接进行可用性检测,得到自定义SQL语句对应的数据源的可用的数据库连接。
进一步地,自定义连接获取模块203还包括:
第二自定义连接获取单元,用于如果自定义SQL语句对应的数据源对应的全局数据源连接池中没有存在所述数据库连接,则根据自定义SQL语句对应的数据源进行汇总整理得到自定义SQL语句对应的数据源的可用的数据库连接,将自定义SQL语句对应的数据源的可用的数据库连接存储在自定义SQL语句对应的数据源对应的全局数据源连接池中。
进一步地,转换模块204包括:
合并优化单元,用于对多个标准SQL语句进行合并优化;
相应地,第一执行模块205包括:
执行单元,用于在自定义SQL语句对应的数据源的可用的数据库连接对应的数据库中执行合并优化后的多个标准SQL语句对应的业务数据操作。
进一步地,自定义SQL语句包括:无路由查询分表语句、无密码查询指定库语句、有密码查询语句和/或提示Hint支持语句。
进一步地,参见图8,该装置还包括:
标准连接获取模块206,用于如果判断模块202的判断结果是预设结构化查询语言SQL语句是标准SQL语句,则获取标准SQL语句对应的数据源的可用的数据库连接;
第二执行模块207,用于在标准SQL语句对应的数据源的数据库连接对应的数据库中执行标准SQL语句对应的业务数据操作。
进一步地,标准连接获取模块206包括:
第三判断单元,用于判断标准SQL语句是否符合预设语法标准;
第二转换单元,用于如果标准SQL语句符合预设语法标准,则将标准SQL语句中的数据连接信息转换为对应的数据源;
第四判断单元,用于判断标准SQL语句对应的数据源对应的全局数据源连接池中是否存在数据库连接;
第一标准连接获取单元,用于如果标准SQL语句对应的数据源对应的全局数据源连接池中存在数据库连接,则从标准SQL语句对应的数据源对应的全局数据源连接池中取出数据库连接,对从标准SQL语句对应的数据源对应的全局数据源连接池中取出的数据库连接进行可用性检测,得到标准SQL语句对应的数据源的可用的数据库连接。
进一步地,标准连接获取模块206还包括:
第二标准连接获取单元,用于如果标准SQL语句对应的数据源对应的全局数据源连接池中没有存在数据库连接,则根据标准SQL语句对应的数据源进行汇总整理得到标准SQL语句对应的数据源的数据库连接,将汇总整理得到的标准SQL语句对应的数据源的数据库连接存储在标准SQL语句对应的数据源对应的全局数据源连接池中。
进一步地,业务数据操作包括:对业务数据进行查询、订正和/或结构变更。
本实施例所述的处理业务数据的装置,通过自定义SQL语句可以实现在线分布式处理业务数据,减小了延时,且不需要在线写很多SQL语句,比较简单。通过将自定义SQL语句转换成实际要执行的标准SQL语句,可以一种低成本的方式提供服务,极大的提高了生产效率。
所述装置与前述的方法流程描述对应,不足之处参考上述方法流程的叙述,不再一一赘述。
上述说明示出并描述了本发明的若干优选实施例,但如前所述,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。

Claims (18)

1.一种处理业务数据的方法,其特征在于,所述方法包括:
获取用户输入的预设结构化查询语言SQL语句;
判断所述预设结构化查询语言SQL语句是自定义SQL语句还是标准SQL语句;
如果所述预设结构化查询语言SQL语句是所述自定义SQL语句,则获取所述自定义SQL语句对应的数据源的可用的数据库连接;
将所述自定义SQL语句转换为多个所述标准SQL语句;
在所述自定义SQL语句对应的数据源的可用的数据库连接对应的数据库中执行多个所述标准SQL语句对应的业务数据操作。
2.如权利要求1所述的方法,其特征在于,获取所述自定义SQL语句对应的数据源的可用的数据库连接,包括:
判断所述自定义SQL语句是否符合预设语法标准;
如果所述自定义SQL语句符合所述预设语法标准,则将所述自定义SQL语句中的数据连接信息转换为对应的数据源;
判断所述自定义SQL语句对应的数据源对应的全局数据源连接池中是否存在所述自定义SQL语句对应的数据源的数据库连接;
如果所述自定义SQL语句对应的数据源对应的全局数据源连接池中存在所述数据库连接,则从所述自定义SQL语句对应的数据源对应的全局数据源连接池中取出所述数据库连接,对所述自定义SQL语句对应的数据源对应的全局数据源连接池中取出的所述数据库连接进行可用性检测,得到所述自定义SQL语句对应的数据源的可用的数据库连接。
3.如权利要求2所述的方法,其特征在于,判断所述自定义SQL语句对应的数据源对应的全局数据源连接池中是否存在所述自定义SQL语句对应的数据源的数据库连接之后,还包括:
如果所述自定义SQL语句对应的数据源对应的全局数据源连接池中没有存在所述数据库连接,则根据所述自定义SQL语句对应的数据源进行汇总整理得到所述自定义SQL语句对应的数据源的可用的数据库连接,将汇总整理得到的所述自定义SQL语句对应的数据源的可用的数据库连接存储在所述自定义SQL语句对应的数据源对应的全局数据源连接池中。
4.如权利要求1所述的方法,其特征在于,将所述自定义SQL语句转换为多个标准SQL语句之后,还包括:
对多个所述标准SQL语句进行合并优化;
相应地,在所述自定义SQL语句对应的数据源的可用的数据库连接对应的数据库中执行多个所述标准SQL语句对应的业务数据操作,包括:
在所述自定义SQL语句对应的数据源的可用的数据库连接对应的数据库中执行合并优化后的多个所述标准SQL语句对应的业务数据操作。
5.如权利要求1所述的方法,其特征在于,所述自定义SQL语句包括:无路由查询分表语句、无密码查询指定库语句、有密码查询语句和/或提示Hint支持语句。
6.如权利要求1所述的方法,其特征在于,判断所述预设结构化查询语言SQL语句是自定义SQL语句还是标准SQL语句之后,还包括:
如果所述预设结构化查询语言SQL语句是所述标准SQL语句,则获取所述标准SQL语句对应的数据源的可用的数据库连接;
在所述标准SQL语句对应的数据源的数据库连接对应的数据库中执行所述标准SQL语句对应的业务数据操作。
7.如权利要求6所述的方法,其特征在于,获取所述标准SQL语句对应的数据源的可用的数据库连接,包括:
判断所述标准SQL语句是否符合预设语法标准;
如果所述标准SQL语句符合预设语法标准,则将所述标准SQL语句中的数据连接信息转换为对应的数据源;
判断所述标准SQL语句对应的数据源对应的全局数据源连接池中是否存在数据库连接;
如果所述标准SQL语句对应的数据源对应的全局数据源连接池中存在数据库连接,则从所述标准SQL语句对应的数据源对应的全局数据源连接池中取出数据库连接,对从所述标准SQL语句对应的数据源对应的全局数据源连接池中取出的数据库连接进行可用性检测,得到所述标准SQL语句对应的数据源的可用的数据库连接。
8.如权利要求7所述的方法,其特征在于,判断所述标准SQL语句对应的数据源对应的全局数据源连接池中是否存在数据库连接之后,还包括:
如果所述标准SQL语句对应的数据源对应的全局数据源连接池中没有存在数据库连接,则根据所述标准SQL语句对应的数据源进行汇总整理得到所述标准SQL语句对应的数据源的可用的数据库连接,将汇总整理得到的所述标准SQL语句对应的数据源的可用的数据库连接存储在所述标准SQL语句对应的数据源对应的全局数据源连接池中。
9.如权利要求1-8任一权利要求所述的方法,其特征在于,所述业务数据操作包括:对业务数据进行查询、订正和/或结构变更。
10.一种处理业务数据的装置,其特征在于,所述装置包括:
获取模块,用于获取用户输入的预设结构化查询语言SQL语句;
判断模块,用于判断所述预设结构化查询语言SQL语句是自定义SQL语句还是标准SQL语句;
自定义连接获取模块,用于如果所述预设结构化查询语言SQL语句是所述自定义SQL语句,则获取所述自定义SQL语句对应的数据源的可用的数据库连接;
转换模块,用于将所述自定义SQL语句转换为多个所述标准SQL语句;
第一执行模块,用于在所述自定义SQL语句对应的数据源的可用的数据库连接对应的数据库中执行多个所述标准SQL语句对应的业务数据操作。
11.如权利要求10所述的装置,其特征在于,所述自定义连接获取模块包括:
第一判断单元,用于判断所述自定义SQL语句是否符合预设语法标准;
第一转换单元,用于如果所述自定义SQL语句符合所述预设语法标准,则将所述自定义SQL语句中的数据连接信息转换为对应的数据源;
第二判断单元,用于判断所述自定义SQL语句对应的数据源对应的全局数据源连接池中是否存在所述自定义SQL语句对应的数据源的数据库连接;
第一自定义连接获取单元,用于如果所述自定义SQL语句对应的数据源对应的全局数据源连接池中存在所述数据库连接,则从所述自定义SQL语句对应的数据源对应的全局数据源连接池中取出所述数据库连接,对所述自定义SQL语句对应的数据源对应的全局数据源连接池中取出的所述数据库连接进行可用性检测,得到所述自定义SQL语句对应的数据源的可用的数据库连接。
12.如权利要求11所述的装置,其特征在于,所述自定义连接获取模块还包括:
第二自定义连接获取单元,用于如果所述自定义SQL语句对应的数据源对应的全局数据源连接池中没有存在所述数据库连接,则根据所述自定义SQL语句对应的数据源进行汇总整理得到所述自定义SQL语句对应的数据源的可用的数据库连接,将所述自定义SQL语句对应的数据源的可用的数据库连接存储在所述自定义SQL语句对应的数据源对应的全局数据源连接池中。
13.如权利要求10所述的装置,其特征在于,所述转换模块包括:
合并优化单元,用于对多个所述标准SQL语句进行合并优化;
相应地,所述第一执行模块包括:
执行单元,用于在所述自定义SQL语句对应的数据源的可用的数据库连接对应的数据库中执行合并优化后的多个所述标准SQL语句对应的业务数据操作。
14.如权利要求10所述的装置,其特征在于,所述自定义SQL语句包括:无路由查询分表语句、无密码查询指定库语句、有密码查询语句和/或提示Hint支持语句。
15.如权利要求10所述的装置,其特征在于,所述装置还包括:
标准连接获取模块,用于如果所述判断模块的判断结果是所述预设结构化查询语言SQL语句是所述标准SQL语句,则获取所述标准SQL语句对应的数据源的可用的数据库连接;
第二执行模块,用于在所述标准SQL语句对应的数据源的数据库连接对应的数据库中执行所述标准SQL语句对应的业务数据操作。
16.如权利要求15所述的装置,其特征在于,所述标准连接获取模块包括:
第三判断单元,用于判断所述标准SQL语句是否符合预设语法标准;
第二转换单元,用于如果所述标准SQL语句符合预设语法标准,则将所述标准SQL语句中的数据连接信息转换为对应的数据源;
第四判断单元,用于判断所述标准SQL语句对应的数据源对应的全局数据源连接池中是否存在数据库连接;
第一标准连接获取单元,用于如果所述标准SQL语句对应的数据源对应的全局数据源连接池中存在数据库连接,则从所述标准SQL语句对应的数据源对应的全局数据源连接池中取出数据库连接,对从所述标准SQL语句对应的数据源对应的全局数据源连接池中取出的数据库连接进行可用性检测,得到所述标准SQL语句对应的数据源的可用的数据库连接。
17.如权利要求16所述的装置,其特征在于,所述标准连接获取模块还包括:
第二标准连接获取单元,用于如果所述标准SQL语句对应的数据源对应的全局数据源连接池中没有存在数据库连接,则根据所述标准SQL语句对应的数据源进行汇总整理得到所述标准SQL语句对应的数据源的数据库连接,将汇总整理得到的所述标准SQL语句对应的数据源的数据库连接存储在所述标准SQL语句对应的数据源对应的全局数据源连接池中。
18.如权利要求10-17任一权利要求所述的装置,其特征在于,所述业务数据操作包括:对业务数据进行查询、订正和/或结构变更。
CN201510296171.8A 2015-06-02 2015-06-02 处理业务数据的方法和装置 Active CN106294468B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510296171.8A CN106294468B (zh) 2015-06-02 2015-06-02 处理业务数据的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510296171.8A CN106294468B (zh) 2015-06-02 2015-06-02 处理业务数据的方法和装置

Publications (2)

Publication Number Publication Date
CN106294468A CN106294468A (zh) 2017-01-04
CN106294468B true CN106294468B (zh) 2020-01-14

Family

ID=57655695

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510296171.8A Active CN106294468B (zh) 2015-06-02 2015-06-02 处理业务数据的方法和装置

Country Status (1)

Country Link
CN (1) CN106294468B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107122418A (zh) * 2017-03-31 2017-09-01 北京奇艺世纪科技有限公司 一种查询方法及装置
CN106997393A (zh) * 2017-04-10 2017-08-01 深圳乐信软件技术有限公司 数据查询方法、装置、服务器及存储介质
CN109766354A (zh) * 2018-12-04 2019-05-17 北京辰森世纪科技股份有限公司 业务数据查询的优化方法、装置及设备
CN110674162A (zh) * 2019-09-23 2020-01-10 税友软件集团股份有限公司 一种数据库语句执行方法及相关装置
CN113760949B (zh) * 2021-03-08 2023-09-22 北京京东振世信息技术有限公司 数据查询的方法和装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101021874A (zh) * 2007-03-21 2007-08-22 金蝶软件(中国)有限公司 一种对查询sql请求进行优化的方法及装置
CN101788992A (zh) * 2009-05-06 2010-07-28 厦门东南融通***工程有限公司 一种数据库查询语句的转换方法和转换***
CN104572979A (zh) * 2014-12-31 2015-04-29 北京锐安科技有限公司 一种处理结构化查询语言sql的方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101021874A (zh) * 2007-03-21 2007-08-22 金蝶软件(中国)有限公司 一种对查询sql请求进行优化的方法及装置
CN101788992A (zh) * 2009-05-06 2010-07-28 厦门东南融通***工程有限公司 一种数据库查询语句的转换方法和转换***
CN104572979A (zh) * 2014-12-31 2015-04-29 北京锐安科技有限公司 一种处理结构化查询语言sql的方法及装置

Also Published As

Publication number Publication date
CN106294468A (zh) 2017-01-04

Similar Documents

Publication Publication Date Title
CN106294468B (zh) 处理业务数据的方法和装置
US10628449B2 (en) Method and apparatus for processing database data in distributed database system
CN110019218B (zh) 数据存储与查询方法及设备
CN101021874B (zh) 一种对查询sql请求进行优化的方法及装置
WO2023060878A1 (zh) 一种数据查询方法、***、异构加速平台及存储介质
US20150120758A1 (en) Distributed processing of data records
CN103744651A (zh) 一种面向业务需求的业务处理模型自动生成方法
TW201820175A (zh) 資料庫轉換伺服器及其資料庫轉換方法
US20140095549A1 (en) Method and Apparatus for Generating Schema of Non-Relational Database
CN110389989B (zh) 一种数据处理方法、装置及设备
CN103455335A (zh) 一种多级分类的Web实现方法
CN111723161A (zh) 一种数据处理方法、装置及设备
US20170032052A1 (en) Graph data processing system that supports automatic data model conversion from resource description framework to property graph
US10552394B2 (en) Data storage with improved efficiency
WO2017107130A1 (zh) 数据查询方法和数据库***
CN111813849A (zh) 数据抽取方法、装置及设备、存储介质
CN106570029B (zh) 分布式关系型数据库的数据处理方法及***
CN114297204A (zh) 一种异构数据源的数据存储、检索方法及装置
CN111680030A (zh) 数据融合方法及装置,基于元信息的数据处理方法和装置
CN109697234B (zh) 实体的多属性信息查询方法、装置、服务器和介质
CN111159192B (zh) 基于大数据的数据入库方法、装置、存储介质和处理器
CN112541001A (zh) 数据查询方法、装置、存储介质及设备
US9537941B2 (en) Method and system for verifying quality of server
CN110569243B (zh) 一种数据查询方法、数据查询插件和数据查询服务器
CN116150236A (zh) 数据同步方法及装置、电子设备、计算机可读存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant