【背景】
对物理表进行了基本转义和表关系的配置后,就可以开始建模了。
【简介】
数据建模功能整合了丰富的数据源,计算和处理函数等(直接直接SQL,跨库关联等),构建出来的数据模型进一步可以提供给前端进行各类图表等的分析展示。
如果接入数据源是买菜,物理表整备是洗菜,那么数据建模就是把洗好的菜该切片切片,整备成能下锅的状态。而且SmartBi提供的切菜工具丰富高效。
【目录准备】
清晰的目录结构是效率开发的保证。
- 在主界面左侧新建目录:数据准备。
- 选中“数据准备”目录,右键新建“数据模型”。
【获取各类数据源】
-
在新建数据建模界面,点击中间的加号,可以从各种来源获得数据源,这里先点击数据源表。
-
打开选择数据源对话框,选取数据源-》表。
-
如果选择的是导入文件作为数据源,则可以通过上传Excel作为数据源。
-
如果选择Sql,在弹出界面中先选择库,然后写SQL查询。
-
如果选择即席查询,则是可以有前端互动的查询,从所有可用表中选取想要查询的字段,注意由于之前给物理表建立了合适的表关联关系,所以这里就算跨表选取字段也可以自动关联。
-
新建即席查询界面也可以增加计算字段,在左边计算字段上右击后选择新建,在对话框中可以写具体的设定和公式。
-
保存后数据建模视图上会出现一个即席查询的表格。
-
下一种是存储过程,在使用前需要先去数据源连接部分准备一下。双击进入编辑,点击上方自动检测后会给出参数,将存储过程的参数与SmartBI参数绑定,点击检测结果集,出查询结果就行了。此时再回到建模界面,就可以使用此存储过程了。
-
ETL数据清洗,主要是先对不干净的物理表做一个预处理,然后再回到数据建模使用。
-
另外几种包括Java查询等就不做赘述了,简单来说,就是数据建模界面整合了所有可能的获取数据源的形式。提供了最大的数据整合能力。
【多数据表关联】
这里的多表关联不再是物理表的关联,而是自己选取的各类数据源资源表的关联。
- 从数据源选取所有建模中需要的表。
- 导入后会自动检测表关系,不过这些表关系不一定正确。需要梳理修改。表关联只要经过直线即可(分叉也可以),要有成环的关联。
- 点击连接线可以具体设置表关系,包括一对多,多对一等的设定。一般,外键对主键多对一,反之一对多。因为主键唯一。局限在于只支持大于小于等于等几种关联模式,不支持函数,包含等复杂关联模式。如果有复杂关联需求,建议视图预处理或者写原生SQL。
【设置度量和维度】
维度的概念可以理解为表格或图表的横轴纵轴或者是表头,维度一般用来组织图表,从不同角度进行分组等。而度量一般则是具体的数值内容,是用折线柱图等表示的量化概念。
- 对于量化字段,直接双击就变为度量,右下方也会将转化为度量的字段标出。
- 包含度量的表会变为绿色,表明是一个事实表。
- 右上的每一张表,可能只有几个字段是转化为最终的度量和维度的,如果剩下内容没用了,就把表右击隐藏即可。
- 维度有多种,为了清晰,习惯上可以收纳在不同层次结构中。点击右上角加号,新建一个层次结构,命名为产品维。然后把所有需要作为产品维度的字段拖到这个层次中。
- 再建一个层次,名叫时间维,找到一个日期字段,右击选择创建时间层次。注意这个时间维必须在日期时间型字段上才能正常感应。5. 这些时间维度可以细化到不同颗粒度,非常方便。可以多选,而且建议能多选就多选,这样才能放在一个层次目录下,不然需要自己单独移动,麻烦。
- 最后再新建一个层次,命名为地理维。将字段中地理区域相关的字段拖拽过去。注意一下排序关系,颗粒度由粗到细。把这些地理维度的字段都右击标记为地理维度,可以带来最终报表的地图下钻特性。
- 再新建一个层次结构,命名为顾客维。相应的顾客名称等字段拖入此层次结构。
- 还可以相同办法,新建一个供应商维。