首页 / 专利库 / 软件 / 物化视图 / 一种Web可视化环境中的数据视图副本迭代方法

一种Web可视化环境中的数据视图副本迭代方法

阅读:315发布:2020-05-21

专利汇可以提供一种Web可视化环境中的数据视图副本迭代方法专利检索,专利查询,专利分析的服务。并且一种Web 可视化 环境中的数据视图副本 迭代 方法,包括以下步骤:第一步、建立一个动态演化模型,分为 大数据 用户层、大 数据可视化 层及大数据源层;第二步、基于所述的模型,提出的Web可视化环境中的数据视图副本迭代方法。本 发明 提出了一种Web可视化环境中的数据视图副本迭代方法,将可视化结果进行物化缓存,并通过副本迭代方法提高数据视图的更新效率,避免频繁的更新对查询性能的影响,降低数据视图的检索开销;该方法在查询集较大、数据源更新较为频繁的Web环境中,能够对海量数据进行快速查询与可视化展示;并实现更新缓存时保证现有正在 访问 数据视图的用户不被影响。,下面是一种Web可视化环境中的数据视图副本迭代方法专利的具体信息内容。

1.一种Web可视化环境中的数据视图副本迭代方法,其特征在于:包括以下步骤:
第一步、建立一个动态演化模型,分为大数据用户层、大数据可视化层及大数据源层;
1.1、大数据用户层:由网络上具有不同大数据可视化需求的用户构成,用户通过访问大数据可视化层来获取感兴趣的大数据信息,用户层不依赖具体的技术架构,并可在可视化层中定制不同的视图来分析数据的多个维度;
1.2、大数据可视化层:基于平台架构,提供一种统一的标准让用户来查询不同的大数据源;可视化层接受大数据用户的数据视图查询请求后,判断是否存在物化缓存,向大数据源发出服务请求然后将返回的结果集进行可视化效果展示给用户;或者直接查询系统的物化缓存,将结果进行可视化分析响应给用户;可视化层包括精灵线程池模、物化缓存模块、副本迭代模块和可视化分析模块;
所述精灵线程池模块,用于负责线程的分配,系统在初始化阶段根据一定的映射规则解析每个数据视图的相关信息构建一个资源配置文件,系统分析后将需要进行物化缓存的数据视图信息生成物化缓存视图索引表VIT,VIT基于物化缓存更新算法将数据视图加入物化缓存执行队列,由线程分配机制分配合适的线程向大数据源建立连接发出服务请求,所述物化缓存模块,用于针对计算量大、实时性不高、用户请求频繁的大数据可视化查询采取物化缓存的方法,预先缓存大数据源对相应查询计算的结果,将该数据视图的数据结果集采取内存存储或者持久化存储方式,用户发出该视图的请求时,不必向大数据源建立连接发出服务请求,直接用缓存的数据结果集进行可视化分析响应给用户;
所述副本迭代模块,用于当大数据源的数据更新后,由精灵线程向大数据源发出请求得到新的物化缓存,此时需要将新的缓存替换之前的缓存存储于系统中;
所述可视化分析模块,用于将用户访问数据视图后返回的数据集进行可视化分析,将大数据以直观的可视化的图形形式展示给用户;
1.3、大数据源层:指的是在网络上的大数据供应商,采用分布式架构存储海量数据,有效支持大数据的处理需求,大数据源层一般提供大数据服务,即将数据以服务的方式提供给可视化层;
第二步、基于所述的模型,提出的Web可视化环境中的数据视图副本迭代方法如下:
2.1大数据用户提交数据可视化查询请求;
2.2在大数据可视化层,每一个数据视图在初始化阶段都被赋予一个唯一的URL资源,并记录了数据可视化视图的相关信息,作为资源配置文件存储于持久化层。系统初始化阶段将其映射到内存的缓存配置表中,根据数据视图的访问率与自身更新频率选择是否进行物化缓存,并针对数据视图的资源特性选择合适的存储方式,通用原则是:内存存储适合访问热度高但数据量小的数据结果,持久化存储适合数据量大,但访问热度相对较低的数据结果;将需要进行物化缓存的数据视图信息写入物化缓存视图索引表VIT,对VIT使用半形式化方法描述如下:
VIT=key,value.
value=VDK,[MCS],[MCRI]
MCS=’0’|’1’|’2’
MCRI=’0’|’1’
其中VIT是一个HashMap表,key为用户的查询URL,即大数据用户访问数据视图的网址;
value为一个三元组,组成规则为:value=VDK(Visual Data Key数据视图的名称,唯一)+MCS(Materialized Cache Style对应物化缓存的方式)+MCRI(Materialized Cache Replica Identify物化缓存副本查询标志符);其中MCS包括内存存储或者持久化存储,内存存储用0表示,持久化文件存储用1表示,持久化数据库存储用2表示;MCRI标志是否应该查询该数据视图的物化缓存副本,1表示查询,0表示不查询;
2.3系统基于物化缓存更新算法周期性地累积缓存索引集合被访问的次数,并将访问次数周期性地累积成热度进行保存;系统设置一个物化缓存更新过滤器,过滤器中有一个过滤表FT,FT中数据是一个动态数组,里面包含正在进行副本迭代数据视图的URL。系统选择累积热度TOP—K的数据视图,通过物化缓存更新过滤器中FT的比对,对VIT中存在但FT中没有的数据视图加入物化缓存执行队列,并在物化缓存执行队列中保存数据视图的URL,由精灵线程模块解析后分配合适的线程向大数据源建立连接发出服务请求;
2.4系统将返回的数据视图缓存数据写入对应的缓存方式,考虑到物化缓存存储方式分为内存存储和持久化存储,因此根据存储方式进行区别处理:对于内存存储,在内存中建立值表MVT与值表副本MVT-rp,MVT结构是一个HashMap,其中key是查找的数据视图名称VDK,value为一个二元组,包括该数据视图物化缓存的数据和数据视图此时用户的访问量count,MVT-rp结构也是一个HashMap,其中key是查找的数据视图名称VDK,value为一个三元组,包括该数据视图物化缓存的数据、数据视图此时用户的访问量count和副本迭代成功标识符CopySuc(1表示迭代成功,0表示尚未迭代);MVT和MVT-rp负责提供存储在内存中的物化缓存并监控相应数据视图的用户访问情况;持久化存储形式由系统初始化设定,可分为文件系统存储和数据库系统存储,对于文件系统存储,在内存中建立文件索引表FIT和文件索引表副本FIT-rp,FIT结构是一个HashMap表,其中key是查找的数据视图名称VDK,value为一个二元组,包括该数据视图物化缓存文件存储路径FilePath和该数据视图此时用户的访问量count,FIT-rp结构也是一个HashMap,其中key是查找的数据视图名称VDK,value为一个三元组,包括该数据视图物化缓存的数据、数据视图此时用户的访问量count和副本迭代成功标识符CopySuc;在数据视图查询时系统将用户的查询URL匹配为主键,查询物化缓存视图索引表VIT,如果能匹配到,说明该数据视图已提供了物化缓存。对于具有物化缓存的数据视图,模型不再对数据源进行真正访问,改为访问物化缓存,查询VIT中该条数据视图记录的MCRI值,如果字段为1,说明应该查询数据视图的物化缓存副本,转步骤
2.5,否则转步骤2.6;
2.5选择访问该数据视图的物化缓存副本数据;查询VIT,如果VIT记录的该条数据视图的MCS字段为0,则系统基于VDK为主键查找MVT-rp并返回二元组中的缓存json数据,然后将MVT-rp中该数据视图此时用户的访问量count增加1;如果MCS字段为1,则系统基于VDK为主键查找FIT-rp中的缓存文件存储路径FilePath,并访问磁盘中该缓存副本文件(以json文件存储),将FIT-rp中该数据视图此时用户的访问量count增加1;如果MCS字段为2,系统依据数据视图VDK为主键去数据库进行物化缓存的搜索,并将搜索结果返回;
2.6选择访问该数据视图的物化缓存数据;查询VIT,如果VIT记录的该条数据视图的MCS字段为0,,则系统基于VDK为主键查找MVT并返回二元组中的缓存json数据,然后将MVT中该数据视图此时用户的访问量count增加1;如果MCS字段为1,则系统基于VDK为主键查找FIT中的缓存文件存储路径FilePath,并访问磁盘中该缓存副本文件,将FIT中该数据视图此时用户的访问量count增加1;如果MCS字段为2,系统依据数据视图VDK为主键去数据库进行物化缓存的搜索,并将搜索结果返回;
2.7将返回的结果json注入相应的可视化模块中并将形成的可视化效果展示给用户,如果该结果json是从内存中或者持久层文件系统中取出来的,则将对应的MVT、FIT或者MVT-rp、FIT-rp中该数据视图此时用户的访问量count减少1。
2.如权利要求1所述的一种Web可视化环境中的数据视图副本迭代方法,其特征在于:
所述步骤2.3中,物化缓存更新算法的过程如下:
2.3.1物化缓存更新的对象初始范围限定于VIT数据集中;
2.3.2计算VIT中当前热度计算周期内数据视图的物化缓存i被访问的次数counti,设cti为物化缓存i被创建的时间,T为当前时间,计算物化缓存i在缓存区域中已经存在的时间T-cti与缓存对象i命中需要的平均时间
2.3.3系统计算物化缓存i自身更新的频率updatei;
2.3.4记录对于物化缓存i发送一个请求开始到客户端收到最后一个字节的响应所耗费的时间TTLBi;
2.3.5定义物化缓存i在周期j的热度值Valueij,计算公式如下:
其中β为相关系
数,Valueij-1表示该缓存在上一个热度计算周期中的热度值,参数α是衰减系数,用来确定当前周期热度累积的热度和历史热度各自所占的权重,α越大,则最近的访问在数据访问热度中所占的权重越大,历史访问记录对数据热度的影响越小,反之亦然;集合的历史热度在本计算周期内以系数(1-α)的速率衰减,经过多次迭代,更早计算周期的累积热度经过了更多次衰减;
2.3.6系统将记录的所有物化缓存累积热度值进行排序,选择累积热度TOP—K的数据视图,将数据视图的URL与物化缓存更新过滤器中FT中的URL进行对比。如果在FT中没有搜索到,代表目前该数据视图没有进行副本迭代,加入物化缓存执行队列,安全进行缓存更新,其中物化缓存执行队列以队列结构存储需要更新数据视图的URL;如果在FT中搜索到,则表示目前该数据视图正在副本迭代,且迭代过程目前还没有完成,因此不加入物化缓存执行队列,不必进行缓存更新。
3.如权利要求2所述的一种Web可视化环境中的数据视图副本迭代方法,其特征在于:
所述步骤2.3.3中,缓存自身更新的频率updatei需由大数据可视化层向大数据源周期的发送请求,将返回数据结果与现有的缓存数据进行对比,从而计算出缓存自身更新的频率;对每一种物化缓存的大数据源进行数据更新的预测,以便在下一次大数据源更新时获取最新的数据,提出一种数据更新预测动态请求算法,通过每次请求返回的比对结果动态调节下一次请求的间隔时间RI,另设置一个慢请求限值srthresh,当请求间隔时间未达到门限值时采取间隔时间单位指数增加,之后采取线性增加方式;数据更新预测动态请求算法的步骤如下:
2.3.3.1动态请求初始化:在初始化阶段设置初始的请求间隔为一个单位时间,即RI1=
1,单位时间可以是一个小时、半个小时、十分钟等,具体数值由系统根据经验定值,另定义一个慢请求门限值srthresh;
2.3.3.2系统向大数据源发出比对请求,对请求返回的结果进行分析比对,如果发现缓存并未更新,则进行步骤2.3.3.3,否则进行步骤2.3.3.4;
2.3.3.3如果发现此轮的请求间隔时间RIk小于或等于慢请求门限值srthresh,k=2,3,
4,5…,则定义下一轮请求间隔时间RIk+1=2*RIk,否则下一轮请求间隔时间RIk+1=RIk+1,转步骤2.3.3.2;
2.3.3.4直接定义下一轮的请求间隔时间RIk+1=RIk/2,转步骤2.3.3.2。
4.如权利要求1~3之一所述的一种Web可视化环境中的数据视图副本迭代方法,其特征在于:所述步骤2.4中,副本迭代方法的步骤如下:
2.4.1系统通过对数据源的数据更新监测,通过物化缓存更新过滤器中FT的比对过滤后将VIT中需要进行更新的数据视图加入物化缓存执行队列,并由精灵线程模块选择合适的线程向大数据源建立连接发出服务请求,返回数据视图新的物化缓存json数据,通过读取VIT的MCS来了解当前数据视图的物化缓存类型,如果MCS为2转步骤2.4.2,如果MCS为0或者1则转步骤2.4.3;
2.4.2系统将新的物化缓存数据写入数据库;
2.4.3完成物化缓存副本数据的写入工作;
2.4.4系统将用户的查询URL匹配为主键,查询VIT中该条数据视图记录的MCRI值;
2.4.5执行迭代过程;
2.4.6当物化缓存副本拷贝完毕后,系统修改MVT-rp或FIT-rp中该数据视图的CopySuc字段为1,并修改VIT中MCRI为0;
2.4.7当系统基于VDK为主键检测MVT-rp或FIT-rp的二元组中该数据视图此时用户的访问量count为0并且该数据视图的CopySuc字段为1时,系统删除MVT-rp中该数据视图的记录或者删除FIT-rp中该数据视图的记录和磁盘中对应的缓存副本文件;
2.4.8系统将VIT中该数据视图的MCRI修改为0,并且将该数据视图的URL从FT中删除。
5.如权利要求4所述的一种Web可视化环境中的数据视图副本迭代方法,其特征在于:
所述步骤2.4.3中,完成物化缓存副本数据的写入工作的过程如下:
2.4.3.1,根据VIT中MCS的值进行选择存储介质的过程如下:
2.4.3.1.1如果MCS为0,系统将新的物化缓存数据写入MVT-rp并设置MVT-rp中该数据视图的count和CopySuc为0;
2.4.3.1.2如果MCS为1,系统将新的物化缓存数据保存在磁盘中作为缓存副本文件,并将此缓存副本文件的路径FilePath加入FIT-rp并设置FIT-rp中该数据视图的count和CopySuc为0;
2.4.3.2如果该物化缓存副本生成失败,系统生成监控日志上报管理员,转步骤2.4.1重新生成物化缓存副本,否则转步骤2.4.3.3;
2.4.3.3将该数据视图URL加入FT并修改VIT中该数据视图的MCRI为1。
6.如权利要求4所述的一种Web可视化环境中的数据视图副本迭代方法,其特征在于:
所述步骤2.4.4中,查询VIT中该条数据视图记录的MCRI值的过程如下:
2.4.4.1根据VIT中MCRI的值选择查询的响应方式,过程如下:
2.4.4.1.1如果MCRI字段为0,用MVT或FIT查询响应新的用户请求,每一个新用户查询都会使得MVT或FIT中的count值加1。并且转步骤2.4.1重新生成物化缓存副本;
2.4.4.1.2如果MCRI字段为1,用MVT-rp或FIT-rp查询响应新的用户请求,每一个新用户查询都会使得MVT-rp或FIT-rp中的count值加1;
2.4.4.2如果新用户对MVT-rp或FIT-rp访问出错,系统生成监控日志上报管理员并修改VIT中MCRI为0,转步骤2.4.4.1。
7.如权利要求4所述的一种Web可视化环境中的数据视图副本迭代方法,其特征在于:
所述步骤2.4.5中,执行迭代过程如下:
2.4.5.1系统基于VDK为主键检测MVT或FIT的二元组中该数据视图此时用户的访问量count是否为0,当MVT或FIT中的conut为0,表明目前没有用户在访问旧缓存,可以安全执行副本迭代,过程如下:
2.4.5.1.1对于内存存储,将MVT-rp中该数据视图的物化缓存数据覆盖到MVT中对应位置上;
2.4.5.1.2对于持久化文件存储,将磁盘中的缓存副本文件拷贝到缓存文件;
2.4.5.2在拷贝过程中,如果缓存内容较大,可能需要一定的时长,此时如果有新用户进来访问该数据视图,系统会继续选择MVT-rp或者FIT-rp进行查找响应,每一个新用户查询都会使得MVT或FIT中的count值加1‘’
2.4.5.3如果副本迭代过程出错,暂时停止对该物化缓存数据的拷贝,继续使用MVT-rp或者FIT-rp数据响应用户,同理,每一个新用户查询都会使得MVT-rp或FIT-rp中的count值加1,系统生成监控日志上报管理员,并转步骤2.4.5重新对该数据视图执行迭代过程。
8.如权利要求4所述的一种Web可视化环境中的数据视图副本迭代方法,其特征在于:
所述步骤2.4.6的过程如下:
2.4.6.1系统将用户的查询URL匹配为主键,查询VIT中该条数据视图记录的MCRI值;
2.4.6.2根据VIT中MCRI的值选择查询访问方式,过程如下:
2.4.6.2.1如果MCRI字段为0,用MVT或FIT查询响应新的用户请求,每一个新用户查询都会使得MVT或FIT中的count值加1;
2.4.6.2.2如果MCRI字段为1,用MVT-rp或FIT-rp查询响应新的用户请求,每一个新用户查询都会使得MVT-rp或FIT-rp中的count值加1,并且转步骤2.4.5重新对该数据视图执行迭代过程;
2.4.6.3如果新用户对MVT或FIT访问出错,系统生成监控日志上报管理员并修改VIT中MCRI为1,转步骤2.4.6.1。
9.如权利要求5所述的一种Web可视化环境中的数据视图副本迭代方法,其特征在于:
所述步骤2.4.3.3中的监控日志是一个五元组集合,集合格式为(VDK,CT,MS,HSC,EI),具体元组含义如下表1:
表1。

说明书全文

一种Web可视化环境中的数据视图副本迭代方法

技术领域

[0001] 本发明涉及数据可视化领域,尤其是一种Web可视化环境中数据视图副本迭代方法。

背景技术

[0002] 随着互联网、物联网计算等信息技术的迅猛发展,信息技术与人类世界政治、经济、军事、科研、生活等方方面面不断交叉融合,催生了超越以往任何年代的巨量数据,因而信息社会已经迈入大数据(Big Data)时代。遍布世界各地的各种智能移动设备、传感器电子商务网站、社交网络每时每刻都在生成类型各异的数据。根据国际数据公司(IDC)的《数据宇宙》报告显示:2008年全球数据量为0.5ZB,2010年为1.2ZB,人类正式进入ZB时代。更为惊人的是,2020年以前全球数据量仍将保持每年40%多的高速增长,大约每两年就翻一倍,这与IT界人尽皆知的摩尔定律极为相似。大数据具有4V特征,即:体量巨大(volume)、类型繁多(variety)、时效性高(velocity)以及价值高密度低(value),给人们带来了新的机遇与挑战。《Nature》于2008年出版了大数据专刊“big data”,专讨论了巨量数据对于互联网、经济、环境以及生物等各方面的影响与挑战。《Science》也于2011年出版了如何应对数据洪流(data deluge)的专刊“Dealing with Data”,指出如何利用宝贵的数据资产推动人类社会的发展。如今,大数据已成为新兴的学术研究热点,并被认为是继云计算和物联网之后又一个具有革命性的信息技术。
[0003] 其中,网络大数据是指“人、机、物”三元世界在网络空间(Cyberspace)中彼此交互与融合所产生并在互联网上可获得的大数据。网络大数据往往呈现出突发涌现等非线性状态演变现象,因此难以对其变化进行有效评估和预测,另一方面,网络大数据常常以数据流的形式动态、快速地产生,具有很强的时效性这些特征都对现有的互联网计算平台提出了挑战。
[0004] 网络大数据是一种复杂数据,包含结构化数据和非结构化数据(如xml文档、图片、docx文件等)等数据类型。可视化技术为处理复杂数据而生,它将数据映射为视觉符号,允许用户与数据进行快速互动,帮助人们获取大数据中蕴含的信息,以便更好地验证假设和发现内在联系。可视化技术为人们提供了理解高维度、多层次、时空、动态、关系等复杂数据的手段,研究人员已经提出很多有效的可视化研究方法,如采用树结构、树图、弹性层次图、网络结构图等来直观显示庞大的数据结构,使用ThemeRiver、TIARA等对文本数据的可视化进行研究,运用平行坐标法(Parallel Coordinates)、放射坐标法(Radviz)和星形坐标法(star coordinates)等对高维数据进行处理。这些可视化方法虽然在一定程度上解决了部分复杂数据的可视化问题,但还无法很好通过交互式界面来辅助用户对大规模复杂数据集进行分析推理的科学与技术,这也为互联网环境下的网络大数据的有效分析、理解和管理造成了难度。
[0005] 大数据可视化是指在大数据自动分析挖掘方法的同时,利用支持信息可视化的用户界面以及支持分析过程的人机交互方式与技术,来有效融合计算机的计算能和人的认知能力,以获得对于大规模复杂数据集的洞察力。不同于传统的信息可视化行业,大数据可视分析面临最大的一个挑战就是规模,即如何提出新的可视化方法能够帮助人们分析大规模、高维度、多来源、动态演化的信息,并辅助作出实时的决策,成为了这个领域最大的挑战。
[0006] 随着网络技术的快速发展,Web已经成为存取信息的主要手段,众多的应用开始由单机向Web转变,基于B/S体系结构的软件成为各种应用软件发展的必然趋势,数据可视化也逐步迈向Web平台,并发展成为热门的应用。数据可视化借助人脑的视觉思维能力,帮助人们发现数据中隐藏的内在规律,而基于Web的数据可视化可以在Web上实现人—数据—机器之间的交互,极大地提高了数据分析的效率。
[0007] 国内外许多学者对Web环境可视化进行了大量的相关研究,例如中国专利公开的一种基于Web的数据可视化系统,专利号为201210024044.9,通过在Web服务器内设置各种可视化组件以及多个可视化组件配合使用的协同模,在数据集的挖掘和可视分析达到了较好的效果,但是数据的分析和可视化的渲染由Web服务器完成,增加服务器的负载,不利于Web环境中大数据的分析与可视化。东南大学的张柏礼于2007年提出的一种物化Web视图的在线选择算法建立了一个考虑更新代价的Web视图置换测度模型,在简单的缓存算法基础上引入了选择置换机制,降低动态缓存管理、索引和检索的开销,并可通过机会更新有效减少失效视图的数量,使算法在用户查询响应性能方面显示出较大的优势,但缓存的是查询的Web页面,并没有达到对Web环境中数据有效的可视化分析效果。北京工业大学的彭蕾于2011年在XQuery物化视图增量更新系统框架的研究中提出一种面向远程的XML物化视图增量维护方法和系统框架。根据多用户的查询请求和数据源更新信息,生成视图维护程序代码,以程序代码的网络迁移代替XML视图的重复查询,有效地减少了网络数据传输量,但是该方法主要运用于Web环境中XML格式的信息查询,具有一定特殊性,不能很好的作用于结构复杂的网络大数据可视化查询。国防科学技术大学的刘晓建于2012年提出一种基于计数副本的传统操作系统代码空闲状态检测技术,通过将原始函数二进制码替换为与其对等的计数副本,以及修改相关线程的内核栈上返回地址,实现对于被更新代码执行情况的监测,从而发现可进行在线更新的时机,较好的处理被更新代码正处于“使用中”的状态,但是该技术主要用于检测代码处于空闲的时机,然后进行代码更新,不能在高并发、高请求的web环境中达到有效的副本迭代效果。
[0008] 工业领域中中国专利公开的一种数据块更新方法及设备,专利号为201510101466.5,当需要进行数据块更新时,客户端对包含数据快有效副本的副本服务器发出更新请求,然后根据副本服务器的响应信息数量及预设的配置阈值确认是否将该数据块的版本修改为最新版本,在不增加副本服务器负载的前提下,保证了各个副本服务器中数据块的一致性,但是此方法主要解决分布式存储系统中的多数据副本一致性问题,而在Web环境中数据视图的更新会极大增加服务器的负载。东华大学的范晓燕于2010年提出的基于Web的新生儿可视化数据挖掘分析系统利用Web内容挖掘技术实现对影响新生儿出生各个因素的分析和表现,以动态图表的形式生动描绘数据挖掘结果,但是此系统主要对原始数据进行数据挖掘可视化分析,在数据复杂而又庞大的Web大数据领域中收效甚微。中国科学院的刘鹏于2011年提出基于Web的科学数据可视化在数据共享中的应用从数据可视化度出发,分析数据自身存储格式特点和处理/显示方式将黑河流域e-Science生态—文数据共享平台数据按可视化功能进行分类并针对性地设计可视化处理模块,实现科学数据共享平台中多种类型单体数据的Web可视化和数据集的Web可视化,但是此系统需要对不同的数据进行特点分析并且针对性设计可视化处理模块,不能高效的运用于Web环境中的多源、异构数据的高并发可视化查询。

发明内容

[0009] 为了克服现有的大数据可视化方法中数据视图的时效性不足的问题,本发明提出了一种Web可视化环境中的数据视图副本迭代方法,将可视化结果进行物化缓存,并通过副本迭代方法提高数据视图的更新效率,避免频繁的更新对查询性能的影响,降低数据视图的检索开销;该方法在查询集较大、数据源更新较为频繁的Web环境中,能够对海量数据进行快速查询与可视化展示;并实现更新缓存时保证现有正在访问数据视图的用户不被影响。
[0010] 为了解决上述技术问题本发明所采用的技术方案是:
[0011] 一种Web可视化环境中的数据视图副本迭代方法,包括以下步骤:
[0012] 第一步、建立一个动态演化模型,分为大数据用户层、大数据可视化层及大数据源层;
[0013] 1.1、大数据用户层:由网络上具有不同大数据可视化需求的用户构成,用户通过访问大数据可视化层来获取感兴趣的大数据信息,用户层不依赖具体的技术架构,并可在可视化层中定制不同的视图来分析数据的多个维度;
[0014] 1.2、大数据可视化层:基于云平台架构,提供一种统一的标准让用户来查询不同的大数据源;可视化层接受大数据用户的数据视图查询请求后,判断是否存在物化缓存,向大数据源发出服务请求然后将返回的结果集进行可视化效果展示给用户;或者直接查询系统的物化缓存,将结果进行可视化分析响应给用户;可视化层包括精灵线程池模块、物化缓存模块、副本迭代模块和可视化分析模块;
[0015] 所述精灵线程池模块,用于负责线程的分配,系统在初始化阶段根据一定的映射规则解析每个数据视图的相关信息构建一个资源配置文件,系统分析后将需要进行物化缓存的数据视图信息生成物化缓存视图索引表VIT(Visual Index Table),VIT基于物化缓存更新算法将数据视图加入物化缓存执行队列,由线程分配机制分配合适的线程向大数据源建立连接发出服务请求;
[0016] 所述物化缓存模块,用于针对计算量大、实时性不高、用户请求频繁的大数据可视化查询采取物化缓存的方法,预先缓存大数据源对相应查询计算的结果,将该数据视图的数据结果集采取内存存储或者持久化存储方式,用户发出该视图的请求时,不必向大数据源建立连接发出服务请求,直接用缓存的数据结果集进行可视化分析响应给用户;
[0017] 所述副本迭代模块,用于当大数据源的数据更新后,由精灵线程向大数据源发出请求得到新的物化缓存,此时需要将新的缓存替换之前的缓存存储于系统中;
[0018] 所述可视化分析模块,用于将用户访问数据视图后返回的数据集进行可视化分析,将大数据以直观的可视化的图形形式展示给用户;
[0019] 1.3、大数据源层:指的是在网络上的大数据供应商,采用分布式架构存储海量数据,有效支持大数据的处理需求,大数据源层一般提供大数据服务,即将数据以服务的方式提供给可视化层;
[0020] 第二步、基于所述的模型,提出的Web可视化环境中的数据视图副本迭代方法如下:
[0021] 2.1大数据用户提交数据可视化查询请求;
[0022] 2.2在大数据可视化层,每一个数据视图在初始化阶段都被赋予一个唯一的URL资源,并记录了数据可视化视图的相关信息,作为资源配置文件存储于持久化层。系统初始化阶段将其映射到内存的缓存配置表中,根据数据视图的访问率与自身更新频率选择是否进行物化缓存,并针对数据视图的资源特性选择合适的存储方式,通用原则是:内存存储适合访问热度高但数据量小的数据结果,持久化存储适合数据量大,但访问热度相对较低的数据结果;将需要进行物化缓存的数据视图信息写入物化缓存视图索引表VIT,对VIT使用半形式化方法描述如下:
[0023] VIT=key,value.
[0024] value=VDK,[MCS],[MCRI]
[0025] MCS=’0’|’1’|’2’
[0026] MCRI=’0’|’1’
[0027] 其中VIT是一个HashMap表,key为用户的查询URL,即大数据用户访问数据视图的网址;value为一个三元组,组成规则为:value=VDK(Visual Data Key数据视图的名称,唯一)+MCS(Materialized Cache Style对应物化缓存的方式)+MCRI(Materialized Cache Replica Identify物化缓存副本查询标志符)。其中MCS包括内存存储或者持久化存储,内存存储用0表示,持久化文件存储用1表示,持久化数据库存储用2表示;MCRI标志是否应该查询该数据视图的物化缓存副本,1表示查询,0表示不查询;
[0028] 2.3系统基于物化缓存更新算法周期性地累积缓存索引集合被访问的次数,并将访问次数周期性地累积成热度进行保存,系统设置一个物化缓存更新过滤器,过滤器中有一个过滤表FT(Filter Table),FT中数据是一个动态数组,里面包含正在进行副本迭代数据视图的URL。系统选择累积热度TOP—K的数据视图,通过物化缓存更新过滤器中FT的比对,对VIT中存在但FT中没有的数据视图加入物化缓存执行队列,并在物化缓存执行队列中保存数据视图的URL,由精灵线程模块解析后分配合适的线程向大数据源建立连接发出服务请求;
[0029] 2.4系统将返回的数据视图缓存数据写入对应的缓存方式,考虑到物化缓存存储方式分为内存存储和持久化存储,因此根据存储方式进行区别处理,对于内存存储,在内存中建立值表MVT(Memory Value Table)与值表副本MVT-rp(Memory Value Table-replica),MVT结构是一个HashMap,其中key是查找的数据视图名称VDK,value为一个二元组,包括该数据视图物化缓存的数据(以json格式存储)和数据视图此时用户的访问量count,MVT-rp结构也是一个HashMap,其中key是查找的数据视图名称VDK,value为一个三元组,包括该数据视图物化缓存的数据(以json格式存储)、数据视图此时用户的访问量count和副本迭代成功标识符CopySuc(1表示迭代成功,0表示尚未迭代);MVT和MVT-rp负责提供存储在内存中的物化缓存并监控相应数据视图的用户访问情况;持久化存储形式由系统初始化设定,可分为文件系统存储和数据库系统存储,对于文件系统存储,在内存中建立文件索引表FIT(File Index Table)和文件索引表副本FIT-rp(File Index Table-replica),FIT结构是一个HashMap表,其中key是查找的数据视图名称VDK,value为一个二元组,包括该数据视图物化缓存文件存储路径FilePath和该数据视图此时用户的访问量count,FIT-rp结构也是一个HashMap,其中key是查找的数据视图名称VDK,value为一个三元组,包括该数据视图物化缓存的数据(以json格式存储)、数据视图此时用户的访问量count和副本迭代成功标识符CopySuc(1表示迭代成功,0表示尚未迭代);在数据视图查询时系统将用户的查询URL匹配为主键,查询物化缓存视图索引表VIT,如果能匹配到,说明该数据视图已提供了物化缓存;对于具有物化缓存的数据视图,模型不再对数据源进行真正访问,改为访问物化缓存,查询VIT中该条数据视图记录的MCRI值,如果字段为1,说明应该查询数据视图的物化缓存副本,转步骤2.5,否则转步骤2.6;
[0030] 2.5选择访问该数据视图的物化缓存副本数据;查询VIT,如果VIT记录的该条数据视图的MCS字段为0,则系统基于VDK为主键查找MVT-rp并返回二元组中的缓存json数据,然后将MVT-rp中该数据视图此时用户的访问量count增加1;如果MCS字段为1,则系统基于VDK为主键查找FIT-rp中的缓存文件存储路径FilePath,并访问磁盘中该缓存副本文件(以json文件存储),将FIT-rp中该数据视图此时用户的访问量count增加1;如果MCS字段为2,系统依据数据视图VDK为主键去数据库进行物化缓存的搜索,并将搜索结果返回;
[0031] 2.6选择访问该数据视图的物化缓存数据;查询VIT,如果VIT记录的该条数据视图的MCS字段为0,,则系统基于VDK为主键查找MVT并返回二元组中的缓存json数据,然后将MVT中该数据视图此时用户的访问量count增加1;如果MCS字段为1,则系统基于VDK为主键查找FIT中的缓存文件存储路径FilePath,并访问磁盘中该缓存副本文件(以json文件存储),将FIT中该数据视图此时用户的访问量count增加1;如果MCS字段为2,系统依据数据视图VDK为主键去数据库进行物化缓存的搜索,并将搜索结果返回;
[0032] 2.7将返回的结果json注入相应的可视化模块中并将形成的可视化效果展示给用户,如果该结果json是从内存中或者持久层文件系统中取出来的,则将对应的MVT、FIT或者MVT-rp、FIT-rp中该数据视图此时用户的访问量count减少1。
[0033] 进一步,所述步骤2.3中,物化缓存更新算法原理如下:
[0034] 网络大数据具有较好的时间局部性(最近访问的对象在最近的将来还可能被再次访问),另外,由于网络大数据的访问频度在短时间内不稳定,但在较长的时间段内相对平稳。基于访问的上述特点,在缓存更新算法中需考虑长期访问频度的影响,基本设计思想是系统周期性地累积缓存索引集合被访问的次数,并将访问次数周期性地累积成热度进行保存,选择累积热度TOP—K的数据视图加入物化缓存执行队列,步骤如下:
[0035] 2.3.1物化缓存更新的对象初始范围限定于VIT数据集中。
[0036] 2.3.2计算VIT中当前热度计算周期内数据视图的物化缓存i被访问的次数counti,设cti为物化缓存i被创建的时间,T为当前时间,计算物化缓存i在缓存区域中已经存在的时间T-cti与缓存对象i命中需要的平均时间
[0037] 2.3.3系统计算物化缓存i自身更新的频率updatei。
[0038] 2.3.4记录对于物化缓存i发送一个请求开始到客户端收到最后一个字节的响应所耗费的时间TTLBi。
[0039] 2.3.5定义物化缓存i在周期j的热度值Valueij,计算公式如下:
[0040] 其中β为相关系数,Valueij-1表示该缓存在上一个热度计算周期中的热度值,参数α是衰减系数,用来确定当前周期热度累积的热度和历史热度各自所占的权重,α越大,则最近的访问在数据访问热度中所占的权重越大,历史访问记录对数据热度的影响越小,反之亦然;集合的历史热度在本计算周期内以系数(1-α)的速率衰减,经过多次迭代,更早计算周期的累积热度经过了更多次衰减;
[0041] 2.3.6系统将记录的所有物化缓存累积热度值进行排序,选择累积热度TOP—K的数据视图,将数据视图的URL与物化缓存更新过滤器中FT中的URL进行对比。如果在FT中没有搜索到,代表目前该数据视图没有进行副本迭代,可以加入物化缓存执行队列,安全进行缓存更新,其中物化缓存执行队列以队列结构存储需要更新数据视图的URL。如果在FT中搜索到,则表示目前该数据视图正在副本迭代,且迭代过程目前还没有完成,因此不加入物化缓存执行队列,不必进行缓存更新。
[0042] 再进一步,所述步骤2.3.3中,缓存自身更新的频率updatei需由大数据可视化层向大数据源周期的发送请求,将返回数据结果与现有的缓存数据进行对比,从而计算出缓存自身更新的频率,考虑到频繁发送数据对比请求会严重降低可视化层的系统性能,为了减少系统的开销,需要尽可能减少数据对比的请求次数。因此需要对每一种物化缓存的大数据源进行数据更新的预测,以便在下一次大数据源更新时获取最新的数据,提出一种数据更新预测动态请求算法,通过每次请求返回的比对结果动态调节下一次请求的间隔时间RI(Request Interval),另设置一个慢请求门限值srthresh(slow request threshold),当请求间隔时间未达到门限值时采取间隔时间单位指数增加,之后采取线性增加方式。数据更新预测动态请求算法的步骤如下:
[0043] 2.3.3.1动态请求初始化:在初始化阶段设置初始的请求间隔为一个单位时间,即RI1=1,单位时间可以是一个小时、半个小时、十分钟等,具体数值由系统根据经验定值,另定义一个慢请求门限值srthresh;
[0044] 2.3.3.2系统向大数据源发出比对请求,对请求返回的结果进行分析比对,如果发现缓存并未更新,则进行步骤2.3.3.3,否则进行步骤2.3.3.4;
[0045] 2.3.3.3如果发现此轮的请求间隔时间RIk(k=2,3,4,5…)小于或等于慢请求门限值srthresh,则定义下一轮请求间隔时间RIk+1=2*RIk,否则下一轮请求间隔时间RIk+1=RIk+1,转步骤2.3.3.2;
[0046] 2.3.3.4直接定义下一轮的请求间隔时间RIk+1=RIk/2,转步骤2.3.3.2。
[0047] 再进一步,所述步骤2.4中,副本迭代方法的步骤如下:
[0048] 2.4.1系统通过对数据源的数据更新监测,通过物化缓存更新过滤器中FT的比对过滤后将VIT中需要进行更新的数据视图加入物化缓存执行队列,并由精灵线程模块选择合适的线程向大数据源建立连接发出服务请求,返回数据视图新的物化缓存json数据,通过读取VIT的MCS来了解当前数据视图的物化缓存类型,如果MCS为2转步骤2.4.2,如果MCS为0或者1则转步骤2.4.3;
[0049] 2.4.2系统将新的物化缓存数据写入数据库;
[0050] 2.4.3完成物化缓存副本数据的写入工作;
[0051] 2.4.4系统将用户的查询URL匹配为主键,查询VIT中该条数据视图记录的MCRI值;
[0052] 2.4.5执行迭代过程;
[0053] 2.4.6当物化缓存副本拷贝完毕后,系统修改MVT-rp或FIT-rp中该数据视图的CopySuc字段为1,并修改VIT中MCRI为0;
[0054] 2.4.7当系统基于VDK为主键检测MVT-rp或FIT-rp的二元组中该数据视图此时用户的访问量count为0并且该数据视图的CopySuc字段为1时,系统删除MVT-rp中该数据视图的记录或者删除FIT-rp中该数据视图的记录和磁盘中对应的缓存副本文件;
[0055] 2.4.8系统将VIT中该数据视图的MCRI修改为0,并且将该数据视图的URL从FT中删除。
[0056] 所述步骤2.4.3中,完成物化缓存副本数据的写入工作的过程如下:
[0057] 2.4.3.1,根据VIT中MCS的值进行选择存储介质的过程如下:
[0058] 2.4.3.1.1如果MCS为0,系统将新的物化缓存数据写入MVT-rp并设置MVT-rp中该数据视图的count和CopySuc为0;
[0059] 2.4.3.1.2如果MCS为1,系统将新的物化缓存数据保存在磁盘中作为缓存副本文件,并将此缓存副本文件的路径FilePath加入FIT-rp并设置FIT-rp中该数据视图的count和CopySuc为0;
[0060] 2.4.3.2如果该物化缓存副本生成失败,系统生成监控日志上报管理员,转步骤2.4.1重新生成物化缓存副本,否则转步骤2.4.3.3;
[0061] 2.4.3.3将该数据视图URL加入FT并修改VIT中该数据视图的MCRI为1。
[0062] 所述步骤2.4.4中,查询VIT中该条数据视图记录的MCRI值的过程如下:
[0063] 2.4.4.1根据VIT中MCRI的值选择查询的响应方式,过程如下:
[0064] 2.4.4.1.1如果MCRI字段为0,用MVT或FIT查询响应新的用户请求,每一个新用户查询都会使得MVT或FIT中的count值加1。并且转步骤2.4.1重新生成物化缓存副本;
[0065] 2.4.4.1.2如果MCRI字段为1,用MVT-rp或FIT-rp查询响应新的用户请求,每一个新用户查询都会使得MVT-rp或FIT-rp中的count值加1;
[0066] 2.4.4.2如果新用户对MVT-rp或FIT-rp访问出错,系统生成监控日志上报管理员并修改VIT中MCRI为0,转步骤2.4.4.1。
[0067] 所述步骤2.4.5中,执行迭代过程如下:
[0068] 2.4.5.1系统基于VDK为主键检测MVT或FIT的二元组中该数据视图此时用户的访问量count是否为0,当MVT或FIT中的conut为0,表明目前没有用户在访问旧缓存,可以安全执行副本迭代,过程如下:
[0069] 2.4.5.1.1对于内存存储,将MVT-rp中该数据视图的物化缓存数据覆盖到MVT中对应位置上;
[0070] 2.4.5.1.2对于持久化文件存储,将磁盘中的缓存副本文件拷贝到缓存文件;
[0071] 2.4.5.2在拷贝过程中,如果缓存内容较大,可能需要一定的时长,此时如果有新用户进来访问该数据视图,系统会继续选择MVT-rp或者FIT-rp进行查找响应,每一个新用户查询都会使得MVT或FIT中的count值加1‘’
[0072] 2.4.5.3如果副本迭代过程出错,暂时停止对该物化缓存数据的拷贝,继续使用MVT-rp或者FIT-rp数据响应用户,同理,每一个新用户查询都会使得MVT-rp或FIT-rp中的count值加1,系统生成监控日志上报管理员,并转步骤2.4.5重新对该数据视图执行迭代过程。
[0073] 所述步骤2.4.6的过程如下:
[0074] 2.4.6.1系统将用户的查询URL匹配为主键,查询VIT中该条数据视图记录的MCRI值;
[0075] 2.4.6.2根据VIT中MCRI的值选择查询访问方式,过程如下:
[0076] 2.4.6.2.1如果MCRI字段为0,用MVT或FIT查询响应新的用户请求,每一个新用户查询都会使得MVT或FIT中的count值加1;
[0077] 2.4.6.2.2如果MCRI字段为1,用MVT-rp或FIT-rp查询响应新的用户请求,每一个新用户查询都会使得MVT-rp或FIT-rp中的count值加1,并且转步骤2.4.5重新对该数据视图执行迭代过程;
[0078] 2.4.6.3如果新用户对MVT或FIT访问出错,系统生成监控日志上报管理员并修改VIT中MCRI为1,转步骤2.4.6.1。
[0079] 再进一步,所述步骤2.4.3.3中,监控日志是一个五元组集合,集合格式为(VDK,CT,MS,HSC,EI),具体元组含义如下表1:
[0080]
[0081] 表1。
[0082] 本发明的有益效果主要表现在要:(1)该副本迭代方法可以提高数据视图的更新效率,避免频繁的更新对查询性能的影响,降低数据视图的检索开销。(2)该副本迭代方法可以对海量数据进行快速查询与可视化展示。面向高并发,尤其在缓存极大的情况下,能有效处理服务器在缓存重构时对用户造成的堵塞现象,并保证现有正在访问数据视图的用户不被影响,提高系统的高可用性和稳定性附图说明
[0083] 图1示出了网络大数据可视化模型图。
[0084] 图2示出了副本迭代工作机制图。
[0085] 图3示出了副本迭代运行过程图。

具体实施方式

[0086] 下面结合附图对本发明作进一步描述。
[0087] 参照图1~图3,一种Web可视化环境中的数据视图副本迭代方法,所述副本迭代方法包括以下步骤:
[0088] 第一步、建立一个动态演化模型,模型按照分层架构思想设计,如图1所示,分为大数据用户层、大数据可视化层及大数据源层;
[0089] 1.1、大数据用户层:由网络上具有不同大数据可视化需求的用户(user)构成,用户通过访问大数据可视化层来获取感兴趣的大数据信息,用户层不依赖具体的技术架构,并可在可视化层中定制不同的视图来分析数据的多个维度。
[0090] 1.2、大数据可视化层:基于云平台架构,提供一种统一的标准让用户来查询不同的大数据源。可视化层不存储海量数据,也不进行数据的密集计算,其核心是将大数据可视化视为一种可提供的服务,以供大数据用户层使用。将侧重点放在数据的可视化服务上,关注于可视化时需要的数据计算结果集优化。可视化层接受大数据用户的数据视图查询请求后,判断是否存在物化缓存,向大数据源发出服务请求然后将返回的结果集进行可视化效果展示给用户;或者直接查询系统的物化缓存,将结果进行可视化分析响应给用户;可视化层包括精灵线程池模块、物化缓存模块、副本迭代模块和可视化分析模块;
[0091] 所述精灵线程池模块,用于负责线程的分配,系统在初始化阶段根据一定的映射规则解析每个数据视图的相关信息构建一个资源配置文件,系统分析后将需要进行物化缓存的数据视图信息生成物化缓存视图索引表VIT(Visual Index Table),VIT基于物化缓存更新算法将数据视图加入物化缓存执行队列,由线程分配机制分配合适的线程向大数据源建立连接发出服务请求;
[0092] 所述物化缓存模块,用于针对计算量大、实时性不高、用户请求频繁的大数据可视化查询采取物化缓存的方法,预先缓存大数据源对相应查询计算的结果,将该数据视图的数据结果集采取内存存储或者持久化存储方式,用户发出该视图的请求时,不必向大数据源建立连接发出服务请求,直接用缓存的数据结果集进行可视化分析响应给用户,可以避免大数据源耗时的数据分析计算操作,从而快速的得到用户的请求结果;
[0093] 所述副本迭代模块,用于当大数据源的数据更新后,由精灵线程向大数据源发出请求得到新的物化缓存,此时需要将新的缓存替换之前的缓存存储于系统中。在缓存副本迭代的过程中采取副本迭代方法有效保证现有正在访问可视化视图的用户不被影响;
[0094] 所述可视化分析模块,用于将用户访问数据视图后返回的数据集进行可视化分析,将大数据以直观的可视化的图形形式展示给用户,系统采用百度开源的JavaScript图表库ECharts进行数据的分析和可视化展示;
[0095] 1.3、大数据源层:指的是在网络上的大数据供应商,他们采用分布式架构存储海量数据,有效支持大数据的处理需求,大数据源层一般提供大数据服务,即将数据以服务的方式提供给可视化层,例如采用基于Map/Reduce模型的Hadoop进行离线计算,计算后将结果以服务封装给可视化层,或者采用分布式的、实时数据流分析工具Storm进行流式计算,将计算结果实时以服务发送给可视化层;采用代理的方式提供直接访问数据库的服务等;即大数据源层与可视化层是一种松耦合、可分离的关系,各类大数据源分属于独立的应用系统,负责数据的计算,并将计算结果传回可视化层,通过将可视化工作从各类大数据源中剥离出来,使得各类应用系统专注于自身业务的开发,由可视化层专一处理数据的可视化需求并对外提供可视化服务,以降低应用系统的开发成本,实现各司其职的工作分工;
[0096] 第二步、如图2所示,基于所述的模型,提出的Web可视化环境中的数据视图副本迭代方法如下:
[0097] 2.1大数据用户提交数据可视化查询请求;
[0098] 2.2在大数据可视化层,每一个数据视图在初始化阶段都被赋予一个唯一的URL资源,并记录了数据可视化视图的相关信息,作为资源配置文件存储于持久化层。系统初始化阶段将其映射到内存的缓存配置表中,根据数据视图的访问率与自身更新频率选择是否进行物化缓存,并针对数据视图的资源特性选择合适的存储方式,通用原则是:内存存储适合访问热度高但数据量小的数据结果,持久化存储适合数据量大,但访问热度相对较低的数据结果;将需要进行物化缓存的数据视图信息写入物化缓存视图索引表VIT,对VIT使用半形式化方法描述如下:
[0099] VIT=key,value.
[0100] value=VDK,[MCS],[MCRI]
[0101] MCS=’0’|’1’|’2’
[0102] MCRI=’0’|’1’
[0103] 其中VIT是一个HashMap表,key为用户的查询URL,即大数据用户访问数据视图的网址;value为一个三元组,组成规则为:value=VDK(Visual Data Key数据视图的名称,唯一)+MCS(Materialized Cache Style对应物化缓存的方式)+MCRI(Materialized Cache Replica Identify物化缓存副本查询标志符)。其中MCS包括内存存储或者持久化存储,内存存储用0表示,持久化文件存储用1表示,持久化数据库存储用2表示;MCRI标志是否应该查询该数据视图的物化缓存副本,1表示查询,0表示不查询;
[0104] 2.3系统基于物化缓存更新算法周期性地累积缓存索引集合被访问的次数,并将访问次数周期性地累积成热度进行保存,系统设置一个物化缓存更新过滤器,过滤器中有一个过滤表FT(Filter Table),FT中数据是一个动态数组,里面包含正在进行副本迭代数据视图的URL,系统选择累积热度TOP—K的数据视图,通过物化缓存更新过滤器中FT的比对,对VIT中存在但FT中没有的数据视图加入物化缓存执行队列,并在物化缓存执行队列中保存数据视图的URL,由精灵线程模块解析后分配合适的线程向大数据源建立连接发出服务请求;
[0105] 2.4如图3所示,系统将返回的数据视图缓存数据写入对应的缓存方式,考虑到物化缓存存储方式分为内存存储和持久化存储,因此根据存储方式进行区别处理;对于内存存储,在内存中建立值表MVT(Memory Value Table)与值表副本MVT-rp(Memory Value Table-replica),MVT结构是一个HashMap,其中key是查找的数据视图名称VDK,value为一个二元组,包括该数据视图物化缓存的数据(以json格式存储)和数据视图此时用户的访问量count,MVT-rp结构也是一个HashMap,其中key是查找的数据视图名称VDK,value为一个三元组,包括该数据视图物化缓存的数据(以json格式存储)、数据视图此时用户的访问量count和副本迭代成功标识符CopySuc(1表示迭代成功,0表示尚未迭代);MVT和MVT-rp负责提供存储在内存中的物化缓存并监控相应数据视图的用户访问情况。持久化存储形式由系统初始化设定,可分为文件系统存储和数据库系统存储(如关系型数据库、NoSQL数据库等),对于文件系统存储,在内存中建立文件索引表FIT(File Index Table)和文件索引表副本FIT-rp(File Index Table-replica),FIT结构是一个HashMap表,其中key是查找的数据视图名称VDK,value为一个二元组,包括该数据视图物化缓存文件存储路径FilePath和该数据视图此时用户的访问量count,FIT-rp结构也是一个HashMap,其中key是查找的数据视图名称VDK,value为一个三元组,包括该数据视图物化缓存的数据(以json格式存储)、数据视图此时用户的访问量count和副本迭代成功标识符CopySuc(1表示迭代成功,0表示尚未迭代)。在数据视图查询时系统将用户的查询URL匹配为主键,查询物化缓存视图索引表VIT,如果能匹配到,说明该数据视图已提供了物化缓存。对于具有物化缓存的数据视图,模型不再对数据源进行真正访问,改为访问物化缓存,查询VIT中该条数据视图记录的MCRI值,如果字段为1,说明应该查询数据视图的物化缓存副本,转步骤2.5,否则转步骤2.6。当存储方式是内存存储或持久化文件存储时,系统依据副本迭代方法合理的进行物化缓存的有效更新并保证用户查询的时效性。对于物化缓存被持久化到数据库这一类情况,考虑到数据库本身对事务一致性和高并发已进行了优化处理,不需要采用副本迭代方法;
[0106] 2.5选择访问该数据视图的物化缓存副本数据;查询VIT,如果VIT记录的该条数据视图的MCS字段为0,则系统基于VDK为主键查找MVT-rp并返回二元组中的缓存json数据,然后将MVT-rp中该数据视图此时用户的访问量count增加1;如果MCS字段为1,则系统基于VDK为主键查找FIT-rp中的缓存文件存储路径FilePath,并访问磁盘中该缓存副本文件(以json文件存储),将FIT-rp中该数据视图此时用户的访问量count增加1;如果MCS字段为2,系统依据数据视图VDK为主键去数据库进行物化缓存的搜索,并将搜索结果返回;
[0107] 2.6选择访问该数据视图的物化缓存数据;查询VIT,如果VIT记录的该条数据视图的MCS字段为0,,则系统基于VDK为主键查找MVT并返回二元组中的缓存json数据,然后将MVT中该数据视图此时用户的访问量count增加1;如果MCS字段为1,则系统基于VDK为主键查找FIT中的缓存文件存储路径FilePath,并访问磁盘中该缓存副本文件(以json文件存储),将FIT中该数据视图此时用户的访问量count增加1;如果MCS字段为2,系统依据数据视图VDK为主键去数据库进行物化缓存的搜索,并将搜索结果返回;
[0108] 2.7将返回的结果json注入相应的可视化模块中并将形成的可视化效果展示给用户。如果该结果json是从内存中或者持久层文件系统中取出来的,则将对应的MVT、FIT或者MVT-rp、FIT-rp中该数据视图此时用户的访问量count减少1。
[0109] 进一步,所述步骤2.3中,物化缓存更新算法原理如下:
[0110] 网络大数据具有较好的时间局部性(最近访问的对象在最近的将来还可能被再次访问),另外,由于网络大数据的访问频度在短时间内不稳定,但在较长的时间段内相对平稳;基于访问的上述特点,在缓存更新算法中需考虑长期访问频度的影响,基本设计思想是系统周期性地累积缓存索引集合被访问的次数,并将访问次数周期性地累积成热度进行保存,选择累积热度TOP—K的数据视图加入物化缓存执行队列,步骤如下:
[0111] 2.3.1物化缓存更新的对象初始范围限定于VIT数据集中;
[0112] 2.3.2计算VIT中当前热度计算周期内数据视图的物化缓存i被访问的次数counti,设cti为物化缓存i被创建的时间,T为当前时间,计算物化缓存i在缓存区域中已经存在的时间T-cti与缓存对象i命中需要的平均时间
[0113] 2.3.3系统计算物化缓存i自身更新的频率updatei;
[0114] 2.3.4记录对于物化缓存i发送一个请求开始到客户端收到最后一个字节的响应所耗费的时间TTLBi;
[0115] 2.3.5定义物化缓存i在周期j的热度值Valueij,计算公式如下:
[0116] 其中β为相关系数。Valueij-1表示该缓存在上一个热度计算周期中的热度值,参数α是衰减系数,用来确定当前周期热度累积的热度和历史热度各自所占的权重,α越大,则最近的访问在数据访问热度中所占的权重越大,历史访问记录对数据热度的影响越小,反之亦然。集合的历史热度在本计算周期内以系数(1-α)的速率衰减,经过多次迭代,更早计算周期的累积热度经过了更多次衰减,所以早期的累积热度对数据热度的影响不断降低;
[0117] 2.3.6系统将记录的所有物化缓存累积热度值进行排序,选择累积热度TOP—K的数据视图,将数据视图的URL与物化缓存更新过滤器中FT中的URL进行对比。如果在FT中没有搜索到,代表目前该数据视图没有进行副本迭代,可以加入物化缓存执行队列,安全进行缓存更新,其中物化缓存执行队列以队列结构存储需要更新数据视图的URL。如果在FT中搜索到,则表示目前该数据视图正在副本迭代,且迭代过程目前还没有完成,因此不加入物化缓存执行队列,不必进行缓存更新。
[0118] 再进一步,所述步骤2.3.3中,缓存自身更新的频率updatei需由大数据可视化层向大数据源周期的发送请求,将返回数据结果与现有的缓存数据进行对比,从而计算出缓存自身更新的频率,考虑到频繁发送数据对比请求会严重降低可视化层的系统性能,为了减少系统的开销,需要尽可能减少数据对比的请求次数。因此需要对每一种物化缓存的大数据源进行数据更新的预测,以便在下一次大数据源更新时获取最新的数据;本发明提出一种数据更新预测动态请求算法,通过每次请求返回的比对结果动态调节下一次请求的间隔时间RI(Request Interval),另设置一个慢请求门限值srthresh(slow request threshold),当请求间隔时间未达到门限值时采取间隔时间单位指数增加,之后采取线性增加方式。数据更新预测动态请求算法的步骤如下:
[0119] 2.3.3.1动态请求初始化:在初始化阶段设置初始的请求间隔为一个单位时间,即RI1=1,单位时间可以是一个小时、半个小时、十分钟等,具体数值由系统根据经验定值,另定义一个慢请求门限值srthresh;
[0120] 2.3.3.2系统向大数据源发出比对请求,对请求返回的结果进行分析比对,如果发现缓存并未更新,则进行步骤2.3.3.3,否则进行步骤2.3.3.4;
[0121] 2.3.3.3如果发现此轮的请求间隔时间RIk(k=2,3,4,5…)小于或等于慢请求门限值srthresh,则定义下一轮请求间隔时间RIk+1=2*RIk,否则下一轮请求间隔时间RIk+1=RIk+1,转步骤2.3.3.2;
[0122] 2.3.3.4直接定义下一轮的请求间隔时间RIk+1=RIk/2,转步骤2.3.3.2。
[0123] 再进一步,所述步骤2.4中,副本迭代方法的步骤如下:
[0124] 2.4.1系统通过对数据源的数据更新监测,通过物化缓存更新过滤器中FT的比对过滤后将VIT中需要进行更新的数据视图加入物化缓存执行队列,并由精灵线程模块选择合适的线程向大数据源建立连接发出服务请求,返回数据视图新的物化缓存json数据。通过读取VIT的MCS来了解当前数据视图的物化缓存类型,如果MCS为2转步骤2.4.2,如果MCS为0或者1则转步骤2.4.3;
[0125] 2.4.2系统将新的物化缓存数据写入数据库,由于数据库存储系统提供了对数据更新与查询操作提供了高保障措施,因此对数据库的物化缓存更新不采用副本迭代技术;
[0126] 2.4.3完成物化缓存副本数据的写入工作,过程如下:
[0127] 2.4.3.1根据VIT中MCS的值进行选择存储介质;
[0128] 2.4.3.1.1如果MCS为0,系统将新的物化缓存数据写入MVT-rp并设置MVT-rp中该数据视图的count和CopySuc为0;
[0129] 2.4.3.1.2如果MCS为1,系统将新的物化缓存数据保存在磁盘中作为缓存副本文件,并将此缓存副本文件的路径FilePath加入FIT-rp并设置FIT-rp中该数据视图的count和CopySuc为0;
[0130] 2.4.3.2如果该物化缓存副本生成失败,系统生成监控日志上报管理员。转步骤2.4.1重新生成物化缓存副本,否则转步骤2.4.3.3;
[0131] 2.4.3.3将该数据视图URL加入FT并修改VIT中该数据视图的MCRI为1;
[0132] 2.4.4系统将用户的查询URL匹配为主键,查询VIT中该条数据视图记录的MCRI值,过程如下:
[0133] 2.4.4.1根据VIT中MCRI的值选择查询的响应方式,过程如下:
[0134] 2.4.4.1.1如果MCRI字段为0,用MVT或FIT查询响应新的用户请求,每一个新用户查询都会使得MVT或FIT中的count值加1,并且转步骤2.4.1重新生成物化缓存副本;
[0135] 2.4.4.1.2如果MCRI字段为1,用MVT-rp或FIT-rp查询响应新的用户请求,每一个新用户查询都会使得MVT-rp或FIT-rp中的count值加1;
[0136] 2.4.4.2如果新用户对MVT-rp或FIT-rp访问出错,系统生成监控日志上报管理员并修改VIT中MCRI为0,转步骤2.4.4.1;
[0137] 2.4.5执行迭代过程,过程如下:
[0138] 2.4.5.1系统基于VDK为主键检测MVT或FIT的二元组中该数据视图此时用户的访问量count是否为0,当MVT或FIT中的conut为0,表明目前没有用户在访问旧缓存,可以安全执行副本迭代,过程如下:
[0139] 2.4.5.1.1对于内存存储,将MVT-rp中该数据视图的物化缓存数据覆盖到MVT中对应位置上;
[0140] 2.4.5.1.2对于持久化文件存储,将磁盘中的缓存副本文件拷贝到缓存文件;
[0141] 2.4.5.2在拷贝过程中,如果缓存内容较大,可能需要一定的时长,此时如果有新用户进来访问该数据视图,系统会继续选择MVT-rp或者FIT-rp进行查找响应,每一个新用户查询都会使得MVT或FIT中的count值加1;
[0142] 2.4.5.3如果副本迭代过程出错,暂时停止对该物化缓存数据的拷贝,继续使用MVT-rp或者FIT-rp数据响应用户,同理,每一个新用户查询都会使得MVT-rp或FIT-rp中的count值加1,系统生成监控日志上报管理员,并转步骤2.4.5重新对该数据视图执行迭代过程;
[0143] 2.4.6当物化缓存副本拷贝完毕后。系统修改MVT-rp或FIT-rp中该数据视图的CopySuc字段为1,并修改VIT中MCRI为0,过程如下:
[0144] 2.4.6.1系统将用户的查询URL匹配为主键,查询VIT中该条数据视图记录的MCRI值;
[0145] 2.4.6.2根据VIT中MCRI的值选择查询访问方式,过程如下:
[0146] 2.4.6.2.1如果MCRI字段为0,用MVT或FIT查询响应新的用户请求,每一个新用户查询都会使得MVT或FIT中的count值加1;
[0147] 2.4.6.2.2如果MCRI字段为1,用MVT-rp或FIT-rp查询响应新的用户请求,每一个新用户查询都会使得MVT-rp或FIT-rp中的count值加1,并且转步骤2.4.5重新对该数据视图执行迭代过程;
[0148] 2.4.6.3如果新用户对MVT或FIT访问出错,系统生成监控日志上报管理员并修改VIT中MCRI为1,转步骤2.4.6.1;
[0149] 2.4.7当系统基于VDK为主键检测MVT-rp或FIT-rp的二元组中该数据视图此时用户的访问量count为0并且该数据视图的CopySuc字段为1时,系统删除MVT-rp中该数据视图的记录或者删除FIT-rp中该数据视图的记录和磁盘中对应的缓存副本文件;
[0150] 2.4.8系统将VIT中该数据视图的MCRI修改为0,并且将该数据视图的URL从FT中删除。
[0151] 再进一步,步骤2.4.3.3中的监控日志是一个五元组集合,集合格式为(VDK,CT,MS,HSC,EI),具体元组含义如下表1:
[0152]
[0153] 表1。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈