一种对数据进行处理的方法、装置及服务器的制造方法

文档序号:6527354阅读:351来源:国知局
一种对数据进行处理的方法、装置及服务器的制造方法
【专利摘要】本发明公开了一种对数据进行处理的方法、装置及服务器,属于计算机领域。所述方法包括:接收终端发送的查询语句,查询语句携带待查询的数据的存储位置信息和处理待查询的数据的处理方式,根据待查询的数据的存储位置信息,确定存储待查询的数据的数据库为数据仓库或存储引擎;若确定为数据仓库,则将查询语句发送给数据仓库,使数据仓库获取待查询的数据并根据处理方式对待查询的数据进行处理;若确定为存储引擎,则将查询语句发送给存储引擎,使存储引擎获取待查询的数据并根据处理方式对待查询的数据进行处理。如此使得存储引擎和数据仓库可以发挥各自的优势,能够节省对数据进行处理的步骤和时间,极大程度节省了用户的等待时间和系统资源。
【专利说明】一种对数据进行处理的方法、装置及服务器

【技术领域】
[0001] 本发明涉及计算机领域,特别涉及一种对数据进行处理的方法、装置及服务器。

【背景技术】
[0002] 数据仓库是一种用于存储数据的数据系统且具有数据分析的功能,目前常常将其 作为互联网后台的数据库系统,用于存储海量的数据。且数据仓库具有的数据分析功能可 以为用户提供数据处理服务。
[0003] 目前,用户需要查询并处理数据时,用户将该数据的存储位置和处理方式发送给 数据仓库,数据仓库根据该存储位置获取该数据,并根据该处理方式对该数据进行数据。例 如,用户查询的数据为某公司在2013年发放的工资,存储该数据的工资表的表名即为该数 据的存储位置,以及处理方式为统计每个员工在2013年领取的总工资,数据仓库根据该表 名获取该公司在2013年发放的工资,并根据该处理方式统计出每个员工在2013年领取的 总工资。
[0004] 其中,数据仓库对数据进行处理的时间级别为分钟级别,对数量较大的大数据进 行处理时,需要几分种或更长时间,对数据量较小的小数据进行处理时,也需要几分种或 更长时间,这对小数据来说处理时间太长,无法满足小数据对处理时间的要求,处理效率较 低。


【发明内容】

[0005] 为了提高对数据进行处理的效率,本发明提供了一种对数据进行处理的方法、装 置及服务器。所述技术方案如下:
[0006] 一种对数据进行处理的方法,所述方法包括:
[0007] 接收终端发送的查询语句,所述查询语句携带待查询的数据的存储位置信息和处 理所述待查询的数据的处理方式,所述存储位置信息至少包括所述待查询的数据所在数据 库表的表名;
[0008] 根据所述待查询的数据的存储位置信息,确定存储所述待查询的数据的数据库, 所述数据库包括数据仓库或存储引擎;
[0009] 如果确定出为数据仓库,则将所述查询语句发送给所述数据仓库,使所述数据仓 库根据所述存储位置信息获取所述待查询的数据并根据所述处理方式对所述待查询的数 据进行处理;
[0010] 如果确定出为存储引擎,则将所述查询语句发送给存储所述待查询的数据的存储 引擎,使所述存储引擎根据所述存储位置信息获取所述待查询的数据并根据所述处理方式 对所述待查询的数据进行处理。
[0011] 一种对数据进行处理的装置,所述装置包括:
[0012] 第一接收模块,用于接收终端发送的查询语句,所述查询语句携带待查询的数据 的存储位置信息和处理所述待查询的数据的处理方式,所述存储位置信息至少包括所述待 查询的数据所在数据库表的表名;
[0013] 第一确定模块,用于根据所述待查询的数据的存储位置信息,确定存储所述待查 询的数据的数据库,所述数据库包括数据仓库或存储引擎;
[0014] 第一发送模块,用于如果确定出为数据仓库,则将所述查询语句发送给所述数据 仓库,使所述数据仓库根据所述存储位置信息获取所述待查询的数据并根据所述处理方式 对所述待查询的数据进行处理;
[0015] 第二发送模块,用于如果确定出为存储引擎,则将所述查询语句发送给存储所述 待查询的数据的存储引擎,使所述存储引擎根据所述存储位置信息获取所述待查询的数据 并根据所述处理方式对所述待查询的数据进行处理。
[0016] 一种对数据进行处理的服务器,所述服务器包括:
[0017] 一个或多个处理器;和
[0018] 存储器;
[0019] 所述存储器存储有一个或多个程序,所述一个或多个程序被配置成由所述一个或 多个处理器执行,所述一个或多个程序包含用于进行所述一种对数据进行处理的方法的指 令。
[0020] 在本发明实施例中,对数据量较大的大数据进行处理时,在处理时间上数据仓库 相对于存储引擎具有很大优势,对数据量较小的小数据进行处理时,在处理时间上存储引 擎相对于数据仓库具有很大优势;在数据仓库中加载存储引擎,使得存储引擎和数据仓库 可以发挥各自的优势,解决了数据仓库处理数据量较小的小数据时在处理时间上的短板, 能够节省对数据进行处理的处理步骤和处理时间,极大程度减少了用户的等待时间且节省 了系统资源。

【专利附图】

【附图说明】
[0021] 图1是本发明实施例提供的一种存储系统;
[0022] 图2是本发明实施例1提供的一种对数据进行处理的方法流程图;
[0023] 图3-1是本发明实施例2提供的一种存储小数据的方法流程图;
[0024] 图3-2是本发明实施例2提供的一种存储大数据的方法流程图;
[0025] 图3-3是本发明实施例2提供的一种存储数据的方法流程图;
[0026] 图3-4是本发明实施例2提供的一种查询并处理数据的方法流程图;
[0027] 图3-5是本发明实施例2提供的一种查询并处理数据的方法流程图;
[0028] 图4是本发明实施例3提供的一种对数据进行处理的装置结构示意图;
[0029] 图5是本发明实施例4提供的一种对数据进行处理的服务器结构示意图。

【具体实施方式】
[0030] 为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方 式作进一步地详细描述。
[0031] 参见图1,本发明实施例提供了一种存储系统,包括:
[0032] 控制端1、数据仓库2和至少一个存储引擎3,控制端1可以集成于数据仓库2中。
[0033] 数据仓库是一种用于存储数据的数据系统且具有数据分析的功能,其在对存储的 数据进行处理时,处理过程繁琐,具体为:首先将接收的SQL(Structured Query Language, 结构化查询语言)语句翻译为多个MapReduce (映射和规约编程模型)程序;每个MapReduce 程序分别同时初始化各自的进程并启动初始化的进程,再从数据仓库的数据库表中获取待 处理的数据,然后将待处理的数据导入进程中,之后对导入的数据进行Map运算和Reduce 运算,其中Map运算为将导入的数据按预定方式分组,Reduce运算为将分组后的数据按处 理方式进行处理,最终输出结果,同时要不断地清理进程在运算过程中得到的临时结果。 [0034] 数据仓库可以同时运行多个进程,当处理海量数据时,在所需的时间上,其相对于 存储引擎具有很大的优势;但是无论数据量多大,都需要按照上述步骤执行,因此所需时间 最少也需要几分钟。
[0035] 存储引擎能够存储数据且能够按照处理方式对存储的数据进行处理。存储引擎 具有很强大的统计信息系统和查询优化器,二者结合可以将存储的数据分类并排序,以使 能够清楚地得到每一类数据的存储位置,在查询数据时的速度非常快,即可以用很短的时 间获取需要查询的待查询的数据的存储位置并快速获取待查询的数据,其获取数据的速度 比数据仓库获取数据的速度快很多,并且存储引擎能够直接执行SQL语句,并且能够直接 按照处理方式对获取的数据进行处理,而不需要将接收的SQL语句翻译为多个MapReduce 程序,不需要初始化各自进程并启动初始化的进程,不需要将导入的数据进行Map运算和 Reduce运算,以及不需要不断地清理进程在运算过程中得到的临时结果,因此存储引擎的 获取待查询的数据的速度很快且对获取的数据进行处理的处理过程简便,在处理数据量较 小的小数据时,耗费时间只需几毫秒;但是存储引擎只有一个运算节点,即只能同时启动一 个进程,处理数据量较大的数据不具备优势,通常需要花费几十分钟。
[0036] 因此,在处理数据量较小的小数据时,数据仓库2处理数据所需的时间大于存储 引擎3处理数据所需的时间,例如,数据仓库2处理数据所需的时间为几分钟,大于存储引 擎3处理数据所需的时间几秒钟;因此对数据量较小的小数据进行处理时,在处理时间上 存储引擎3相对于数据仓库2具有很大优势。
[0037] 在处理数据量较大的大数据时,存储引擎3处理数据所需的时间大于数据仓库2 处理数据所需的时间,例如,存储引擎3处理数据所需的时间为几十分钟,大于数据仓库2 处理数据所需的时间几分钟;因此,对数据量较大的大数据进行处理时,在处理时间上数据 仓库2相对于存储引擎3具有很大优势。
[0038] 在数据仓库2中加载存储引擎3,使得存储引擎3和数据仓库2可以发挥各自的优 势,解决了数据仓库2处理数据量较小的小数据时在处理时间上的短板,能够节省对数据 进行处理的处理步骤和处理时间,可以极大程度减少用户的等待时间且节省系统资源。
[0039] 如果用户需要存储数据量较小的小数据,如数据量小于或等于预设阈值的小数 据,预设阈值可以为8GBU0GB或12GB等,则可以将小数据存储在存储引擎3中。
[0040] 如果用户需要存储数据量较大的大数据,如数据量大于预设阈值的大数据,则可 以将大数据存储在数据仓库2中。
[0041] 在图1所示的存储系统中,数据仓库2和存储引擎3都是一种用于存储数据的数 据系统且都可以对存储的数据进行分析。
[0042] 存储引擎3在处理数据量较小的小数据时,处理时间很短且一般只需几毫秒,而 数据仓库2在处理数据量较小的小数据时,处理时间很长一般至少需要几分钟。因此,对数 据量较小的小数据进行处理时,在处理时间上存储引擎3相对于数据仓库2具有很大优势, 能够节省大量的时间以及系统资源。
[0043] 数据仓库2在处理数据量较大的大数据时,处理时间很短且一般只需几分钟,而 存储引擎3在处理数据量较大的大数据时,处理时间很长一般至少需要几十分钟。因此,对 数据量较大的大数据进行处理时,在处理时间上数据仓库2相对于存储引擎3具有很大优 势,能够节省大量的时间以及系统资源。
[0044] 实施例1
[0045] 参见图2,本发明实施例提供了一种对数据进行处理的方法,该方法用于图1所示 的存储系统,该方法流程包括:
[0046] 步骤101 :接收终端发送的查询语句,查询语句携带待查询的数据的存储位置信 息和处理待查询的数据的处理方式,存储位置信息至少包括待查询的数据所在数据库表的 表名;
[0047] 步骤102 :根据待查询的数据的存储位置信息,确定存储待查询的数据的数据库, 数据库包括数据仓库或存储引擎;
[0048] 步骤103 :如果确定出为数据仓库,则将查询语句发送给数据仓库,使数据仓库根 据存储位置信息获取待查询的数据并根据处理方式对待查询的数据进行处理;
[0049] 步骤104 :如果确定出为存储引擎,则将查询语句发送给存储待查询的数据的存 储引擎,使存储引擎根据存储位置信息获取待查询的数据并根据处理方式对待查询的数据 进行处理。
[0050] 在本发明实施例中,对数据量较大的大数据进行处理时,在处理时间上数据仓库 相对于存储引擎具有很大优势,对数据量较小的小数据进行处理时,在处理时间上存储引 擎相对于数据仓库具有很大优势;在数据仓库中加载存储引擎,使得存储引擎和数据仓库 可以发挥各自的优势,解决了数据仓库处理数据量较小的小数据时在处理时间上的短板, 能够节省对数据进行处理的处理步骤和处理时间,极大程度减少了用户的等待时间且节省 了系统资源。
[0051] 实施例2
[0052] 参见图3-1,如果用户需要存储数据量小于或等于预设阈值的小数据,该小数据为 待存储的数据,则首先在存储引擎中建立一个数据库表,再将待存储的数据存储在建立的 数据库表中,具体可以按如下201至209的步骤来实现。
[0053] 201 :终端获取用户选择的存储引擎的标识,发送第一建表语句给控制端;第一建 表语句至少携带该存储引擎的标识,待创建的数据库表的表名,待创建的数据库表包括的 各列的列名和数据类型;
[0054] 用户需要将待存储的数据存储在存储引擎上时,在终端上选择一个存储引擎的标 识,以及向终端输入需要在该存储引擎上创建的待创建的数据库表的表名和待创建的数据 库表包括的各列的列名和数据类型。
[0055] 终端再获取用户选择的存储引擎的标识,以及接收用户输入的待创建的数据库表 的表名和待创建的数据库表包括的各列的列名和数据类型,然后再发送第一建表语句给控 制端。
[0056] 例如,假设预设阈值为10GB,用户需要存储AA公司在一月份发放的工资数据,该 工资数据为待存储的数据,待存储的数据只占100MB容量,待存储的数据的数据量小于预 设阈值10GB,因此用户可以将待存储的数据存储在存储引擎中,具体可以为:用户首先在 终端上选择一个存储引擎的标识为ID1,再向终端输入需要在该存储引擎中创建的工资表 的表名为"AA公司-一月份-工资表",以及工资表包括的各列的列名和数据类型,该工资 表包括两列,第一列的列名为"员工姓名"以及数据类型为"string",第二列的列名为"工 资数额"以及数据类型为"int"。
[0057] 然后终端发送第一建表语句给控制端,第一建表语句至少携带该存储引擎的标识 ID1,工资表的表名,工资表包括的各列的列名和数据类型。
[0058] 202 :控制端接收第一建表语句,获取第一建表语句携带的存储引擎的标识;
[0059] 进一步地,控制端还获取第一建表语句携带的待创建的数据库表包括的各列的数 据类型,从各列的数据类型中确定出该存储引擎不支持的数据类型,将确定出的数据类型 转换为该存储引擎支持的数据类型,具体实现如下:
[0060] 控制端获取第一建表语句携带的待创建的数据库表包括的各列的数据类型,根据 第一建表语句携带的该存储引擎的标识,获取该存储引擎对应的数据类型转换关系表,该 数据类型转换关系表用于存储待转换的数据类型与该存储引擎支持的数据类型的对应关 系,例如,表1为某个存储引擎对应的数据类型转换关系表,第一列为待转换的数据类型, 第二列为该存储引擎支持的数据类型,且第二列中存储了该存储引擎支持的所有数据类 型。
[0061] 再根据该数据类型转换关系表,从各列的数据类型中确定出该存储引擎不支持的 数据类型,将确定的每个数据类型作为待转换的数据类型,并从该数据类型转换关系表中 获取确定出的每个数据类型对应的数据类型,将确定的每个数据类型分别转换为各自对应 的数据类型。例如,确定出的一个数据类型为int,将数据类型int作为待转换的数据类型, 并从如表1所示的数据类型转换表中获取数据类型int对应的数据类型为integer,将待转 换的数据类型int转换为数据类型integer。
[0062] 表 1
[0063]

【权利要求】
1. 一种对数据进行处理的方法,其特征在于,所述方法包括: 接收终端发送的查询语句,所述查询语句携带待查询的数据的存储位置信息和处理所 述待查询的数据的处理方式,所述存储位置信息至少包括所述待查询的数据所在数据库表 的表名; 根据所述待查询的数据的存储位置信息,确定存储所述待查询的数据的数据库,所述 数据库包括数据仓库或存储引擎; 如果确定出为数据仓库,则将所述查询语句发送给所述数据仓库,使所述数据仓库根 据所述存储位置信息获取所述待查询的数据并根据所述处理方式对所述待查询的数据进 行处理; 如果确定出为存储引擎,则将所述查询语句发送给存储所述待查询的数据的存储引 擎,使所述存储引擎根据所述存储位置信息获取所述待查询的数据并根据所述处理方式对 所述待查询的数据进行处理。
2. 如权利要求1所述的方法,其特征在于,所述根据所述待查询的数据的存储位置信 息,确定存储所述待查询的数据的数据库,包括: 根据所述待查询的数据所在数据库表的表名查找表名列表,所述表名列表用于存储所 述数据仓库中包括的数据库表的表名; 如果所述表名列表中包括所述待查询的数据所在数据库表的表名,则确定所述待查询 的数据存储在所述数据仓库中,如果所述表名列表中不包括所述待查询的数据所在数据库 表的表名,则确定所述待查询的数据存储在存储引擎中。
3. 如权利要求1所述的方法,其特征在于,所述将所述查询语句发送给存储所述待查 询的数据的存储引擎,包括: 根据所述待查询的数据所在数据库表的表名,从已存储的数据库表的表名与存储引擎 的标识的对应关系中获取存储所述待查询的数据的存储引擎的标识; 根据所述存储引擎的标识,将所述查询语句发送给存储所述待查询的数据的存储引 擎。
4. 如权利要求1所述的方法,其特征在于,所述方法还包括: 如果所述存储引擎无法处理所述待查询的数据,则根据所述待查询的数据的存储位置 信息,从所述存储引擎中获取所述待查询的数据,根据所述处理方式对所述待查询的数据 进行处理。
5. 如权利要求1所述的方法,其特征在于,所述方法还包括: 接收所述终端发送的建表语句,所述建表语句至少携带存储引擎的标识,待创建的数 据库表的表名,所述待创建的数据库表包括的各列的列名和数据类型; 根据所述存储引擎的标识,发送所述建表语句给所述存储引擎,使所述存储引擎创建 所述待创建的数据库表。
6. 如权利要求1所述的方法,其特征在于,所述方法还包括: 接收所述终端发送的建表语句,所述建表语句至少携带待存储的数据的数据量大小, 待创建的数据库表的表名,所述待创建的数据库表包括的各列的列名和数据类型; 根据所述数据量大小,确定用于存储所述待存储的数据的数据库; 如果确定出为数据仓库,则在所述数据仓库中创建所述待创建的数据库表; 如果确定出为存储引擎,则选择一个存储引擎的标识,根据所述存储引擎的标识,发送 所述建表语句给所述存储引擎,使所述存储引擎创建所述待创建的数据库表。
7. 如权利要求6所述的方法,其特征在于,所述根据所述数据量大小,确定用于存储所 述待存储的数据的数据库,包括: 如果所述数据量大小大于预设阈值,则确定用于存储所述待存储的数据的数据库为数 据仓库; 如果所述数据量大小小于或等于所述预设阈值,则确定用于存储所述待存储的数据的 数据库为存储引擎。
8. 如权利要求5或6所述的方法,其特征在于,所述根据所述存储引擎的标识,发送所 述建表语句给所述存储引擎之前,还包括: 从所述待创建的数据库表包括的各列的数据类型中确定出所述存储引擎不支持的数 据类型; 在所述建表语句中将所述确定出的数据类型转换为所述存储引擎支持的数据类型。
9. 如权利要求5所述的方法,其特征在于,所述接收终端发送的建表语句之后,还包 括: 将所述建表语句携带的待创建的数据库表的表名和存储引擎的标识存储在数据库表 的表名与存储引擎的标识的对应关系中。
10. -种对数据进行处理的装置,其特征在于,所述装置包括: 第一接收模块,用于接收终端发送的查询语句,所述查询语句携带待查询的数据的存 储位置信息和处理所述待查询的数据的处理方式,所述存储位置信息至少包括所述待查询 的数据所在数据库表的表名; 第一确定模块,用于根据所述待查询的数据的存储位置信息,确定存储所述待查询的 数据的数据库,所述数据库包括数据仓库或存储引擎; 第一发送模块,用于如果确定出为数据仓库,则将所述查询语句发送给所述数据仓库, 使所述数据仓库根据所述存储位置信息获取所述待查询的数据并根据所述处理方式对所 述待查询的数据进行处理; 第二发送模块,用于如果确定出为存储引擎,则将所述查询语句发送给存储所述待查 询的数据的存储引擎,使所述存储引擎根据所述存储位置信息获取所述待查询的数据并根 据所述处理方式对所述待查询的数据进行处理。
11. 如权利要求10所述的装置,其特征在于,所述第一确定模块包括: 查找单元,用于根据所述待查询的数据所在数据库表的表名查找表名列表,所述表名 列表用于存储所述数据仓库中包括的数据库表的表名; 第一确定单元,用于如果所述表名列表中包括所述待查询的数据所在数据库表的表 名,则确定所述待查询的数据存储在所述数据仓库中,如果所述表名列表中不包括所述待 查询的数据所在数据库表的表名,则确定所述待查询的数据存储在存储引擎中。
12. 如权利要求10所述的装置,其特征在于,所述第二发送模块包括: 获取单元,用于根据所述待查询的数据所在数据库表的表名,从已存储的数据库表的 表名与存储引擎的标识的对应关系中获取存储所述待查询的数据的存储引擎的标识; 发送单元,用于根据所述存储引擎的标识,将所述查询语句发送给存储所述待查询的 数据的存储引擎。
13. 如权利要求10所述的装置,其特征在于,所述装置还包括: 处理模块,用于如果所述存储引擎无法处理所述待查询的数据,则根据所述待查询的 数据的存储位置信息,从所述存储引擎中获取所述待查询的数据,根据所述处理方式对所 述待查询的数据进行处理。
14. 如权利要求10所述的装置,其特征在于,所述装置还包括: 第二接收模块,用于接收所述终端发送的建表语句,所述建表语句至少携带存储引 擎的标识,待创建的数据库表的表名,所述待创建的数据库表包括的各列的列名和数据类 型; 第三发送模块,用于根据所述存储引擎的标识,发送所述建表语句给所述存储引擎,使 所述存储引擎创建所述待创建的数据库表。
15. 如权利要求10所述的装置,其特征在于,所述装置还包括: 第三接收模块,用于接收所述终端发送的建表语句,所述建表语句至少携带待存储的 数据的数据量大小,待创建的数据库表的表名,所述待创建的数据库表包括的各列的列名 和数据类型; 第二确定模块,用于根据所述数据量大小,确定用于存储所述待存储的数据的数据 库; 第四发送模块,用于如果确定出为数据仓库,则在所述数据仓库中创建所述待创建的 数据库表; 第五发送模块,用于如果确定出为存储引擎,则选择一个存储引擎的标识,根据所述存 储引擎的标识,发送所述建表语句给所述存储引擎,使所述存储引擎创建所述待创建的数 据库表。
16. 如权利要求15所述的装置,其特征在于,所述第二确定模块包括: 第二确定单元,用于如果所述数据量大小大于预设阈值,则确定用于存储所述待存储 的数据的数据库为数据仓库; 第三确定单元,用于如果所述数据量大小小于或等于所述预设阈值,则确定用于存储 所述待存储的数据的数据库为存储引擎。
17. 如权利要求14或15所述的装置,其特征在于,所述装置还包括: 第三确定模块,用于从所述待创建的数据库表包括的各列的数据类型中确定出所述存 储引擎不支持的数据类型; 转换模块,用于在所述建表语句中将所述确定出的数据类型转换为所述存储引擎支持 的数据类型。
18. 如权利要求14所述的装置,其特征在于,所述装置还包括: 存储模块,用于将所述建表语句携带的待创建的数据库表的表名和存储引擎的标识存 储在数据库表的表名与存储引擎的标识的对应关系中。
19. 一种对数据进行处理的服务器,其特征在于,所述服务器包括: 一个或多个处理器;和 存储器; 所述存储器存储有一个或多个程序,所述一个或多个程序被配置成由所述一个或多个 处理器执行,所述一个或多个程序包含用于进行如权利要求1至9任一项权利要求所述方 法的指令。
【文档编号】G06F17/30GK104090901SQ201310756095
【公开日】2014年10月8日 申请日期:2013年12月31日 优先权日:2013年12月31日
【发明者】李巍, 赵伟, 鲍春健 申请人:腾讯数码(天津)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1