CN104346378B - 一种实现复杂数据处理的方法、装置及*** - Google Patents

一种实现复杂数据处理的方法、装置及*** Download PDF

Info

Publication number
CN104346378B
CN104346378B CN201310330179.2A CN201310330179A CN104346378B CN 104346378 B CN104346378 B CN 104346378B CN 201310330179 A CN201310330179 A CN 201310330179A CN 104346378 B CN104346378 B CN 104346378B
Authority
CN
China
Prior art keywords
sql
sql script
database server
script
server
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
CN201310330179.2A
Other languages
English (en)
Other versions
CN104346378A (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.)
Tencent Technology Shenzhen Co Ltd
Tencent Cloud Computing Beijing Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201310330179.2A priority Critical patent/CN104346378B/zh
Publication of CN104346378A publication Critical patent/CN104346378A/zh
Application granted granted Critical
Publication of CN104346378B publication Critical patent/CN104346378B/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/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24561Intermediate data storage techniques for performance improvement

Landscapes

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

Abstract

本发明公开了一种实现复杂数据处理的方法,用于实现复杂数据的分析、处理,该方法包括:对包含代码符号和宏参数的伪结构化查询语言SQL脚本进行解析,生成可执行SQL脚本;将可执行SQL脚本发送到各个数据库服务器,以使数据库服务器对可执行SQL脚本进行执行,生成中间执行结果;获取各个数据库服务器的中间执行结果,对中间执行结果进行计算生成复杂数据处理结果。本发明还公开了一种实现复杂数据处理的装置及***。

Description

一种实现复杂数据处理的方法、装置及***
技术领域
本发明涉及数据处理技术领域,具体涉及一种实现复杂数据处理的方法、装置及***。
背景技术
目前,随着信息技术的不断发展,数据库技术也随之发展,各种应用所产生的数据不断增加。一般一个应用程序所产生的数据可以按照区域保存在不同的数据库服务器中,一个数据库服务器中可以有若干个数据库,数据库中可以有多个数据表,数据表中还可以有分表。
在现有技术中,由于数据源分别存放于多个不同的服务器中,数据存放复杂,当一个应用程序需要进行数据处理或者数据分析时,则需要分别针对每个服务器进行单独的指定分析任务的开发工作,再分别对不同服务器的分析结果进行汇总,获得最终的数据分析结果。但是,现有技术中对复杂数据处理的方法,对数据分析、处理任务的开发投入高、时间长,数据处理效率较低。
发明内容
有鉴于此,本发明的主要目的是提供一种实现复杂数据处理的方法、装置及***,以解决现有技术中处理复杂数据效率较低的问题。
为解决上述问题,本发明提供的技术方案如下:
一种实现复杂数据处理的方法,所述方法包括:
对包含代码符号和宏参数的伪结构化查询语言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脚本中的变量值用宏参数代替,实现脚本的复用,大幅提高处理复杂数据的效率,节约了人力成本。
附图说明
图1为本发明实施例实现复杂数据处理的方法实施例一的流程图;
图2为本发明实施例实现复杂数据处理的方法实施例二的流程图;
图3为本发明实施例实现复杂数据处理的方法实施例的***架构流程图;
图4为本发明实施例实现复杂数据处理的方法实施例中伪SQL解析过程流程图;
图5为本发明实施例实现复杂数据处理的装置实施例的示意图;
图6为本发明实施例实现复杂数据处理的***实施例一的示意图;
图7为本发明实施例实现复杂数据处理的***实施例二的示意图;
图8为本发明实施例提供的服务器的结构示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明实施例作进一步详细的说明。
本发明实施例提供的一种实现复杂数据处理的方法、装置及***,是针对现有技术中对复杂数据处理的方法,对数据分析、处理任务的开发投入高、时间长,数据处理效率较低的问题,提出预先设置包含代码符号以及宏参数的伪SQL(Structured QueryLanguage,结构化查询语言)脚本,其中代码符号以及宏参数可以用来表示SQL属性、变量值等,例如服务器编号、时间等信息。将现有技术中重复开发实现的功能转化为功能模块,将功能模块通过指定符号代码内嵌于SQL脚本中,则对包含代码符号和宏参数的伪SQL脚本进行解析,可以生成对应于不同数据源的可执行SQL脚本。将可执行SQL脚本发送到各个数据库服务器执行,对各个数据库服务器的中间执行结果进行二次运算,获得最终的复杂数据处理结果。在该过程中,不需要对各个数据库服务器进行单独的分析任务开发,且可以自动实现最终生成复杂数据处理结果,提高了复杂数据处理效率。
本发明实施例可以从实现复杂数据处理的装置角度进行描述,该实现复杂数据处理的装置可以集成在伪SQL执行服务器中。
基于上述思想,参见图1所示,本发明实施例实现复杂数据处理的方法实施例一可以包括以下步骤:
步骤101:对包含代码符号和宏参数的伪SQL脚本进行解析,生成可执行SQL脚本。
复杂数据可以定义为不能通过SQL脚本语句直接编写运行获得统计处理结果的数据分析内容。例如,一应用程序的登录数据,该登录数据分别存储在不同地区分布的10个数据库服务器上,每个数据库服务器包含若干个数据库,则无法通过SQL脚本语句直接获得全部登录数据的数据分析内容。
本发明实施例通过对包含代码符号和宏参数的伪SQL脚本进行解析,生成可以在不同数据源执行的可执行SQL脚本,从而实现脚本的复用。
其中,代码符号和宏参数可以进行预先定义,其中代码符号可以用来表示SQL的相关属性、宏参数可以用来替换数据中的变量值,代码符号和宏参数通过与SQL脚本结合的形式,可以完成需要通过重复编写代码来实现的复杂数据处理功能。
伪SQL脚本将现有技术中重复实现的功能转化为功能模块,将功能模块通过代码符号内嵌于SQL脚本中,对伪SQL脚本进行解析,可以生成若干个可执行SQL脚本,完成现有技术中大量需要代码完成的工作。
同时,伪SQL脚本也适用于多种数据库SQL脚本语言,例如MySql、Oracle、SqlServer等等。
步骤102:将可执行SQL脚本发送到各个数据库服务器,以使数据库服务器对可执行SQL脚本进行执行,生成中间执行结果。
在步骤101中将伪SQL脚本解析生成了可以在不同数据源执行的可执行SQL脚本,则将生成的可执行SQL脚本发送到对应的数据库服务器中,数据库服务器可以执行这些SQL脚本,并生成中间执行结果。
步骤103:获取各个数据库服务器的中间执行结果,对中间执行结果进行计算生成复杂数据处理结果。
在各个数据库执行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脚本发送到对应的数据库服务器。
在本发明的一些实施例中,本发明实施例实现复杂数据处理的方法还可以包括:
将复杂数据处理结果发送至结果数据库服务器进行存储。
参见图2所示,本发明实施例实现复杂数据处理的方法实施例二可以包括以下步骤:
步骤201:对包含代码符号的伪SQL脚本进行解析,获得每个数据库服务器对应的子SQL脚本以及SQL属性。
步骤202:对子SQL脚本中包含的宏参数进行替换,生成可执行SQL脚本。
步骤203:根据SQL属性,将可执行SQL脚本发送到对应的数据库服务器,以使数据库服务器对可执行SQL脚本进行执行,生成中间执行结果。
步骤204:获取各个数据库服务器的中间执行结果,对中间执行结果进行计算生成复杂数据处理结果。
步骤205:将复杂数据处理结果发送至结果数据库服务器进行存储。
基于上述方法实施例二,本发明实施例还提供一种实现复杂数据处理的***,包括伪SQL执行服务器、数据库服务器以及结果数据库服务器,结合图3所示的流程示意图,对上述过程再进行说明。
伪SQL执行服务器对包含代码符号的伪SQL脚本进行解析,获得多个子SQL脚本以及子SQL脚本的SQL属性,子SQL脚本可以与不同数据库服务器对应。对子SQL脚本中包含的宏参数进行替换,生成可执行SQL脚本。伪SQL执行服务器根据子SQL脚本的SQL属性,将可执行SQL脚本发送到对应的数据库服务器。数据库服务器对可执行SQL脚本进行执行,生成中间执行结果,返回伪SQL执行服务器。伪SQL执行服务器对中间执行结果进行二次计算,获得复杂数据处理结果,发送至结果数据库服务器进行存储。完成复杂数据的处理过程。
在实际应用中,代码符号的定义可以如表一所示:
表一、代码符号定义表
在实际应用中,宏参数的定义可以如表二所示:
表二、宏参数定义表
宏参数 说明
:BEGIN_DAY_TIME 日统计开始时间
:END_DAY_TIME 日统计截止时间
:BEGIN_HOUR_TIME 小时统计开始时间
:END_HOUR_TIME 小时统计截止时间
:5MIN_STAT_TIME 5分钟统计时间
:WORLD_ID 大区服务器ID
:CLUSTER_ID 总服务器ID
:LOGIN_WAY 登录渠道
:Y/:y 年份2013/13
:M/:m 月份03/3
:D/:d 日期09/9
基于上述代码符号定义表以及宏参数定义表,参见图4所示,在实际应用中,对包含代码符号和宏参数的伪SQL脚本进行解析,生成可执行SQL脚本的过程包括:
对伪SQL脚本中包含的“{}”进行解析获得若干个子SQL脚本,对各个子SQL脚本中的“##”进行解析获得对应的服务器信息,以及中间执行结果保存的临时表信息,对各个子SQL脚本中的“[]”进行解析获得对应的数据库信息,对各个子SQL脚本中的“@@”进行解析获得数据库信息中分表的信息,最后对各个子SQL脚本中的宏参数替换为实际数值,则可以将伪SQL脚本解析为可执行SQL脚本。
再通过一个具体应用实例,对上述实施例提供的实现复杂数据处理的方法进行进一步的说明。
例如:某应用程序需要统计2013年3月15日每个用户的登录次数以及付费次数。
应用程序的日志数据库结构较为复杂,分别存储于10个数据库服务器上,每个数据库服务器的数据源库分为0-99个数据库,所需要的源表(登录数据表)tbUserLogin按天分表(如tbUserLogin2013_03_09),所需要的另一源表(付费数据表)tbUserPay不分表。
则伪SQL脚本为:
对上述伪SQL脚本进行解析,首先通过解析“{}”获得两个子SQL脚本:
子句1:
子句2:
对各个子SQL脚本中的“##”进行解析,得到子句1以及子句2的SQL属性为在1-10号数据库服务器上执行,对各个子SQL脚本中的“[]”进行解析,将语句中的宏定义参数替换为实际运行的值,:BEGIN_DAY_TIME替换为2013-03-15 00:00:00,:END_DAY_TIME替换为2013-03-15 23:59:59,tbLogin:Y_:M_:D替换为tbUserLogin2013_03_15,得到最终的可执行SQL脚本。
对各个子SQL脚本中的“@@”进行解析,得到SQL属性为到每个数据库服务器的0-99个数据库中执行可执行SQL脚本,并将结果合并为指定名称结果表(<>值对即为表名),并存储于伪SQL执行服务器的数据库中。
在此例中子句1生成临时表tb1,子句2生成临时表tb2。
将子句用临时表名替换,形成新的SQL执行语句:
SELECT tb1.iUin,tb1.LoginCount,tb2.PayCount FROM tb1,tb2WHEREtb1.iUin=tb2.iUin
即将中间执行结果(各个大区数据库服务器用户的登录次数、付费次数),再进行二次运算。本实例的二次运算,即为输出所有大区数据库服务器的各个用户登录次数和付费次数。
在伪SQL执行服务器上执行最后生成的语句,得到最终的处理结果,处理结果可以存于指定表中。
由此可见,本发明实施例通过对包含代码符号和宏参数的伪SQL脚本的解析,获得可以分别在不同服务器中执行的可执行SQL脚本,将可执行SQL脚本发送到对应的远端数据库服务器上执行,获取该可执行SQL脚本的执行结果进行运算,得到最终结果,实现了现有技术中需要通过重复编写代码来进行复杂数据分析处理的功能,提高开发效率。同时,将SQL脚本中的变量值用宏参数代替,实现脚本的复用,大幅提高处理复杂数据的效率,节约了人力成本。
相应的,本发明实施例还提供一种实现复杂数据处理的装置实施例,参见图5所示,该装置实施例可以包括:
解析单元501,用于对包含代码符号和宏参数的伪结构化查询语言SQL脚本进行解析,生成可执行SQL脚本;
第一发送单元502,用于将可执行SQL脚本发送到各个数据库服务器,以使数据库服务器对可执行SQL脚本进行执行,生成中间执行结果;
计算单元503,用于获取各个数据库服务器的中间执行结果,对中间执行结果进行计算生成复杂数据处理结果。
在本发明的一些实施例中,解析单元可以包括:
解析子单元,用于对包含代码符号的伪SQL脚本进行解析,获得每个数据库服务器对应的子SQL脚本以及SQL属性;
替换子单元,用于对子SQL脚本中包含的宏参数进行替换,获得可执行SQL脚本。
在本发明的一些实施例中,发送单元可以具体用于:
根据SQL属性,将可执行SQL脚本发送到对应的数据库服务器,SQL属性包括可执行SQL脚本对应的数据库服务器信息、数据库信息以及数据表信息。
在本发明的一些实施例中,本发明实施例一种实现复杂数据处理的装置还可以包括:
第二发送单元,用于将复杂数据处理结果发送至结果数据库进行存储。
相应的,本发明实施例还提供一种实现复杂数据处理的***实施例一,参见图6所示,该***实施例可以包括:
伪SQL执行服务器601以及数据库服务器602。
伪SQL执行服务器601可以是上述一种实现复杂数据处理的装置。
伪SQL执行服务器601可以用于对包含代码符号和宏参数的伪结构化查询语言SQL脚本进行解析,生成可执行SQL脚本;将可执行SQL脚本发送到各个数据库服务器,以使数据库服务器对可执行SQL脚本进行执行,生成中间执行结果;获取各个数据库服务器的中间执行结果,对中间执行结果进行计算生成复杂数据处理结果。
在本发明的一些实施例中,其中,对包含代码符号和宏参数的伪SQL脚本进行解析,生成可执行SQL脚本的具体实现可以为:对包含代码符号的伪SQL脚本进行解析,获得每个数据库服务器对应的子SQL脚本以及SQL属性;对子SQL脚本中包含的宏参数进行替换,生成可执行SQL脚本。
在本发明的一些实施例中,将可执行SQL脚本发送到各个数据库服务器的具体实现可以为:根据SQL属性,将可执行SQL脚本发送到对应的数据库服务器,SQL属性包括可执行SQL脚本对应的数据库服务器信息、数据库信息以及数据表信息。
在本发明的一些实施例中,伪SQL执行服务器还可以用于将复杂数据处理结果发送至结果数据库服务器进行存储。
数据库服务器602,可以用于对伪SQL执行服务器解析生成的可执行SQL脚本进行执行,生成中间执行结果。
在本发明的一些实施例中,一种实现复杂数据处理的***还可以包括:
结果数据库服务器,用于对伪SQL执行服务器生成的复杂数据处理结果进行存储。
在本发明的一些实施例中,一种实现复杂数据处理的***还可以包括:
配置数据库服务器,用于保存包含代码符号和宏参数的伪SQL脚本。
本发明实施例还提供一种实现复杂数据处理的***实施例一,参见图7所示,该***实施例可以包括:
配置数据库服务器701、伪SQL执行服务器702、数据库服务器703以及结果数据库服务器704。
其中,伪SQL执行服务器702、数据库服务器703与***实施例一中的SQL执行服务器601、数据库服务器602相同,在此不再进行赘述。
结果数据库服务器,用于对伪SQL执行服务器生成的复杂数据处理结果进行存储。
配置数据库服务器,用于保存包含代码符号和宏参数的伪SQL脚本。
配置数据库服务器与前端用户页面相连,可以接收并保存用户编写的伪SQL脚本。
本***实施例的工作原理是:
伪SQL执行服务器对包含代码符号的伪SQL脚本进行解析,获得每个数据库服务器对应的子SQL脚本以及SQL属性;对子SQL脚本中包含的宏参数进行替换,生成可执行SQL脚本;根据SQL属性,将可执行SQL脚本发送到对应的数据库服务器,SQL属性包括可执行SQL脚本对应的数据库服务器信息、数据库信息以及数据表信息;数据库服务器对可执行SQL脚本进行执行,生成中间执行结果,并发送给伪SQL执行服务器;伪SQL执行服务器获取各个数据库服务器的中间执行结果,对中间执行结果进行计算生成复杂数据处理结果,并发送至结果数据库服务器进行存储;结果数据库服务器对伪SQL执行服务器生成的复杂数据处理结果进行存储。
由此可见,本发明实施例通过对包含代码符号和宏参数的伪SQL脚本的解析,获得可以分别在不同服务器中执行的可执行SQL脚本,将可执行SQL脚本发送到对应的远端数据库服务器上执行,获取该可执行SQL脚本的执行结果进行运算,得到最终结果,实现了现有技术中需要通过重复编写代码来进行复杂数据分析处理的功能,提高开发效率。同时,将SQL脚本中的变量值用宏参数代替,实现脚本的复用,大幅提高处理复杂数据的效率,节约了人力成本。
相应的,本发明实施例还提供一种服务器,参见图8所示,可以包括:
处理器801、存储器802、输入装置803和输出装置804。浏览器服务器中的处理器801的数量可以一个或多个,图8中以一个处理器为例。在本发明的一些实施例中,处理器801、存储器802、输入装置803和输出装置804可通过总线或其它方式连接,其中,图8中以通过总线连接为例。
存储器802可用于存储软件程序以及模块,处理器801通过运行存储在存储器802的软件程序以及模块,从而执行浏览器服务器的各种功能应用以及数据处理。存储器802可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序等。此外,存储器802可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。输入装置803可用于接收输入的数字或字符信息,以及产生与浏览器服务器的用户设置以及功能控制有关的键信号输入。
具体在本实施例中,处理器801会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器802中,并由处理器801来运行存储在存储器802中的应用程序,从而实现各种功能:
对包含代码符号和宏参数的伪结构化查询语言SQL脚本进行解析,生成可执行SQL脚本;
将所述可执行SQL脚本发送到各个数据库服务器,以使所述数据库服务器对所述可执行SQL脚本进行执行,生成中间执行结果;
获取所述各个数据库服务器的中间执行结果,对所述中间执行结果进行计算生成复杂数据处理结果。
相应的,所述对包含代码符号和宏参数的伪SQL脚本进行解析,生成可执行SQL脚本,包括:
对包含代码符号的伪SQL脚本进行解析,获得每个数据库服务器对应的子SQL脚本以及SQL属性;
对所述子SQL脚本中包含的宏参数进行替换,生成可执行SQL脚本。
相应的,所述将所述可执行SQL脚本发送到各个数据库服务器,包括:
根据所述SQL属性,将所述可执行SQL脚本发送到对应的数据库服务器,所述SQL属性包括所述可执行SQL脚本对应的数据库服务器信息、数据库信息以及数据表信息。
相应的,还包括:
将所述复杂数据处理结果发送至结果数据库服务器进行存储。
由此可见,本发明实施例通过对包含代码符号和宏参数的伪SQL脚本的解析,获得可以分别在不同服务器中执行的可执行SQL脚本,将可执行SQL脚本发送到对应的远端数据库服务器上执行,获取该可执行SQL脚本的执行结果进行运算,得到最终结果,实现了现有技术中需要通过重复编写代码来进行复杂数据分析处理的功能,提高开发效率。同时,将SQL脚本中的变量值用宏参数代替,实现脚本的复用,大幅提高处理复杂数据的效率,节约了人力成本。
需要说明的是,本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的***或装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (9)

1.一种实现复杂数据处理的方法,其特征在于,所述方法包括:
根据代码符号对包含所述代码符号的伪SQL脚本进行解析,获得每个数据库服务器对应的子SQL脚本以及SQL属性;对所述子SQL脚本中包含的宏参数进行替换,生成可执行SQL脚本;
将所述可执行SQL脚本发送到各个数据库服务器,以使所述数据库服务器对所述可执行SQL脚本进行执行,生成中间执行结果;
获取所述各个数据库服务器的中间执行结果,对所述中间执行结果进行计算生成复杂数据处理结果。
2.根据权利要求1所述的方法,其特征在于,所述将所述可执行SQL脚本发送到各个数据库服务器,包括:
根据所述SQL属性,将所述可执行SQL脚本发送到对应的数据库服务器,所述SQL属性包括所述可执行SQL脚本对应的数据库服务器信息、数据库信息以及数据表信息。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将所述复杂数据处理结果发送至结果数据库服务器进行存储。
4.一种实现复杂数据处理的装置,其特征在于,所述装置包括:
解析单元,用于根据代码符号对包含代码符号的伪SQL脚本进行解析,获得每个数据库服务器对应的子SQL脚本以及SQL属性;对所述子SQL脚本中包含的宏参数进行替换,获得可执行SQL脚本;
第一发送单元,用于将所述可执行SQL脚本发送到各个数据库服务器,以使所述数据库服务器对所述可执行SQL脚本进行执行,生成中间执行结果;
计算单元,用于获取所述各个数据库服务器的中间执行结果,对所述中间执行结果进行计算生成复杂数据处理结果。
5.根据权利要求4所述的装置,其特征在于,所述发送单元具体用于:
根据所述SQL属性,将所述可执行SQL脚本发送到对应的数据库服务器,所述SQL属性包括所述可执行SQL脚本对应的数据库服务器信息、数据库信息以及数据表信息。
6.根据权利要求4所述的装置,其特征在于,所述装置还包括:
第二发送单元,用于将所述复杂数据处理结果发送至结果数据库进行存储。
7.一种实现复杂数据处理的***,其特征在于,所述***包括:
伪结构化查询语言SQL执行服务器以及数据库服务器;
所述伪SQL执行服务器是权利要求4-6任一项所述的装置;
所述数据库服务器,用于对所述伪SQL执行服务器解析生成的可执行SQL脚本进行执行,生成中间执行结果。
8.根据权利要求7所述的***,其特征在于,所述***还包括:
结果数据库服务器,用于对所述伪SQL执行服务器生成的复杂数据处理结果进行存储。
9.根据权利要求7所述的***,其特征在于,所述***还包括:
配置数据库服务器,用于保存包含代码符号和宏参数的伪SQL脚本。
CN201310330179.2A 2013-07-31 2013-07-31 一种实现复杂数据处理的方法、装置及*** Active CN104346378B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310330179.2A CN104346378B (zh) 2013-07-31 2013-07-31 一种实现复杂数据处理的方法、装置及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310330179.2A CN104346378B (zh) 2013-07-31 2013-07-31 一种实现复杂数据处理的方法、装置及***

Publications (2)

Publication Number Publication Date
CN104346378A CN104346378A (zh) 2015-02-11
CN104346378B true CN104346378B (zh) 2019-02-05

Family

ID=52501995

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310330179.2A Active CN104346378B (zh) 2013-07-31 2013-07-31 一种实现复杂数据处理的方法、装置及***

Country Status (1)

Country Link
CN (1) CN104346378B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106843822B (zh) * 2015-12-07 2020-07-31 阿里巴巴集团控股有限公司 一种执行代码生成方法及设备
WO2018035799A1 (zh) * 2016-08-25 2018-03-01 阿里巴巴集团控股有限公司 数据查询方法、应用和数据库服务器、中间件及***
CN108241626A (zh) * 2016-12-23 2018-07-03 北京国双科技有限公司 查询脚本的生成方法及装置
CN113391818A (zh) * 2021-03-26 2021-09-14 广州海量数据库技术有限公司 一种编译文件的生成方法以及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1501235A (zh) * 2002-11-14 2004-06-02 深圳市中兴通讯股份有限公司上海第二 基于纯文本的命令脚本文件的人机命令实现方法
CN101000615A (zh) * 2006-12-31 2007-07-18 华为技术有限公司 一种基于数据库的业务处理方法及装置
CN102110110A (zh) * 2009-12-28 2011-06-29 ***通信集团公司 基于soa的数据访问方法和装置
CN102193922A (zh) * 2010-03-04 2011-09-21 杭州华三通信技术有限公司 一种对数据库进行访问的方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1501235A (zh) * 2002-11-14 2004-06-02 深圳市中兴通讯股份有限公司上海第二 基于纯文本的命令脚本文件的人机命令实现方法
CN101000615A (zh) * 2006-12-31 2007-07-18 华为技术有限公司 一种基于数据库的业务处理方法及装置
CN102110110A (zh) * 2009-12-28 2011-06-29 ***通信集团公司 基于soa的数据访问方法和装置
CN102193922A (zh) * 2010-03-04 2011-09-21 杭州华三通信技术有限公司 一种对数据库进行访问的方法和装置

Also Published As

Publication number Publication date
CN104346378A (zh) 2015-02-11

Similar Documents

Publication Publication Date Title
CN108536761B (zh) 报表数据查询方法及服务器
US10055426B2 (en) System and method transforming source data into output data in big data environments
CN104268428B (zh) 一种用于指标计算的可视化配置方法
CN104899295B (zh) 一种异构数据源数据关联分析方法
US8370303B1 (en) Generating snapshots of data tables
CN105512336A (zh) 一种基于Hadoop的海量数据处理方法和装置
CN107748752B (zh) 一种数据处理方法及装置
CN111078702B (zh) 一种sql语句分类管理及统一查询方法和装置
US8839197B2 (en) Automated analysis of composite applications
CN109508355A (zh) 一种数据抽取方法、***及终端设备
CN103309904A (zh) 一种生成数据仓库etl 代码的方法及装置
CN104346378B (zh) 一种实现复杂数据处理的方法、装置及***
CN104573065A (zh) 一种基于元数据的报表展示引擎
CN104572856A (zh) 一种服务起源数据的融合存储方法
CN106886535A (zh) 一种适配多种数据源的数据抽取方法和装置
CN103077192B (zh) 一种数据处理方法及其***
CN104063468A (zh) 一种数据报表自动生成及提取方法及装置
CN104317957A (zh) 一种报表处理的开放平台、***及报表处理方法
CN113468196B (zh) 用于处理数据的方法、装置、***、服务器和介质
US20160246825A1 (en) Columnar database processing method and apparatus
CN110019558A (zh) 基于Sqoop的数据传输方法、装置、计算机可读存储介质及设备
CN111125045A (zh) 一种轻量级etl处理平台
CN109933771A (zh) 一种报表自动合并方法、装置、设备及存储介质
CN104317600A (zh) 一种可配置的曲线图生成方法及***
CN114610803A (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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20190730

Address after: Shenzhen Futian District City, Guangdong province 518044 Zhenxing Road, SEG Science Park 2 East Room 403

Co-patentee after: Tencent cloud computing (Beijing) limited liability company

Patentee after: Tencent Technology (Shenzhen) Co., Ltd.

Address before: Shenzhen Futian District City, Guangdong province 518000 Zhenxing Road, SEG Science Park 2 East Room 403

Patentee before: Tencent Technology (Shenzhen) Co., Ltd.