图表设计
点击顶部自助分析菜单进入自助式数据探索、图表设计模块
# 读取数据
# 已有数据集
点击新建图表,弹出编辑查询对话框,读取模式默认为数据集,可以通过下拉菜单选择数据集或者点击下拉框右侧文件夹从资源目录选择数据集模型
# 即席查询(ad-hoc)
弹出编辑查询对话框, 点击切换为查询获取数据之后,选择要查询的JDBC 数据源需要填写读取数据对应的查询语句SQL或者是其他数据源对应的查询,真正实现Type in SQL, Get Chart 的体验

AD-HOC支持查询、数据变更维持数据集模型与图表维度配置
常规数据集变更、查询变更会改变查询返回列,因此更新完查询之后需要清空掉原来的模型与图表配置,但是不排除有时候需要做查询变更,比如只改变查询条件、改变某个数据列的计算方式,这些变更不会影响查询列,进更新查询功能可以保留模型与图表配置,避免每次变更重复拖拽

值得注意的是使用该功能需要保证查询返回列不变,否则引起查询错误,如配置中保留了新查询中不存在的列

# 功能区介绍
# 图表列表
点击打开图表, 弹窗展示已保存图表文件树
- 显示已保保存的图表
- 右键点击功能键可以查看文件基本信息、复制、编辑、重命名、删除
- 文件夹右键支持新建子文件夹
- 删除也一样只能删除单个图表, 或者空文件夹, 如果文件夹里面有其他类型资源, 则删除文件夹操作会被阻止
- 鼠标双击图表进入编辑状态
# 查询配置
点击编辑查询, 弹窗显示查询配置
- 用户可在
数据集与即席查询之间切换即席查询: 一次性查询分析, 不可重用, 没有模型的概念, 所有查询出来的字段即可用做维度也可以用做指标,在设计区内的字段不能在维度与指标之间拖拽
- 查询区默认为选择已经保存的数据集(Cube)
- 在数据集开启允许图表级别表达式之后,可以在新增临时表达式
- 点击确认之后, 系统会去获取查询配置对应的字段或者模型, 注意: 不会真正去读取数据, 真实数据会在图表配置完成之后点击预览时获取
# 模型区
- 模型区的层级结构(Hierarchy)需要在数据集设计页面提前定义,否则只能看到原始的可选列属性
- 模型包含 4 个一级分类节点
- 维度列(Dimensions)
- 层级下面的列在支持下钻的图表组件下面可以进行下钻/上卷操作

- 层级下面的列在支持下钻的图表组件下面可以进行下钻/上卷操作
- 指标列(Measures)
- 指标拖拽到指标栏之后可以设置汇总方式

- 可选表达式(Calulated Measures)
- 预先定义: 数据集预先定义只能使用,不能修改;数据集上对指标进行修改会影响图表;数据集中删除已经在图表中使用的指标会导致图表运行失败
- 如果只在单列上的聚合操作可以不使用计算维度, 如: sum(a)
- 可选过滤器(Filter)
- 预先定义: 数据集预先定义只能使用,不能修改,不能查看具体内容
- 维度列(Dimensions)
# 设计区
- 图表类型切换:不同类型的图表对于输入有不同的限制,鼠标放置在图表类型上面有详细提示,点亮状态下为理论可切换状态
- 通过拖拽至设计区输入栏进行 OLAP 设计
- 快捷操作(企业版)
| 设计区目标框 | 模型区节点类型 |
|---|---|
| 行维框、列维框、过滤框 | 维度(Dimension)节点, 指标节点1.5.1 |
| 指标/值框 | 指标列节点、可选表达式节点 |
| 过滤框 | 维度节点、指标节点1.5.1、过滤器节点 |
功能按钮
- 预览
- 预览查询:用于查看、调试数据源聚合查询下动态查询脚本
- 保存:
- 另存为: 保存为一个新的图表
- 取消:恢复到最编辑之前最原始的操作状态
# 图表设计快捷操作(企业版)
点击节点, 如果对应目标栏还允许添加新的配置, 将快捷添加到目标栏
- 点击
维度节点: 节点被添加到行维 ctrl+ 点击维度节点: 节点被添加到列维alt+ 点击维度节点: mac 系统用户可以用 alt/option 替换 ctrl + 点击操作- 点击
指标列/表达式: 节点会被添加到指标栏 - 点击
过滤器节点: 节点被添加到过滤
# 基本原理(必读)
OLAP 多维分析的数据理论上都基于多维数据,多个序列series加上相同的 index,数据上与之对应最直观的展现为交叉表,交叉表原理同 Excel 的透视表
| 交叉表组成 | 图表设计栏 |
|---|---|
| 行表头 | 行维栏放置的胶囊 |
| 列表头 | 列维栏放置的胶囊 与 值栏胶囊的组合 |
| 中间交叉处对应的聚合数据 | 交叉表头查询条件的数据集合+聚合函数 |
- 对应关系如下图所示,交叉表的表头合并只有在表头排序正确的情况下才能正确合并
开始图表设计之前请先理解此处的对应关系。后续所有需要数据聚合的图表(除明细表/散点图之外)对应的数据都和交叉表相关

# 维度过滤/切片排序
- 放置在行维与列维上面的胶囊点击过滤按钮可以进行数据过滤
- 也可以放置维度在过滤栏单纯对数据进行过滤
注意
为了防止某个维度下面成员数量过大,或者误把连续值如时间戳之类的维度不经处理直接放置在维度框,引起服务端数据源查询压力过大,所以在加载维度成员之前加入了确认操作,
服务端对于维度成员的获取数量也做了控制,默认配置下最大返回2000条记录,管理员可通过修改dimension.member.resultLimit配置调整限制


- 值上的列也可以排序和过滤
- 支持输入值域范围比较
- TOP N 展示
从交叉表的形式可以看出,在值排序与行表头排序是冲突的,行排序、各值排序有且仅有一个生效
# 日期维度
- 对于日期类型维度系统会自动判断数据集返回列类型是否为日期或时间戳
- 日期类型的维度字段使用的时候会自动调用该数据源对应的日期转字符串函数输出可读日期格式字符串
- 日期筛选的时候会调用字符串转日期进行过滤

# 日期粒度切换
- 配置选择行/列维中日期维度字段之后可以在图上切换日期粒度

# 维度成员的自定义排序(企业版)
除了升序,降序,不排序之外, 还可以对维度成员自定义任意顺序排列

选定参与排序的维度成员,其余的维度成员, 按照默认升序或者降序排列

效果如下: 指定过顺序的成员被排到了最前面

# 自定义排序参照支持查询参照
该功能用来解决不同数据集之间公共维度统一自定义排序问题
场景
某销售型企业,有100种产品,产品维度展示需要自定义排序,产品维度几乎在每个数据集中都需要用到,当产品维度有新增后者排序规则修改之后需要手工调整 所有图表的产品排序规则
查询参照
- 使用排序参照,单点维护好产品排序规则,一次配置所有引用了排序参照的图均能生效;
- 配合查询模板中的变量功能甚至可以做到给不同的用户分配不同的排序规则

# 定制维/衍生维(企业版)
我们在实际使用过程中, 经常会遇到数据开发工程师给到分析师或者终端用户的数据集模型, 当中某些维度分组不能满足用户的实际需求;
" src="../../assets/widget/cn-custom-dim.png" />如: 原有模型中有
年->月->日, 但是分析师想要对数据进行半年分组或者季度分组, 在此之前的解决方案只能修改数据集, 增加相应维度
有了定制维/衍生维功能之后, 在图表设计界面, 用户可以不用繁琐的重复要求修改维度定义, 替代的是在原有的维度上面可以随意进行自己需要的维度分组;
这里的维度定制操作流程与数据集里面维度定制流程一样, 区别在于:

- 图表级别的维度定制不会影响整个模型
- 图表设计的维度定制暂不支持脚本定制
- 如果一个维度已经在数据集里面做过维度定制操作, 则在图表设计界面不能再次做定制
# 指标拖拽到维度做直方图统计1.5.1
指标拖拽到维度之后,默认对指标做类型为直方图的分桶配置

在不指定指标最大/最小与分桶信息的情况下,默认按0-100,20分桶做统计计算,可以点击获取字段统计查询该指标字段的准确统计范围

# 指标用于过滤1.5.1
从1.5.1开始指标过滤只能在指标配置上进行,而且过滤的数据仅为在图表中使用的汇总记录, 现在用户可以单独的在数据层面对任意指标字段进行汇总前、汇总后过滤操作,让分析功能能加灵活


# 变量设置
# 数据集配置没有声明变量
在数据集没有声明变量,但是存在变量使用,可以自行添加变量并赋值

# 数据集有声明变量
数据集设计阶段的变量声明之后,打开变量赋值窗口会自动加载声明过的变量以及默认值, 在自助分析页可以便捷的为变量赋值,输入框区分日期、日期范围、数组、字符等

注意 对于数据集中声明为动态值的变量在自助分析阶段
打开变量赋值,通过输入框设定为常量之后,保存图表该变量将失去动态属性,如果要保持变量动态性可以选择下列操作中的任意一种:
- 不打开变量赋值窗口设定变量值,变量保持为动态值
- 打开变量赋值窗口,删除变量赋值,并确认,变量保持为动态值,该操作在第二次打开变量赋值窗口时被删除的声明变量会再次出现
- 打开变量赋值窗口,修改变量类型为数组或其他普通数据框,输入自定义变量表达式,变量保持为动态值

# 图表维度动态裁剪
维度动态裁剪是在查询之前根据用户设定条件,动态的移除满足条件的维度配置,从而实现动态颗粒度汇总,使用方式如下:
- 配置维度在满足设定条件时,配置被裁剪,如下图配置,行维默认包含:
年,月,日三个维度,通过裁剪实现,[年],[年-月],[年-月-日]三种不同颗粒度查询

- 分别配置[月]维度在fmt变量为y时隐藏, [日]维度在fmt变量为y或M时隐藏

- 看板上增加单选参数,并绑定到fmt环境变量,手工添加选项,并关闭
显示选项值

- 最终效果
可以看到在环境变量变化时,维度被动态裁剪,实现不同日期粒度的汇总
