双向筛选即双向交叉过滤,是Smarbi数据模型的一个新特性; 使用双向交叉筛选,可以在表关系的两侧应用筛选器,也可以通过将筛选器上下文传播到表关系另一侧的另一个相关表来应用筛选器。
在Smartbi中,使用双向筛选可以帮助你更好地理解数据之间的关系,并快速识别有趣的洞察,它能够大大提高你的数据分析效率,并使你能够更快地做出更好的决策。
1、本文不涵盖对模型关系的介绍。 如果你对模型关系、其属性或配置方法并非完全熟悉,建议先阅读 设置查询关系 一文。 2、此外,还应了解星型架构设计,这一点也很重要。 有关详细信息,请参阅星型架构。 |
在创建双向交叉筛选时,请记住以下几点:
|
设置交叉筛选方向将决定筛选器的传播方向,可能的交叉筛选选项取决于基数类型。
基数类型 | 交叉筛选选项 |
---|---|
一对多(或多对一) | 单向 默认:单向 |
一对一 | 单向 默认:双向 |
假设A与B表相关联:
|
在一对多关系中,交叉筛选方向始终从“一”侧开始,也可以选择从“多”侧开始(双向);
在一对一关系中,交叉筛选方向始终同时从两个表开始。
关系可设置为单向和双向;单向关系中,上下文筛选器可以从单侧传递到多侧,但不能反向传递。
双向筛选可以满足特定要求的场景有以下三种:
在创建以下特殊模型关系类型时,双向关系起着重要作用:
1、由于示例使用了 业务表 进行分析,在复现示例时,可以把数据先导入到模型中,详细请参考:导入文件数据。 2、示例下载数据:双向筛选.xls。 |
1、第一个表名为 Customer,它包含以下三列:Region、Customer 和 CustomerCode。
第二个表名为 Product,它包含以下三列:Color、ProductName 和 SKU。
第三个表名为 Sales,它包含以下四列:CustomerCode、OrderDate、Quantity 和 SKU。 Customer 和 Product 表是维度类型表,它们与 Sales 表之间都有一对多关系。 每个关系都是单向筛选。
为了帮助介绍双向筛选的工作原理,模型图已修改为显示表行。 本文中的所有示例都以此数据为依据。
在下图中,Customer表上的筛选器会自动传递至Sales表,然而Sales表上的筛选器不会传递到Product表上,更不会传递到Customer表。
这种情况普遍存在于大多数报表,在实际场景中,报表通常根据Customer或Product的属性划分销售量,根据销售量筛选Customer或Product是很少见的。
因此,启用双向筛选最普遍的原因是同步筛选器。
以下是通过双向筛选同步筛选器的简单场景。
1、把数据导入到模型中,并且创建数据模型。
2、创建好数据模型,去创建仪表盘:
3、当要查询地区为:华北,并且“产品”要显示与华北相关的选项。为了实现此行为,可以将 Product 与 Sales 表之间的关系配置为双向筛选。
4、“产品”筛选器现在列出一个项,即“T-shirt”。 此项表示唯一销售给”华北“的产品。
基于上文示例模型数据,查询“有多少个地区购买了牛仔裤“?
1、设置Sales与Customer的方向为双向筛选,如下图:
2、把产品作为筛选器,筛选地区,效果如下图,可以知晓没有任何地区购买了牛仔裤。