BI的智能缓存

什么是智能缓存

当底层数据库产出数据结束之后,通知有数,有数会自动下发SQL查询数据,并进行缓存。能够让业务每天第一次打开报告的时候,快速看到数据,不会因为数据库查询高峰期比较慢,迟迟看不到数据。

智能缓存解决哪些问题

1、解决数据的实时性

大部分分析师没办法准确的知道数据产出的时间,也就是数据是不是最新的,大部分情况下靠经验来进行缓存设置,很可能导致缓存的实时性不够。缓存预加载时可能数据还没产出,也有可能数据产出好久了才执行预加载。

2、缓存资源的有效利用

由于无法知道数据是否产出,又想在打开报告时看到最新数据,那么就通过设置多次刷新的方式解决问题,这样会导致多次落库查询,造成资源浪费。

3、缓解早高峰数仓压力

数据产出在很多情况下是有周期性的,大部分客户的数仓数据都是 T + 1 的,也有很少部分实时比较高的数据,这个时候如果大量的T + 1的落库查询,就会让数仓查询压力比较大,导致一些实时数据要求比较高的用户获取不到最新的数据。

3、解决报告推送&抽取的准确性

很多报告需要推送给领导邮箱进行查看,往往会因为设置的推送时间在底层数据产出的时间之前,导致推送出去的数据不准确。抽取也一样,抽取时间在产出时间之前,也会导致抽取到的数据是旧数据。

BI智能缓存对接方式

1、网易数据中台(Easydata)对接

有数 BI 利用网易大数据中台(Easydata)能力,通过中台的表产出消息和血缘预测当天产出情况能很好的完成智能缓存。

2、通过API接口自助对接

任何数据库的数据产出完毕之后,都可以调用/api/dash/tableRely/pushTable 接口告知有数,有数就会自动下发SQL查询进行缓存,查询的时间取决于调用接口的时间。

BI的智能缓存 - 图1

3、用户自己的impala数据源对接:

用户自己的impala数据源,需要调用/api/dash/util/pushTableByMammut 接口告知有数。

BI的智能缓存 - 图2

BI智能缓存应用场景

1、开启依赖推送

当报告对应的表是直连的情况下,可以开启依赖推送,但底层表数据产出之后,在触发推送报告,这个时候拿到的数据一定是最新的数据。

BI的智能缓存 - 图3

2、开启依赖抽取

如果是抽取的情况下,也可以对表进行依赖抽取,数据产出之后在进行抽取,从而拿到最新的数据。

BI的智能缓存 - 图4

特殊场景的依赖推送

如果报告对应的模型是抽取的,也可以在推送的时候开启依赖推送,这个时候当抽取完成之后自动触发推送,不需要调用接口,推送的时间根据抽取结束的时间来判断。

作者:王李兵