一种数据处理方法、设备和系统技术方案

技术编号:10185500 阅读:130 留言:0更新日期:2014-07-04 16:21
本发明专利技术实施例公开了一种数据处理方法、设备和系统,该方法包括:分片服务器接收主服务器转发的数据查询请求,其中携带有用于指示请求读取的数据所在行的key字段和用于指示请求读取的数据所在列的列表字段;所述分片服务器根据所述key字段和列表字段在自身存储的数据中查询对应的列数据,并将查询到的列数据以数组的形式返回给所述主服务器。在本发明专利技术中,降低了分布式列存储数据库系统中数据处理的性能消耗,提高了数据处理效率。

【技术实现步骤摘要】
【专利摘要】本专利技术实施例公开了一种数据处理方法、设备和系统,该方法包括:分片服务器接收主服务器转发的数据查询请求,其中携带有用于指示请求读取的数据所在行的key字段和用于指示请求读取的数据所在列的列表字段;所述分片服务器根据所述key字段和列表字段在自身存储的数据中查询对应的列数据,并将查询到的列数据以数组的形式返回给所述主服务器。在本专利技术中,降低了分布式列存储数据库系统中数据处理的性能消耗,提高了数据处理效率。【专利说明】一种数据处理方法、设备和系统
本专利技术涉及通信
,特别是涉及一种数据处理方法、设备和系统。
技术介绍
分布式列存储数据库是一种适合快速查询的、分布式的优良解决方案,它在提供海量数据存储的同时,还可以有效地提高对数据的查询速度。现有的分布式列存储技术方案中主要聚焦于如何实现数据查询,而没有关注数据分析的需求。而实际应用中,数据库的主要功能除了查询之外,大部分是分析型需求。例如,统计在某种条件下,某个列的总和;对于某几个列进行计算,如计算市话分钟与长话分钟的比例等。针对上述问题,目前分布式系统中的解决方案可以采用分布式计算的方法来实现。例如,基于Hadoop的系统,采用Mapreduce作为计算框架,其Map接口为dbinputformat,该接口提供对数据行的读入。具体如下:I)、inputformat会按照key划分为几个分片;2 )、每个Map读入一个分片;3)、Map内部调用分布式数据库提供的读写接口,按照key,读取一行记录。在Map内部实现分析的时候,读入的是一行一行的行记录,首先需要按照字段位置区分出具体要处理的字段,然后再进行处理;有些操作需要进入reduce阶段,例如求和。显然,这种按照行读取处理的方式,没有利用列存储数据的优势。在实现本专利技术的过程中,专利技术人发现现有技术中至少存在以下问题:由于分布式列存储,每个列族保存在一个文件中,所以每次读取一行记录的接口,需要按照key从多个文件读取响应的字段,然后合并为一条记录返回;同时,在Map阶段,由于需要针对某个列进行操作,还需要将行记录按照字段分解,才能进一步操作,造成了合并与拆分的两次性能损耗。
技术实现思路
本专利技术实施例提供一种数据处理方法、设备和系统,以降低基于分布式列存储数据库系统的数据处理的性能消耗,提高数据处理效率。为了达到以上目的,本专利技术实施例提供了一种数据处理方法,应用于包括主服务器和分片服务器的分布式列存储数据库系统中,该方法包括:分片服务器接收主服务器转发的数据查询请求,其中携带有用于指示请求读取的数据所在行的key字段和用于指示请求读取的数据所在列的列表字段;所述分片服务器根据所述key字段和列表字段在自身存储的数据中查询对应的列数据,并将查询到的列数据以数组的形式返回给所述主服务器。本专利技术实施例还提供了一种分布式列存储数据库系统,包括主服务器和分片服务器,所述主服务器用于,接收客户端发起的数据查询请求,并将该数据查询请求转发给分片服务器;以及接收分片服务器返回的数组形式的数据;所述分片服务器用于,接收主服务器转发的数据查询请求,其中携带有用于指示请求读取的数据所在行的key字段和用于指示请求读取的数据所在列的列表字段;根据所述key字段和列表字段在自身存储的数据中查询对应的列数据,并将查询到的列数据以数组的形式返回给所述主服务器。本专利技术实施例还提供一种分片服务器,应用于包括主服务器的分布式列存储数据库系统中,所述分布服务器包括:一个数据片模块Hregion,至少一个列模块Hstore,以及至少一个列存储文件HstoreFile ;其中:所述Hregion用于,接收主服务转发的数据查询请求,其中携带有用于指示请求读取的数据所在行的key字段和用于指示请求读取的数据所在列的列表字段;根据所述列表字段确定对应的Hstore,并将该数据查询请求转发给该Hstore ;接收Hstore返回的data文件,根据该data文件生成data数组,并将该data数组返回给主服务器;所述Hstore用于,当接收到Hregion转发的数据查询请求时,根据所述key字段确定对应的HstoreFile,并将该数据查询请求转发给该HstoreFile ;接收HstoreFile返回的data文件,并将该data文件返回给Hregion ;所述HstoreFile用于,当接收到Hstore转发的数据查询请求时,向Hstore返回整个data文件。本专利技术上述实施例中,分片服务器接收主服务器转发的数据查询请求后,根据key字段和列表字段在自身存储的数据中查询对应的列数据,并将查询到的列数据以数组的形式返回给主服务器,降低了分布式列存储数据库系统中数据处理的性能消耗,提高了数据处理效率。【专利附图】【附图说明】图1为现有分布式列存储数据库系统结构示意图;图2为现有分布式数据库读取数据的流程示意图;图3为现有Map任务处理数据的流程示意图;图4为本专利技术实施例提供的一种数据处理方法的流程示意图;图5为本专利技术实施例提供的一种数据处理方法的流程示意图;图6为本专利技术实施例提供的一种数据处理方法的流程示意图;图7为本专利技术实施例提供的一种分布式列存储数据库系统的结构示意图;图8为本专利技术实施例提供的一种分片式服务器的结构示意图。【具体实施方式】为了更好地理解本专利技术实施例提供的技术方案,下面对现有分布式列存储数据库系统架构、以及基于现有分布式列存储数据库系统架构的常规的数据处理方法进行简单的描述。参见图1,现有分布式列存储数据库系统包括主服务器(Master)和分片服务器(Tablet Server),该分片服务器包括:一个数据片模块(Hregion),至少一个列模块(Hstore),以及至少一个列存储文件(HstoreFile);其中:一个Hregion中可以存储一个或多个分片数据;该分片数据包括原数据表一行或多行的全部数据,分片的多少可以根据并行处理数据的设备的数量确定;—个分片服务器中,Hregion中存储的数据按列或列族存储在不同的Hstore中(即一个Hstore中存储有一个列或一个列家族的数据);Hstore中存储的数据分行存储在HstoreFile中。其中,在分布式列存储数据库中,将经常被同时访问的几个列定义为列家族。基于上述分布式列存储数据库系统,现有技术中数据处理流程可以如图2和图3所示。其中,该数据处理流程主要涉及两个流程:第一个是分布式数据库读取数据的过程;第二个是Map任务处理数据的流程。参见图2,现有技术中分布式数据库读取数据的过程可以包括以下步骤:步骤201、主服务器接收客户端发送的数据查询请求,根据其中携带的用于指示请求读取的数据所在行的key字段将该数据查询请求转发给对应的Hregion。步骤202、Hregion接收数据查询请求,遍历Hstore,以查询相应列中对应key字段的数据。步骤203、Hstore根据key字段确定对应的HstoreFile ;步骤204、HstoreFile根据key字段对应的索引确定请求读取的数据的偏移量(offset),并将该偏移量返回给Hstore。步骤205、Hstore根据该偏移量读取对应的数据,并将读取的数据返回给Hregion0步骤206、Hre本文档来自技高网
...
一种数据处理方法、设备和系统

【技术保护点】
一种数据处理方法,应用于包括主服务器和分片服务器的分布式列存储数据库系统中,其特征在于,该方法包括:分片服务器接收主服务器转发的数据查询请求,其中携带有用于指示请求读取的数据所在行的key字段和用于指示请求读取的数据所在列的列表字段;所述分片服务器根据所述key字段和列表字段在自身存储的数据中查询对应的列数据,并将查询到的列数据以数组的形式返回给所述主服务器。

【技术特征摘要】

【专利技术属性】
技术研发人员:徐萌何鸿凌杜宇健钱岭孙少陵金骏
申请(专利权)人:中国移动通信集团公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1