模板学堂|SQL数据集动态参数使用场景及功能详解

DataEase开源数据可视化分析平台于2022年6月正式发布模板市场(https://dataease.io/templates/)。模板市场旨在为DataEase用户提供专业、美观、拿来即用的仪表板模板,方便用户根据自身的业务需求和使用场景选择对应的仪表板模板,并在优质模板的基础上轻松制作自己的仪表板。目前,DataEase模板市场的模板数量已经超过了100个。

2023年7月上新模板

DataEase模板市场定期进行模板上新。2023年7月共上新7个模板,涉及教育、制造、零售、医疗、开源生态等主题,欢迎大家在DataEase模板市场下载使用。
模板学堂|SQL数据集动态参数使用场景及功能详解_第1张图片
模板学堂|SQL数据集动态参数使用场景及功能详解_第2张图片
模板学堂|SQL数据集动态参数使用场景及功能详解_第3张图片
模板学堂|SQL数据集动态参数使用场景及功能详解_第4张图片
模板学堂|SQL数据集动态参数使用场景及功能详解_第5张图片

模板学堂|SQL数据集动态参数使用场景及功能详解_第6张图片

模板技巧

本月的模板技巧为大家介绍通过DataEase开源数据可视化分析工具中SQL数据集的动态参数功能,来减少仪表板数据查询时间的方法。

在使用DataEase制作的仪表板时,用户经常会利用筛选组件来灵活地展示数据。然而,这些筛选组件实际上是在图表的SQL查询中添加了额外的WHERE条件。当数据量非常大的时候,这种简单的拼接方式可能会导致查询时间显著增加,影响用户体验。

为了加快查询的效率,我们建议用户考虑使用SQL数据集的动态参数功能。通过动态参数设置,用户可以将原本的外查询转换为内查询,从而有效地优化查询过程。这样一来,筛选条件将直接传递到原始SQL内部,避免了大规模的数据扫描,从而大幅减少查询时间。
模板学堂|SQL数据集动态参数使用场景及功能详解_第7张图片
以下方一个简单SQL语句为例,不设置动态传参,直接使用筛序条件的效果如下:
– 原始SQL数据集语句:

select * from table_demo;
– 仪表板使用筛选条件无动态传参的拼接语句: select * from (select * from table_demo) where condition = ‘仪表板筛选组件所选条件’;

设置动态传参,筛选条件直接替换预置参数的效果如下:
– SQL数据集语句设置动态参数:

select * from table_demo where condition = ‘${condition}’;
– 仪表板筛选条件使用动态参数做替换: select * from table_demo where condition = ‘仪表板筛选组件所选条件’;

一、功能使用的前提

1.使用SQL数据集;

2.进入SQL数据集编辑界面后,数据链接选择使用直连模式(直连与定时同步的差异参见:https://dataease.io/docs/user_manual/dataset_description/)。
模板学堂|SQL数据集动态参数使用场景及功能详解_第8张图片
模板学堂|SQL数据集动态参数使用场景及功能详解_第9张图片

二、功能使用详解

1.SQL数据集的设置

这部分我们通过一个示例来介绍。如下图所示,通过一个简单的SQL语句,我们查询了华为云的账单数据。

SELECT * FROM 云账单_华为云;

模板学堂|SQL数据集动态参数使用场景及功能详解_第10张图片

当我们在仪表板上使用账单数据时,预备将产品作为筛选条件,并且希望该条件在SQL数据集中作为动态参数被传入。
模板学堂|SQL数据集动态参数使用场景及功能详解_第11张图片

这时我们便可在SQL语句上补充WHERE条件,但无需将条件设置为固定值,而是使用“${xxx}”进行替代,其中“xxx”为变量名。

SELECT * FROM 云账单_华为云 WHERE 产品 = ‘${Product}’;

完成SQL语句的编写后,可以点击下图所示SQL数据集编辑界面右上角的“运行查询”按钮进行预览,并确认所写SQL的执行没有问题。

注意:虽然我们增加了WHERE条件,但未传入实际值到变量中时,并不会影响原始SQL的执行及使用。
模板学堂|SQL数据集动态参数使用场景及功能详解_第12张图片

如果需要进一步验证传入实际的值后,SQL查询结果是否符合我们的预期,可以点击SQL数据集编辑界面右上角的“参数设置”选项。
模板学堂|SQL数据集动态参数使用场景及功能详解_第13张图片

按照下图说明,完成相关参数的配置,点击“确认”按钮。
模板学堂|SQL数据集动态参数使用场景及功能详解_第14张图片

再次点击SQL数据集编辑界面右上角的“运行查询”按钮,观察运行结果。如下图所示,此次查询结果均为已设置的产品类型为“弹性公网IP”的数据,由此证明动态参数是正常生效的。
模板学堂|SQL数据集动态参数使用场景及功能详解_第15张图片

需要特别补充的是,如下图所示,在进行“参数设置”时,该下拉选项中两个参数的区别为:

■ 仅编辑时生效:参数设置中所赋予的值仅用于在此数据集的编辑界面中的“运行查询”测试,离开数据集编辑界面后,该值无任何作用;

■ 数据集预览时全局生效:参数设置中所赋予的值不仅在此数据集编辑中的“运行查询”测试中生效,同时其值将作为该SQL数据集的默认条件,在外部预览数据集时同样生效。
模板学堂|SQL数据集动态参数使用场景及功能详解_第16张图片

设置了“数据集预览时全局生效”选项后,退出SQL数据集编辑界面,此时预览数据集界面的效果如下,查询结果同样保持为已设置产品类型为“弹性公网IP”的数据。
模板学堂|SQL数据集动态参数使用场景及功能详解_第17张图片

2.在仪表板中的应用

使用上文中我们所配置的华为云云账单SQL数据集制作一些简单图表,以下是未做过滤时的原始仪表板。
模板学堂|SQL数据集动态参数使用场景及功能详解_第18张图片

该仪表板中同时放置了一个文本下拉筛选组件,并将华为云云账单SQL数据集中的产品作为筛选条件。
模板学堂|SQL数据集动态参数使用场景及功能详解_第19张图片

将该组件与SQL数据集中预设置的参数进行关联,如下图所示,勾选对应参数即可。
模板学堂|SQL数据集动态参数使用场景及功能详解_第20张图片

保存参数的关联后,返回仪表板。使用下图筛选条件任选一个值,所选的值会被直接传入到上文所设置的“Product”变量中。

重新编辑文本下拉组件,去掉参数的绑定后保存,再次测试仪表板数据筛选效果。
模板学堂|SQL数据集动态参数使用场景及功能详解_第21张图片

从筛选条件中任选一个数据值进行过滤,由于此时并未绑定SQL数据集的动态参数,即所选的值并未直接传到“Product”变量中,而是在其SQL外层拼接新的过滤条件。但其并不影响对仪表板数据的过滤,如下图所示,仪表板筛选结果与之前一致。
模板学堂|SQL数据集动态参数使用场景及功能详解_第22张图片

总结

SQL动态传参通过将用户的查询条件由外部传参转换为内部传参,有效提升了查询效率。然而,并非所有场景都需要使用动态传参,特别是在数据量较小的情况下。虽然该功能有助于改善查询效率,但并不能解决所有的SQL查询性能问题。

在使用动态传参时,需要综合考虑利弊,并视具体情况谨慎选择是否使用。进一步优化SQL语句、数据库表和数据库等方面也是提升查询性能的关键。

你可能感兴趣的:(数据分析,数据可视化,仪表板,开源,DataEase)