在分析数据时,不能总是对单个数据表举办分析,有时需求把多个数据表导入到PowerBI中,通过八个表中的数目及其关联来实施一些复杂的数额解析任务,由此,为准确总计分析的结果,须求在数额建模中,创造数据表之间的关系。在PowerBI中,关系(Relationship)是指数据表之间的基数(Cardinality)和穿插筛选方向(CrossFilter Direction)。

在解析数据时,不容许一而再对单个数据表举行辨析,有时须要把三个数据表导入到PowerBI中,通过三个表中的多少及其涉及来推行一些繁杂的多寡解析职务,因而,为标准计量分析的结果,必要在多少建模中,创造数据表之间的关系。在PowerBI中,关系(Relationship)是指数据表之间的基数(Cardinality)和穿插筛选方向(CrossFilter Direction)。

PowerBI 第2篇:数据建模,powerbi第①篇

在解析数据时,不容许接二连三对单个数据表举行剖析,有时需求把多少个数据表导入到PowerBI中,通过三个表中的数目及其涉及来实施一些复杂的数额解析任务,因而,为规范测算分析的结果,需求在数额建模中,创制数据表之间的关联。在PowerBI中,关系(Relationship)是指数据表之间的基数(Cardinality)和穿插筛选方向(CrossFilter Direction)。

基数(Cardinality)

基数关系近乎于关系表的外键引用,都以由此三个数据表之间的单个数据列举行关联,该数量列叫做查找列,多个数据表之间的基数关系是1:1,可能1:N,或然N:1,基数关系表示的意义是:

  • 多对一
    (N:1):那是最广泛的暗中认同类型。那象征三个表中的列可具有2个值的几个实例,而另二个连锁表(常称为查找表)仅具有贰个值的二个实例。
  • 一对一
    (1:1):这意味三个表中的列仅具有特定值的二个实例,而另1个相关表也是这么。

诸如,TableA和TableB之间的基数关系是1:N,那么TableA是TableB的查找表,TableB叫做引用表,在查找表中,查找列的值是唯一的,不容许存在重复值,而在引用表中,查找列的值不唯一。

在PowerBI中,有时,引用表会引用查找表中不设有的数目,暗中同意情形下,PowerBI会自动在查找表中追加3个查找值Blank,全体不设有于查找表中的值,都映射到Blank。

接力筛选方向(Cross Filter Direction)

筛选方向是筛选的流向,表示一个筛选标准对其余相关表举行过滤,例如,TableA对TableB过滤,其筛选方向可以是双向,或单向:

  • 双向:暗中认同方向,那象征为进行筛选,多少个表均被视为是同贰个表,那极度适用于其周围装有多少个查找表的单个表。
  • 一边:那代表二个表只好对别的3个表展开筛选,而不可以反向过滤。

一,双向筛选涉嫌

在长方形结构中,中间是2个引用表,周围是七个查找表,引用表和查找表之间的筛选涉嫌是双向的,如下所示:

澳门金沙国际 1

常常意况下,双向筛选择于长方形结构,是暗中同意的动向,可是,双向筛选不太适合以下关系图中的方式,在该方式中,筛选方向形成三个循环,对于此类关系情势,双向筛选会成立一组语义不明的关联,例如,求取
TableX 中某些字段的总和,假如选拔坚守 TableY
中的某些字段进行筛选,则不驾驭筛选器应该怎么着流动,是经过顶部表,如故尾部表举办流动? 

澳门金沙国际 2

若是双向筛选导致数据涉嫌的多义性,那么,可以导入表格一次(第三遍利用其余名目)以扫除循环。
这会发生类似于长方形架构的涉嫌形式,借助长方形架构,全部关乎均可安装为“双向”。

二,创制直接关联

在PowerBI报表的涉及中,直接涉及是指涉嫌的八个表直接触及,直接关系是指通过中间表建立关联的多个数据表,间接关系涉及的多个数据表不直接接触,如下图,数据表Students和StudentCourse之间的关联是向来关联,数据表Course和StudentCourse之间的关系是间接关乎,而数据表Students和Courses之间通过StudentCourse建立直接关联。直接关联通过一连串有一向关联的数据表,可以完毕数据的相互,那是PowerBI自动落成的,为开创复杂的数据模型提供了支撑,然而,在数码建模中使用间接关联时,务必谨慎,PowerBI对Filter选项的全选和不选的拍卖是有分其他。

澳门金沙国际 3

1,使用以下脚本创制具有多层关系的数据表

本子创立了七个表,分别是用于表示学生,课程,学生选课,学生发言,学生和课程之间的关系是1:N,学生和发言活动之间的涉嫌是1:N

澳门金沙国际 4create
table dbo.Courses ( CourseID int not null primary key clustered,
CourseName varchar(32) not null ) create table dbo.Students ( StudentID
int not null primary key clustered, StudentName varchar(64) not null )
create table dbo.StudentCourse ( StudentID int not null, CourseID int
not null, constraint PK__澳门金沙国际,StudentCourse primary key
clustered(StudentID,CourseID) ) create table dbo.StudentSpeaker (
StudentID int not null, EventID int not null ) insert into
dbo.Courses(CourseID,CourseName) values(1,’English’),(2,’Chinese’)
insert into dbo.Students(StudentID,StudentName)
values(1,’stu_a’),(2,’stu_b’),(3,’stu_c’),(4,’stu_d’) insert into
dbo.StudentCourse(StudentID,CourseID) values(1,1),(2,1),(3,2) insert
into dbo.StudentSpeaker(StudentID,EventID) values(1,101),(4,102) View Code

澳门金沙国际 5

2,在Relationships视图中,创造表之间的涉嫌

基数关系(Cardinality)依据数量里面的涉及成立,筛选方向依照过滤的逻辑设置。默许情状下,PowerBI会自动检查(AutoDetect)数据里面的涉嫌,依照检查的结果(列名和列值的唯一性)自动成立关系,在Relationships视图中,关系是一条有倾向的折线,折线的两岸是数字,表示基数(Cardinality)关系,折线中间的有向箭头表示筛选方向(Direction)。

PowerBI不会智能到可以,用户须求依据数据内在的涉嫌对PowerBI自动创立的涉嫌展开改正,大概,例如,把数量表Students和StudentCourse之间的关联修改为:1:N和双向筛选,双击关系(折线),弹出编辑关系(艾德it
Relationship)的窗体:

澳门金沙国际 6

在每一种表下方面板中,会呈现列名和示范数据。基数(Cardinality)关系是Many
to
one,其表达式是:*:1,表明式左边的表位于地点,右侧的表位于下边,用于建立关系的数据列是土灰选中状态。交叉筛选方向(Crossfilter direction)拔取Both,勾选“Make this relationship
active”,点击OK,完毕关系的创办,如下图,点击关系(折线),用于建立关系的数据列处于选中状态。

澳门金沙国际 7

三,利用直接关系贯彻业务需要

报表须要落成的工作须求是:依照课程(Course)总结作为讲演者(Speaker)的学员数量

在做报表时,必须熟识数据和数量里面的关系,在数量表StudentCourse中,共有3个学生选课,学号分别是壹 、2和3,存在不选课的学员,而在数据表StudentSpeaker中,唯有学号1的学习者满足条件,因而,基于课程(Course)总括作为演说者(Speaker)的学习者数量的结果应该是:

  • 选修English的学童数量是0;
  • 修改Chinese的学生数量是1;
  • 对富有课程做总括,学生数量是选修English和选修Chinese的多寡之和,1(=0+1);

1,设置课程Filter

多少表Course是查找表,由于StudentCourse中的课程(CourseID)都留存于Course表中,全部,Slicer图表中不存在Blank选项。

澳门金沙国际 8

2,添加Card图表,呈现总结数据

在Page中添加Card图表(Visualizations),在图纸的Fields属性中,选取数据表SutdentSpeaker的StudentID字段,属性值自动成为:聚合函数+
of +字段值。

 澳门金沙国际 9

3,设置聚合函数

鉴于三个学员,或者在多个运动(伊芙nt)中顶住演说者(Speaker),由此,必须对StudentID举办去重,在图片的Fields属性值“Count
of StudentID” 中右击,选拔聚合函数拔取Count(Distinct)

澳门金沙国际 10

4,设置图表的显示属性

切换到“刷子”Icon,禁用Category lable,启用Title,修改Title Text、Font
color,Alignment和Text Size,

澳门金沙国际 11

5,分析报表数量

课程接纳Chinese,数量是Blank

澳门金沙国际 12

课程选取English,数量是1

澳门金沙国际 13

选料具有课程,数量是1

澳门金沙国际 14

6,清洗数据

默许情状下,图表不选取任何学科(Course),数量是2,那么些结果在逻辑上是“错误”的,对于从未选拔其它取舍的Filter,PowerBI不会做任何筛选涉嫌。

澳门金沙国际 15

导致错误的缘故是由于数量表StudentSpeaker现身脏数据,没有选修任何学科的学童(本例是学号为4的学童)现身在StudentSpeaker数据表中,要校正查询的结果,必须清洗脏数据。

四,编辑交互行为

拔取不相同的CourseName,度量值Speaker#机动依据Filter做相应的数码过滤,重新计算数据,这种过滤的流向是单向的,由数据涉嫌中的交叉过滤方向(CrossFilter
Direction)决定,PowerBI允许在不修改关系的景观下,编辑Filter和度量值的并行行为,使报表中的不一样图表(Visiualization)选取性地响应或不响应过滤条件(Filter)。

1,选择Filter,切换到Format菜单,选择“Edit Interactions”

澳门金沙国际 16

2,编辑交互行为

暗中同意情状下,Card图表的Filter澳门金沙国际 17是选中,将其切换来禁止澳门金沙国际 18,那样,采用Course过滤器中的任何三个精选,都不会潜移默化Card图表突显的数据值。

澳门金沙国际 19

五,在多少建模中,要坚守一定的布置原则

在数码建模中,不仅必要属性业务必要,而且亟需驾驭数据及其关联,遵从一定的安顿性原则,可以避免出现一些斐然的错误:

  • 要基于业务须要,设计报表的过滤条件(Filer)和胸襟值;
  • 过滤器是数码建模的视角,根据过滤条件和数码里面内在的关系安排数据模型;
  • 依照数据里面内在的关联,加载数据,保障数据表中不出现脏数据。

 

PowerBI连串的篇章目录:

  • PowerBI 第一篇:设计PowerBI报表
  • PowerBI 第①篇:数据建模

 

参考文档:

Power BI 文档

在 Power BI Desktop 中创建和管理关系

第三篇:数据建模,powerbi第①篇
在条分缕析数据时,不可以一而再对单个数据表举办剖析,有时必要把多少个数据表导入到PowerBI中,通过多…

PowerBI 使用 内存的列式数据库
【澳门金沙国际】数量建模,关系和互相。VertiPaq,用于对已发表的数码集进行数据压缩和飞速处理,可以使PowerBI报表执行脱机访问,面向列的拍卖,中度优化对1:N关系的处理品质。关系是数量解析的底蕴,正因为数量里面存在涉嫌,分析数据才有了意义。PowerBI协理的涉嫌(Reliationship)有1:N(称作一对多的涉及)和1:1二种,PowerBI不帮衬多对多的关联,在规划PowerBI时,经常把1:1的涉嫌合并成一张表,因为此外二个涉及都会下滑查询品质。平常意义上,所谓的PowerBI的关系一般是指一对多的涉嫌,关系(1:N)的三结合:两端是查找表(Lookup,维度表Dimension
Table)和事实表(Fact,数据表Data
Table),其中查找表处于关系的“1”端,而事实表处于关系的“N”端,维度表中建立关联的列的值是绝无仅有的,事实表中建立关系的列的值可以有双重值。

 

基数(Cardinality)

在PowerBI
Desktop的涉及(Relationship)视图中,通过实线/虚线表示物理关系(Physical
Relationship),实线的两岸是1和*号,表示关系的双面,这种实线表示的涉及处在活跃状态,虚线是不活跃的关系。虚拟关系(Virtual
Relationship)是因此DAX表明式(例如,通过FILTEHaval函数)创设的涉及,一般是用在心胸值中,用于互动查询。PowerBI的关联,实际上是按照一定的品质对另一端举行切开,平常是循序渐进1端的属性,对N端举办切开和集合分析。

自家的PowerBI开发种类的稿子目录:PowerBI开发

基数关系看似于关系表的外键引用,都以透过多个数据表之间的单个数据列举行关联,该数据列叫做查找列,七个数据表之间的基数关系是1:1,或然1:N,或许N:1,基数关系表示的意思是:

PowerBI的关联和关系型数据库的外键相似,外键是透过七个表(事实表和维度表)之间的数据列成立的,例如,事实表(Fact)的数据列c_f引用维度表(Dimension)的数据列c_d,前提是:c_d列的值是唯一的,c_f的值必须是c_d列中的值,而c_f列的值允许再度。在PowerBI中,允许c_f列引用不设有于c_d列中的值,那种场地下,PowerBI自动向维度表的c_d列中添加空值(BLANK(),该空值可以经过Slicer查看),用于引用不满意外键关系的列值,称作回写空值。

 

  • 多对一
    (N:1):那是最广泛的暗中认同类型。那意味3个表中的列可具有三个值的多个实例,而另三个连锁表(常称为查找表)仅具有二个值的一个实例。
  • 一对一
    (1:1):那象征二个表中的列仅具有特定值的两个实例,而另1个相关表也是那样。

一,单向交叉方向

基数(Cardinality)

比如说,TableA和TableB之间的基数关系是1:N,那么TableA是TableB的查找表,TableB叫做引用表,在物色表中,查找列的值是绝无仅有的,不容许存在重复值,而在引用表中,查找列的值不唯一。

当提到的“Cross Filter Direction”属性设置为单向的箭头,即把Cross Filter
Direction设置为Single时,箭头由查找表指向事实表,一旦涉及创设成功,查找表用于对事实表举行过滤,依据查找表对真相表展开切开(聚合查询)。

基数关系看似于关系表的外键引用,都以透过多少个数据表之间的单个数据列举行关联,该数量列叫做查找列,三个数据表之间的基数关系是1:1,或许1:N,或然N:1,基数关系表示的意思是:

在PowerBI中,有时,引用表会引用查找表中不设有的数量,暗中认可情形下,PowerBI会自动在查找表中加进贰个搜寻值Blank,全数不存在于查找表中的值,都映射到Blank。

那种古板的数据模型和数据仓库的正方形模型相同,特点是:维度表包涵属性,事实表蕴含度量(measure),依据维度表的属性对事实表的襟怀举行切开/聚合查询。

  • 多对一
    (N:1):那是最常见的专擅认同类型。那意味壹个表中的列可拥有二个值的多少个实例,而另1个有关表(常称为查找表)仅具有3个值的二个实例。
  • 一对一
    (1:1):那表示1个表中的列仅具有特定值的三个实例,而另贰个相关表也是那样。

接力筛选方向(CrossFilter Direction)

 澳门金沙国际 20

诸如,TableA和TableB之间的基数关系是1:N,那么TableA是TableB的查找表,TableB叫做引用表,在追寻表中,查找列的值是唯一的,不允许存在重复值,而在引用表中,查找列的值不唯一。

筛选方向是筛选的流向,表示3个筛选标准对其他相关表展开过滤,例如,TableA对TableB过滤,其筛选方向可以是双向,或单向:

二,双向交叉过滤

在PowerBI中,有时,引用表会引用查找表中不存在的多寡,默许意况下,PowerBI会自动在查找表中伸张1个找寻值Blank,全部不存在于查找表中的值,都映射到Blank。

  • 双向:私自认同方向,那意味着为举行筛选,多个表均被视为是同3个表,那极度适用于其周围拥有三个查找表的单个表。
  • 多头:那意味一个表只好对此外2个表展开筛选,而无法反向过滤。

当提到的“Cross Filter Direction”属性设置为双向的箭头,即把克罗丝 Filter
Direction设置为Both时,为了贯彻数据的过滤,逻辑上可以认为,PowerBI把那八个表展开成多个大表。

接力筛选方向(CrossFilter Direction)

一,双向筛选涉嫌

澳门金沙国际 21

筛选方向是筛选的流向,表示三个筛选标准对其他有关表进行过滤,例如,TableA对TableB过滤,其筛选方向可以是双向,或单向:

在星型结构中,中间是一个引用表,周围是多少个查找表,引用表和查找表之间的筛选涉嫌是双向的,如下所示:

双向交叉过滤方向会促成某个关系处在不活跃状态(inactive),当一个维度(lookup)表和五个真相表有涉嫌时,幸免选择Both方向,那样或然会促成有的涉及失效,处于不活跃状态。单向过滤(single-driectional
filtering)PowerBI的暗中认同设置,而双向过滤(bi-directional
filtering)是一个不佳的安装,因为经过事实表对查找表举行过滤由自然的属性消耗。

  • 双向:暗许方向,那代表为进行筛选,多少个表均被视为是同1个表,这十三分适用于其周围装有五个查找表的单个表。
  • 单向:那代表三个表只好对别的3个表展开筛选,而不或然反向过滤。

澳门金沙国际 22

三,关系的传递

一,双向筛选涉嫌

在长方形结构中,中间是贰个引用表,周围是多少个查找表,引用表和查找表之间的筛选涉嫌是双向的,如下所示:

澳门金沙国际 23

无独有偶状态下,双向筛采用于圆柱形结构,是私行认同的大方向,不过,双向筛选不太适合以下关系图中的情势,在该情势中,筛选方向形成3个循环,对于此类关系格局,双向筛选会创制一组语义不明的涉及,例如,求取
TableX 中有个别字段的总和,假如拔取依照 TableY
中的有些字段举行筛选,则不知晓筛选器应该怎么流动,是由此顶部表,如故底部表进行流动? 

澳门金沙国际 24

万一双向筛选导致数据涉嫌的多义性,那么,能够导入表格一遍(第①遍采取任何名目)以取消循环。
那会发生类似李樯方形架构的关联情势,借助纺锤形架构,全体涉嫌均可安装为“双向”。

常常景况下,双向筛采纳于圆锥形结构,是默许的方向,可是,双向筛选不太相符以下关系图中的形式,在该情势中,筛选方向形成1个循环,对于此类关系情势,双向筛选会成立一组语义不明的关联,例如,求取
TableX 中有个别字段的总数,如果拔取遵从 TableY
中的有些字段进行筛选,则不了解筛选器应该怎么流动,是通过顶部表,仍旧底部表展开流动? 

在PowerBI中,关系是足以传递的,那就象征,过滤条件是可以传递的。把Filter看作是流水,箭头的指向是由上游指向下游(查找表处于上游,而数据表处于下游),Filter由查找表流向数据表。一般情形下,依据查找表对数据表举行过滤,Filter由查找表流向数据表,再流向其余涉嫌的数据表;倘使把交叉过滤的可行性设置双向过滤,那么PowerBI能够依据数据表对查找表进行过滤,相当于说,过滤(Filter)由数据表逆流到查找表。双向交叉过滤使得查找表被过滤和切片,并能对查找表执行聚合查询。

二,创造直接关系

在PowerBI报表的关系中,直接关乎是指涉嫌的五个表直接接触,直接关联是指通过中间表建立关系的七个数据表,直接关系涉及的八个数据表不直接接触,如下图,数据表Students和StudentCourse之间的涉嫌是平昔关乎,数据表Course和StudentCourse之间的涉及是一向关联,而数据表Students和Courses之间通过StudentCourse建立直接关联。直接关系通过一多重有一贯关乎的数据表,可以落成数量的互相,那是PowerBI自动落成的,为创设复杂的数据模型提供了帮助,不过,在多少建模中利用直接关系时,务必谨慎,PowerBI对Filter选项的全选和不选的拍卖是有分其他。

澳门金沙国际 25

1,使用以下脚本创制具有多层关系的数据表

本子创立了多个表,分别是用以表示学生,课程,学生选课,学生发言,学生和学科之间的涉及是1:N,学生和演说活动之间的关联是1:N

澳门金沙国际 26澳门金沙国际 27

create table dbo.Courses
(
CourseID int not null primary key clustered,
CourseName varchar(32) not null
)

create table dbo.Students
(
StudentID int not null primary key clustered,
StudentName varchar(64) not null
)

create table dbo.StudentCourse
(
    StudentID int not null,
    CourseID int not null,
    constraint PK__StudentCourse primary key clustered(StudentID,CourseID)
)

create table dbo.StudentSpeaker
(
    StudentID int not null,
    EventID int not null
)

insert into dbo.Courses(CourseID,CourseName)
values(1,'English'),(2,'Chinese')

insert into dbo.Students(StudentID,StudentName)
values(1,'stu_a'),(2,'stu_b'),(3,'stu_c'),(4,'stu_d')

insert into dbo.StudentCourse(StudentID,CourseID)
values(1,1),(2,1),(3,2)

insert into dbo.StudentSpeaker(StudentID,EventID)
values(1,101),(4,102)

View Code

澳门金沙国际 28

2,在Relationships视图中,创设表之间的涉及

基数关系(Cardinality)按照数量里面的关系创设,筛选方向依据过滤的逻辑设置。暗中同意情状下,PowerBI会自动检查(AutoDetect)数据里面的关联,依照检查的结果(列名和列值的唯一性)自动创立关系,在Relationships视图中,关系是一条有方向的折线,折线的双方是数字,表示基数(Cardinality)关系,折线中间的有向箭头表示筛选方向(Direction)。

PowerBI不会智能到地道,用户需要依据数量内在的涉及对PowerBI自动创制的关联展开修正,大概,例如,把数量表Students和StudentCourse之间的涉嫌修改为:1:N和双向筛选,双击关系(折线),弹出编辑关系(艾德it
Relationship)的窗体:

澳门金沙国际 29

在各类表下方面板中,会显示列名和演示数据。基数(Cardinality)关系是Many
to
one,其说明式是:*:1,表明式右侧的表位于地点,右侧的表位于上边,用于建立关联的数据列是米白选中状态。交叉筛选方向(Crossfilter direction)采用Both,勾选“Make this relationship
active”,点击OK,已毕关系的始建,如下图,点击关系(折线),用于建立关联的数据列处于选中状态。

澳门金沙国际 30

澳门金沙国际 31

 澳门金沙国际 32

三,利用直接关系贯彻业务要求

报表需求落成的政工需假设:依据课程(Course)计算作为演讲者(Speaker)的学生数量

在做报表时,必须熟知数据和数据里面的关系,在数量表StudentCourse中,共有三个学生选课,学号分别是① 、2和3,存在不选课的学员,而在多少表StudentSpeaker中,唯有学号1的学童知足条件,由此,依据课程(Course)总结作为演讲者(Speaker)的学童数量的结果应当是:

  • 选修English的学员数量是0;
  • 修改Chinese的学习者数量是1;
  • 对全数科目做计算,学生数量是选修English和选修Chinese的数额之和,1(=0+1);

1,设置课程Filter

数量表Course是查找表,由于StudentCourse中的课程(CourseID)都留存于Course表中,全部,Slicer图表中不设有Blank选项。

澳门金沙国际 33

2,添加Card图表,呈现统计数据

在Page中添加Card图表(Visualizations),在图纸的Fields属性中,接纳数据表SutdentSpeaker的StudentID字段,属性值自动成为:聚合函数+
of +字段值。

 澳门金沙国际 34

3,设置聚合函数

出于三个学童,大概在多个移动(Event)中承担演说者(Speaker),因而,必须对StudentID举行去重,在图片的菲尔德s属性值“Count
of StudentID” 中右击,选取聚合函数选拔Count(Distinct)

澳门金沙国际 35

4,设置图表的显得属性

切换到“刷子”Icon,禁用Category lable,启用Title,修改Title Text、Font
color,Alignment和Text Size,

澳门金沙国际 36

5,分析报表数量

学科选取Chinese,数量是Blank

澳门金沙国际 37

学科拔取English,数量是1

澳门金沙国际 38

选料具有课程,数量是1

澳门金沙国际 39

6,清洗数据

默许情状下,图表不选用任何学科(Course),数量是2,那一个结果在逻辑上是“错误”的,对于从未选用其余采用的Filter,PowerBI不会做其余筛选涉嫌。

澳门金沙国际 40

造成错误的案由是出于数量表StudentSpeaker出现脏数据,没有选修任何学科的学生(本例是学号为4的学员)出现在StudentSpeaker数据表中,要更正查询的结果,必须清洗脏数据。

一经双向筛选导致数据涉嫌的多义性,那么,可以导入表格五遍(第3次利用其余名目)以消除循环。
那会发出类似于长方形架构的涉嫌方式,借助圆锥形架构,全部涉嫌均可安装为“双向”。

涉嫌的传递有一个副功能,就是Filter的全选和不选有很大的例外:不选富含Blank值,而全选不分包Blank值。

四,编辑交互行为

选取不一样的CourseName,度量值Speaker#自动依照Filter做相应的多少过滤,重新计算数据,那种过滤的流向是单向的,由数量涉嫌中的交叉过滤方向(CrossFilter
Direction)决定,PowerBI允许在不修改关系的情状下,编辑Filter和度量值的相互行为,使报表中的不一致图表(Visiualization)选用性地响应或不响应过滤条件(Filter)。

1,选择Filter,切换到Format菜单,选择“Edit Interactions”

澳门金沙国际 41

2,编辑交互行为

暗中同意景况下,Card图表的Filter澳门金沙国际 42是选中,将其切换成禁止澳门金沙国际 43,那样,采纳Course过滤器中的任何二个精选,都不会影响Card图表显示的数据值。

澳门金沙国际 44

二,创造直接关联

在论及的传递时,数据行的缺失会导致下游数据出现空值(BLANK),小编利用如下的关联图演示,注意关系的档次和指向:

五,在多少建模中,要按照一定的宏图原则

在数码建模中,不仅要求属性业务须求,而且需求熟习数据及其关系,听从一定的统筹原则,可以幸免出现一些显明的谬误:

  • 要按照工作须要,设计报表的过滤条件(Filer)和胸怀值;
  • 过滤器是数码建模的观点,依照过滤条件和数码里面内在的涉及布署数据模型;
  • 基于数量里面内在的涉嫌,加载数据,保险数据表中不出现脏数据。

 

参考文档:

Power BI
文档

在 Power BI Desktop
中创制和治本关系

在PowerBI报表的涉嫌中,直接关乎是指涉嫌的三个表直接接触,直接关系是指通过中间表建立关联的三个数据表,直接关联涉及的多少个数据表不直接触及,如下图,数据表Students和StudentCourse之间的涉及是一贯关联,数据表Course和StudentCourse之间的关系是间接关系,而数据表Students和Courses之间通过StudentCourse建立直接关联。直接关联通过一名目繁多有一直关联的数据表,可以落到实处数量的互相,那是PowerBI自动已毕的,为创立复杂的数据模型提供了支撑,不过,在数码建模中使用直接关联时,务必谨慎,PowerBI对Filter选项的全选和不选的拍卖是有分其他。

澳门金沙国际 45

澳门金沙国际 46

导入示例的多寡,各种表的多寡如下图所示:

1,使用以下脚本创造具有多层关系的数据表

澳门金沙国际 47

剧本成立了多少个表,分别是用于表示学生,课程,学生选课,学生发言,学生和课程之间的关联是1:N,学生和解说活动时期的关系是1:N

把CourseID作为Filter(Slice可视化控件),下游数据(Card可视化控件,Count(Distinct
伊芙ntID)会出现Blank,那是因为存在StudentID=4的数据行没有接纳相应的CourseID。

澳门金沙国际 48澳门金沙国际 49

澳门金沙国际 50

create table dbo.Courses
(
CourseID int not null primary key clustered,
CourseName varchar(32) not null
)

create table dbo.Students
(
StudentID int not null primary key clustered,
StudentName varchar(64) not null
)

create table dbo.StudentCourse
(
    StudentID int not null,
    CourseID int not null,
    constraint PK__StudentCourse primary key clustered(StudentID,CourseID)
)

create table dbo.StudentSpeaker
(
    StudentID int not null,
    EventID int not null
)

insert into dbo.Courses(CourseID,CourseName)
values(1,'English'),(2,'Chinese')

insert into dbo.Students(StudentID,StudentName)
values(1,'stu_a'),(2,'stu_b'),(3,'stu_c'),(4,'stu_d')

insert into dbo.StudentCourse(StudentID,CourseID)
values(1,1),(2,1),(3,2)

insert into dbo.StudentSpeaker(StudentID,EventID)
values(1,101),(4,102)

不采用其它Filter时,“Count of
伊夫ntID”的值是2,包含Blank对应的EventID

View Code

澳门金沙国际 51

澳门金沙国际 52

当选择CourseID=1时,“Count of EventID”的值是1:

2,在Relationships视图中,创立表之间的涉嫌

澳门金沙国际 53

基数关系(Cardinality)按照数据里面的关联创建,筛选方向依照过滤的逻辑设置。默许情状下,PowerBI会自动检查(AutoDetect)数据里面的涉及,按照检查的结果(列名和列值的唯一性)自动创立关系,在Relationships视图中,关系是一条有倾向的折线,折线的两边是数字,表示基数(Cardinality)关系,折线中间的有向箭头表示筛选方向(Direction)。

当采用具有Filter时,“Count of 伊芙ntID”的值是1:

PowerBI不会智能到理想,用户须求按照数量内在的涉嫌对PowerBI自动成立的涉嫌进展纠正,恐怕,例如,把数据表Students和StudentCourse之间的关联修改为:1:N和双向筛选,双击关系(折线),弹出编辑关系(艾德it
Relationship)的窗体:

澳门金沙国际 54

澳门金沙国际 55

四,关系的统筹

在每一个表下方面板中,会展现列名和示范数据。基数(Cardinality)关系是Many
to
one,其表明式是:*:1,表明式左边的表位于地点,左侧的表位于上面,用于建立关联的数据列是莲灰选中状态。交叉筛选方向(Crossfilter direction)接纳Both,勾选“Make this relationship
active”,点击OK,完毕关系的创始,如下图,点击关系(折线),用于建立关系的数据列处于选中状态。

把数据模型设计成维度表和事实表,维度表和事实表之间的关联是1:N,交叉过滤方向由维度表指向事实表,防止选取Both交叉方向。

澳门金沙国际 56

出于PowerBI不支持“多对多”关系项目,在处理这种数量时,寻常有三种方法:

三,利用直接关系贯彻业务需要

  1. 除去关系:把”多对多”的数码统一到3个表中
  2. 把”多对多”的关系转换来七个”一对多”的涉嫌:新建壹个维度表,该维度表只包罗单列的唯一值,连接原“多对多”的七个表

报表须求完毕的政工须求是:依照课程(Course)计算作为演讲者(Speaker)的学生数量

 

在做报表时,必须熟谙数据和数据里面的关系,在数量表StudentCourse中,共有一个学生选课,学号分别是壹 、2和3,存在不选课的学生,而在多少表StudentSpeaker中,唯有学号1的学员满意条件,因而,依照课程(Course)计算作为演说者(Speaker)的学童数量的结果应当是:

参照文档:

  • 选修English的学童数量是0;
  • 修改Chinese的学生数量是1;
  • 对富有课程做总计,学生数量是选修English和选修Chinese的多少之和,1(=0+1);

Power BI Desktop New Feature: Bi-Directional
Relationships!

1,设置课程Filter

Why Is My Relationship Inactive in Power BI
Desktop?

数码表Course是查找表,由于StudentCourse中的课程(CourseID)都存在于Course表中,全部,Slicer图表中不设有Blank选项。

 

澳门金沙国际 57

2,添加Card图表,展现统计数据

在Page中添加Card图表(Visualizations),在图片的Fields属性中,拔取数据表SutdentSpeaker的StudentID字段,属性值自动成为:聚合函数+
of +字段值。

 澳门金沙国际 58

3,设置聚合函数

是因为一个学员,恐怕在多个活动(伊芙nt)中承受解说者(Speaker),由此,必须对StudentID进行去重,在图片的Fields属性值“Count
of StudentID” 中右击,选拔聚合函数采取Count(Distinct)

澳门金沙国际 59

4,设置图表的来得属性

切换到“刷子”Icon,禁用Category lable,启用Title,修改Title Text、Font
color,Alignment和Text Size,

澳门金沙国际 60

5,分析报表数量

课程接纳Chinese,数量是Blank

澳门金沙国际 61

课程选取English,数量是1

澳门金沙国际 62

分选具有课程,数量是1

澳门金沙国际 63

6,清洗数据

暗中认同处境下,图表不拔取其他学科(Course),数量是2,那个结果在逻辑上是“错误”的,对于尚未采纳其余采纳的Filter,PowerBI不会做其余筛选涉嫌。

澳门金沙国际 64

致使错误的原由是出于数量表StudentSpeaker出现脏数据,没有选修任何学科的学生(本例是学号为4的学员)出现在StudentSpeaker数据表中,要矫正查询的结果,必须清洗脏数据。

四,编辑交互行为

选用区其他CourseName,度量值Speaker#自动依照Filter做相应的数码过滤,重新计算数据,那种过滤的流向是单向的,由数量涉嫌中的交叉过滤方向(CrossFilter
Direction)决定,PowerBI允许在不改动关系的气象下,编辑Filter和度量值的竞相行为,使报表中的差距图表(Visiualization)选用性地响应或不响应过滤条件(Filter)。

1,选择Filter,切换到Format菜单,选择“Edit Interactions”

澳门金沙国际 65

2,编辑交互行为

暗中认同景况下,Card图表的Filter澳门金沙国际 66是选中,将其切换成禁止澳门金沙国际 67,那样,拔取Course过滤器中的任何二个精选,都不会影响Card图表展现的数据值。

澳门金沙国际 68

五,在多少建模中,要信守一定的筹划原则

在数额建模中,不仅要求属性业务必要,而且须要纯熟数据及其关系,遵循一定的布署标准,可以幸免出现一些驰名中外的失实:

  • 要按照作业需要,设计报表的过滤条件(Filer)和心胸值;
  • 过滤器是数额建模的着眼点,依据过滤条件和多少里面内在的涉嫌安顿数据模型;
  • 基于数量里面内在的涉嫌,加载数据,保证数据表中不出现脏数据。

 

PowerBI体系的小说目录:

  • PowerBI
    第一篇:设计PowerBI报表
  • PowerBI
    第②篇:数据建模

 

参考文档:

Power BI
文档

在 Power BI Desktop
中成立和治本关系

相关文章