一种实现复杂数据处理的方法、装置及系统的制作方法

文档序号:6506791阅读:149来源:国知局
一种实现复杂数据处理的方法、装置及系统的制作方法
【专利摘要】本发明公开了一种实现复杂数据处理的方法,用于实现复杂数据的分析、处理,该方法包括:对包含代码符号和宏参数的伪结构化查询语言SQL脚本进行解析,生成可执行SQL脚本;将可执行SQL脚本发送到各个数据库服务器,以使数据库服务器对可执行SQL脚本进行执行,生成中间执行结果;获取各个数据库服务器的中间执行结果,对中间执行结果进行计算生成复杂数据处理结果。本发明还公开了一种实现复杂数据处理的装置及系统。
【专利说明】一种实现复杂数据处理的方法、装置及系统

【技术领域】
[0001] 本发明涉及数据处理【技术领域】,具体涉及一种实现复杂数据处理的方法、装置及 系统。

【背景技术】
[0002] 目前,随着信息技术的不断发展,数据库技术也随之发展,各种应用所产生的数据 不断增加。一般一个应用程序所产生的数据可以按照区域保存在不同的数据库服务器中, 一个数据库服务器中可以有若干个数据库,数据库中可以有多个数据表,数据表中还可以 有分表。
[0003] 在现有技术中,由于数据源分别存放于多个不同的服务器中,数据存放复杂,当一 个应用程序需要进行数据处理或者数据分析时,则需要分别针对每个服务器进行单独的指 定分析任务的开发工作,再分别对不同服务器的分析结果进行汇总,获得最终的数据分析 结果。但是,现有技术中对复杂数据处理的方法,对数据分析、处理任务的开发投入高、时间 长,数据处理效率较低。


【发明内容】

[0004] 有鉴于此,本发明的主要目的是提供一种实现复杂数据处理的方法、装置及系统, 以解决现有技术中处理复杂数据效率较低的问题。
[0005] 为解决上述问题,本发明提供的技术方案如下:
[0006] -种实现复杂数据处理的方法,所述方法包括:
[0007] 对包含代码符号和宏参数的伪结构化查询语言SQL脚本进行解析,生成可执行 SQL脚本;
[0008] 将所述可执行SQL脚本发送到各个数据库服务器,以使所述数据库服务器对所述 可执行SQL脚本进行执行,生成中间执行结果;
[0009] 获取所述各个数据库服务器的中间执行结果,对所述中间执行结果进行计算生成 复杂数据处理结果。
[0010] 相应的,所述对包含代码符号和宏参数的伪SQL脚本进行解析,生成可执行SQL脚 本,包括:
[0011] 对包含代码符号的伪SQL脚本进行解析,获得每个数据库服务器对应的子SQL脚 本以及SQL属性;
[0012] 对所述子SQL脚本中包含的宏参数进行替换,生成可执行SQL脚本。
[0013] 相应的,所述将所述可执行SQL脚本发送到各个数据库服务器,包括:
[0014] 根据所述SQL属性,将所述可执行SQL脚本发送到对应的数据库服务器,所述SQL 属性包括所述可执行SQL脚本对应的数据库服务器信息、数据库信息以及数据表信息。
[0015] 相应的,所述方法还包括:
[0016] 将所述复杂数据处理结果发送至结果数据库服务器进行存储。
[0017] 一种实现复杂数据处理的装置,所述装置包括:
[0018] 解析单元,用于对包含代码符号和宏参数的伪结构化查询语言SQL脚本进行解 析,生成可执行SQL脚本;
[0019] 第一发送单元,用于将所述可执行SQL脚本发送到各个数据库服务器,以使所述 数据库服务器对所述可执行SQL脚本进行执行,生成中间执行结果;
[0020] 计算单元,用于获取所述各个数据库服务器的中间执行结果,对所述中间执行结 果进行计算生成复杂数据处理结果。
[0021] 相应的,所述解析单元包括:
[0022] 解析子单元,用于对包含代码符号的伪SQL脚本进行解析,获得每个数据库服务 器对应的子SQL脚本以及SQL属性;
[0023] 替换子单元,用于对所述子SQL脚本中包含的宏参数进行替换,获得可执行SQL脚 本。
[0024] 相应的,所述发送单元具体用于:
[0025] 根据所述SQL属性,将所述可执行SQL脚本发送到对应的数据库服务器,所述SQL 属性包括所述可执行SQL脚本对应的数据库服务器信息、数据库信息以及数据表信息。
[0026] 相应的,所述装置还包括:
[0027] 第二发送单元,用于将所述复杂数据处理结果发送至结果数据库进行存储。
[0028] -种实现复杂数据处理的系统,所述系统包括:
[0029] 伪结构化查询语言SQL执行服务器以及数据库服务器;
[0030] 所述伪SQL执行服务器是上述一种实现复杂数据处理的装置;
[0031] 所述数据库服务器,用于对所述伪SQL执行服务器解析生成的可执行SQL脚本进 行执行,生成中间执行结果。
[0032] 相应的,所述系统还包括:
[0033] 结果数据库服务器,用于对所述伪SQL执行服务器生成的复杂数据处理结果进行 存储。
[0034] 相应的,所述系统还包括:
[0035] 配置数据库服务器,用于保存包含代码符号和宏参数的伪SQL脚本。
[0036] 由此可见,本发明实施例具有如下有益效果:
[0037] 本发明实施例通过对包含代码符号和宏参数的伪SQL脚本的解析,获得可以分别 在不同服务器中执行的可执行SQL脚本,将可执行SQL脚本发送到对应的远端数据库服务 器上执行,获取该可执行SQL脚本的执行结果进行运算,得到最终结果,实现了现有技术中 需要通过重复编写代码来进行复杂数据分析处理的功能,提高开发效率。同时,将SQL脚本 中的变量值用宏参数代替,实现脚本的复用,大幅提高处理复杂数据的效率,节约了人力成 本。

【专利附图】

【附图说明】
[0038] 图1为本发明实施例实现复杂数据处理的方法实施例一的流程图;
[0039] 图2为本发明实施例实现复杂数据处理的方法实施例二的流程图;
[0040] 图3为本发明实施例实现复杂数据处理的方法实施例的系统架构流程图;
[0041] 图4为本发明实施例实现复杂数据处理的方法实施例中伪SQL解析过程流程图;
[0042] 图5为本发明实施例实现复杂数据处理的装置实施例的示意图;
[0043] 图6为本发明实施例实现复杂数据处理的系统实施例一的示意图;
[0044] 图7为本发明实施例实现复杂数据处理的系统实施例二的示意图;
[0045] 图8为本发明实施例提供的服务器的结构示意图。

【具体实施方式】
[0046] 为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实 施方式对本发明实施例作进一步详细的说明。
[0047] 本发明实施例提供的一种实现复杂数据处理的方法、装置及系统,是针对现有 技术中对复杂数据处理的方法,对数据分析、处理任务的开发投入高、时间长,数据处理 效率较低的问题,提出预先设置包含代码符号以及宏参数的伪SQL (Structured Query Language,结构化查询语言)脚本,其中代码符号以及宏参数可以用来表示SQL属性、变量值 等,例如服务器编号、时间等信息。将现有技术中重复开发实现的功能转化为功能模块,将 功能模块通过指定符号代码内嵌于SQL脚本中,则对包含代码符号和宏参数的伪SQL脚本 进行解析,可以生成对应于不同数据源的可执行SQL脚本。将可执行SQL脚本发送到各个 数据库服务器执行,对各个数据库服务器的中间执行结果进行二次运算,获得最终的复杂 数据处理结果。在该过程中,不需要对各个数据库服务器进行单独的分析任务开发,且可以 自动实现最终生成复杂数据处理结果,提高了复杂数据处理效率。
[0048] 本发明实施例可以从实现复杂数据处理的装置角度进行描述,该实现复杂数据处 理的装置可以集成在伪SQL执行服务器中。
[0049] 基于上述思想,参见图1所示,本发明实施例实现复杂数据处理的方法实施例一 可以包括以下步骤:
[0050] 步骤101 :对包含代码符号和宏参数的伪SQL脚本进行解析,生成可执行SQL脚 本。
[0051] 复杂数据可以定义为不能通过SQL脚本语句直接编写运行获得统计处理结果的 数据分析内容。例如,一应用程序的登录数据,该登录数据分别存储在不同地区分布的10 个数据库服务器上,每个数据库服务器包含若干个数据库,则无法通过SQL脚本语句直接 获得全部登录数据的数据分析内容。
[0052] 本发明实施例通过对包含代码符号和宏参数的伪SQL脚本进行解析,生成可以在 不同数据源执行的可执行SQL脚本,从而实现脚本的复用。
[0053] 其中,代码符号和宏参数可以进行预先定义,其中代码符号可以用来表示SQL的 相关属性、宏参数可以用来替换数据中的变量值,代码符号和宏参数通过与SQL脚本结合 的形式,可以完成需要通过重复编写代码来实现的复杂数据处理功能。
[0054] 伪SQL脚本将现有技术中重复实现的功能转化为功能模块,将功能模块通过代码 符号内嵌于SQL脚本中,对伪SQL脚本进行解析,可以生成若干个可执行SQL脚本,完成现 有技术中大量需要代码完成的工作。
[0055] 同时,伪SQL脚本也适用于多种数据库SQL脚本语言,例如MySql、Oracle、 SqlServer 等等。
[0056] 步骤102 :将可执行SQL脚本发送到各个数据库服务器,以使数据库服务器对可执 行SQL脚本进行执行,生成中间执行结果。
[0057] 在步骤101中将伪SQL脚本解析生成了可以在不同数据源执行的可执行SQL脚 本,则将生成的可执行SQL脚本发送到对应的数据库服务器中,数据库服务器可以执行这 些SQL脚本,并生成中间执行结果。
[0058] 步骤103 :获取各个数据库服务器的中间执行结果,对中间执行结果进行计算生 成复杂数据处理结果。
[0059] 在各个数据库执行SQL脚本生成中间执行结果后,伪SQL执行服务器可以拉取各 个数据库服务器的中间执行结果,在中间执行结果的基础上进行二次运算,例如对各个数 据库服务器的中间执行结果进行汇总、合并等计算,可以获得复杂数据最终的处理结果。
[0060] 在本方法实施例中通过对包含代码符号和宏参数的伪SQL脚本的解析,获得可以 分别在不同服务器中执行的可执行SQL脚本,将可执行SQL脚本发送到对应的远端数据库 服务器上执行,获取该可执行SQL脚本的执行结果并进行二次运算,得到最终结果,实现了 现有技术中需要通过重复编写代码来进行复杂数据分析处理的功能,提高开发效率。
[0061] 在本发明的一些实施例中,对包含代码符号和宏参数的伪SQL脚本进行解析,生 成可执行SQL脚本的具体实现可以包括:
[0062] 对包含代码符号的伪SQL脚本进行解析,获得每个数据库服务器对应的子SQL脚 本以及SQL属性;
[0063] 对子SQL脚本中包含的宏参数进行替换,生成可执行SQL脚本。
[0064] 也就是说,在伪SQL脚本的解析过程可以先根据代码符号将伪SQL脚本中的子SQL 语句先拆分出来,根据代码符号获得子SQL语句对应的SQL属性,SQL属性可以包括可执行 SQL脚本对应的数据库服务器信息、数据库信息以及数据表信息。例如,对伪SQL脚本进行 解析,可以获得子SQL语句在哪个数据库服务器上执行,在哪个数据库执行以及中间执行 结果保存为临时表的格式等等信息。
[0065] 在本发明的一些实施例中,将可执行SQL脚本发送到各个数据库服务器的具体实 现可以包括:
[0066] 根据SQL属性,将可执行SQL脚本发送到对应的数据库服务器。
[0067] 在本发明的一些实施例中,本发明实施例实现复杂数据处理的方法还可以包括:
[0068] 将复杂数据处理结果发送至结果数据库服务器进行存储。
[0069] 参见图2所示,本发明实施例实现复杂数据处理的方法实施例二可以包括以下步 骤:
[0070] 步骤201 :对包含代码符号的伪SQL脚本进行解析,获得每个数据库服务器对应的 子SQL脚本以及SQL属性。
[0071] 步骤202 :对子SQL脚本中包含的宏参数进行替换,生成可执行SQL脚本。
[0072] 步骤203 :根据SQL属性,将可执行SQL脚本发送到对应的数据库服务器,以使数 据库服务器对可执行SQL脚本进行执行,生成中间执行结果。
[0073] 步骤204 :获取各个数据库服务器的中间执行结果,对中间执行结果进行计算生 成复杂数据处理结果。
[0074] 步骤205 :将复杂数据处理结果发送至结果数据库服务器进行存储。
[0075] 基于上述方法实施例二,本发明实施例还提供一种实现复杂数据处理的系统,包 括伪SQL执行服务器、数据库服务器以及结果数据库服务器,结合图3所示的流程示意图, 对上述过程再进行说明。
[0076] 伪SQL执行服务器对包含代码符号的伪SQL脚本进行解析,获得多个子SQL脚本 以及子SQL脚本的SQL属性,子SQL脚本可以与不同数据库服务器对应。对子SQL脚本中 包含的宏参数进行替换,生成可执行SQL脚本。伪SQL执行服务器根据子SQL脚本的SQL 属性,将可执行SQL脚本发送到对应的数据库服务器。数据库服务器对可执行SQL脚本进 行执行,生成中间执行结果,返回伪SQL执行服务器。伪SQL执行服务器对中间执行结果进 行二次计算,获得复杂数据处理结果,发送至结果数据库服务器进行存储。完成复杂数据的 处理过程。
[0077] 在实际应用中,代码符号的定义可以如表一所示:
[0078] 表一、代码符号定义表
[0079]

【权利要求】
1. 一种实现复杂数据处理的方法,其特征在于,所述方法包括: 对包含代码符号和宏参数的伪结构化查询语言S化脚本进行解析,生成可执行S化脚 本; 将所述可执行S化脚本发送到各个数据库服务器,W使所述数据库服务器对所述可执 行S化脚本进行执行,生成中间执行结果; 获取所述各个数据库服务器的中间执行结果,对所述中间执行结果进行计算生成复杂 数据处理结果。
2. 根据权利要求1所述的方法,其特征在于,所述对包含代码符号和宏参数的伪S化脚 本进行解析,生成可执行S化脚本,包括: 对包含代码符号的伪S化脚本进行解析,获得每个数据库服务器对应的子S化脚本W 及S化属性; 对所述子S化脚本中包含的宏参数进行替换,生成可执行S化脚本。
3. 根据权利要求2所述的方法,其特征在于,所述将所述可执行S化脚本发送到各个数 据库服务器,包括: 根据所述S化属性,将所述可执行S化脚本发送到对应的数据库服务器,所述S化属性 包括所述可执行S化脚本对应的数据库服务器信息、数据库信息W及数据表信息。
4. 根据权利要求1所述的方法,其特征在于,所述方法还包括: 将所述复杂数据处理结果发送至结果数据库服务器进行存储。
5. -种实现复杂数据处理的装置,其特征在于,所述装置包括: 解析单元,用于对包含代码符号和宏参数的伪结构化查询语言S化脚本进行解析,生 成可执行S化脚本; 第一发送单元,用于将所述可执行S化脚本发送到各个数据库服务器,W使所述数据 库服务器对所述可执行S化脚本进行执行,生成中间执行结果; 计算单元,用于获取所述各个数据库服务器的中间执行结果,对所述中间执行结果进 行计算生成复杂数据处理结果。
6. 根据权利要求5所述的装置,其特征在于,所述解析单元包括: 解析子单元,用于对包含代码符号的伪S化脚本进行解析,获得每个数据库服务器对 应的子S化脚本W及S化属性; 替换子单元,用于对所述子S化脚本中包含的宏参数进行替换,获得可执行S化脚本。
7. 根据权利要求6所述的装置,其特征在于,所述发送单元具体用于: 根据所述S化属性,将所述可执行S化脚本发送到对应的数据库服务器,所述S化属性 包括所述可执行S化脚本对应的数据库服务器信息、数据库信息W及数据表信息。
8. 根据权利要求5所述的装置,其特征在于,所述装置还包括: 第二发送单元,用于将所述复杂数据处理结果发送至结果数据库进行存储。
9. 一种实现复杂数据处理的系统,其特征在于,所述系统包括: 伪结构化查询语言S化执行服务器W及数据库服务器; 所述伪S化执行服务器是权利要求5-8任一项所述的装置; 所述数据库服务器,用于对所述伪S化执行服务器解析生成的可执行S化脚本进行执 行,生成中间执行结果。
10. 根据权利要求9所述的系统,其特征在于,所述系统还包括: 结果数据库服务器,用于对所述伪S化执行服务器生成的复杂数据处理结果进行存 储。
11. 根据权利要求9所述的系统,其特征在于,所述系统还包括: 配置数据库服务器,用于保存包含代码符号和宏参数的伪S化脚本。
【文档编号】G06F17/30GK104346378SQ201310330179
【公开日】2015年2月11日 申请日期:2013年7月31日 优先权日:2013年7月31日
【发明者】王荣奇, 田兰, 付晓琛 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1