[发明专利]一种基于动态镜像的实时数据仓库数据预存取方法有效
申请号: | 201410447265.6 | 申请日: | 2014-09-03 |
公开(公告)号: | CN104268159B | 公开(公告)日: | 2017-06-20 |
发明(设计)人: | 毛莺池;王久龙;闵伟;平萍;贾必聪 | 申请(专利权)人: | 河海大学 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 南京苏高专利商标事务所(普通合伙)32204 | 代理人: | 李玉平 |
地址: | 211100 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种基于动态镜像的实时数据仓库预存取方法。所述方法包括以下步骤,首先,建立基于实时数据仓库的分类ETL结构;然后,在数据仓库外部构建动态存储区域,动态存储区域由多个数据镜像与基于双重链接的镜像索引组成;最后,通过动态镜像创建、回收算法,对镜像进行管理,主要是动态镜像创建、动态镜像分配和基于双重链接的镜像索引维护。通过在实时数据仓库外部创建一个由多个镜像组成的实时数据存储区域,并建立基于双重链接的镜像索引,方便快速查找最新加载的数据,有效解决实时数据仓库的查询竞争问题,提升实时数据查询结果的精度。 | ||
搜索关键词: | 一种 基于 动态 实时 数据仓库 数据 存取 方法 | ||
【主权项】:
一种基于动态镜像的实时数据仓库预存取方法,其特征在于,包括以下步骤:(1)建立实时数据仓库的分类ETL结构;(2)在数据仓库外部构建动态存储区域,动态存储区域由多个数据镜像与基于双重链接的镜像索引组成;(3)动态镜像管理,包括镜像创建与回收、基于双重链接的镜像索引维护;所述步骤(1)的具体步骤为:(1.1)将实时数据仓库的ETL分为实时ETL和历史ETL;(1.2)数据仓库存储区域分为实时数据存储区和静态数据存储区;静态数据是指由历史ETL将OLTP系统中的数据处理并存入数据仓库的静态数据存储区的数据,实时数据是指先由实时ETL将OLTP系统中的数据处理并存入动态存储区域、然后根据触发条件由动态存储区域存入数据仓库的实时数据存储区的数据;(1.3)历史ETL将OLTP系统中查询任务提交时间之前存在的数据以批处理方式存入数据仓库的静态数据存储区域;(1.4)实时ETL通过CDC技术捕获OLTP系统中查询任务提交时间之后更新的数据并加载到动态存储区域,在动态存储区域对数据进行查询、更新、删除,当满足系统触发条件后再以批处理方式存入到数据仓库中的实时数据存储区;所述步骤(2)动态存储区域,包括动态镜像与基于双重链接的镜像索引;(2.1)镜像是具有相同的逻辑结构和物理结构的数据存储区域,并根据数据查询任务的需求,在动态存储区中动态创建;系统将OLTP中实时数据加载至镜像中;(2.2)当创建一个镜像时,系统在动态存储区中保存一个相应的镜像文件,用四元组表示:τ<image_address,image_size,data_id,timestamp>;其中,image_address表示镜像在动态存储区中的首地址;image_size表示镜像分配的存储空间大小;data_id表示镜像存储的数据源;timestamp表示数据的时间戳;(2.3)根据每个镜像文件中data_id,将所有data_id相同的镜像构建成一个镜像链表Link_img;镜像链表Link_img由链表头节点img_head和链表节点img_node组成;(2.4)链表头节点img_head由镜像数据源data_id与指向链表第一个节点的地址head_next组成;由于在一个镜像链表中,所有镜像的数据源是来自同一的数据源,数据源data_id相同;指向链表第一个节点的地址head_next存放第一个镜像首地址image_address;(2.5)根据镜像文件内容,链表节点img_node由镜像大小image_size,镜像数据时间戳timestamp,操作标识符tag,及指向下一个链表节点的地址img_next组成;操作标识符tag用于记录当前镜像数据的操作类型,其初始值为0;若当前镜像内容节点的数据是从源数据库系统OLTP导入至动态存储区,则此镜像内容节点的操作标识符置为0;若当前镜像内容节点的数据需要从动态存储区批量加载至数据仓库的实时数据存储区,则操作标识符置为1;对于当前镜像而言,若在动态存储区中,不存在来自同一数据源的镜像,则img_next设为空;否则,img_next存放下一个来自同一数据源的镜像的首地址image_address;(2.6)在同一个镜像链表中,存储了来自同一数据源,但是更新时间不同的数据镜像信息;随着系统运行,最近更新数据的时间戳一定大于较早更新数据的时间戳,所以,镜像链表中的节点按其数据时间戳倒序排序;(2.7)所有来自同一数据源的镜像构成一个镜像链表,称之为一个镜像桶bucket,其中镜像桶的首地址bucket_address为链表头节点地址;(2.8)在动态存储区中,若存储了n个数据源的数据,就有n个镜像桶;为了加快镜像数据的查找与定位,将对多个镜像桶采用链表结构,构成一个镜像桶链表Link_bucket;镜像桶链表Link_bucket是一个无链表头节点的链表,仅仅由镜像桶链表节点bucket_node构成;(2.9)每个镜像桶链表节点bucket_node由数据源data_id,镜像桶的首地址bucket_address,与指向下一个镜像桶链表节点的地址bucket_next组成;其中,数据源data_id存放对应的镜像链表的数据源data_id;镜像通的首地址bucket_address存放对应镜像链表头节点地址;向下一个镜像桶链表节点的地址bucket_next存放下一个镜像桶的地址bucket_address;若动态存储区中不存在任何数据,即不存在任何数据源的镜像桶,则不存在镜像桶链表;若在动态存储区中,若只有一个镜像桶,则其bucket_next为空;否则,bucket_next存放下一个bucket_address。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于河海大学,未经河海大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201410447265.6/,转载请声明来源钻瓜专利网。