Skip to content

数据集管理

yzhang921 edited this page Dec 15, 2016 · 10 revisions

数据集类似于OLAP分析的Cube,可以提前定义查询,以及在多列上进行聚合的聚合表达式,在用户数据模型比较稳定的前提下,可以减少相同数据集下不同表报设计时重复的填写查询脚本、新建聚合表达式工作,以及提高Dashboard加载效率。 CBoard的数据集为轻模型,任何一条简单的查询输出都可以当做一个cube来使用,修改起来避免了常规数据建模、修改、发布测试的繁琐过程。打个比方,第一次业务需求你可能选择了,a,b,c,d四个列作为聚合维度建立了一个Cube

SELECT a, b, c, 
       sum(xx) AS m1, count(yyy) AS m2
  FROM fact a
  JOIN dima a ON ...
  JOIN dimb b ON ...
 GROUP BY a, b, c

之后有了新的需求,需要引入维度e, f, g 列,常规的报表工具需要重新引入表、更新模型定义、发布,但是CBoard上轻模型的优势就体现出来了只需要简单的修改或者复制之前的模型再修改一下查询

SELECT a, b, c, e, f, g
       sum(xx) AS m1, count(yyy) AS m2
  FROM fact a
  JOIN dima a ON ...
  JOIN dimb b ON ...
 GROUP BY a, b, c, e, f, g

0.2之前的查询数据结果数据会全部读取到浏览器端,OLAP操作都在浏览器端进行,所以暂时请尽量把压力通过查询聚合的方式压到数据源。后续Olap引擎实现机制重构会考虑针对某些特定的DataProvider实现一些聚合下压的实验性探索。

预定义聚合表达式

  1. 数据集管理->New->选择数据源
  2. 填写分类/名称查询脚本
  3. 读取数据
  4. 在读取数据正常之后,出现自定义表达式设计栏,添加聚合表达式
  5. 编辑聚合表达式并测试正确,表达式是用于聚合后再计算. 使用上面的点击辅助输入避免输入错误!
    如: Math.log(sum(columnA)/count(columB)), check按钮只能检测到表达式的格式是否基本正确,复杂表达式不能保证验证成功之后后续100%能够工作
    image
  6. 实时刷新时间间隔可以保持空,留空则不做后台刷新,填入大于0的值看板展示的是会按设置的时间间隔刷新数据集
  7. 保存

image

后期考虑添加对可选列属性编辑,如:

  • 维度、度量标识
  • Dim Hierarchy(维度层次结构)
  • 数据格式format

Next >> 图表设计