直连数据集缓存策略
主要是以下几个展示区域的数据:
数据明细
页面卡片(例如选择筛选器)
筛选器
简单概括:卡片数据和数据集数据是独立的
例如在以下配置信息的前提下:
1、数据明细
筛选、展示的数据范围:依据数据集的【缓存有效周期】设置。
【举例】12:00看到的数据明细信息是当天9:00时更新到的数据。
2、页面卡片数据
前置条件:页面一打开“自动刷新”(旧版本叫“实时数据”)的开关
原因:页面卡片要实时展示数据,需要同时确保页面打开了“实时数据”的开关、卡片使用的直连数据集、直连数据集要勾选上“支持实时卡片数据”的开关。
1)未设置“支持实时卡片数据”时
卡片数据的展示其实是对应的SQL语句直接从数据库中查询出来的结果,只要SQL查询语句有变动就会从数据库中去查询,如果查询SQL已有缓存数据则会直接使用缓存数据。
【举例】10:00 时默认页面卡片的数据是SQL A的查询结果,然后10:05对卡片数据进行筛选,对应的的查询语句是SQL B,则这两次查询都是从数据库里直接查询数据的,如果10:08再切回到查看 SQL A的查询结果的话,则就使用的是第一次SQL A的查询结果(即结果和10:00 时的查询结果是一样的)。同一条SQL语句的缓存会一直保存到第二天的9:00之前。
2)设置“支持实时卡片数据”时
此时 【缓存有效时长】优先级高于【缓存有效周期】(或者可以理解为该配置项失效)。页面卡片的SQL不管是否改变,都会每隔1分钟从数据库中查询数据
【举例】10:00 时默认页面卡片的数据是SQL A的查询结果,那么卡片就会在10:01就会再从数据库里查询SQL A的结果。
3、筛选器
和数据集关联的筛选器,其实也是有对应的SQL语句的,也是从数据库中进行查询的。
1)未设置“支持实时卡片数据”时
【举例】在10:00的时候筛选器筛选关键字"string1",对应的选项范围是A,则在10:03的时候,选关键字"string2",对应的筛选范围是B,这两次筛选都是从数据库中进行查询的(如果这两次查询间隙,数据库里的数据刚好有变动的话,且string1中包含string2时,则会出现可供选择的选项范围会有不一致的情况),若在10:05再筛选关键字"string1",对应的选项范围还是A
2)设置“支持实时卡片数据”时
同上卡片设置
4、模型结构
当数据集的模型结构中使用了时间宏全局参数时:
1)数据集抽取到的数据是按照时间宏全局参数的默认值抽取上来的数据
2)如果页面上有全局参数筛选器,则筛选器选项值的变化不会影响到数据集模型结构中的全局参数的值(始终是默认值)