[发明专利]一种大数据分布式存储方法和系统在审
| 申请号: | 201410315506.1 | 申请日: | 2014-07-03 |
| 公开(公告)号: | CN104063486A | 公开(公告)日: | 2014-09-24 |
| 发明(设计)人: | 蒲思羽 | 申请(专利权)人: | 四川中亚联邦科技有限公司 |
| 主分类号: | G06F17/30 | 分类号: | G06F17/30 |
| 代理公司: | 北京天奇智新知识产权代理有限公司 11340 | 代理人: | 郭霞 |
| 地址: | 610000 四川省成都市高*** | 国省代码: | 四川;51 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 数据 分布式 存储 方法 系统 | ||
1.一种大数据分布式存储方法,用于在云存储系统中实现大数据的存储和查询,所述云存储系统包括主节点,分布式计算节点和数据节点,其特征在于,包括:
将数据管理引擎运行在主节点上,接收用户查询,对查询进行编译、转换和优化、生成查询执行计划并执行查询,同时进行元数据管理和节点监控;
在分布式计算节点上运行服务器进程,执行分布式计算任务;
将分布式计算的工作进程以及单节点数据库部署在数据节点,将数据表存储在数据节点的数据库中;
将由用户查询转换成的子查询在数据库中执行,或者在分布式计算框架中执行。
2.根据权利要求1所述的方法,其特征在于,所述数据表使用二维关系表结构,数据表的存储采用独立划分存储和组合划分存储,其中:
在对表进行独立划分时,指定划分数n、划分所依据的划分键属性列AP以及冗余系数k。对于需要划分的表的每一条元组,根据划分键AP的值计算出该元组所属的划分ID,然后将该元组存储到该划分对应的一个或者多个节点的数据库中;
如果事实表A的划分键AP上是表A的外码,指向维表B的主码BP即表A的划分键AP也是表A与表B连接时使用的连接键,则将跨节点的连接操作转化为本地的连接操作并下推到数据库中执行,此时将两个表的数据组合划分;在对表进行组合划分时,使用基于散列的划分或者基于范围的划分,将数据划分为p个独立的划分,每个划分的数据存储在k个不同节点上;若表B依赖于表A进行组合划分,则表B的划分数等于表A的划分数,且:
如果表B的冗余系数kB等于表A的冗余系数kA,则表B的每个划分的存储节点就是表A相应划分的存储节点;
如果表B的冗余系数kB小于表A的冗余系数kA,则表B的每个划分的存储节点是表B相应划分的存储节点中取前kB个节点;
如果表B的冗余系数kB大于表A的冗余系数kA,则表B的每个划分的存储节点除了包含表A的相应划分的存储节点之外再进行扩展,扩展的(kB-kA)个节点是紧接在原来的节点链之后的节点。
3.根据权利要求2所述的方法,其特征在于:
在将表的元组进行独立划分时,利用基于散列的划分或基于范围的划分,基于散列的划分在元组划分键AP上应用合适的散列函数,得到的散列值再对划分数n取模,即得到元组的划分ID;针对不同的数据类型,应用不同的散列函数;
基于范围的划分预先将属性列AP的候选值区间划分成多个连续的范围,每个范围对应一个划分,将元组属性列AP的值所在范围作为元组所述的划分。
4.根据权利要求1所述的方法,其特征在于,所述查询执行进一步包括:
1)用户通过客户端提交查询,数据管理引擎接收用户查询;
2)对查询语句进行词法和语法分析,生成语法树,然后将语法树转化为标准的关系代数树,并进行语义检查;
将关系代数树转化为逻辑查询计划,并应用启发式规则对其进行初步优化;
根据代价模型选择最优的查询路径,生成实际查询计划;
将实际查询计划转化为一个任务调度图,所述任务调度图中的每个任务都是一个子查询,对应一个分布式计算任务,每个任务必须待其依赖的任务执行完成后才能开始执行;
3)调度和监控任务的执行,根据任务之间的执行依赖关系将任务有序提交给分布式计算服务器,并报告各个任务的执行状态,
将单个任务执行后生成的中间结果或者最终结果存储到数据库的表中或者写入分布式文件系统中,通过数据物化的方式在不同任务之间实现输入输出数据的传递;
4)将最后生成的结果返回给用户中。
5.一种大数据分布式存储系统,包括主节点,分布式计算节点和数据节点,其特征在于:
所述主节点,用于运行数据管理引擎,该数据管理引擎配置以接收用户查询,对查询进行编译、转换和优化、生成查询执行计划并执行查询,同时进行元数据管理和节点监控;
所述分布式计算节点,用于运行服务器进程,执行分布式计算任务;
所述数据节点,用于部署分布式计算的工作进程以及单节点数据库,数据表存储在所述数据库中,
其中,由用户查询转换成的子查询在数据库中执行,或者在分布式计算框架中执行。
6.根据权利要求5所述的系统,其特征在于,所述数据管理引擎进一步包括:
元数据管理模块,用于存储数据库的元数据信息,所述元数据包括数据表的模式、表数据的划分与存储方法、数据节点信息;
查询编译模块,用于对用户提交的查询进行编译,生成逻辑查询计划;
查询优化模块,用于使用基于规则和基于代价的方法对逻辑查询计划进行优化,得到实际查询计划,然后将其转换成由分布式计算任务组成的任务调度图,提交给查询执行模块执行;
查询执行模块,用于调度分布式计算任务,按照各个任务的依赖关系,同步的执行调度,并监控任务的执行状态,其中每个任务只有在它所依赖的所有任务都执行成功后才能被启动;
节点监控与负载平衡模块,用于定时轮询各个数据节点的状态,发现节点失效后更新相应元数据,当冗余值低于预定义阈值后,对数据增加新的冗余,定期检查数据分布状态,当发现节点负载不平衡时对数据进行重新分布。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于四川中亚联邦科技有限公司,未经四川中亚联邦科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410315506.1/1.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置





