CN109492006B - 一种基于Oracle的海量数据处理方法和装置 - Google Patents

一种基于Oracle的海量数据处理方法和装置 Download PDF

Info

Publication number
CN109492006B
CN109492006B CN201811324819.8A CN201811324819A CN109492006B CN 109492006 B CN109492006 B CN 109492006B CN 201811324819 A CN201811324819 A CN 201811324819A CN 109492006 B CN109492006 B CN 109492006B
Authority
CN
China
Prior art keywords
sub
database
sql
statement
prefix
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
CN201811324819.8A
Other languages
English (en)
Other versions
CN109492006A (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 CN201811324819.8A priority Critical patent/CN109492006B/zh
Publication of CN109492006A publication Critical patent/CN109492006A/zh
Application granted granted Critical
Publication of CN109492006B publication Critical patent/CN109492006B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种基于Oracle的海量数据处理方法和装置。方法包括:依据接收到的客户发起的操作请求,生成类SQL语句,类SQL语句包含SQL语句结构部分、数据库子表前缀名称、关键要素项、表名称前缀相关的最多子表个数;其中一个关键要素项对应一个数据库表,一个数据库表被分成多个数据库子表,对应同一个数据库表的多个数据库子表的前缀名称相同;解析类SQL语句;计算各个数据库子表的序号;针对每一个数据库子表,依据该数据库子表的数据库子表前缀名称和序号,得到该数据库子表的名称;基于得到的各个数据库子表的名称,生成用于oracle执行的SQL脚本;将SQL脚本提交至oracle执行。本发明提高了检索速度。

Description

一种基于Oracle的海量数据处理方法和装置
技术领域
本发明涉及数据处理技术领域,尤其涉及一种基于Oracle的海量数据处理方法和装置。
背景技术
现有的集中模式下,海量数据一般采用oracle分区技术进行分区存储,然而,虽然数据分别存储在不同的存储区中,但是每次执行查询操作时,由于数据库表中记录的数据量很大,查询操作响应往往缓慢,甚至发生超时。
以数据库表具体为银行的历史账户交易流水表为例,假设该历史账户交易流水表保存有2年内每个账户的变动账号数据,一般包含几百亿条数据。那么在实际应用过程中,如果按照查询条件“账号+查询起始日期+查询结束日期”查询数据,则会同时有几百个查询交易发起,此时便会发现查询交易响应缓慢,前端(银行柜台前端、客户web前端等)系统出现大量超时,无法取得查询结果的情况。
发明内容
有鉴于此,本发明提供一种基于Oracle的海量数据处理方法和装置,用于解决现有技术中基于海量数据的查询操作存在响应缓慢、超时的问题。技术方案如下:
基于本发明的一方面,本发明提供一种基于Oracle的海量数据处理方法,方法包括:
依据接收到的客户发起的操作请求,生成类SQL语句,所述类SQL语句包含SQL语句结构部分、数据库子表前缀名称、关键要素项、表名称前缀相关的最多子表个数;其中一个关键要素项对应一个数据库表,且一个数据库表被分成多个数据库子表,对应同一个数据库表的多个数据库子表的前缀名称相同;
解析所述类SQL语句,获取所述类SQL语句中的SQL语句结构部分、数据库子表前缀名称、关键要素项、表名称前缀相关的最多子表个数;
依据关键要素项和表名称前缀相关的最多子表个数,计算各个数据库子表的序号;
针对每一个数据库子表,依据该数据库子表的数据库子表前缀名称和序号,得到该数据库子表的名称;
基于得到的各个数据库子表的名称,生成用于oracle执行的SQL脚本;
将所述SQL脚本提交至所述oracle执行。
可选地,在生成所述类SQL语句之后,所述方法还包括:
验证所述类SQL语句的合法性;
其中在验证所述类SQL语句合法后,再执行解析所述类SQL语句的步骤。
可选地,所述验证所述类SQL语句的合法性包括:
验证所述类SQL语句是否包含SQL语句结构部分、数据库子表前缀名称、关键要素项和表名称前缀相关的最多子表个数;
所述类SQL语句涉及的数据库操作是否为以下操作之一:数据库操作SELECT、INSERT INTO、UPDATE、DELETE、MERGE大小写不敏感关键字操作;所述类SQL语句涉及的检查语句SELECT中是否含有where大小写不敏感关键字。
可选地,所述客户发起的操作请求包括关键字、数据库子表的类标识,所述依据接收到的客户发起的操作请求,生成类SQL语句包括:
依据所述数据库子表的类标识确定数据库子表前缀名称;
依据数据库表中的记录数和操作并发数,确定表名称前缀相关的最多子表个数;
依据所述关键字确定关键要素项;
基于确定的数据库子表前缀名称、表名称前缀相关的最多子表个数和关键要素项,生成类SQL语句。
可选地,所述依据关键要素项和表名称前缀相关的最多子表个数,计算各个数据库子表的序号包括:
将关键要素项的ASCII值移位累计相加得到一个整数;
对所述整数按照子表个数取模;
将得到的取模结果确定为数据库子表的序号。
基于本发明的另一方面,本发明提供一种基于Oracle的海量数据处理装置,装置包括:
类SQL语句生成单元,用于依据接收到的客户发起的操作请求,生成类SQL语句,所述类SQL语句包含SQL语句结构部分、数据库子表前缀名称、关键要素项、表名称前缀相关的最多子表个数;其中一个关键要素项对应一个数据库表,且一个数据库表被分成多个数据库子表,对应同一个数据库表的多个数据库子表的前缀名称相同;
解析单元,用于解析所述类SQL语句,获取所述类SQL语句中的SQL语句结构部分、数据库子表前缀名称、关键要素项、表名称前缀相关的最多子表个数;
计算单元,用于依据关键要素项和表名称前缀相关的最多子表个数,计算各个数据库子表的序号;
获得单元,用于针对每一个数据库子表,依据该数据库子表的数据库子表前缀名称和序号,得到该数据库子表的名称;
脚本生成单元,用于基于得到的各个数据库子表的名称,生成用于oracle执行的SQL脚本;
提交单元,用于将所述SQL脚本提交至所述oracle执行。
可选地,所述装置还包括:
验证单元,用于验证所述类SQL语句的合法性。
可选地,所述验证单元具体用于,验证所述类SQL语句是否包含SQL语句结构部分、数据库子表前缀名称、关键要素项和表名称前缀相关的最多子表个数;
所述类SQL语句涉及的数据库操作是否为以下操作之一:数据库操作SELECT、INSERT INTO、UPDATE、DELETE、MERGE大小写不敏感关键字操作;所述类SQL语句涉及的检查语句SELECT中是否含有where大小写不敏感关键字。
可选地,所述类SQL语句生成单元包括:
第一确定子单元,用于依据所述数据库子表的类标识确定数据库子表前缀名称;
第二确定子单元,用于依据数据库表中的记录数和操作并发数,确定表名称前缀相关的最多子表个数;
第三确定子单元,用于依据所述关键字确定关键要素项;
生成子单元,用于基于确定的数据库子表前缀名称、表名称前缀相关的最多子表个数和关键要素项,生成类SQL语句。
可选地,所述计算单元具体用于,将关键要素项的ASCII值移位累计相加得到一个整数;对所述整数按照子表个数取模;将得到的取模结果确定为数据库子表的序号。
本发明提供的基于Oracle的海量数据处理方法和装置中,对于接收到的客户发起的操作请求,首先生成类SQL语句,该类SQL语句包含SQL语句结构部分、数据库子表前缀名称、关键要素项和表名称前缀相关的最多子表个数这四部分;进而,解析所述类SQL语句,获取所述类SQL语句中的SQL语句结构部分、数据库子表前缀名称、关键要素项、表名称前缀相关的最多子表个数。进一步的,本发明依据关键要素项和表名称前缀相关的最多子表个数,计算各个数据库子表的序号;针对每一个数据库子表,依据该数据库子表的数据库子表前缀名称和序号,得到该数据库子表的名称;最后基于得到的各个数据库子表的名称,生成用于oracle执行的SQL脚本,将所述SQL脚本提交至所述oracle执行。
本发明中,一个关键要素项对应一个数据库表,而一个数据库表被分成了多个数据库子表,本发明将海量数据采用分子表存储的方法,这样每个数据库子表中存储的数据量大大减少。在实际应用中,借助于类SQL语句的生成、解析,能够准确快速地找到对应关键要素项的具有相同前缀名称的多个数据库子表,那么以操作请求具体为查询请求为例,本发明按照查询条件“账号+查询起始日期+查询结束日期”查询数据时,实际是在多个数据库子表中同时进行查询操作,检索速度大大提高,能够有效解决现有技术中基于海量数据的查询操作响应速度缓慢、超时的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明提供的一种基于Oracle的海量数据处理方法的流程图;
图2为本发明中生成类SQL语句的方法流程图;
图3为本发明提供的一种基于Oracle的海量数据处理装置的结构示意图;
图4为本发明提供的另一种基于Oracle的海量数据处理装置的结构示意图;
图5为本发明中类SQL语句生成单元的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
首先申请人对本发明涉及的相关技术术语进行解释。
Oracle:是美国甲骨文公司开发的一个关系型数据库。
Oracle awr:全称Automatic Workload Repository,中文解释为自动负载信息库,是oracle数据库的分析工具,功能是收集、处理和维护性能系统信息。
历史账户交易流水表:是每天银行账户交易的流水保存历史记录,主要字段内容包括账号、发生交易日期、借贷标识、交易金额、交易流水号等,用于银行客户查询或者对账等。
SQL:是结构化查询语言(structure query language),是一种数据库查询和程序设计语言,用于查询数据及更新数据等。
本发明的主要思想之一包括但不限于:提出一种类SQL语句,该类SQL语句是结构类oracle SQL语句的字符串语言。类SQL语句中除了插入INSERT INTO数据库表操作外,还带有“where”大小写不敏感关键字。类SQL语句中的表名称不是数据库存在的表名称,只是表名称的前缀部分,因此不能够直接用于执行,而是需要根据“where”大小写不敏感条件中的关键要素项,确定实际对应的数据表名称,进而转换为实际的SQL语言才能执行。本发明中,类SQL语句只支持以SELECT、INSERT INTO、UPDATE、DELETE、MERGE大小写不敏感关键字操作。
特别地本发明中,类SQL语句由以下四部分组成:SQL语句结构部分+PREFIX+KEY+MAX。
其中,PREFIX为数据库子表前缀名称,KEY为关键要素项。对于历史账户交易流水表而言,其关键要素项可以为账号、交易流水号等。MAX为表名称前缀相关的最多子表个数,也可理解为相同前缀名称的最多子表个数。
如图1所示,本发明提供的基于Oracle的海量数据处理方法可以包括:
步骤101,依据接收到的客户发起的操作请求,生成类SQL语句,所述类SQL语句包含SQL语句结构部分、数据库子表前缀名称、关键要素项、表名称前缀相关的最多子表个数,其中一个关键要素项对应一个数据库表,且一个数据库表被分成多个数据库子表,对应同一个数据库表的多个数据库子表的前缀名称相同。
本发明中,客户发起的操作请求可以包括关键字(如账号)、数据库子表的类标识(如001)等信息,本发明基于接收到的客户发起的操作请求,首先生成类SQL语句。具体如图2所示,本发明生成类SQL语句的方法可以包括:
步骤201,依据所述数据库子表的类标识确定数据库子表前缀名称。
本发明首先依据数据库子表的类标识确定数据库子表前缀名称,比如类标识001表示历史账户交易流水表,类标识002表示中间业务借贷交易明细表。
步骤202,依据数据库表中的记录数和操作并发数,确定表名称前缀相关的最多子表个数。
步骤203,依据所述关键字确定关键要素项。
本发明对存储有海量数据的数据库表进行分表处理,将一个数据库表中存储的海量数据按照预设的存储规则,分别存储到不同的数据库子表中。具体地,本发明中一个关键要素项对应一个数据库表(也称业务表),且一个数据库表被分成多个数据库子表,其中对应同一个数据库表的多个数据库子表的前缀名称相同。
以客户发起的操作请求具体为查询请求,该查询请求包括关键字“账号”和数据库子表的类标识001为例,本发明可以确定查询对象为历史账户交易流水表,关键要素项为历史账户交易流水表中的敏感字段数据“账号”。基于此,本发明根据历史账户交易流水表中的记录数和操作并发数,预估涉及处理的数据量以及该数据量对应的一组数据库子表,确定该一组数据库子表的个数。因为该一组数据库子表是历史账户交易流水表的子表,因此各个数据库子表的结构完全相同,并具有相同前缀名称,且均包含该关键要素项“账号”。
步骤204,基于确定的数据库子表前缀名称、表名称前缀相关的最多子表个数和关键要素项,生成类SQL语句。
为了便于描述,本发明的申请人现以举例方式进一步说明。
假设用户手工输入了:SELECT ACCTNAME,ACCTNO,ACCTTYPE FROM ACCNODETAILWHERE ACCTNO=’1234567890’AND ACCTYPE=’3’;+PREFIX=ACCNODETAIL+KEY=ACCTNO+MAX=111,那么:
SQL语句结构部分为:SELECT ACCTNAME,ACCTNO,ACCTTYPE FROM ACCNODETAILWHERE ACCTNO=’1234567890’AND ACCTYPE=’3’;
数据库子表前缀名称为:ACCNODETAIL;
关键要素项为:ACCTNO,其实际内容为:取得内容1234567890;
表名称前缀相关的最多子表数为:MAX=111。
本发明中,数据库子表的名称是在数据建表时建立的。本发明中数据库子表名称的命名规则可以例如为数据库子表名称由数据库子表的前缀名称和序号构成,那么仍以前述为例,本发明通过关键要素项1234567890计算到数据库子表序号为55时,该数据库子表的实际名称为ACCNODETAIL55。
作为本发明实施例的一个优选实施例,本发明在步骤101之后还可以包括:验证所述类SQL语句的合法性。其中在验证所述类SQL语句合法后,再执行步骤102。
本发明中,验证类SQL语句的合法性可以包括:验证类SQL语句是否包含SQL语句结构部分、数据库子表前缀名称、关键要素项和表名称前缀相关的最多子表个数这四个部分;验证类SQL语句涉及的数据库操作是否为以下操作之一:数据库操作SELECT、INSERT INTO、UPDATE、DELETE、MERGE大小写不敏感关键字操作;以及,验证类SQL语句涉及的检查语句SELECT中是否含有where大小写不敏感关键字。
步骤102,解析所述类SQL语句,获取所述类SQL语句中的SQL语句结构部分、数据库子表前缀名称、关键要素项、表名称前缀相关的最多子表个数。
具体地,本发明通过对类SQL语句中的SQL语句结构部分、PREFIX、KEY、MAX进行解析,获得SQL语句结构部分中的内容、数据库子表前缀名称、关键要素项和相同前缀的数据库子表个数。
步骤103,依据关键要素项和表名称前缀相关的最多子表个数,计算各个数据库子表的序号。
具体地,本发明可以先将关键要素项的ASCII值移位累计相加得到一个整数,进而对所述整数按照子表个数取模,将得到的取模结果确定为数据库子表的序号。即本发明中,序号=(关键要素项的ASCII值移位累计相加)%子表个数。
本发明依据关键要素项和表名称前缀相关的最多子表个数计算得到的需要执行操作的数据库子表序号,即可得到需要执行操作数据的数据库子表。
步骤104,针对每一个数据库子表,依据该数据库子表的数据库子表前缀名称和序号,得到该数据库子表的名称。
本发明中预先定义了数据库子表的名称=数据库子表前缀名称+序号,因此本发明可以直接在数据库子表前缀名称后加上序号,即可得到该数据库子表的名称。
本发明中,如果数据库表名称与PREFIX指定的子表前缀名称完全相同,则本发明可以直接在数据库表名称后加上序号,即可得到数据库子表的名称。
步骤105,基于得到的各个数据库子表的名称,生成用于oracle执行的SQL脚本。
步骤106,将所述SQL脚本提交至所述oracle执行。
在获得数据库子表的名称后,本发明基于得到的各个数据库子表的名称,生成用于oracle执行的SQL脚本,进而将生成的SQL脚本,按照数据库接口规范提交至oracle执行,完成SQL执行操作。如果客户发起的操作请求为查询操作,则生成的SQL脚本为查询语句,oracle执行所述查询语句,将查询结果返回至前端。
本发明提供的基于Oracle的海量数据处理方法中,一个关键要素项对应一个数据库表,而一个数据库表被分成了多个数据库子表,本发明将海量数据采用分子表存储的方法,这样每个数据库子表中存储的数据量大大减少。在实际应用中,借助于类SQL语句的生成、解析,能够准确快速地找到对应关键要素项的具有相同前缀名称的多个数据库子表,那么以操作请求具体为查询请求为例,本发明按照查询条件“账号+查询起始日期+查询结束日期”查询数据时,实际是在多个数据库子表中同时进行查询操作,检索速度大大提高,能够有效解决现有技术中基于海量数据的查询操作响应速度缓慢、超时的问题。
基于前文本发明提供的一种基于Oracle的海量数据处理方法,本发明还提供一种基于Oracle的海量数据处理装置,如图3所示,装置可以包括:
类SQL语句生成单元100,用于依据接收到的客户发起的操作请求,生成类SQL语句,所述类SQL语句包含SQL语句结构部分、数据库子表前缀名称、关键要素项、表名称前缀相关的最多子表个数;其中一个关键要素项对应一个数据库表,且一个数据库表被分成多个数据库子表,对应同一个数据库表的多个数据库子表的前缀名称相同;
解析单元200,用于解析所述类SQL语句,获取所述类SQL语句中的SQL语句结构部分、数据库子表前缀名称、关键要素项、表名称前缀相关的最多子表个数;
计算单元300,用于依据关键要素项和表名称前缀相关的最多子表个数,计算各个数据库子表的序号;
其中所述计算单元300可以具体用于,将关键要素项的ASCII值移位累计相加得到一个整数;对所述整数按照子表个数取模;将得到的取模结果确定为数据库子表的序号。
获得单元400,用于针对每一个数据库子表,依据该数据库子表的数据库子表前缀名称和序号,得到该数据库子表的名称;
脚本生成单元500,用于基于得到的各个数据库子表的名称,生成用于oracle执行的SQL脚本;
提交单元600,用于将所述SQL脚本提交至所述oracle执行。
可选地,如图4所示,本发明提供的基于Oracle的海量数据处理装置还可以包括:
验证单元700,用于验证所述类SQL语句的合法性。
该验证单元700可以具体用于,验证所述类SQL语句是否包含SQL语句结构部分、数据库子表前缀名称、关键要素项和表名称前缀相关的最多子表个数;
所述类SQL语句涉及的数据库操作是否为以下操作之一:数据库操作SELECT、INSERT INTO、UPDATE、DELETE、MERGE大小写不敏感关键字操作;所述类SQL语句涉及的检查语句SELECT中是否含有where大小写不敏感关键字。
如图5所示,本发明中的类SQL语句生成单元100可以包括:
第一确定子单元110,用于依据所述数据库子表的类标识确定数据库子表前缀名称;
第二确定子单元120,用于依据数据库表中的记录数和操作并发数,确定表名称前缀相关的最多子表个数;
第三确定子单元130,用于依据所述关键字确定关键要素项;
生成子单元140,用于基于确定的数据库子表前缀名称、表名称前缀相关的最多子表个数和关键要素项,生成类SQL语句。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本申请所提供的一种基于Oracle的海量数据处理方法和装置进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (10)

1.一种基于Oracle的海量数据处理方法,其特征在于,方法包括:
依据接收到的客户发起的操作请求,生成类SQL语句,所述类SQL语句包含SQL语句结构部分、数据库子表前缀名称、关键要素项、表名称前缀相关的最多子表个数;其中一个关键要素项对应一个数据库表,且一个数据库表被分成多个数据库子表,对应同一个数据库表的多个数据库子表的前缀名称相同;
解析所述类SQL语句,获取所述类SQL语句中的SQL语句结构部分、数据库子表前缀名称、关键要素项、表名称前缀相关的最多子表个数;
依据关键要素项和表名称前缀相关的最多子表个数,计算各个数据库子表的序号;
针对每一个数据库子表,依据该数据库子表的数据库子表前缀名称和序号,得到该数据库子表的名称;
基于得到的各个数据库子表的名称,生成用于oracle执行的SQL脚本;
将所述SQL脚本提交至所述oracle执行,在多个数据库子表中同时进行查询操作,以便提高检索速度。
2.根据权利要求1所述的方法,其特征在于,在生成所述类SQL语句之后,所述方法还包括:
验证所述类SQL语句的合法性;
其中在验证所述类SQL语句合法后,再执行解析所述类SQL语句的步骤。
3.根据权利要求2所述的方法,其特征在于,所述验证所述类SQL语句的合法性包括:
验证所述类SQL语句是否包含SQL语句结构部分、数据库子表前缀名称、关键要素项和表名称前缀相关的最多子表个数;
所述类SQL语句涉及的数据库操作是否为以下操作之一:数据库操作SELECT、INSERTINTO、UPDATE、DELETE、MERGE大小写不敏感关键字操作;所述类SQL语句涉及的检查语句SELECT中是否含有where大小写不敏感关键字。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述客户发起的操作请求包括关键字、数据库子表的类标识,所述依据接收到的客户发起的操作请求,生成类SQL语句包括:
依据所述数据库子表的类标识确定数据库子表前缀名称;
依据数据库表中的记录数和操作并发数,确定表名称前缀相关的最多子表个数;
依据所述关键字确定关键要素项;
基于确定的数据库子表前缀名称、表名称前缀相关的最多子表个数和关键要素项,生成类SQL语句。
5.根据权利要求1-3任一项所述的方法,其特征在于,所述依据关键要素项和表名称前缀相关的最多子表个数,计算各个数据库子表的序号包括:
将关键要素项的ASCII值移位累计相加得到一个整数;
对所述整数按照子表个数取模;
将得到的取模结果确定为数据库子表的序号。
6.一种基于Oracle的海量数据处理装置,其特征在于,装置包括:
类SQL语句生成单元,用于依据接收到的客户发起的操作请求,生成类SQL语句,所述类SQL语句包含SQL语句结构部分、数据库子表前缀名称、关键要素项、表名称前缀相关的最多子表个数;其中一个关键要素项对应一个数据库表,且一个数据库表被分成多个数据库子表,对应同一个数据库表的多个数据库子表的前缀名称相同;
解析单元,用于解析所述类SQL语句,获取所述类SQL语句中的SQL语句结构部分、数据库子表前缀名称、关键要素项、表名称前缀相关的最多子表个数;
计算单元,用于依据关键要素项和表名称前缀相关的最多子表个数,计算各个数据库子表的序号;
获得单元,用于针对每一个数据库子表,依据该数据库子表的数据库子表前缀名称和序号,得到该数据库子表的名称;
脚本生成单元,用于基于得到的各个数据库子表的名称,生成用于oracle执行的SQL脚本;
提交单元,用于将所述SQL脚本提交至所述oracle执行,在多个数据库子表中同时进行查询操作,以便提高检索速度。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
验证单元,用于验证所述类SQL语句的合法性。
8.根据权利要求7所述的装置,其特征在于,所述验证单元具体用于,验证所述类SQL语句是否包含SQL语句结构部分、数据库子表前缀名称、关键要素项和表名称前缀相关的最多子表个数;
所述类SQL语句涉及的数据库操作是否为以下操作之一:数据库操作SELECT、INSERTINTO、UPDATE、DELETE、MERGE大小写不敏感关键字操作;所述类SQL语句涉及的检查语句SELECT中是否含有where大小写不敏感关键字。
9.根据权利要求6-8任一项所述的装置,其特征在于,所述类SQL语句生成单元包括:
第一确定子单元,用于依据所述数据库子表的类标识确定数据库子表前缀名称;
第二确定子单元,用于依据数据库表中的记录数和操作并发数,确定表名称前缀相关的最多子表个数;
第三确定子单元,用于依据关键字确定关键要素项;
生成子单元,用于基于确定的数据库子表前缀名称、表名称前缀相关的最多子表个数和关键要素项,生成类SQL语句。
10.根据权利要求6-8任一项所述的装置,其特征在于,
所述计算单元具体用于,将关键要素项的ASCII值移位累计相加得到一个整数;对所述整数按照子表个数取模;将得到的取模结果确定为数据库子表的序号。
CN201811324819.8A 2018-11-08 2018-11-08 一种基于Oracle的海量数据处理方法和装置 Active CN109492006B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811324819.8A CN109492006B (zh) 2018-11-08 2018-11-08 一种基于Oracle的海量数据处理方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811324819.8A CN109492006B (zh) 2018-11-08 2018-11-08 一种基于Oracle的海量数据处理方法和装置

Publications (2)

Publication Number Publication Date
CN109492006A CN109492006A (zh) 2019-03-19
CN109492006B true CN109492006B (zh) 2022-02-11

Family

ID=65695312

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811324819.8A Active CN109492006B (zh) 2018-11-08 2018-11-08 一种基于Oracle的海量数据处理方法和装置

Country Status (1)

Country Link
CN (1) CN109492006B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112434115B (zh) * 2020-11-23 2024-02-06 京东科技控股股份有限公司 一种数据处理方法、装置、电子设备及可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105868204A (zh) * 2015-01-21 2016-08-17 中国移动(深圳)有限公司 一种转换Oracle脚本语言SQL的方法及装置
CN105975617A (zh) * 2016-05-20 2016-09-28 北京京东尚科信息技术有限公司 一种多分区表查询处理的方法和装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5408600B2 (ja) * 2008-05-28 2014-02-05 インターナショナル・ビジネス・マシーンズ・コーポレーション 決定装置、データベース装置、プログラムおよび決定方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105868204A (zh) * 2015-01-21 2016-08-17 中国移动(深圳)有限公司 一种转换Oracle脚本语言SQL的方法及装置
CN105975617A (zh) * 2016-05-20 2016-09-28 北京京东尚科信息技术有限公司 一种多分区表查询处理的方法和装置

Also Published As

Publication number Publication date
CN109492006A (zh) 2019-03-19

Similar Documents

Publication Publication Date Title
CN101681368B (zh) 聚集查询处理的方法和装置
CN110543517B (zh) 一种基于Elasticsearch实现海量数据复杂查询方法、装置及介质
US8010521B2 (en) Systems and methods for managing foreign key constraints
US7925672B2 (en) Metadata management for a data abstraction model
US7610264B2 (en) Method and system for providing a learning optimizer for federated database systems
US8447743B2 (en) Techniques for processing database queries including user-defined functions
US10540375B2 (en) Systems and methods for self-pairing databases
CN108647357B (zh) 数据查询的方法及装置
CN111767303A (zh) 一种数据查询方法、装置、服务器及可读存储介质
CN102262640A (zh) 一种全文检索文档数据库的方法及装置
CN103262076A (zh) 分析数据处理
JPH10232804A (ja) データベースシステムにおいて集合体照会を遂行するための方法と装置
CN106294478A (zh) 数据仓库的数据处理方法及装置
CN110837520A (zh) 一种数据处理方法、平台及系统
US9047561B2 (en) Contextual network access optimizer
CN111127068A (zh) 一种工程量清单自动组价方法和装置
CN109492006B (zh) 一种基于Oracle的海量数据处理方法和装置
CN111460240A (zh) 一种跨地域多活微服务架构下翻页数据查询方法及装置
US7873607B1 (en) Model driven consolidator of database information
CN110147396B (zh) 一种映射关系生成方法及装置
CN111242751A (zh) 快件订单更新方法、装置、设备及存储介质
EP3227794A1 (en) Unstructured search query generation from a set of structured data terms
US11875386B2 (en) Estimating as-a-service query prices within optimizer explained plans
US11593366B2 (en) Techniques for pushing joins into union all views
CN112632115A (zh) 一种基于bi的数据查询方法及系统

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