首页 > 其他分享 >PowerBI_一分钟学会三大模型关系(实线、虚线、虚拟)

PowerBI_一分钟学会三大模型关系(实线、虚线、虚拟)

时间:2025-01-12 22:22:11浏览次数:1  
标签:关系 Category Product TREATAS 实线 Sales PowerBI 虚线 三大

在Power BI中,模型的关系是数据建模的基础,这些关系决定了不同表之间如何相互连接和交互。

在这篇博客文章中,我将详细介绍三种关系:实线关系、虚线关系和虚拟关系,并解释它们的异同。

最后,我将探讨如何使用 USERELATIONSHIP 和 TREATAS 函数来处理这些关系。

1:X-MIND 思维导图

2:三大关系

2.1 实线关系 (Active Relationship)

实线关系是模型中默认的关系类型,它代表了两个表之间的主键和外键连接。这种关系通常用于计算和聚合数据。例如,销售表和日期表之间的关系。 特点:
  • 默认情况下,实线关系是激活的,意味着Power BI在计算时会优先使用这种关系。
  • 一个表可以有多条关系,但同时只能有一条实线关系。
使用场景:
  • 当你需要在一个模型中显示一个事实和一个维度之间的明确连接时。

 

2.2 虚线关系 (Inactive Relationship)

虚线关系在模型中也是表和表之间的连接,但它们默认是非激活的。这些关系通常作为备用连接,当需要时可以激活。 特点:
  • 虚线关系需要通过 USERELATIONSHIP 函数在特定度量值或计算中激活。
  • 一个表可以有多条虚线关系,这提供了灵活性,允许在不同的情况下使用不同的连接。
使用场景:
  • 当同一组表之间有多种可能的关系时,比如有多个日期字段(订单日期、发货日期等)需要使用不同的时间分析。

 

2.3 虚拟关系 (Virtual Relationship)

虚拟关系不是通过模型中的物理连接实现的,而是通过 TREATAS 函数在DAX计算中临时创建的关系。这种关系特别有用,因为它允许创建动态的连接,而无需在模型中创建额外的关系。 特点:
  • 虚拟关系在DAX代码中动态创建,不会显示在模型图中。
  • 提供了极大的灵活性,可以在不改变模型结构的情况下进行复杂的数据分析。
使用场景:
  • 当你需要在度量值中引用一个表的列,并将其与另一个表的列进行对比时

 

3: 关系函数

3.1 USERELATIONSHIP函数(虚线关系)

USERELATIONSHIP 函数用于在度量值中激活一个虚线关系。 这使得在一个计算中,虚线关系可以暂时作为实线关系来使用。
DAX EXPRESSION
USERELATIONSHIP(columnName1, columnName2)
  示例: 假设我们有一个销售表和两个日期字段(订单日期和发货日期)。我们希望在一个度量值中使用发货日期而不是订单日期: Sales By Ship Date =                   CALCULATE(                        SUM(Sales[Amount]),                       USERELATIONSHIP(Sales[ShipDate], Calendar[Date])                        )

 

3.2 TREATAS函数(虚拟关系)

TREATAS 函数用于在DAX表达式中创建虚拟关系。

它将一个表的列“投射”到另一个表的列上,从而创建一个临时的、基于值的关系。

TREATAS(columnName1, columnName2)

示例: 假设我们有一个产品表和一个销售表,我们希望根据产品类别进行聚合,但它们之间没有直接的关系:

Sales by Product Category = 
CALCULATE(
    SUM(Sales[Amount]),
    TREATAS(
        VALUES(Product[Category]),
        Sales[Category]
    )
)

 

 这里解释一下,“投射”概念

在数据建模和DAX计算中,“投射”(Projection)指的是将一个表中的某些列的值,转换为另一个表中对应列的上下文,从而在不显式创建关系的情况下建立临时连接。TREATAS 函数就是用于实现这种投射的关键工具。

3.2.1 投射的过程

当我们使用 TREATAS 函数时,我们实际上是在说:“将这个表的这些列的值视为另一个表中这些列的值,并在计算中应用这个上下文。” 通过这种方式,我们能够在不改变模型结构的前提下,动态地创建关系,从而实现复杂的数据分析。

3.2.2 使用 TREATAS 实现投射的详细示例

假设我们有两个表:Product 表和 Sales 表。Product 表包含产品的类别,而 Sales 表包含销售记录及其对应的产品类别。我们希望根据产品类别聚合销售金额,但这两个表之间没有直接的关系。

这是我们使用上面的代码,解释一下:

Sales by Product Category = 
CALCULATE(
    SUM(Sales[Amount]),
    TREATAS(
        VALUES(Product[Category]),
        Sales[Category]
    )
)

 

解释代码

VALUES(Product[Category]):

这个部分获取 Product 表中 Category 列的唯一值。VALUES 函数返回一个包含这些唯一值的表。

 

TREATAS(VALUES(Product[Category]), Sales[Category]):

TREATAS 函数将 Product[Category] 列中的值投射到 Sales[Category] 列上。换句话说,它告诉Power BI,在计算上下文中,把 Product 表的类别视为 Sales 表的类别。

 

 

CALCULATE(SUM(Sales[Amount]), TREATAS(...))

CALCULATE 函数在指定的上下文中计算表达式。在这里,它计算 Sales[Amount] 的总和,同时应用了 TREATAS 函数创建的上下文,从而基于产品类别对销售数据进行聚合。

4:总结

了解和正确使用这三种关系是Power BI数据建模的关键。 实线关系提供了默认的连接方式,虚线关系为备用连接提供了灵活性,而虚拟关系通过 TREATAS 函数在DAX表达式中提供了强大的动态连接功能。 通过合理利用 USERELATIONSHIP 和 TREATAS 函数,能够实现复杂的数据分析,满足多样化的业务需求。

标签:关系,Category,Product,TREATAS,实线,Sales,PowerBI,虚线,三大
From: https://www.cnblogs.com/simone331/p/18585479

相关文章

  • 在数据分析师圈中很火的,PowerBI数据分析认证证书!
    在数据分析师圈中,有一个很火是证书,PowerBI数据分析认证(微软PL300认证)。当然现在市面上也有很多BI的软件,其实方法原理是想通的。所以这个认证在数据分析师招聘当中还是很火的。那么来详细介绍一下这个证书!一、PowerBI数据分析是认证-PL300简介PL-300认证是微软提供的一项专业......
  • 【解密三大AI:感知、增强与生成智能的未来】探讨Perceptive AI、Enhancive AI与Generat
    【解密三大AI:感知、增强与生成智能的未来】探讨PerceptiveAI、EnhanciveAI与GenerativeAI的核心概念、应用及未来影响(二)【解密三大AI:感知、增强与生成智能的未来】探讨PerceptiveAI、EnhanciveAI与GenerativeAI的核心概念、应用及未来影响(二)文章目录【解密三大A......
  • Powerbi官方认证!2025年入行数据分析
    要跳槽?要入行数据分析。要入手一个靠谱知名度高的证书?PL-300考虑吗?PowerBIDataAnalystAssociate(PowerBI数据分析师助理)。PL-300微软数据分析师认证(完整大纲)第1章 初识PowerBI01    PowerBI的优势02    PL300课程大纲设计03    安装Powe......
  • Tomcat 三大核心线程组件Acceptor、Poller 和 Executor&为什么tomcat 要把Acceptor单
    在Tomcat的架构中,Acceptor、Poller 和 Executor 是处理网络连接和请求的重要组件。 AcceptorAcceptor 是Tomcat中负责接受新连接的组件。它的主要职责包括:监听端口:Acceptor在线程中监听一个特定的端口,等待客户端连接请求。接受连接:当有新的连接请求到达时,Accepto......
  • 为什么尽量不要用钽电容?三大理由
    100uF的钽电容与100uF的陶瓷电容的价格相差多少,你知道吗?10倍!钽电容的价格大概是陶瓷电容的10倍。1、钽电容成本较高如果电容容量需求在100uF以下,在耐压满足的前提下,我们现在绝大多数情况会选用陶瓷电容,而不用钽电容,就是因为钽电容贵。钽电容的主要材料是钽,这种金属是稀......
  • Hadoop三大组件:大数据世界的瑞士军刀
    Hadoop是一个能够在大量计算机集群上处理和存储海量数据的软件框架。它有三个非常重要的组件,分别是HDFS(HadoopDistributedFileSystem,分布式文件系统)、MapReduce和YARN(YetAnotherResourceNegotiator,资源协商器)。HDFS(分布式文件系统)想象一下,你有一个非常大的图书馆,里面......
  • 项目管理师考试复习的三大时间管理技巧
    项目管理师考试是众多项目管理从业者提升专业能力、获得职业认证的重要途径。然而,考试内容广泛且深度较高,尤其是时间管理部分,往往成为考生备考的难点。如何在有限的时间内高效复习,合理分配精力,是每位考生必须面对的问题。掌握科学的时间管理技巧,不仅能够提高复习效率,还能减轻备考......
  • 抢占先机!2025,三大认知降低To B赛道门槛
    前两天,有位用户找到阿道聊咨询的业务。三言两语中,处处凸显着现阶段ToB企业的困难:“到处都在降本增效,我们成本也收缩了,效率也提高了,但还是持续亏损。这不,想从工具落地的角度看看,有没有可以优化的。”ToB市场发展势头强劲,一片向好,然而身处其中的各大企业,却面临严峻的生存挑战。......
  • Java中三大构建工具的发展历程(Ant、Maven和Gradle)
    ......
  • 密码学领域三大经典难题:DLP、IFP 与 ECDLP
    离散对数问题(DLP)基本概念:在有限循环群\(G\)(通常是整数模\(p\)乘法群\(Z_p^*\),其中\(p\)为素数)中,给定一个生成元\(g\)和元素\(h=g^x\)(\(x\)为整数),离散对数问题是求出整数\(x\)。例如,在群\(Z_{17}^*\)中,生成元\(g=3\),如果\(h=12\),要求出满足\(3^x\equiv12\(mod\17)\)的\(......