CN103902544A - 一种数据处理方法及系统 - Google Patents
一种数据处理方法及系统 Download PDFInfo
- Publication number
- CN103902544A CN103902544A CN201210571950.0A CN201210571950A CN103902544A CN 103902544 A CN103902544 A CN 103902544A CN 201210571950 A CN201210571950 A CN 201210571950A CN 103902544 A CN103902544 A CN 103902544A
- Authority
- CN
- China
- Prior art keywords
- data
- subregion
- processing
- partition
- key
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24554—Unary operations; Data partitioning operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/221—Column-oriented storage; Management thereof
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种数据处理方法及系统,这种方法可以将大规模数据按照多个列分割成更细粒度的多维数据块,从而在针对数据查询时仅处理少数相关的数据块。本发明中的数据块是包括所有数据列(可不包含分区列)的数据块,这和现有的列数据库、列族数据库均不相同。这样在输出较多列时,可以获得更好的数据扫描性能。
Description
技术领域
本发明涉及通信领域,尤其涉及一种数据处理方法及系统。
背景技术
为了优化数据查询和扫描速度,在磁盘数据库中对数据表进行分区是一种常见方法,目的是减少处理查询时扫描的数据规模。这是因为在多数查询的总体时间中,磁盘数据的扫描占据了至少50%以上的时间。通过分区技术可以将数据表分开保存到不同的实体(逻辑实体或者物理服务器)中,通过在处理查询时仅扫描相关的分区来减少查询时间。
目前有多种数据分区技术,按照类型可以分为:
(1)范围分区(Range):按照选定列的数值范围分区,如大于20000的数据保存在分区1中,小等于20000的数据保存到分区2中。其中这个选定的列被称为分区键(Partition Key,PK)。
(2)列表分区(List):按照分区键的离散取值来确定分区,如“中国”、“日本”、“韩国”均可以放置到“东亚”这个分区中。
(3)哈希分区(Hash):哈希分区根据hash函数确定应该将数据保存到哪个分区中。哈希函数是事先确定的计算函数,可以将输入的数据,按照实现确定的规则放置到适当的分区中,一种简单的哈希函数是取余数。
列式数据库,如SybaseIQ、Vertica、InfoBright等,在存储方式方面将数据按照列存储为一个实体(如文件),然后按照范围来分区存储。这种方式减少了数据扫描时处理的数据量,但是当需要扫描很多列时,会遇到性能下降的情况,主要是因为将列连接成行、以及扫描文件数量较多造成的。
NoSQL数据库也采用了相似的分区技术,如HBase采用了动态范围分区技术,而Cassandra采用了哈希分区技术。在此类系统中,为了减少数据扫描的数量,还将相关列当做列族(Column Family)存储,以便进一步减少数据扫描数量。
图1示出了针对同一数据表中的数据,采用上述几种分区方式时的差异。图1(a)示出了不分区的情况;图1(b)示出了按照范围分区的情况,其中,c0列为分区键PK,根据PK的取值,数据表被划分为3个范围分区;图1(c)示出了采用列式范围分区的情况,其中,在进行划分列的同时,以c0列作为分区键PK,进一步对每列进行区域划分;图1(d)示出了采用列族范围分区的情况,与图1(c)的区别是,将多个列合并为一列族。
在NMS(Network Management System,网络管理系统)信令监测、BI(Business Intelligence,商务智能)等大数据应用中,针对时间序列数据,有一种常见的复杂查询业务,具有如下特征:(1)查询条件组合灵活,即使针对一个数据表,也会遇到很多种条件维度的查询;(2)查询结果组合灵活,且包含很多列。
发明人在实现本发明的过程中,发现针对大数据应用,现有的数据处理技术至少存在以下缺陷:
(1)全表扫描方式:扫描数据量大时,性能存在严重问题;
(2)按照时间维度分区:可以减少扫描数据规模,但是由于同一时间发生对应了大量的网络消息,依然需要扫描大量数据,性能同样受到影响;
(3)列式和列族方式:在输出列数量较多,如超过30,则性能下降较多。
由此可见,目前亟需一种性能高的数据处理方案。
发明内容
本发明实施例提供了一种数据处理方法及系统,用以提高数据处理性能。
本发明实施例提供的数据处理方法,该方法包括:
根据至少2个不同级别的分区键,创建元数据模型,元数据模型中定义的每个数据分区至少包含除分区键所在的数据列以外的所有数据列;
接收到原始数据后,根据所述元数据模型对所述原始数据进行分区处理。
本发明实施例提供的数据处理系统,包括:
控制模块,用于根据至少2个不同级别的分区键,创建元数据模型,并将创建的元数据模型存储到元数据管理模块;所述元数据模型中定义的每个数据分区至少包含除分区键所在的数据列以外的所有数据列;
元数据管理模块,用于存储和维护元数据模型;
数据处理模块,用于在接收到原始数据后,根据所述元数据管理模块中的元数据模型,对所述原始数据进行分区处理。
本发明的上述实施例中,由于在进行数据分区时,根据多个分区键(不少于2个),按照各分区键的级别对所述原始数据进行分区处理,从而得到多维度的数据分区,并且每个数据分区至少包含除分区键所在的数据列以外的所有数据列,从而在数据查询时获得更好的查询效率。
附图说明
图1为现有技术中的各种数据分区示意图;
图2为本发明实施例提供的多维度混合分区方式的逻辑形态示意图;
图3为本发明实施例提供的以两个列作为分区键进行分区的示意图;
图4为本发明实施例提供的数据处理系统的结构示意图;
图5为本发明实施例提供的数据加载流程示意图;
图6为本发明实施例提供的元数据模型示意图;
图7为本发明实施例提供的数据查询流程示意图;
图8为本发明实施例中根据元数据模型查询到的目标数据分区示意图。
具体实施方式
本发明实施例提出一种多维度的混合分区方法,以及基于该种分区方法实现的数据处理方案。这种多维度的混合分区方法,可以根据至少2个列(分区列),将大规模数据分割成更细粒度的多维数据块(chunk),从而在针对数据查询时仅处理少数相关的数据块。本发明实施例中,分割后的数据块包括所有数据列(可不包含分区列),这样,在输出较多列时,可以获得更好的数据扫描性能。
下面首先对本发明实施例提供的多维度的混合分区方法进行说明。
本发明实施例提供的多维度的混合分区方法包括以下过程:
(1)对于待处理的数据,根据应用特征选择多个列作为分区键,其中一个作为主分区键(Primary Partition Key,PPK),其余作为次分区键(SecondaryPartition Key,SPK),PPK的级别高于SPK。主分区键代表了最通用的维度,比如对于时间序列的数据,一般会选择时间作为PPK,次分区键通常是次主要查询维度。次分区键可以有多个,且具有不同的级别。
(2)依次利用PPK、各个SPK对数据进行分区。比如,在以1个PPK和2个SPK(记为SPK-1和SPK-2,其中SPK-1的级别高于SPK-2)作为分区键的情况下,首先利用PPK对待分区的数据进行分区,假设得到N个分区,再利用SPK-1对N个分区中的每个分区再进行分区,假设得到N×M个分区,再利用SPK-2对N×M个分区中的每个分区再进行分区。最终划分得到的每个分区包含所有列,或者包含除去分区键以外的所有列。
(3)最终划分得到的数据实体既可以按照逻辑方式进行存储,也可以按照物理方式进行存储,例如每个分区可以存储为不同的文件。
(4)每个分区的元数据按照大小顺序排列。数据实体可以按照主分区键排序,也可以不排序,排序与否根据应用业务来确定。通常,仅对于数据加载有较高要求的应用业务不需排序,仅对数据查询有较高要求的系统需要排序,对两者均有较高要求的则需折中考虑。
图2示出了多维度混合分区方式的逻辑形态示意图。其中,PPK为主分区键,SPK-1、SPK-2、SPK-3、SPK-4、SPK-5分别为次分区键,且级别依次降低。可以看出,在依据PPK进行分区的基础上,再依次以SPK-1 SPK-2、SPK-3、SPK-4、SPK-5进行分区,使数据以6个维度进行划分,划分粒度逐渐提高。
图3示出了以两个列作为分区键进行分区的示意图。如图所示,具有m个数据列的数据表,根据c0、c1两个列分成一组二维数据块(chunk),其中,c0列的取值范围被划分为n个分区,c1列的取值范围被划分为k个分区,每个chunk的c0列取值范围为n个分区中的一个、c1列的取值范围为m个分区中的一个。其中,c0、c1两列均可以按照区段或者List划分范围,比如,c0列为时间数据,可按照该分区键的连续取值区间(即时间段)划分范围,c1为业务类型数据,可按照该分区键的离散取值(即业务类型)划分范围。更进一步,如果还有其它列需要作为分区依据,则每个数据块又可以被划分成更小的范围,形成更高维度的分布。
本发明实施例基于上述数据分区方法,提供了数据加载流程、数据查询流程,以及完成上述数据处理流程的数据处理系统。下面结合附图进行详细描述。
参见图4,为本发明实施例提供的数据处理系统的结构示意图。
如图4所示,该数据处理系统可包含三种主要模块:控制模块、数据处理模块和元数据管理模块。其中,控制模块主要负责处理控制,比如,加载控制、查询控制等;元数据管理模块主要进行元数据管理,这里元数据就是数据分区信息;数据处理模块主要负责进行数据处理,如执行对原始数据进行多维度的混合分区。数据处理模块可以是一个或多个。
该数据处理系统可以是独立的数据处理系统,也可以作为一个附加模块与现有的数据处理系统(如Hadoop、HBase、MySQL等)整合在一起,形成一个具有行列交叠的多维度混合分区的分布式数据处理系统。
图5示出了基于上述数据处理系统实现的数据加载流程。数据加载是指将原始数据(如日志)导入数据处理系统的过程,主要包括两个方面的工作:一是生成元数据信息,即数据分区信息;二是将分区后的原始数据存储为数据实体。
如图5所示,本发明实施例提供的数据加载流程可包括:
步骤501,外部系统(即上述数据处理系统外部的应用系统)向该数据处理系统发出预分区请求,该请求的目的是告知数据处理系统原始数据的特点或者分区要求,以使数据处理系统预先创建相应的元数据模型。
该步骤中的预分区请求中可携带对原始数据的分区要求,比如,将原始数据根据时间按小时分区,每天的数据中,又根据5种业务类型进一步分区。
步骤502,数据处理系统根据接收到的预分区请求,确定主分区键和次分区键,创建元数据模型,该元数据模型中定义的每个数据分区至少包含除分区键所在的数据列以外的所有数据列。
对于该步骤,在具有图2所示架构的数据处理系统中,控制模块根据预分区请求,确定主分区键和次分区键,根据主分区键和次分区键创建元数据模型,将创建的元数据模型存储到元数据管理模块中。
如图6所示,以具有三个分区键c0、c1、c2(其中c0为主分区键,c1、c2为次分区键,且级别依次降低)的数据结构为例,数据入口指向主分区键c0,以c0为分区依据,其中每项又指向以次级分区键c1为依据的分区信息,如此类推。如图中所示,其元数据模型可以表现为树形数据结构,每个分区键均代表了一个树状层次。在该树形数据结构中,除了叶子节点(即最后一级分区)以外,其余的节点(即中间分区)均不会直接指向具体的数据实体,而是保存分区信息,叶子节点(即最后一级分区)会指向具体的数据实体。比如,该树形结构中的节点1,其对应于根据主分区键c0划分得到的分区,其存储的分区信息中包括该分区c0列的取值或取值范围;节点2对应于在根据主分区键c0划分得到的分区的基础上再根据次分区键c1划分得到的分区,其存储的分区信息中包括该分区c1列的取值或取值范围;节点3对应于根据主分区键c0、次分区键c1和c2划分得到的分区,其存储的分区信息中包括该分区c2列的取值或取值范围,以及该分区对应的数据实体的存储位置信息。
通过该树形数据结构,可以最终找到具体的数据实体。
元数据模型是根据应用定义的,常见的方式是通过数据库建表SQL(Structured Query Language,结构化查询语言)语句定义,示例如下:
Create table example_table(表格式定义)…
Partitioned by ppk ordered,spk1,spk2o rdered…
其中partitioned by之后是分区键的定义,其中可以定义是否排序。
本发明实施例提供的数据处理系统并不需要一定采用SQL来定义元数据模型,只要以某种方式能够获取到分区定义信息即可,比如以手工配置方式预先在数据处理系统中定义分区键,并进一步定义元数据模型,或由数据处理系统根据配置的分区键生成元数据模型。
步骤503,数据处理系统根据元数据模型分配数据处理任务。
对于该步骤,在具有图2所示架构的数据处理系统中,控制模块根据元数据模型,为各数据处理模块分配数据处理任务,并将数据分区和数据处理模块的对应关系信息保存到源数据管理模块中。以图6中的树形数据结构的元数据模型为例,一个数据处理模块分配到的处理任务可以对应该树形数据结构中的一个或多个叶子节点。
在数据处理系统中只有一个数据处理模块,或者只需要一个数据处理模块进行数据分区处理的情况下,分配数据处理任务的步骤可以省略。
步骤504,数据处理系统加载原始数据,并根据元数据模型对原始数据进行分区处理,将分区处理得到的数据存储为数据实体,并根据分区结果更新元数据模型中的元数据信息。分区处理后得到的数据实体可存储到具体的存储器中,如可以是服务器本机自带的磁盘,也可以集中化的存储系统。具体的,该数据加载以及分区处理过程可具体包括以下步骤:
步骤5041,数据处理系统接收外部系统的原始数据。
该过程中,外部系统可在发送原始数据(如一个日志文件)之前,首先向数据处理系统查询该原始数据应该发送到哪个数据处理模块进行处理,根据查询结果将原始数据发送到相应的数据处理模块。为了提高性能,外部系统中可缓存部分相关的元数据信息(即数据分区与数据处理模块的对应关系信息),若外部系统在能够从本地缓存中查询到需要发送的原始数据与数据处理模块的对应关系的情况下,不再向数据处理系统进行查询。
在具有图2所示的数据处理系统中,数据处理系统响应外部系统的查询过程可包括:控制模块接收到外部系统的查询请求后,根据该查询请求中携带的原始数据的分区键(包括主分区键和次分区键)对应的列的取值范围,从源数据管理模块中查询能够处理该取值范围的分区的数据处理模块,并将查询结果返回给外部系统。外部系统发送的查询请求中也可以不携带分区键(包括主分区键和次分区键)对应的列的取值范围,相应的,控制模块向数据管理模块查询所有分区与数据处理模块的对应关系,并将查询结果返回给外部系统。
步骤5042,数据处理系统根据元数据模型,对接收到的原始数据进行分区,并根据分区后得到的数据实体的信息(如存储位置信息),更新元数据模型中的元数据信息,如将数据实体的存储位置信息添加到图6所示的树形数据结构的元数据中的叶子节点。
在具有图2所示的数据处理系统中,数据处理模块接收到原始数据后,根据控制模块为其分配的数据处理任务,依次利用PPK、各个SPK对对原始数据进行分区,具体分区方式同前所述,在此不再赘述。在进行数据分区过程中,可进一步根据需要进行如下处理:
(1)如果数据处理任务要求进行排序,则对分区后的数据实体进行排序;
(2)如果分区后得到的数据实体超过了预先定义的实体大小,则将该数据实体保存为多个实体,并上报控制模块;
(3)进行数据正确性和系统可靠性处理,如保存副本、故障恢复等;
(4)如果控制模块发现分区后得到的单个数据实体的规模较小(比如小于256MB),则指示数据处理模块将临近的数据实体合并为一个数据实体,并将相应的数据分区也合并为一个数据分区,并更新元数据。比如,如图6所示,如果节点3、4,节点5、6对应的数据实体规模小于256MB,则由于节点3、4临近,因此将节点3、4对应的数据实体进行合并,同理,对节点5、6对应的数据实体进行合并,合并后更新元数据信息。
经过上述数据加载和分区处理后,原始数据被置入数据处理系统,且形成一致的元数据模型和数据实体对应关系。
当外部系统发出数据查询请求后,上述数据处理系统响应该数据查询请求,并返回查询结果。
参见图7,为基于上述数据处理系统提供的数据查询处理流程。如图所示,该流程可包括:
步骤701,数据处理系统接收外部系统发送的数据查询请求,该请求中包含需要输出的列、查询条件等信息。
步骤702,数据处理系统根据查询条件中包含的针对分区键的查询条件,查询元数据模型中的元数据信息,得到需要扫描的数据实体集合。
对于该步骤,在具有图2所示架构的数据处理系统中,控制模块根据查询条件对从元数据管理模块中获取数据分区进行筛选。筛选操作具体包括:
根据范围过滤,如根据查询条件中的时间范围选取相关分区;
根据取值过滤,如根据查询条件中某个列的取值选取相关分区;
组合过滤,如根据查询条件中的and、or等逻辑关系设置对独立选取的分区进行组合过滤。
该步骤中,查询的具体算法流程可包括:按照级别从高到低的顺序,对于查询条件中的每个分区键及其约束条件,依次根据分区键及其约束条件查询元数据模型;其中,每次根据数据分区键及其约束条件进行查询时的数据范围,为上一次查询到的数据分区,使用最高级别的分区键及其约束条件进行查询时的数据范围,为所有数据分区;在根据所述查询条件中的最低级别的分区键及其约束条件完成查询后,将查询到的数据分区所对应的数据实体,确定为需要扫描的数据实体。
以查询条件中包括分区键pk1、pk2、pk3的约束条件,pk1、pk2、pk3的级别依次降低为例,上述流程可包括:
根据最高级别的分区键pk1的约束条件,在元数据中寻找满足pk1的约束条件的分区,无论是范围分区或者是List分区,均可以确定出相应的数据范围,得到的结果是一组分区(chunk);
在满足pk1约束的条件下,根据次高级别的分区键pk2的约束条件,在上一步骤查询到的满足pk1的约束条件的一组分区中寻找满足pk2的约束条件的数据分区。由于符合pk1的分区可能有多个,因此经过第二次筛选,形成2个层次的分区,可以看做是多个子树;
在满足pk1、pk2约束的条件下,根据pk3的约束条件,在上一步骤查询到的满足pk1、pk2的约束条件的一组分区中寻找满足pk3的约束条件的数据分区。如果查询条件中涉及更多的分区键,则按照上述过程进行处理,直到最低级别的分区键。
经过上述查询过程,形成一个子树群,将这些子树群包括的数据实体进行汇集,就形成了需要扫描的数据实体集合。这些需要扫描的数据实体集合可能形成各种形状的目标分区,如图8中虚线框部分所示。
步骤703,数据处理系统根据查询条件,通过对需要扫描的数据实体集合进行扫描,得到符合查询条件的数据。
对于该步骤,在具有图2所示架构的数据处理系统中,控制模块将数据扫描请求分配到与待扫描的数据实体对应的数据处理模块上。接收到数据扫描请求的数据处理模块根据查询条件对对应的数据分区进行查询,对查询到的数据进行排序处理(在查询请求要求排序的情况下),然后返回处理结果给控制模块。控制模块根据查询请求的要求进一步进行处理,如对数据进行排序、分组操作等。
为了减少网络开销,控制模块也可以将数据扫描请求发送给保存相应待扫描的数据实体的设备上(如服务器),从而对该设备上存储的数据实体进行查询。
步骤704,数据处理系统将查询到的符合查询条件的数据返回给发出数据查询请求的外部系统。
需要数据的是,上述数据查询流程中的数据筛选处理,与传统关系数据库(如RDBMS)的索引处理不一样。关系数据库中可以包括组合索引,但是多个索引的次序是相关的,如以a、b、c三个列作为组合索引,则一旦查询条件中没有出现条件a、b,而直接出现了条件c,则进行查询时无法使用索引。而本发明实施例中,虽然分区键(如a、b、c)之间依然存在先后次序关系,但是由于数据实体中包括完整的数据列,且独立存储的。因此只要由分区键作为过滤条件,就可以使用本发明实施例加以优化。
通过上述数据查询流程可以看出,由于在进行数据分区时,根据多个分区键(不少于2个),按照各分区键的级别从高到低依次对所述原始数据进行分区处理,从而得到多维度的数据分区,并且每个数据分区至少包含除分区键所在的数据列以外的所有数据列,从而在数据查询时,可定位到需要扫描的数据分区,通过对这些数据分区扫描即可查询到需要的数据,从而与现有技术相比可获得更好的查询效率。本发明实施例尤其适用于大数据(TB规模以上)的处理。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台终端设备(可以是手机,个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。
Claims (10)
1.一种数据处理方法,其特征在于,该方法包括:
根据至少2个不同级别的分区键,创建元数据模型,元数据模型中定义的每个数据分区至少包含除分区键所在的数据列以外的所有数据列;
接收到原始数据后,根据所述元数据模型对所述原始数据进行分区处理。
2.如权利要求1所述的方法,其特征在于,根据至少2个不同级别的分区键,创建元数据模型,具体包括:
根据所述至少2个不同级别的分区键,建立树形结构的元数据模型,每个分区键对应所述树形结构中的一个树状层次,且从根节点到叶子节点,每个树状层次所对应的分区键级别依次降低,所述树形结构中的各节点存储有相应分区信息。
3.如权利要求1所述的方法,其特征在于,根据所述元数据模型对所述原始数据进行分区处理,具体包括:
按照级别从高到低的顺序,依次使用分区键对所述原始数据进行分区处理;其中,每次进行分区处理时所针对的数据,为上一次分区处理得到的数据分区,使用最高级别的分区键进行分区处理时所针对的数据,为所述原始数据,分区处理后得到的数据实体中包含除分区键所在的数据列以外的所有数据列。
4.如权利要求1所述的方法,其特征在于,根据所述元数据模型对所述原始数据进行分区处理,具体包括:
如果分区处理得到的数据实体的数据量小于设定阈值,则将数据量小于设定阈值的数据实体进行合并处理并存储,并根据合并处理操作,更新元数据模型。
5.如权利要求1所述的方法,其特征在于,该方法还包括:
接收到数据查询请求后,根据所述请求中携带的查询条件,通过查询所述元数据模型,确定出需要扫描的数据分区,根据需要扫描的数据分区确定出对应的数据实体;
根据所述数据查询条件,对需要扫描的数据分区所对应的数据实体进行扫描,得到符合查询条件的数据并返回。
6.一种数据处理系统,其特征在于,包括:
控制模块,用于根据至少2个不同级别的分区键,创建元数据模型,并将创建的元数据模型存储到元数据管理模块;所述元数据模型中定义的每个数据分区至少包含除分区键所在的数据列以外的所有数据列;
元数据管理模块,用于存储和维护元数据模型;
数据处理模块,用于在接收到原始数据后,根据所述元数据管理模块中的元数据模型,对所述原始数据进行分区处理。
7.如权利要求6所述的数据处理系统,其特征在于,所述控制模块具体用于,根据所述至少2个不同级别的分区键,建立树形结构的元数据模型,每个分区键对应所述树形结构中的一个树状层次,且从根节点到叶子节点,每个树状层次所对应的分区键级别依次降低,所述树形结构中的各节点存储有相应分区信息。
8.如权利要求6所述的数据处理模块,其特征在于,所述数据处理模块具体用于,按照级别从高到低的顺序,依次使用分区键对所述原始数据进行分区处理;其中,每次进行分区处理时所针对的数据,为上一次分区处理得到的数据分区,使用最高级别的分区键进行分区处理时所针对的数据,为所述原始数据,分区处理后得到的数据实体中包含除分区键所在的数据列以外的所有数据列。
9.如权利要求6所述的数据处理系统,其特征在于,所述数据处理模块具体用于,如果分区处理得到的数据实体的数据量小于设定阈值,则将数据量小于设定阈值的数据实体进行合并处理并存储,并根据合并处理操作,更新所述元数据管理模块中的元数据模型。
10.如权利要求6所述的数据处理系统,其特征在于,所述控制模块还用于,接收到数据查询请求后,根据所述请求中携带的查询条件,通过查询所述元数据管理模块中的元数据模型,确定出需要扫描的数据分区,根据需要扫描的数据分区确定出对应的数据实体;根据所述数据查询条件,对需要扫描的数据分区所对应的数据实体进行扫描,得到符合查询条件的数据并返回;或者
所述控制模块还用于接收到数据查询请求后,根据所述请求中携带的查询条件,通过查询所述元数据管理模块中的元数据模型,确定出需要扫描的数据分区,根据需要扫描的数据分区确定出对应的数据实体;所述数据处理模块还用于,根据所述数据查询条件,对需要扫描的数据分区所对应的数据实体进行扫描,得到符合查询条件的数据,并通过所述控制模块返回所述符合查询条件的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210571950.0A CN103902544B (zh) | 2012-12-25 | 2012-12-25 | 一种数据处理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210571950.0A CN103902544B (zh) | 2012-12-25 | 2012-12-25 | 一种数据处理方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103902544A true CN103902544A (zh) | 2014-07-02 |
CN103902544B CN103902544B (zh) | 2017-11-21 |
Family
ID=50993874
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210571950.0A Active CN103902544B (zh) | 2012-12-25 | 2012-12-25 | 一种数据处理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103902544B (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104574159A (zh) * | 2015-01-30 | 2015-04-29 | 华为技术有限公司 | 数据存储、查询方法和装置 |
CN105005617A (zh) * | 2015-07-21 | 2015-10-28 | 领航动力信息系统有限公司 | 一种时间序列数据的存储方法及装置 |
CN105278987A (zh) * | 2015-09-30 | 2016-01-27 | 联想(北京)有限公司 | 一种信息处理方法和电子设备 |
CN105446991A (zh) * | 2014-07-07 | 2016-03-30 | 阿里巴巴集团控股有限公司 | 数据存储方法、查询方法及设备 |
CN105487925A (zh) * | 2015-12-08 | 2016-04-13 | 浙江宇视科技有限公司 | 数据扫描方法和装置 |
CN106202412A (zh) * | 2016-07-11 | 2016-12-07 | 浪潮软件集团有限公司 | 一种数据检索方法及装置 |
CN106790620A (zh) * | 2016-12-30 | 2017-05-31 | 许昌学院 | 一种分布式大数据处理方法 |
CN107239485A (zh) * | 2017-04-18 | 2017-10-10 | 北京小度信息科技有限公司 | 数据库操作方法、装置及系统 |
CN107273430A (zh) * | 2017-05-16 | 2017-10-20 | 北京奇虎科技有限公司 | 一种数据存储方法和装置 |
CN107480205A (zh) * | 2017-07-24 | 2017-12-15 | 北京京东尚科信息技术有限公司 | 一种进行数据分区的方法和装置 |
CN107656980A (zh) * | 2017-09-07 | 2018-02-02 | 北京神州绿盟信息安全科技股份有限公司 | 应用于分布式数据库系统中的方法及分布式数据库系统 |
CN109117440A (zh) * | 2017-06-23 | 2019-01-01 | 中国移动通信集团公司 | 一种元数据信息获取方法、系统和计算机可读存储介质 |
CN109299128A (zh) * | 2018-10-30 | 2019-02-01 | 江苏卫蓝医疗科技有限公司 | 一种手术室可视化数据调用系统及其方法 |
CN109522369A (zh) * | 2018-10-12 | 2019-03-26 | 金蝶软件(中国)有限公司 | 数据的搜索方法、装置、计算机设备和存储介质 |
CN109902126A (zh) * | 2019-02-18 | 2019-06-18 | 国家计算机网络与信息安全管理中心 | 支持hive自动分区的加载系统及其实现方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6405198B1 (en) * | 1998-09-04 | 2002-06-11 | International Business Machines Corporation | Complex data query support in a partitioned database system |
US6629102B1 (en) * | 2000-07-28 | 2003-09-30 | International Business Machines Corporation | Efficiently updating a key table during outline restructure of a multi-dimensional database |
CN1464454A (zh) * | 2002-06-10 | 2003-12-31 | 联想(北京)有限公司 | 实际销售数据的多维处理方法 |
US20110022816A1 (en) * | 2009-07-23 | 2011-01-27 | Swett Ian | Redundant, multi-dimensional data partitioning: methods, program product and system |
US20110093463A1 (en) * | 2009-10-21 | 2011-04-21 | Nokia Corporation | Method and system for projecting and injecting information spaces |
US20110219020A1 (en) * | 2010-03-08 | 2011-09-08 | Oks Artem A | Columnar storage of a database index |
CN102737123A (zh) * | 2012-06-13 | 2012-10-17 | 北京五八信息技术有限公司 | 一种多维数据分布方法 |
-
2012
- 2012-12-25 CN CN201210571950.0A patent/CN103902544B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6405198B1 (en) * | 1998-09-04 | 2002-06-11 | International Business Machines Corporation | Complex data query support in a partitioned database system |
US6629102B1 (en) * | 2000-07-28 | 2003-09-30 | International Business Machines Corporation | Efficiently updating a key table during outline restructure of a multi-dimensional database |
CN1464454A (zh) * | 2002-06-10 | 2003-12-31 | 联想(北京)有限公司 | 实际销售数据的多维处理方法 |
US20110022816A1 (en) * | 2009-07-23 | 2011-01-27 | Swett Ian | Redundant, multi-dimensional data partitioning: methods, program product and system |
US20110093463A1 (en) * | 2009-10-21 | 2011-04-21 | Nokia Corporation | Method and system for projecting and injecting information spaces |
US20110219020A1 (en) * | 2010-03-08 | 2011-09-08 | Oks Artem A | Columnar storage of a database index |
CN102737123A (zh) * | 2012-06-13 | 2012-10-17 | 北京五八信息技术有限公司 | 一种多维数据分布方法 |
Cited By (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105446991A (zh) * | 2014-07-07 | 2016-03-30 | 阿里巴巴集团控股有限公司 | 数据存储方法、查询方法及设备 |
CN105446991B (zh) * | 2014-07-07 | 2018-10-30 | 阿里巴巴集团控股有限公司 | 数据存储方法、查询方法及设备 |
CN104574159B (zh) * | 2015-01-30 | 2018-01-23 | 华为技术有限公司 | 数据存储、查询方法和装置 |
CN104574159A (zh) * | 2015-01-30 | 2015-04-29 | 华为技术有限公司 | 数据存储、查询方法和装置 |
CN105005617A (zh) * | 2015-07-21 | 2015-10-28 | 领航动力信息系统有限公司 | 一种时间序列数据的存储方法及装置 |
CN105005617B (zh) * | 2015-07-21 | 2018-10-12 | 领航动力信息系统有限公司 | 一种时间序列数据的存储方法及装置 |
CN105278987A (zh) * | 2015-09-30 | 2016-01-27 | 联想(北京)有限公司 | 一种信息处理方法和电子设备 |
CN105487925A (zh) * | 2015-12-08 | 2016-04-13 | 浙江宇视科技有限公司 | 数据扫描方法和装置 |
CN105487925B (zh) * | 2015-12-08 | 2019-01-15 | 浙江宇视科技有限公司 | 数据扫描方法和装置 |
CN106202412A (zh) * | 2016-07-11 | 2016-12-07 | 浪潮软件集团有限公司 | 一种数据检索方法及装置 |
CN106790620A (zh) * | 2016-12-30 | 2017-05-31 | 许昌学院 | 一种分布式大数据处理方法 |
CN106790620B (zh) * | 2016-12-30 | 2020-02-11 | 许昌学院 | 一种分布式大数据处理方法 |
CN107239485A (zh) * | 2017-04-18 | 2017-10-10 | 北京小度信息科技有限公司 | 数据库操作方法、装置及系统 |
CN107273430A (zh) * | 2017-05-16 | 2017-10-20 | 北京奇虎科技有限公司 | 一种数据存储方法和装置 |
CN107273430B (zh) * | 2017-05-16 | 2021-05-18 | 北京奇虎科技有限公司 | 一种数据存储方法和装置 |
CN109117440B (zh) * | 2017-06-23 | 2021-06-22 | 中移动信息技术有限公司 | 一种元数据信息获取方法、系统和计算机可读存储介质 |
CN109117440A (zh) * | 2017-06-23 | 2019-01-01 | 中国移动通信集团公司 | 一种元数据信息获取方法、系统和计算机可读存储介质 |
CN107480205B (zh) * | 2017-07-24 | 2020-06-05 | 北京京东尚科信息技术有限公司 | 一种进行数据分区的方法和装置 |
CN107480205A (zh) * | 2017-07-24 | 2017-12-15 | 北京京东尚科信息技术有限公司 | 一种进行数据分区的方法和装置 |
CN107656980A (zh) * | 2017-09-07 | 2018-02-02 | 北京神州绿盟信息安全科技股份有限公司 | 应用于分布式数据库系统中的方法及分布式数据库系统 |
CN107656980B (zh) * | 2017-09-07 | 2020-09-22 | 北京神州绿盟信息安全科技股份有限公司 | 应用于分布式数据库系统中的方法及分布式数据库系统 |
CN109522369A (zh) * | 2018-10-12 | 2019-03-26 | 金蝶软件(中国)有限公司 | 数据的搜索方法、装置、计算机设备和存储介质 |
CN109522369B (zh) * | 2018-10-12 | 2020-10-23 | 金蝶软件(中国)有限公司 | 数据的搜索方法、装置、计算机设备和存储介质 |
CN109299128A (zh) * | 2018-10-30 | 2019-02-01 | 江苏卫蓝医疗科技有限公司 | 一种手术室可视化数据调用系统及其方法 |
CN109902126A (zh) * | 2019-02-18 | 2019-06-18 | 国家计算机网络与信息安全管理中心 | 支持hive自动分区的加载系统及其实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103902544B (zh) | 2017-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103902544A (zh) | 一种数据处理方法及系统 | |
CN104794123B (zh) | 一种为半结构化数据构建NoSQL数据库索引的方法及装置 | |
CN108564470B (zh) | 一种区块链中并行建块的交易分发方法 | |
CN102521303B (zh) | 一种用于列数据库的单表多列序存储方法 | |
US20120303633A1 (en) | Systems and methods for querying column oriented databases | |
CN109325032B (zh) | 一种索引数据存储及检索方法、装置及存储介质 | |
US20150220600A1 (en) | Efficient set operation execution using a single group-by operation | |
CN104598376A (zh) | 一种数据驱动的分层自动化测试系统和方法 | |
CN104036029B (zh) | 大数据一致性对比方法和系统 | |
CN104199986A (zh) | 基于hbase和geohash的矢量数据空间索引方法 | |
CN101183387A (zh) | 一种增量数据捕获方法和系统 | |
CN105550225A (zh) | 索引构建方法、查询方法及装置 | |
CN104809182A (zh) | 基于动态可分裂Bloom Filter的网络爬虫URL去重方法 | |
CN101968806A (zh) | 数据存储方法、查询方法及装置 | |
US9256659B1 (en) | Systems and methods for generating database identifiers based on database characteristics | |
CN102402617A (zh) | 一种利用分片及稀疏位图的易压缩数据库索引存储系统及其相应的构建、调度和查询处理方法 | |
CN105677683A (zh) | 批量数据查询方法和装置 | |
CN107180031B (zh) | 分布式存储方法及装置、数据处理方法及装置 | |
US20230067182A1 (en) | Data Processing Device and Method, and Computer Readable Storage Medium | |
CN106471501A (zh) | 数据查询的方法、数据对象的存储方法和数据系统 | |
CN104268298A (zh) | 一种创建数据库索引及其查询的方法 | |
CN105677761A (zh) | 一种数据切分的方法及系统 | |
CN104572862A (zh) | 一种海量数据存储访问方法及系统 | |
CN101963993B (zh) | 一种数据库单表记录快速查找的方法 | |
CN102890719A (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 |