JDBC关系型数据库数据集
# 查询语句
查询语句定义数据集对象,在不是用缓存的情况,数据集查询语句的结果不会被加载到BI服务器,而是通过子查询汇总的形式动态的汇总数据集的结果之后加载在BI服务器。
# 使用缓存
开启使用缓存配置之后,数据集查询语句会在首次分析查询时,全量加载(默认最大缓存数据量为30W行)到BI服务器缓存在内置的嵌入式数据库,之后的分析会基于该缓存数据。
更多详细介绍请查看性能优化
# 查询语句使用变量
查询sql支持使用环境变量,变量可以来自看板参数或者看板中图标联动事件、内置变量等,如:
SELECT
-- .... 省略其他查询脚本 ...
JOIN foodmart.region r ON c.REGION_ID = r.REGION_ID
JOIN foodmart.customer d ON a.CUSTOMER_ID = d.CUSTOMER_ID
WHERE r.sales_country = '${country!"USA"}'
2
3
4
5
select
-- ....
from
where date_columen between
'${arr.get(dt, 0) ! cdt.addDay(-10,"yyyy-MM-dd")}'
and '${arr.get(dt, 1) ! cdt.addDay(-1,"yyyy-MM-dd")}'
2
3
4
5
6
变量的使用请参考使用变量章节
# JDBC 数据源 WITH 子查询的
对于支持 WITH 子查询的 JDBC 数据源在定义数据集查询时候如果包含 WITH 子查询需要使用双箭头<<>>
把子查询包裹起来
<<
WITH log AS (
SELECT
extract(year from LOG_TIME) year,
extract(month from LOG_TIME) month,
extract(day from LOG_TIME) day,
to_char(LOG_TIME, 'YYYY-MM-DD') datestr,
DATASET_NAME, USER_NAME, WIDGET_NAME,
1 cnt
FROM LOG_DATA_ACCESS where LOG_TIME > to_date('2019-01-18', 'yyyy-mm-dd')
)
>>
SELECT * FROM log
2
3
4
5
6
7
8
9
10
11
12
13
# 图形化建模1.11
图形化建模是sql数据集的替代功能,通过图形化选择表,配置表关联,选择字段即可轻松构建与sql一样的数据集(原理为根据图形化配置自动生成SQL脚本)
打开图形化建模开关,从sql数据集模式切换图形化界面:
# 添加主表
点击添加主表按钮,在弹窗中选择主表
# 添加关联子表
鼠标移到主表上,显示操作按钮,点击添加按钮,添加关联子表,
设置关联条件
# 选择表字段
下来选择需要查询的表字段
# 计算字段与过滤字段
提示
- 使用对应数据库类型所支持的函数,语法同当前数据库语法一致
- 计算字段不能使用聚会函数 WHERE 前缀不用写