欢迎来到知嘟嘟! 联系电话:13095918853 卖家免费入驻,海量在线求购! 卖家免费入驻,海量在线求购!
知嘟嘟
我要发布
联系电话:13095918853
知嘟嘟经纪人
收藏
专利号: 2017102772289
申请人: 浙江工业大学
专利类型:发明专利
专利状态:已下证
专利领域: 电通信技术
更新日期:2023-12-11
缴费截止日期: 暂无
价格&联系人
年费信息
委托购买

摘要:

权利要求书:

1.一种基于物化缓存的网络大数据可视化方法,其特征在于:所述可视化方法包括以下步骤:

第一步、建立一个动态演化模型,分为大数据用户层、大数据可视化层及大数据源层;

1.1、大数据用户层:由网络上具有不同大数据可视化需求的用户构成,用户通过访问大数据可视化层来获取感兴趣的大数据信息,用户层不依赖具体的技术架构,并可在可视化层中定制不同的视图来分析数据的多个维度;

1.2、大数据可视化层:基于云平台架构,提供一种统一的标准让用户来查询不同的大数据源;可视化层接受大数据用户的数据视图查询请求后,判断是否存在物化缓存,向大数据源发出服务请求然后将返回的结果集进行可视化效果展示给用户;或者直接查询系统的物化缓存,将结果进行可视化分析响应给用户;可视化层包括精灵线程池模块、物化缓存模块和可视化分析模块;

精灵线程池ETP模块:用于负责线程的分配,系统在初始化阶段根据一定的映射规则解析每个数据视图的相关信息构建一个资源配置文件CP,并将此文件映射于内存中生成缓存配置表CPT,CPT根据物化缓存选择算法和物化缓存存储算法将需要进行物化缓存的数据视图信息生成物化缓存视图索引表VIT,VIT基于物化缓存更新算法将数据视图加入物化缓存执行队列,由线程分配机制根据ET数据资源迁移算法分配合适的线程向大数据源建立连接发出服务请求;

物化缓存模块:用于预先缓存大数据源对相应查询计算的结果,将该数据视图的数据结果集根据物化缓存存储算法采取内存存储或者持久化存储方式,用户发出该视图的请求时,不必向大数据源建立连接发出服务请求,直接用缓存的数据结果集进行可视化分析响应给用户;

可视化分析模块:用于负责将用户访问数据视图后返回的数据集进行可视化分析,将大数据以直观的可视化的图形形式展示给用户;

1.3、大数据源层:指的是在网络上的大数据供应商,采用分布式架构存储海量数据,有效支持大数据的处理需求,大数据源层一般提供大数据服务,即将数据以服务的方式提供给可视化层;

第二步、基于所述的模型提出的基于物化缓存的网络大数据可视化方法,过程如下:

步骤2.1:精灵线程阶段

在模型初始化阶段,大数据可视化层通过Web服务器会激活精灵线程池ETP;

步骤2.2:物化缓存阶段

当大数据用户提交查询请求,索取数据视图时,系统会自动判断能否通过查询物化缓存来得到结果,如果可以,则避免了向大数据源发出相关计算请求,直接从已经计算好的物化缓存中读取数据,可视化执行模块会提取物化缓存数据并将缓存数据注入数据视图中,来直接响应用户查询;否则,系统需要重写用户查询并分发查询到大数据源层中检索数据,在数据检索到后,回传大数据可视化层并由可视化执行模块处理,最终反馈用户。

2.如权利要求1所述的一种基于物化缓存的网络大数据可视化方法,其特征在于:所述步骤2.2中,基于物化缓存的数据视图查询的流程如下:

2.2.1大数据用户提交数据可视化查询请求;

2.2.2在大数据可视化层,每一个数据视图在初始化阶段都被赋予一个唯一的URL资源,并记录了数据可视化视图的相关信息,内容有数据视图的类型VVType、数据视图的标题VVTitle、数据视图大数据源请求的ip地址DSIp,作为资源配置文件CP存储于持久化层;系统初始化阶段将其映射到内存的缓存配置表CPT中并以HashMap的方式存储,HashMap的结构为(Key,Value)型,其中key是主键名,标识了每一种数据视图的名称VDK(Visual Data Key),唯一,组成规则为:VDK=VVType(VisualView Type数据视图的类型)+VVTitle(Visual View Title数据视图的标题)+DSIp(Data Sources Ip大数据源的请求地址);

Value是数据视图的URL访问路径,即大数据用户访问数据视图的网址,系统根据数据视图的访问率与自身更新频率选择是否进行物化缓存,并针对数据视图的资源特性选择合适的存储方式;将需要进行物化缓存的数据视图信息写入物化缓存视图索引表VIT,该索引表是一个HashMap表,结构为(key,value),其中key为用户的查询URL,value为一个二元组,包括每一种数据视图的名称VDK与对应物化缓存的方式;系统根据物化缓存更新算法将需要进行更新的数据视图加入物化缓存执行队列,并由精灵线程模块依据数据迁移算法选择合适的线程向大数据源建立连接发出服务请求并将返回的结果存储于内存或者持久化层,内存中的值表MVT是一个HashMap表,结构为(key,value),其中key是查找的数据视图名称VDK,value是该数据视图物化缓存的数据;持久化存储文件形式由系统初始化设定,通过物化缓存选择算法和物化缓存存储算法来选择是否进行物化缓存和物化缓存的存储方式;

2.2.3系统周期性地累积缓存索引集合被访问的次数,并将访问次数周期性地累积成热度进行保存;进而,对物化缓存视图索引表VIT中所有记录的累积热度排序,选择累积热度TOP—K的数据视图加入物化缓存执行队列,并在物化缓存执行队列中保存数据视图的URL,由精灵线程模块解析后分配线程向大数据源发送请求;

2.2.4系统将用户的查询URL匹配为主键,然后查询物化缓存视图索引表VIT,如果能匹配到,说明该数据视图已提供了物化缓存;对于具有物化缓存的数据视图,模型不再对数据源进行真正访问,改为访问物化缓存;

2.2.5物化缓存基于数据视图URL为主键根据存储类型查找内存中的值表MVT或者持久化层的缓存数据,其中内存查找依据主键遍历MVT找到缓存数据后json返回;持久化层查找则由系统的查询接口程序依据主键查找持久化存储的文件返回json数据,将结果json注入相应的可视化模块中并将形成的可视化效果展示给用户。

3.如权利要求2所述的一种基于物化缓存的网络大数据可视化方法,其特征在于:所述步骤2.2.2中,物化缓存选择算法和物化缓存存储算法的步骤如下:

2.2.2.1物化缓存选择算法,步骤如下:

步骤(2.2.2.1.1)记录最近一次访问数据视图后流逝的时间tc,tk是第k次访问数据视图和第k-1次访问数据视图之间的时间间隔,设第k-1次访问数据视图后的平均访问时间间隔为Rk-1,那么第k次访问数据视图后得到的平均访问时间间隔为:Rk=Z*tk+(1-Z)*Rk-1,其中Z是动态参数,Z大于等于1/2即可;

步骤(2.2.2.1.2)设R是数据视图当前的访问率,令Rf是最后一次访问数据视图后得到的平均访问间隔,由指数分布的定义可以得到它的概率密度函数为:步骤(2.2.2.1.3)数据视图经过时间tc后被访问的概率密度函数为:

步骤(2.2.2.1.4)求出数据视图下一次被访问的平均时间间隔为:

计算平均引用率为F=1/(tc+Rf)

步骤(2.2.2.1.5)计算数据视图i的平均引用率Fi,记录对于数据视图i发送一个请求开始到客户端收到最后一个字节的响应所耗费的时间TTLBi与物化缓存i自身更新的频率updatei,对每个数据视图设置一个缓存值,缓存值代表此数据视图进行物化缓存的价值,缓存值CVi计算公式如下:步骤(2.2.2.1.6)根据缓存值的大小对每个数据视图进行排列,选择前n个进行物化缓存,将数据视图信息写入物化缓存视图索引表VIT;

2.2.2.2物化缓存存储算法,步骤如下:

步骤(2.2.2.2.1)计算数据视图i物化缓存的数据量大小si并记录该缓存对象被访问的次数counti;

步骤(2.2.2.2.2)定义一个物化缓存存储方法的阈值M0,阈值M0根据系统的内存状态与请求缓存的数据量进行动态调节,计算公式如下:其中B为系统内存缓存的总容量,μ为动态调节参数;

步骤(2.2.2.2.3)定义数据视图i物化缓存的存储值Mi,存储值计算公式如下:

步骤(2.2.2.2.4)如果存储值Mi小于阈值M0,对该物化缓存进行内存存储,将数据视图名称VDK作为key、物化缓存结果作为value写入内存中的值表MVT,否则转步骤(2.2.2.2.5);

步骤(2.2.2.2.5)对该物化缓存进行持久化存储,将缓存数据存储于系统初始化设定的持久化存储文件中。

4.如权利要求3所述的一种基于物化缓存的网络大数据可视化方法,其特征在于:所述步骤(2.2.2.1.5)中,缓存自身更新的频率updatei需由大数据可视化层向大数据源周期的发送请求,将返回数据结果与现有的缓存数据进行对比,从而计算出缓存自身更新的频率;

提出一种数据更新预测动态请求算法,通过每次请求返回的比对结果动态调节下一次请求的间隔时间RI(Request Interval),另设置一个慢请求门限值srthresh(slow request threshold),当请求间隔时间未达到门限值时采取间隔时间单位指数增加,之后采取线性增加方式,数据更新预测动态请求算法具体步骤如下:步骤(2.2.2.1.5.1)动态请求初始化:在初始化阶段设置初始的请求间隔为一个单位时间,即RI1=1,单位时间是一个小时或半个小时或十分钟,具体数值由系统根据经验定值,另定义一个慢请求门限值srthresh;

步骤(2.2.2.1.5.2)系统向大数据源发出比对请求,对请求返回的结果进行分析比对,如果发现缓存并未更新,则进行步骤(2.2.2.1.5.3),否则进行步骤(2.2.2.1.5.4);

步骤(2.2.2.1.5.3)如果发现此轮的请求间隔时间RIk(k=2,3,4,5…)小于或等于慢请求门限值srthresh,则定义下一轮请求间隔时间RIk+1=2*RIk,否则下一轮请求间隔时间RIk+1=RIk+1,转步骤(2.2.2.1.5.2);

步骤(2.2.2.1.5.4)直接定义下一轮的请求间隔时间RIk+1=RIk/2,转步骤(2.2.2.1.5.2)。

5.如权利要求4所述的一种基于物化缓存的网络大数据可视化方法,其特征在于:所述步骤2.2.2中的物化缓存更新算法的步骤如下:步骤(2.2.3.1)计算当前热度计算周期中物化缓存i被访问的次数counti,设cti为物化缓存i被创建的时间,T为当前时间,计算物化缓存i在缓存区域中已经存在的时间T-cti与缓存对象i命中需要的平均时间步骤(2.2.3.2)计算物化缓存i自身更新的频率updatei;

步骤(2.2.3.3)记录对于物化缓存i发送一个请求开始到客户端收到最后一个字节的响应所耗费的时间TTLBi;

步骤(2.2.3.4)定义物化缓存i在周期j的热度值Valueij,计算公式如下:

其中β为相关系数,

j-1

Valuei 表示该缓存在上一个热度计算周期中的热度值,参数α是衰减系数,用来确定当前周期热度累积的热度和历史热度各自所占的权重;集合的历史热度在本计算周期内以系数(1-α)的速率衰减,经过多次迭代,更早计算周期的累积热度经过了更多次衰减,所以早期的累积热度对数据热度的影响不断降低;

步骤(2.2.3.5)将记录的所有物化缓存累积热度值进行排序,选择累积热度TOP—K的数据视图加入物化缓存执行队列,并在队列中存储数据视图的URL。

6.如权利要求2~5之一所述的一种基于物化缓存的网络大数据可视化方法,其特征在于:所述步骤2.1中,ETP流程为:

2.1.1初始化时系统基于缓存选择算法与缓存存储算法将需要进行物化缓存的数据视图信息生成物化缓存视图索引表VIT,系统缓存更新算法对VIT表所有数据视图的累积热度进行排序,选择累积热度TOP—K的数据视图加入物化缓存执行队列;

2.1.2线程分配机制根据ET数据资源迁移算法合理的选择物化缓存执行队列的数据视图并提取该数据视图的URL,入池分配线程,ETP会创建线程ET来模拟大数据用户访问该URL,对该URL对应的数据源发出请求访问,调用大数据源层的服务或直接访问对应关系型数据库,ET在获取数据后将数据写入缓存,其后的具体操作如步骤2.2.2所示;

2.1.3 ETP将为物化缓存执行队列中的数据视图分配线程,提出了ET数据资源迁移算法,通过线程分配协作,来协调大数据可视化层与多个大数据源间的数据资源迁移。

7.如权利要求6所述的一种基于物化缓存的网络大数据可视化方法,其特征在于:所述步骤2.1.3中,所述ET数据资源迁移算法在线程调度前,系统对物化缓存执行队列中每个数据视图进行物化缓存的优先级排列,优先级高的数据视图先分配线程进行物化缓存,其余的进入等待;步骤如下:步骤(2.1.3.1)线程分配机制记录物化缓存执行队列里物化缓存i被访问次数counti,并计算该数据视图的用户渴望度 其中T表示当前时间;

步骤(2.1.3.2)根据数据视图进入物化缓存执行队列时间α(i)与当前时间T,计算该数据视图在物化缓存执行队列等待的时间T-α(i);

步骤(2.1.3.3)估算该数据视图i进行物化缓存所需要的时间sti;

步骤(2.1.3.4)计算该数据视图i的优先级Priorityi,计算公式如下:

其中ε1,ε2为权重系数,根据服务的侧重点不同设置不同的权重参数,为了避免早期的缓存请求进入无限等待状态,将T加入优先级计算,这样早期请求进行物化缓存的数据视图随着时间增加优先级也会相对增加;

步骤(2.1.3.5)根据优先级对物化缓存执行队列里的数据视图排序,选择前x的数据视图分配线程进行物化缓存过程,x为精灵线程池的线程数量,可以进行动态调节。

8.如权利要求7所述的一种基于物化缓存的网络大数据可视化方法,其特征在于:所述步骤(2.1.3.5)中,根据系统负载与缓存等待时间动态调节线程池内线程数量的机制,综合数据视图缓存的时间与系统CPU、内存的负载能力;通过数据视图的平均缓存时间分析当前线程池需要调整的方向,通过CPU、内存的使用率得出是否需要增加或者减少线程数量,步骤如下:步骤(2.1.3.5.1)线程池初始化:创建守护线程监听当前CPU的使用率和内存使用率,周期性的检测线程池中所有物化缓存的平均等待时间WT(Wait Time),并定义以下参数:线程动态调节时间对比率CR(Contrast Ratio),CPU的负载上限CLmax(Cpu Load max)与CPU的负载下限CLmin(Cpu Load min),内存的负载上限MLmax(Memory Load max)与CPU的负载下限MLmin(Memory Load min),线程每次动态调节的数量m;

步骤(2.1.3.5.2)线程池将此周期的物化缓存平均等待时间WTk与上一个周期计算的物化缓存平均等待时间WTk-1进行比较,如果WTk与WTk-1的差异比值大于初始设定的线程动态调节时间对比率CR,当WTk大于WTk-1时转步骤(2.1.3.5.3),当WTk小于WTk-1时转步骤(2.1.3.5.4);

步骤(2.1.3.5.3)如果WTk-2大于WTk-1,并且CPU的使用率大于CLmax或者内存的使用率大于MLmax,则减少线程池内线程的数量,减少单位为m;如果WTk-2小于WTk-1,并且CPU的使用率小于CLmin并且内存的使用率小于MLmin,则增加线程池内线程的数量,增加单位为m;

步骤(2.1.3.5.4)如果WTk-1小于WTk-2,则直接减少线程池内线程的数量,减少单位为m。