[发明专利]一种数据存储方法和装置在审
申请号: | 201110198294.X | 申请日: | 2011-07-15 |
公开(公告)号: | CN102880615A | 公开(公告)日: | 2013-01-16 |
发明(设计)人: | 赵伟;张书彬;徐钊;郭玮;李均;洪坤乾 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 广州三环专利代理有限公司 44202 | 代理人: | 郝传鑫;熊永强 |
地址: | 518057 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据 存储 方法 装置 | ||
技术领域
本发明涉及数据存储领域,尤其涉及一种数据存储方法、数据访问方法和数据存储装置。
背景技术
分布式数据仓库需要对T/P级(即1024G或1024T,G为1024M,M为1024K,K为1024比特)的海量数据进行分析处理,这些数据是各个客户提供的业务或用户行为信息,逻辑上通常以表(Table)的形式存储。传统的数据库(Database)/数据仓库(Data Warehouse)产品通常以行为单位对记录进行存储,访问的时候也只能整行读取。这种处理方式对需要处理海量数据的分布式数据仓库系统来说,存在3个严重的问题:
1、为方便统计、计算等应用场景,数据仓库中的表通常都是宽表,一般都是几十、几百个字段,数据冗余非常大,在以行为单位的存储、访问模型中,哪怕只需要访问一个字段(通常一个字段对应一列),也需要读取整个记录的所有字段,然后留下需要的信息,将不需要的字段抛弃。这个过程会浪费很多的本地磁盘输入输出(IO),无疑会导致集群的处理效率低下,特别是在需要访问的字段数远小于整表实际的字段数的时候。而这种情况在数据仓库需要处理的业务类型中非常常见。
2、在分布式数据仓库中,业务请求通常会被分拆成多个任务,分别由集群中的各个节点执行,当需要访问的数据量越大的时候,所需要参与计算的节点就越多。在传统以行为单位存储、访问的模型中,由于会读取大量冗余的字段信息,会明显增大业务的计算规模,导致集群中计算资源的严重浪费,进一步导致整个集群的处理效率低下。
3、在分布式数据仓库中,集群中参与计算的各个节点之间需要通过网络共享、传输大量的数据,需要传输的数据量越大,网络带宽的负载就越大,进而影响整个集群的处理效率。而在以行为单位的存储、访问模型中,由于有大量的数据是冗余的,在进行业务处理的时候,会浪费大量的网络带宽。
因此,若没有高效的数据逻辑存储结构,会使得集群处理的效率底下,甚至很可能会导致计算任务无法完成。当前的部分数据库,例如Oracle通过压缩技术部分缓解,但无法从根本上解决。
发明内容
本发明实施例所要解决的技术问题在于,提供一种数据存储方法及装置。可提高分布式集群中的数据处理效率。
为了解决上述技术问题,本发明实施例提供了一种数据存储方法包括:
获得需要存储的数据和所述数据的逻辑存储信息;
根据所述逻辑存储信息将所述数据以段为单位存储在数据文件中,并在所述数据文件中形成数据段和数据段索引,所述数据段索引用于在所述数据文件中定位数据所在的数据段,以便分布式集群并行处理所述数据文件的数据段。
其中,所述需要存储的数据为列簇数据,所述获得需要存储的数据和所述数据的逻辑存储信息包括:
获得列簇数据和所述列簇数据的逻辑存储信息,所述列簇数据中包括一个数据表中的多列数据,所述逻辑存储信息用于将所述列簇数据存储在所述数据文件中;
所述方法还包括获得列簇定义信息,所述列簇定义信息中包括所述数据表中各列簇数据的组成信息以及各列簇数据的逻辑存储位置。
在所述获得列簇数据之前包括:
根据数据表结构和业务将所述数据表分为多个列簇数据。
数据段还可包括数据单元,所述数据单元中包括数据块,所述方法还包括:
根据所述逻辑存储信息将所述数据格式化为多个数据块;
将所述多个数据块存储在一个数据单元中,再将多个数据单元存储在一个数据段中,并在所述数据段中形成所述数据单元的数据单元索引。
所述将多个数据单元存储在一个数据段中包括,将多个数据单元压缩后存储在一个数据段中。
所述数据文件为数据仓库中的存储文件。
相应的,本发明实施例还提供了一种数据访问方法,包括:
获得需要访问的数据的数据文件信息;
根据所述数据文件信息获取所述数据文件中存储的数据段索引信息,所述数据段索引用于在所述数据文件中定位数据所在的数据段,以便分布式集群并行处理所述数据文件的数据段;
根据所述数据段索引信息获取所述数据在所述数据文件的逻辑存储位置;
根据所述逻辑存储位置访问所述数据。
其中,所述数据文件中存储列簇数据,所述列簇数据中包括一个数据表中的多列数据,所述获得需要访问的数据的数据文件信息包括:
判断业务需要的数据是否处于一个列簇数据中;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110198294.X/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置