日期维度与关系

Power BI 数据建模进阶

Maarten Van den Broeck

Content Developer

日期与时间维度

  • 日期维度提供内置日历,减少复杂日期操作
    • 例如:将财年与历年匹配
    • 例如:按季度、月份、周切片
  • 时间维度处理一天内的时间:小时、分钟、秒
  • 时间维度远少于日期维度

星型模型中的日期维度

Power BI 数据建模进阶

创建日期维度的选项

方法 优点 缺点
在数据库中托管 适用于从数据仓库获取数据! 需要数据库
最易与多服务共享,更新方便
将数据存为文件 无需数据库,一次性创建 需要创建文件
Power BI 对文本文件支持良好 更新不如托管在数据库便捷
使用 DAX 创建 比前两种更易自定义 需要编写自定义代码
无需外部准备工作 某些功能在此方式中更难实现
Power BI 数据建模进阶

用 DAX 创建简单日期维度

Month_Year = 



CALENDAR(DATE(1950, 1, 1), TODAY()),

  • CALENDAR() 是内置函数,返回区间内所有日期
Power BI 数据建模进阶

用 DAX 创建简单日期维度

Month_Year = 



CALENDAR(DATE(1950, 1, 1), TODAY()),

  • CALENDAR() 是内置函数,返回区间内所有日期
  • 创建介于 1950-01-01 与今天之间的 [Date] 字段 $$ $$ $$
[Date]
1950-01-01
1950-01-02
...
2021-06-30
Power BI 数据建模进阶

用 DAX 创建简单日期维度

Month_Year = 


SELECTCOLUMNS(
CALENDAR(DATE(1950, 1, 1), TODAY()),
"Month", MONTH([Date]), "Year", YEAR([Date]) )
  • CALENDAR() 是内置函数,返回区间内所有日期
  • 创建介于 1950-01-01 与今天之间的 [Date] 字段
  • 选择要添加的列 $$ $$
Month Year
01 1950
01 1950
... ...
06 2021
Power BI 数据建模进阶

用 DAX 创建简单日期维度

Month_Year = 

DISTINCT(
SELECTCOLUMNS(
CALENDAR(DATE(1950, 1, 1), TODAY()),
"Month", MONTH([Date]), "Year", YEAR([Date]) )
)
  • CALENDAR() 是内置函数,返回区间内所有日期
  • 创建介于 1950-01-01 与今天之间的 [Date] 字段
  • 选择要添加的列
  • 仅保留唯一行
Month Year
01 1950
02 1950
... ...
06 2021
Power BI 数据建模进阶

定义关系

  • 关系使您可在 Power BI 中链接表
    • 在表间传播筛选
    • 支持跨表计算
  • 管理关系的方式
    • 基于列名自动检测
    • 手动自定义

带关系的数据模型

Power BI 数据建模进阶

关系键

  • 关系基于键

    • 一列或多列确保行唯一
  • 两类键:

    • 自然键:已有列(如 email)
    • 代理键:人为列(如 ID)
  • Power BI 要求单列关系

Power BI 数据建模进阶

关系键

  • 关系基于键

    • 一列或多列确保行唯一
  • 两类键:

    • 自然键:已有列(如 email)
    • 代理键:人为列(如 ID)
  • Power BI 要求单列关系

  • 复合键:由至少两列组成的键
First Name Last Name Birth year Value
Chris P Bacon 1996 599
Jane Bonds 1998 523
Dwayne Pipe 1988 -566

$$

Composite Key Value
Chris P-Bacon-1996 599
Jane-Bondts-1998 523
Dwayne-Pipe-1988 -566
Power BI 数据建模进阶

基数

  • 衡量两表行之间的关系
  • 多对一/一对多:最常用
    • 将维度表的一行连接到事实表的一行或多行

$$

一对多关系

多对一关系

Power BI 数据建模进阶

基数

  • 较少见:

    • 一对一 一对一关系 $$

    • 多对多 多对多关系

Power BI 数据建模进阶

Ayo berlatih!

Power BI 数据建模进阶

Preparing Video For Download...