页面树结构
转至元数据结尾
转至元数据起始


数据模型将来源多处的数据进行归集时,是有序的归集,这种有序归集需要通过模型表间的关联关系来确定。

表关系区(下图红框所标识)中显示了当前数据模型包含的所有模型表:

表关系区中的各模型表,无论直连或抽取模式,系统将依据字段别名和数据类型匹配的原则自动创建表关系,否则需要用户手动创建表关系;表关系类型请参见:表关系类型

表关系区中的各模型表,表头底色为蓝色表示维度表,表头底色为绿色表示事实表,模型表在表关系区的底色默认是蓝色,只有该表有字段设置为度量后才会变更成绿色底色。

模型表的来源及实现请参见:数据模型-私有查询

表命名规则

表关系区中的模型表,按照不同的查询类型,系统为其默认命名的规则如下:

  • “数据源表”类型:每张表对应一个目录,目录名称为数据源表的别名。
  • “导入文件”类型:每个sheet对应一个目录,目录名称为sheet名称。
  • “SQL查询”、“即席查询”、“存储过程查询”、“脚本查询”、“ETL高级查询”类型:每一个查询对应一个目录,目录名称为私有查询类型的名称(如“SQL查询”、“即席查询”等);同一类查询有多个资源,则自动加上数字后缀,如:第一个SQL查询名称为“SQL查询”,第二个SQL查询名称为“SQL查询2”,以此类推。

修改名称

用户以在“表关系区”中通过更多菜单 属性 命令来修改模型表的名称:

表关系类型

数据模型目前支持的模型表间关系类型,主要有如下几种:

1、多对一/一对多:这两个关系实质一样,主要是看连接关系时是主表在前还是从表在前。如下我们有两张数据表“订单表”和“订单明细表”:

订单表订单明细表

我们从关联字段“OrderID"来看:”订单表“中每一个”OrderID"对应“订单明细表”中多条记录,因此我们说“订单表”与“订单明细表”是一对多的关系,或者说“订单明细表”与“订单表”是多对一的关系。因此这两个表我们可以有如下两种方式定义:

  • 如果“订单表”在左边,“订单明细表”在右边,我们需要选择”一对多“的关系。

  • 如果”订单明细表“在左边,”订单表“在右边,我们需要选择”多对一“的关系。

2、一对一(内连接)/一对一(外连接):关联字段匹配后,内连接关系将会删除未完全匹配数据,外连接会将未完全匹配数据以”空“补充。如下我们有两张数据表“家庭表”和“学生表”:

家庭表学生表

这两个表通过“StudentID"分别建立一对一的内连接或外连接关系,其数据效果分别如下:

一对一(内连接)效果:
“学生表”中没有匹配的7-10号数据被删除。

一对一(外连接)效果:
“家庭表”中7-10号数据补空值。

手动设置表连接

手动设置模型表关系的方法有如下两种:

1、拖拽连接线:从某模型表中的左侧或右侧锚点拖拽到目标模型表。

2、表关系菜单:在模型表更多菜单或右键菜单中选择 新建表关系

连接线菜单

表关系连接线锚点支持右键菜单:

  • 编辑:用于修改当前表关系。
  • 删除:用于删除当前表关系。


表关系图解

在Smartbi数据模型关系区中,关系线中的白圈代表一,蓝圈代表多。

但是一对一关系不在此规则之列:

一对一

一对多

如果开启了自动检测表关系,在切换“基数‘时,会自动检测是否匹配,如不匹配会提示:

表关系布局

该功能为V10.5版本功能

当数据模型含有大量的表,表关系错综复杂(如下图所示)时,可以通过多个子布局视图在展现局部表关系。

多布局视图功能包含如下内容:

  • 多布局视图包含了”所有表“布局视图和子布局视图。
  • “所有表”布局视图是默认视图,不允许删除,用于显示所有表的关系视图。
  • "所有表“布局视图中的表关系可以通过汇总所有子布局视图关系而自动生成。

操作入口

在表关系区底端左侧”所有表“区域右键显示菜单 新增布局

模型表来源

新增的子布局视图中的模型表来源有两种:

模型表来源适用情况

通过创建私有查询获取:

没有限制,适用所有情况。

通过“维度”面板中的模型表对象获取:


仅支持“所有表”布局视图中已设置了模型表关系的情况。

布局视图菜单

“所有表”布局视图右键菜单只支持“新增布局”操作,子布局视图支持右键菜单:

  • 新增布局:用于创建新子布局视图。
  • 重命名:用于修改当前子布局视图的名称。
  • 删除:用于删除当前子布局视图。

菜单操作

表关系区的模型表支持“更多菜单(或右键菜单)”操作。

操作入口:在模型表中单击 更多 按钮,或者右键,弹出菜单。

模型表菜单在“所有表”布局视图和子布局视图中有不同:

“所有表”布局视图

子布局视图

菜单命令说明如下:

菜单命令说明
添加相关表添加当前模型表在“所有表”布局视图中与其有直接连接关系的模型表。
从布局中删除将当前模型表从当前子布局视图中删除。
编辑

用于进入到当前模型表对应的私有查询的编辑界面,对当前私有查询进行修改。详情请参见:修改私有查询

数据源表“类型不支持编辑功能,“导入文件”类型的编辑功能用于追加数据。

复制

用于复制当前模型表:单击 复制 命令后,系统自动生成副本,且名称为“模型表名称+数字”,如“查询SQL2”。

当私有查询需要在原查询基础上进行改动,从而实现高效复用的情况下,会用到该功能。

同步

用于实现当库表字段信息(字段别名、数据类型)发生发动时,保证模型表字段信息与库表字段信息一致。

该功能只对”数据源表“类型的模型表有效。

新建关系

用于新建设置当前模型表与其它模型表间的关系。

该菜单只在表关系区含有两个及以上的模型表时才显示。

转换为ETL高级查询

用于将当前模型表转换成ETL高级查询。

ETL高级查询的详情请参见:ETL高级查询

从模型中删除

用于将当前模型表从数据模型中删除。

属性用于查看当前模型表的属性,允许修改当前模型表的“名称”。请参见:修改名称

注意事项

设置两个模型表关系连接时,允许选择的关联字段必须要数据类型一致,否则置灰不允许选择关联。

如下图,“产品表”中的“产品编号”置灰不允许选择,是因为:“订单明细表”中的“产品编号”是字符型,而“产品表”中的“产品编号”是整型。

  • 无标签