154_一鍵批量建立時間智慧度量值

焦棚子發表於2022-06-02

154-模型-一鍵批量建立時間智慧度量值

一、背景

在我們做 Power BI 專案的時候,幾乎都要和時間智慧打交道的。我們常規的業務度量值寫好了後,就面對要寫各個時間維度的度量值了,而且時間表達的維度非常多,同比、環比、周累計、月累計、年累計,還有季度累計、半年度累計等等。

各個基本業務度量值對於時間維度來說都是一樣的,一個基本業務的時間維度寫好了還要寫下一個時間維度的度量值,在這個環節上是費時費力。

時間對於所有都是公平的。我們總結了常見的 51 個時間狀態(見下文),基本覆蓋了所有業務場景;通過 Tabular Editor 一鍵生成所有的時間維度的度量值。

附件下載地址:https://jiaopengzi.com/2653.html

二、時間維度

1、時間維度說明

image-20220602171319668

2、時間維度分類說明

  • DAY:指標分類按照所選日期計算的單日的分類。
  • XTD:按照所選日期對應計算的累計的分類。
  • B:base 的簡寫,按照基期分類。
  • P:previous 的簡寫,按照 base 對應的上一期分類。
  • Δ:大寫的希臘字母:德爾塔(音),按照差異 base - previous 分類。
  • %:百分號,按照百分比分類。
  • D:day 的簡寫,按照天分類。
  • W:week 的簡寫,按照周分類。
  • M:month 的簡寫,按照月分類。
  • Q:quarter 的簡寫,按照季度分類。
  • H:half year 的簡寫,按照半年度分類。
  • Y:year 的簡寫,按照年度分類。

三、具體操作

1、首先是需要一張符合要求日期表,在上一期的文章中我們已經介紹(https://jiaopengzi.com/2635.html),這裡就不在贅述,日期表會在本案例附件中。

日期表必須按照我們的要求來,時間智慧函式依賴日期表,這很重要。

2、對需要建立時間維度的度量值提前打標,如下圖:

image-20220602154719501

3、使用我們提供的 C# 指令碼(附件中),在 Tabular Editor 中一鍵生成所需要的時間智慧度量值。

Tabular Editor 下載地址:https://jiaopengzi.com/tools

Tabular Editor 安裝教程:https://jiaopengzi.com/video/video-102?rkvid=74

image-20220602154851849

3、引數說明

  • digitsN:新建的度量值的小數位數,只能填寫大於等於 0 的整數。

  • digitsP:新建的百分數度量值的小數位數,只能填寫大於等於 0 的整數。

  • measureTableN:度量值所在的表的名稱。

  • measureMark0:需要使用時間智慧函式的標識,一般可以在度量名稱後面加:"_D_",當然標識可以自定義。

    image-20220602161801959

  • folder0:批量建立的時間智慧函式的度量值資料夾,由於度量值比較多需使用資料夾來管理。

  • uselist:當前度量值需要建立的索引,如有部分不需要刻意移除對應索引即可,如下:

// uselist 如下設定表示只需要新建上述 ID 從 0 到 5 的時間維度度量值。

var uselist = new List<int>
{
  0,1,2,3,4,5
};

// uselist 如下設定表示只需要新建上述 ID 從 0 到 50 的時間維度度量值。

var uselist = new List<int>
{
  0,1,2,3,4,5,6,7,8,9,10
  ,11,12,13,14,15,16,17,18,19,20
  ,21,22,23,24,25,26,27,28,29,30
  ,31,32,33,34,35,36,37,38,39,40
  ,41,42,43,44,45,46,47,48,49,50
};

四、總結

1、要想很好的操作時間維度的度量值來表達業務,那麼就需要一張設計好日期表。

2、究其原因,維度表的建立對於業務表達很重要,也就是我們經常說的你要懂業務。

3、對 “重複” 度量值建立要多思考。

by 焦棚子

相關文章