内存化

编辑
  • 文档创建者:doreen0813
  • 浏览次数:3969次
  • 编辑次数:18次
  • 最近更新:doreen0813 于 2019-07-30
  • 1、描述

    视频学习:内存化在线视频学习 请查看【内存化】

    应用场景:在FineBI实际使用的时候,对于大数据量直连数据库的实时数据,获取数据时间较久,并且经常在多张表关联的时候,有一部分表每天的变化不大,因此FineBI提供了内存化功能。

    功能介绍:内存化是指将这些基本没有变化的表提前加载进入内存,来加快数据计算的执行速度。比如,维度表与事实表进行1:N关联的时候,为维度表勾选内存化,FineBI在计算时会自动将N表进行汇总,随后再与1表关联,以加快分析时的数据计算速度。

    2、使用方式

    2.1 内存化示例

    如下图所示,在数据准备>业务包下的基础表中,可以看到有内存化复选框,勾选此框即为该表添加内存化功能。


    注:只有基础表才有该内存化设置,且内存化仅对实时数据生效。默认不开启。仅对该基础表有编辑权限的用户可开启配置。  

    比如上述的产品名称维度表,其存在与合同事实表的关联关系如下图:


    两张表根据产品ID字段进行关联,产品名称维度表的通常数据量不大且较少更新,而合同事实表的数据量大且更新频繁。此时按照产品名称来统计销售额,关联模型通常为产品名称维度表:合同事实表为1:N。

    若不勾选内存化

    此时在使用该表进行数据分析,拖拽产品名称、合同金额字段统计的时候,合同金额字段会先通过购买的产品(产品ID)字段与产品名称维度表进行关联,关联以后再根据产品名称字段进行汇总操作。即先关联(join),后汇总(group by),因为合同事实表的数据量较大,则该执行的关联的操作时间较长。

    若勾选内存化

    在同样拖拽产品名称、合同金额字段统计时,合同金额会先根据自身的购买的产品字段进行汇总,随后再通过产品ID字段与产品名称维度表进行关联,获取产品名称。即先汇总(group by),后关联(join)。通过这种方式节省了执行join的时间,同时因为是对汇总之后的结果进行关联,因此执行速度也能更快。

    注:1、若上述为关联关系为N的合同事实表勾选内存化,则关联关系为1的产品名称维度表即使不勾选,也会自动被内存化处理。  

    2、内存化功能适用于数据量小且更新频率较低的表,需根据服务器内存配置适当选择。

    2.2 内存化参数配置

    勾选内存化后,可进入管理系统>系统管理>BI参数中的关联表缓存相关参数来分大小缓存配置内存化的维表缓存数量及时间,判断依据为 行*列 >= 依据值,为大数据量缓存 , 行* 列 < 依据值,为小数据量缓存。参考BI参数,以下四项相关参数修改后均需重启FineBI才能生效。

    关联缓存依据值:设置关联维度表缓存划分大小的依据值,默认1000000,判断依据为 行*列 >= 依据值,为大缓存 , 行* 列 < 依据值,为小缓存;

    维表存放数量-largeCache:设置放入存放大数据量数据的缓存中的维表的存放数量。默认100;

    维表存放数量-littleCache:设置放入存放小数据量数据的缓存中的维表的存放数量。 默认10000;

    维表失效时间-largeCache(秒):设置存放大数据量数据的缓存的缓存失效时间长度(单位秒)。默认600; 

    维表失效时间-littleCache(秒):设置存放小数据量数据的缓存的缓存失效时间长度(单位秒)。默认300;


    比如,当我们设置的内存化参数均为如上图的数据时,此时当我们勾选内存化的表A数据量为2000000,表B数据量为100000,那么表A为大数据量缓存,表B为小数据量缓存。且与表A数据量差不多的大数据量缓存表最多只能有100张,与表B数据量差不多的小数据量缓存表最多只能10000张。在使用勾选了内存化的数据进行分析时,会将对应表进行内存化处理,将其加载进内存。其中A表的内存缓存时间为600s,B表的内存缓存时间为300s,在达到指定缓存时间后,内存即会释放这部分缓存表的数据。



    内存化 在线视频学习 请查看【内存化】

    附件列表


    主题: 数据准备
    标签: 暂无标签 编辑/添加标签
    如果您认为本文档还有待完善,请编辑

    文档内容仅供参考,如果你需要获取更多帮助,付费/准付费客户请咨询帆软技术支持
    关于技术问题,您还可以前往帆软社区,点击顶部搜索框旁边的提问按钮
    若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201

    此页面有帮助吗?只是浏览 [ 去社区提问 ]