仪表板的“正确”打开方式 - 让你的仪表板更快更灵活

让仪表板加载的更快

你是否困扰于每次打开仪表板等待的时间太久?你是否遇到过当你添加好许多图表正准备给其他小伙伴展示的时候却一直要等待图表的查询结果?下面将介绍一些方法来改善你的仪表板加载的速度,让图表更快展示出来。

使用带缓存查询结果的"预存查询"

如果你的仪表板对图表依赖数据的实时性要求不高(数据产生和使用之间有一定间隔),可以将图表的查询语句配置成预存查询,设置合理的执行计划,以加速仪表板的展示的速度和效率。

当用户使用带有缓存查询结果的预存查询时,由于有预先执行获得的缓存结果集,可以避免使用时再做实时查询,从而能更快得到查询结果并返回到仪表板进行展示。

在新建图表或编辑图表查询的对话框中,可在预存查询下拉菜单中选择期望的预存查询:

关于如何创建和使用预存查询可以参考这里 - 预存查询功能介绍

(https://yanhuang.yuque.com/staff-sbytbc/rb5rur/ugyw16?)。

使用"物化视图"

物化视图会存储SQL预计算结果数据集,因为数据是预先计算的,所以查询物化视图比基表查询要快。当查询频繁运行或足够复杂时,这种性能差异可能非常显著。

所以如果你的仪表板需要频繁打开或者查询条件很复杂,那么尝试用物化视图来加速你的仪表板加载速度吧。

例如创建一个物化视图 CREATE MATERIALIZED VIEW my_view AS ( SELECT item, order_time FROM sales WHERE name = '大数据' )

然后可以在图表的查询语句中使用物化视图的结果来加速查询 SELECT * FROM my_view

参考资料 - 物化视图功能介绍

(https://yanhuang.yuque.com/staff-sbytbc/rb5rur/ugyw16?)

使用仪表板内部的"基础查询"

当有以下情况时,你可以考虑使用基础查询来优化仪表板:

  • 仪表板中多个图表的查询有部分查询步骤相同或相似

  • 仪表板中多个图表查询数据相同,但图表的配置选项不同。比如不同的图表类型,不同的标题,图表颜色等。

例如在一份销售数据展示的仪表板中,有几个图表都是查询某一年的销售数据,只是过滤条件不同。图表分别展示了各个来自不同区域的销售数据,在这种情况下当一些图表使用了同一份查询结果或者类似的查询结果时,我们就可以优先考虑仪表板的"基础查询"来优化仪表板图表查询了。

不同图表可以引用同一个基础查询的结果集来展示,由于优化了查询任务并大大减少了仪表板中查询任务的个数,从而达到了加速仪表板的效果。

你可以在仪表板中轻松便捷通过UI界面来创建和管理你的仪表板"基础查询",并且也很方便在你的图表查询语句中引用到基础查询的结果集。参考资料 - 仪表板基础查询

(https://yanhuang.yuque.com/staff-sbytbc/rb5rur/hqnyn6hz86g6afic)

例如创建名称为base_search_1的基础查询,接下来在两个不同的图表中分别设置图表查询语句为

select * from $base_search_1$

select * from $base_search_1$ where _source like '%/opt%'

图表类型均设置为表格,即可得到如下所示的图表:

上图示例的两个图表引用基础查询base_search_1, 减少了仪表板的查询任务数量,查询速度得到了优化。

让仪表板的输入标记使用更灵活

平台提供了丰富的仪表板输入标记功能:你可以在查询中使用文本类型输入标记,标记名称语法为 $...$ 分隔符。⽐如,如果您将查询字段输⼊标记定义为"field",则查询语句为 SELECT $field$ FROM mySource。

除了文本输入标记,平台还提供了选择器类型和时间类型的输入标记。关于输入标记的概念和基础用法你可以参考文档和使用手册。

下面将拓展介绍一些更加高级的输入标记使用的场景,让你的仪表板变得更简洁,操作更灵活。

动态过滤查询输入标记的选项

当你使用"从查询中提取"来生成你的标记选项时,你是否希望你的查询语句是可以动态调整变化的?

以下面的场景为例:仪表板的选择器类型的输入通过查询语句 select distinct country from cities_csv 返回了字段 country 的值,而有些地名的选项需要过滤掉,也就是需要额外调整输入标记的查询语句。这时候你就可以在标记的查询语句中使用其他标记来控制查询返回结果。例如增加过滤条件where country != '$fieldToken$'。

这样就通过在查询输入标记中引用其他输入标记,达到了动态的控制标记的返回值、调整标记选项的效果。接下来在你的仪表板中可以选择动态调整过的标记选项,实现更丰富的图表展示的目的。

下面我们来看一下具体操作步骤:

1、创建一个选择器类型的输入标记fieldToken,添加两个示例选项RU和GL

2、接下来把上面创建的标记应用于查询类型的输入标记中,例如创建一个从查询提取结果的选择器输入。select distinct country from cities_csv where country != '$fieldToken$'

3、然后可以通过fieldToken的来控制searchToken的返回值。例如下图中过滤掉选项'GL'或者'RU'

控制输入标记的的查询时间范围

除了上述场景中过滤输入标记的查询语句之外,平台还提供了一些控制查询时间范围的方法:

1、时间类型输入标记可以用来控制图表的查询时间范围,例如

2、你还可以将输入(文本或选择器类型)标记作为查询时间范围变量应用在输入标记的查询语句中,例如:

创建一个选择器类型的标记 searchRange

select _time, headers, content from _audit where _time > '$earlierTime$' and _time < '$latestTime$'

其中$earlierTime$和$latestTime$为两个输入标记,值选项可以设置为相对时间或时间戳,例如 'now-4h', 'now-12h'。那么 searchRange 的查询时间范围就被应用为从‘过去12小时’开始到‘过去4小时’。

在查询选择器类型的标记输入中直接使用时间类型输入标记

上面介绍了使用查询语句中的时间条件_time > '$earlierTime$' and _time < '$latestTime$' 来查询的方法,你还可以直接使用已经创建好的时间类型标记作为查询时间范围使用在选择器类型标记的查询中:

分享仪表板给其他角色

当你创建并编辑好一个仪表板之后,你是不是也想给其他小伙伴展示你的图表,把你的仪表板分享给平台里的其他角色用户呢?

如果你需要和其他角色一起访问并持续编辑改进某个仪表板,你可以通过编辑仪表板权限来赋予其他角色更高的权限。而当你不想扩大仪表板内部引用依赖的资源给其他用户,只希望其他角色用户以‘只读’的形式查看仪表板的时候,你可以通过分享仪表板的方式来控制访问权限。

下面将介绍分享仪表板的方法,针对不同场景来满足你的需求。

在仪表板编辑权限里面,把仪表板和依赖资源权限直接分配给相应的角色

仪表板中的图表查询会引用和依赖到其他对象资源,例如数据集,视图,表函数 等等。在仪表板权限编辑对话框中可以得到资源列表,并且可以一键赋予角色所有这些依赖资源的只读访问权限。

被赋予依赖资源权限的角色/用户即可访问仪表板并查看所有图表结果了。

那么这里需要提醒的是,不仅在仪表中,而是在炎凰数据平台中全部功能页面都能访问到这些资源,比如告警、查询、预存查询、查找表、表函数等等。

分享仪表板

上述仪表板编辑权限的方法和场景适用于将仪表板和其内部图表所依赖资源一次性并批量的赋予某个角色的时候。

那么这里做一个预告: 除此之外,我们还提供另外一种‘共享仪表板’的途径将仪表板分享给目标角色,并无需担心任何资源权限的额外赋予。

参考资料 - 分享仪表板

(https://yanhuang.yuque.com/staff-sbytbc/rb5rur/xfed6lyivz24dag2)

猜你喜欢

转载自blog.csdn.net/Yhpdata888/article/details/131461859