...
信息 | ||
---|---|---|
| ||
1、数据模型支持自动检测关系,也支持手动创建关系、手动检测关系。 2、数据模型默认开启 自动检测关系 ,如没有开启:需要在运维设置/ 系统设置 / 高级选项 设置 OLAP_QUERY_AUTO_ADD_CHECK_LINK=true,在加载表或者查询时才会自动检测关系。 3、如开启了自动检测关系:假设自动检测没检车出来,用户手动设置关系不正确时,会提示关系无效,但目前未强制更正,检测关系的原理就是利用建立关系的字段在表中是否重复,会真实查数据库,部分数据库慢可关闭此检测。3、如开启了自动检测关系:假设自动检测没检测出来,用户手动设置关系不正确时,会提示关系无效,但目前未强制更正;检测关系的原理就是利用建立关系的字段在表中是否重复,会真实查数据库,部分数据库慢可关闭此检测。 4、基数 暂不支持 多对多。 5、假设引用关系完整性,仅在数据模型是直连模式生效,抽,取模式不生效。,仅在数据模型是直连模式生效,抽取模式不生效。 6、在V11 版本去掉了 一对一(内连接)、一对一(外连接),只叫 一对一;如果是旧资源,只有 一对一;如果是旧资源升级:
|
2 关系
2.1 关系用途
信息 |
---|
以"事实表"为中心,通过表或者查询的关系建立一个子图,子图就是围绕事实表型形模型或者扩展的星型模型; 如果在报表层次查看2个事实表的数据,并且通过勾选的字段无法找到关联关系(即不在同一个查询路径上),会提示:无法正常显示数据,因为无法确定勾选字段之间的关系路径,它们可能不在同一个关系路径上。 |
1、模型关系会将应用于模型表列的筛选器传播到其他表或查询。 只要有关系路径可循,筛选器就会进行传播,这可能涉及传播到多个表、查询;关系路径是确定性的,这意味着筛选器始终以相同的方式传播,而不会随机变化。 1、数据模型设置的关系会应用于模型表列的筛选器传播到其他表或查询, 只要有关系路径可循,筛选器就会进行传播,这可能涉及传播到多个表/查询;
关系路径是确定性的,这意味着筛选器始终以相同的方式传播,不会随机变化。
2、在下图示例中,模型由四个表组成:"Category"、"Product"、"Year" 和 "Sales",; "Category" 表关联到 ”Product“ 表,而 ”Product“ 表关联到 “Sales”表, ”Year“ 表也关联到 “Sales” 表, 所有关系均为 一对多.
...
2.2 手动创建关系
数据模型支持手动创建关系。
以产品自带的 “产品表”、“订单表”、“产品类别表”等创建订单模型为示例进行说明,为了更好的说明,先关闭自动检测表关系的设置项“产品表”、“订单表”、“产品类别表”等创建订单模型为示例进行说明。
为了更好的说明,先在运维设置/系统选项/高级设置关闭自动检测表关系的设置项: OLAP_QUERY_AUTO_ADD_CHECK_LINK=false 或者把模型的 自动检测表关系 禁用。
...
2、设置 ”订单表“与”订单明细表“的关系,选中”订单表“ 再右键菜单 新建关系, 新建关系或者通过 连线 到另外一个表/查询,会出现 编辑关系对话框。
选项 | 内容 |
---|---|
关系 |
|
条件 | 默认 等于,支持等于、不等于、大于等于、小于、小于等于;如果是抽取模式,并且缓存库是ClickHouse,则不支持 等于、不等于、大于等于、小于、小于等于 条件。 |
基数 |
|
假设引用关系完整性 | 该设置项仅对 直连 模式生效。 详情可查看本篇章节 假设引用关系完整性 。 |
...
方式1:
方式2:
3、根据步骤2设置好各个表、查询的关系,最终效果如下,构建了一个 星型模型:
如果发现关系或者基数设置的不对可以对其进行 删除 或 编辑:选中连线,再右键菜单删除/编辑。或者选中连线,按delete键。
2.3 在加载期间自动检测
- 开启自动检测关系:需要在运维设置需要在运维设置/ 系统设置 / 高级选项 设置 OLAP_QUERY_AUTO_ADD_CHECK_LINK=true,在加载表或者模型时才会自动检测关系。true,或者 数据模型的 设置/自动检测表关系 选项选择 “检测”, 在加载表或者模型时才会自动检测关系。
- 不管是直连还是抽取模式,如果数据模型同时加载两个或多个表/查询时,Smartbi将尝试为你查找并创建关系, “关系”、 “基数” 会根据规则自动创建关系。如果无法以高置信度确定存在得匹配项,则不会创建关系。会根据规则自动创建、选择;如果无法以高置信度确定存在得匹配项,则不会创建关系,但是仍可使用 新建关系 对话框来手动创建或者编辑关系。
- 如果 ”自动检测表关系“是禁用状态,则该模型加载表或查询时,不会自动检测关系,需要手工创建或者使用工具栏的”自动检测“创建关系。
...
1、“一对多”和“多对一”基数选项基本相同,并且它们也是最常见的基数类型:
- 定义:一个表中共享字段的每个值都可以与另一个表中的多个行相关(该值在另一个表中重复)。定义:一个表中共享字段的每个值都可以与另一个表中的多个行相关(该值在另一个表中重复)。
- 缩写:缩写:*:1 或 1:*
- 表/查询的顺序确定是多对一还是一对多(类似于左右联接)。
...