【技术实现步骤摘要】
一种基于动态镜像的实时数据仓库数据预存取方法
本专利技术涉及一种实时数据仓库中实时数据访问预存取方法,具体涉及一种基于动态镜像技术的实时数据仓库中数据查询竞争处理方法。
技术介绍
近年来,电子信息数据在企业的运营中越来越重要,企业需要对电子信息数据进行高效、及时、精确地分析。传统的数据仓库采用ETL工具周期性地从数据源中抽取数据,经过处理后加载到数据仓库,而数据抽取的周期通常为一个月一次、一周一次、或者一天一次,通常只支持历史数据的查询与分析,不能实时捕获数据源中的变化。然而,在实时数据仓库中,实时数据导入与实时数据查询会引发查询竞争问题,其产生的冲突将严重影响联机在线分析(On-LineAnalysisProcessing,OLAP)的精度和效率,降低了数据仓库的性能。面对实时数据仓库中的数据查询与导入引发的竞争问题,近年来,开展了许多研究工作,包括提高数据库的性能、增加外部实时数据缓存、即时(JustInTime)合并外部数据缓存信息、反向即时数据合并、实时分区、主动分区等。(1)单独实时数据缓存方法是使用一种与数据仓库分离的外部缓存。外部数据缓存持续更新,数据仓库使用数据抽取与转换工具(ETL工具)以批处理模式进行数据更新,所有实时数据或准实时数据的查询直接定位到外部的数据缓存,从而避免了在数据仓库中的查询竞争问题。但是,如果数量巨大的复杂查询与分析运行在外部实时数据缓存,则同样会出现数据仓库的查询竞争问题。(2)简化和限制实时报表方法,需要实时数据的用户只能发出简单的查询要求,限制复杂查询语句。这种方法可以消除查询竞争,但是无法满足用户对复杂查询的 ...
【技术保护点】
一种基于动态镜像的实时数据仓库预存取方法,其特征在于,包括以下步骤: (1)建立实时数据仓库的分类ETL结构; (2)在数据仓库外部构建动态存储区域,动态存储区域由多个数据镜像与基于双重链接的镜像索引组成; (3)动态镜像管理,包括镜像创建与回收、基于双重链接的镜像索引维护。
【技术特征摘要】
1.一种基于动态镜像的实时数据仓库预存取方法,其特征在于,包括以下步骤:(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。2.根据权利要求1所述的基于动态镜像的实时数据仓库预存取方法,其特征在于,所述步骤(3)动态镜像管理,包括镜像创建与回收,及基于双重链接的镜像索引维护;动态镜像创建的具体过程如下:(3.1...
【专利技术属性】
技术研发人员:毛莺池,王久龙,闵伟,平萍,贾必聪,
申请(专利权)人:河海大学,
类型:发明
国别省市:江苏;32
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。