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

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

2023年7月上新模板

DataEase模板市场定期进行模板上新。2023年7月共上新7个模板,涉及教育、制造、零售、医疗、开源生态等主题,欢迎大家在DataEase模板市场下载使用。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

模板技巧

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

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

为了加快查询的效率,我们建议用户考虑使用SQL数据集的动态参数功能。通过动态参数设置,用户可以将原本的外查询转换为内查询,从而有效地优化查询过程。这样一来,筛选条件将直接传递到原始SQL内部,避免了大规模的数据扫描,从而大幅减少查询时间。
在这里插入图片描述
以下方一个简单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/)。
在这里插入图片描述
在这里插入图片描述

二、功能使用详解

1.SQL数据集的设置

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

SELECT * FROM 云账单_华为云;

在这里插入图片描述

当我们在仪表板上使用账单数据时,预备将产品作为筛选条件,并且希望该条件在SQL数据集中作为动态参数被传入。
在这里插入图片描述

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

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

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

注意:虽然我们增加了WHERE条件,但未传入实际值到变量中时,并不会影响原始SQL的执行及使用。
在这里插入图片描述

如果需要进一步验证传入实际的值后,SQL查询结果是否符合我们的预期,可以点击SQL数据集编辑界面右上角的“参数设置”选项。
在这里插入图片描述

按照下图说明,完成相关参数的配置,点击“确认”按钮。
在这里插入图片描述

再次点击SQL数据集编辑界面右上角的“运行查询”按钮,观察运行结果。如下图所示,此次查询结果均为已设置的产品类型为“弹性公网IP”的数据,由此证明动态参数是正常生效的。
在这里插入图片描述

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

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

■ 数据集预览时全局生效:参数设置中所赋予的值不仅在此数据集编辑中的“运行查询”测试中生效,同时其值将作为该SQL数据集的默认条件,在外部预览数据集时同样生效。
在这里插入图片描述

设置了“数据集预览时全局生效”选项后,退出SQL数据集编辑界面,此时预览数据集界面的效果如下,查询结果同样保持为已设置产品类型为“弹性公网IP”的数据。
在这里插入图片描述

2.在仪表板中的应用

使用上文中我们所配置的华为云云账单SQL数据集制作一些简单图表,以下是未做过滤时的原始仪表板。
在这里插入图片描述

该仪表板中同时放置了一个文本下拉筛选组件,并将华为云云账单SQL数据集中的产品作为筛选条件。
在这里插入图片描述

将该组件与SQL数据集中预设置的参数进行关联,如下图所示,勾选对应参数即可。
在这里插入图片描述

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

重新编辑文本下拉组件,去掉参数的绑定后保存,再次测试仪表板数据筛选效果。
在这里插入图片描述

从筛选条件中任选一个数据值进行过滤,由于此时并未绑定SQL数据集的动态参数,即所选的值并未直接传到“Product”变量中,而是在其SQL外层拼接新的过滤条件。但其并不影响对仪表板数据的过滤,如下图所示,仪表板筛选结果与之前一致。
在这里插入图片描述

总结

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/59889.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

后端进阶之路——Spring Security构建强大的身份验证和授权系统(四)

前言 「作者主页」:雪碧有白泡泡 「个人网站」:雪碧的个人网站 「推荐专栏」: ★java一站式服务 ★ ★前端炫酷代码分享 ★ ★ uniapp-从构建到提升★ ★ 从0到英雄,vue成神之路★ ★ 解决算法,一个专栏就够了★ ★ 架…

【C语言】操作符详解

目录 一、算数操作符 二、移位操作符 1.左移操作符 2.右移操作符 (1) 逻辑右移 (2) 算术右移 (3)小总结 三、位操作符 四、赋值操作符 五、单目操作符 六、关系操作符 七、逻辑操作符 八、 条件操作符 九、逗号表达式 十、下标引用、函数调用和结构成员 1. [ ]下…

深度解读|一站式ABI平台 Smartbi Insight V11 能力再升级

纵观过去,我们发现汽车和BI的发展有异曲同工之妙。 100来年,汽车的动力从蒸汽到燃油再到新能源,汽车的操控方式从手动到自动再到智能无人驾驶。而在BI领域,自1958年BI的概念提出后,底层数据准备从报表开发、Cube多维模…

搭建本地开发服务器

搭建本地开发服务器 :::warning 注意 在上一个案例的基础上添加本地开发服务器,请保留上个案例的代码。如需要请查看 Webpack 使用。 ::: 搭建本地开发服务器这一个环节是非常有必要的,我们不可能每次修改源代码就重新打包一次。这样的操作是不是太繁琐…

Docker的入门与使用

什么是Docker? docker官网 简介与概述 Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。 Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上&#x…

Java # Spring(2)

一、Spring事物 一、分类 编程式事物:代码中硬编码(不推荐使用) 声明式事物:配置文件中配置(推荐使用) 分类: 基于xml的声明式事物基于注解的声明式事物 二、隔离级别 ISOLATION_DEFAULT&…

webpack基础知识六:说说webpack的热更新是如何做到的?原理是什么?

一、是什么 HMR全称 Hot Module Replacement,可以理解为模块热替换,指在应用程序运行过程中,替换、添加、删除模块,而无需重新刷新整个应用 例如,我们在应用运行过程中修改了某个模块,通过自动刷新会导致…

【2.1】Java微服务: Nacos的使用

目录 Nacos介绍 Nacos安装 下载和安装 修改端口 启动 服务注册与发现 导入Nacos管理依赖 导入服务依赖 配置Nacos的服务地址 启动服务,查看已注册的服务 服务分级存储模型 分级存储模型介绍 具体结构 配置实例集群 同集群优先的负载均衡策略 服务权重配置…

【STL】优先级队列反向迭代器详解

目录 一,栈_刷题必备 二,stack实现 1.什么是容器适配器 2.STL标准库中stack和queue的底层结构 了解补充:容器——deque 1. deque的缺陷 2. 为什么选择deque作为stack和queue的底层默认容器 三,queue实现 1. 普通queue …

gradle 命令行单元测试执行问题

文章目录 问题:命令行 执行失败最终解决方案(1)ADB命令(2)Java 环境配置 问题:命令行 执行失败 命令行 执行测试命令 无法使用(之前还能用的。没有任何改动,又不能用了) …

DC-7靶机

DC-7靶机地址 同样的,把靶机跟kali放在同一网段,(NAT模式) 主机发现 arp-scan -l端口扫描 nmap -A -T4 -p- 192.168.80.13922端口开始,80端口开启 浏览器先访问一下靶机的80端口 熟悉的Drupal站点 先爆破一下目录…

深入学习 Redis - 事务、实现原理、指令使用及场景

目录 一、Redis 事务 vs MySQL事务 二、Redis 事务的执行原理 2.1、执行原理 2.2、Redis 事务设计这么简单,为什么不涉及成 MySQL 那样强大呢? 三、Redis 事务的使用 3.1、使用场景 3.2、具体演示 开启/执行/放弃事务 watch 监控 watch 实现原理…