JDBC关系型数据库数据集

2023-5-5 Guide
  • 模型
  • 分析
  • 数据仓库
About 7 min

# 查询语句

查询语句定义数据集对象,在不是用缓存的情况,数据集查询语句的结果不会被加载到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"}'
1
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")}'
1
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
1
2
3
4
5
6
7
8
9
10
11
12
13

# 图形化建模1.11

图形化建模是sql数据集的替代功能,通过图形化选择表,配置表关联,选择字段即可轻松构建与sql一样的数据集(原理为根据图形化配置自动生成SQL脚本)
打开图形化建模开关,从sql数据集模式切换图形化界面:

# 添加主表

点击添加主表按钮,在弹窗中选择主表

# 添加关联子表

鼠标移到主表上,显示操作按钮,点击添加按钮,添加关联子表,

设置关联条件

# 选择表字段

下来选择需要查询的表字段

# 计算字段与过滤字段

提示

  • 使用对应数据库类型所支持的函数,语法同当前数据库语法一致
  • 计算字段不能使用聚会函数 WHERE 前缀不用写

Last update: October 21, 2024 11:04