-## 1 数据集介绍!!! Abstract "" 【数据集】为下一步数据分析或报表制作进行相关的数据准备; 点击【数据准备】,进入【数据源】管理功能模块,该页面包括数据连接的新增(序号 1)、搜索(序号 2)、编辑(序号 3)、复制(序号 4)、删除(序号 5)等功能。 { width="900px" }!!! Abstract "" 支持对已创建的数据集进行复制、移动、重命名和删除。{ width="900px" }!!! Abstract "" 数据集数据支持导出。{ width="900px" }## 2 新建数据集!!! Abstract "" 如下图所示,点击序号位置【添加数据集】,跳转到添加数据集页面。 { width="900px" }!!! Abstract "" **单源与跨源设置项:** - 当数据集选择为【单源】时,自定义 SQL 采用数据源自身的 JDBC 语法进行运行校验;若为【跨源】则使用 Calcite 语法进行运行校验。 - 当数据集选择为不同数据源时,多个节点实际构成跨源(跨库),应把选项切换为【跨源】模式。{ width="900px" }!!! Abstract "" 数据集编辑界面支持下拉框搜索。{ width="900px" }!!! Abstract "" 在新建数据集页面,勾选添加数据集对应的数据源,将左侧数据库数据表(可利用搜索功能进行快速筛选)后拖拽到右侧数据集编辑区。{ width="900px" }!!! Abstract "" 如下图所示,点击【保存】,设置对应名称以及保存文件夹位置,点击【确认】即成功添加数据集。{ width="900px" }{ width="900px" }## 3 编写 SQL 查询!!! Abstract "" 在新建数据集页面,勾选添加数据集对应的数据源,将左侧【自定义 SQL 】拖拽到右侧数据集编辑区,进入到 SQL 编辑界面。{ width="900px" }{ width="900px" }!!! Abstract "" 【序号1】位置选择数据库; 【序号2】位置为 SQL 语句输入区,在此区域输入正确的 SQL 语句; 【序号3】点击可展示预览数据; **注意:当数据集选择为【单源】时,自定义 SQL 采用数据源自身的 JDBC 语法进行运行校验;若为【跨源】则使用 Calcite 语法进行运行校验。**{ width="900px" }!!! Abstract "" SQL 片段支持注释。{ width="900px" }!!! Abstract "" 如下图所示,点击【保存】,SQL 查询添加成功。{ width="900px" }## 4 SQL 语句动态传参设置!!! Abstract "" **SQL 数据集支持参数传递,如下图所示。** - 在 SQL 数据集中编写带变量的 SQL 语句,变量定义格式为 ${xxx},其中 xxx 为变量名; - 在右上角【参数设置】里对变量进行相关设置,如变量类型、生效模式、默认值(非必填),此处变量为系统根据 SQL 语句自动识别的,例如 province 会被自动带出来; - 在仪表板的过滤组件中(文本下拉和数字下拉组件)勾选【参数选项】,并将下拉字段与 SQL 数据集中的变量关联,如下示例以 MySQL 数据库 SQL 语法为例,不同数据库请根据实际情况调整。{ width="900px" }!!! Abstract "" 编写带变量的 SQL 语句后,系统默认将参数类型设置为文本,根据需要可在右上角【参数设置】里对变量进行相关设置,示例如: 若该变量为时间类型,请手动调整该参数类型的时间类型及时间格式。{ width="900px" }!!! Abstract "" 参数设置里面,参数值下拉列表中可以选择“仅编辑时生效”或“数据集预览时全局生效”。 区别:仅编辑时生效在SQL数据集编辑界面有效,数据集预览时全局生效在数据集预览界面有效 。{ width="900px" }!!! Abstract "" 在仪表板过滤组件绑定 SQL 传参:{ width="900px" }!!! Abstract "" **SQL 数据集带参数传递,根据过滤组件的不同,SQL 语法用法上有差异。** 【 2.10.9 及之前版本用法 】 情况一:过滤组件为单选时,要用 = : ``` SELECT ORDER_ID, ORDER_DATE, PROJ_ID, ORDER_EMP FROM ORDERS WHERE ORDER_EMP = '${USER_NAME}' ``` 情况二:过滤组件为多选时,要用 IN (用 IN 可单选也可多选,但相反地用 = 只能单选),注意变量外需要用括号包起来: ``` SELECT ORDER_ID, ORDER_DATE, PROJ_ID, ORDER_EMP FROM ORDERS WHERE ORDER_EMP IN (${USER_NAME}) ``` 情况三:有多个过滤组件时,要用括号将它们组合在一起,否则图表无法更新: ``` SELECT ORDER_ID, ORDER_DATE, PROJ_ID, ORDER_EMP FROM ORDERS WHERE (ORDER_EMP IN ${USER_NAME} AND PROJ_ID IN ${USER_PROJ_ID}) ``` 情况四:结合两个时间过滤组件进行日期范围(变以文本格式传入的需在 SQL 中自行处理时间格式)传参,使用 BETWEEN 或者用 <、 > : ``` SELECT * FROM SALES WHERE 记录时间 BETWEEN '${BEGINTIME}' AND '${ENDTIME}'; SELECT * FROM SALES WHERE 记录时间 > '${BEGINTIME}' AND 记录时间 < '${ENDTIME}' ``` 【 2.10.10 及及之后版本变量使用方法 】 兼容之前版本用法的同时,如果存在无法解析数据库自有语法问题,可以使用以下格式修改: ``` select * from table where name = '${p}' ``` 改为: ``` select * from table where $DE_PARAM{name = '$[p]'} ```!!! Abstract "" 时间范围传参使用两个时查询条件间,分别绑定【开始时间】和【结束时间】参数,设置展示类型为时间。{ width="900px" }!!! Abstract "" **SQL 动态参数与过滤组件的区别:** - SQL 动态参数可以提升查询效率,自定义的 SQL 相较于过滤组件通过程序拼接出来的查询语句查询效率会更高效; - SQL 动态参数可以满足一些过滤组件无法满足的场景,比如需要在 SQL 中对参数值做特殊处理后才能用于 where 过滤条件的情况。 SQL 数据集支持参数传递,且 SQL 数据集参数化支持子查询,系统会对 SQL 数据集在查询时的 SQL 进行 Base64 加密处理。{ width="900px" }!!! Abstract "" 数据集自定义 SQL 时支持选择系统变量(企业版 X-Pack 功能)作为查询条件。在 SQL 查询中可以使用系统变量,实现行权限的效果。该条件在数据集预览和仪表板/数据大屏展示中均会生效。.png){ width="900px" }## 5 设置数据表间关联关系!!! Abstract "" 在新建数据集页面,需要先设置为【跨源】模式,勾选添加数据集对应数据源,将左侧要关联的数据表拖拽到右侧数据集编辑区。 **注意:如果是跨数据库关联,对应的自定义 SQL 需要使用的是 Calcite 语法。**{ width="900px" }!!! Abstract "" 将关联的数据表拖拽到编辑区后,可编辑关联关系: - 序号 1 :设置连接方式; - 序号 2 :添加关联字段; - 序号 3 :选择输出字段。{ width="900px" }!!! Abstract "" 创建数据集时,同一个数据表可被多次引用。{ width="900px" }
0 commit comments