SAP HANA 計(jì)算視圖

2018-11-29 15:23 更新

計(jì)算視圖用于消耗其他分析,屬性,其他計(jì)算視圖和基本列表。它們用于執(zhí)行復(fù)雜的計(jì)算,這對(duì)于其他類(lèi)型的視圖是不可能的。

計(jì)算視圖的特征

下面給出了計(jì)算視圖的幾個(gè)特征:

  • 計(jì)算視圖用于消耗分析,屬性和其他計(jì)算視圖。

  • 它們被用來(lái)執(zhí)行復(fù)雜的計(jì)算,這對(duì)于其他視圖不可能的。

  • 有兩種方法來(lái)創(chuàng)建計(jì)算視圖 - SQL編輯器或圖形編輯器。

  • 內(nèi)置聯(lián)合,連接,投影和聚合節(jié)點(diǎn)。

如何創(chuàng)建計(jì)算視圖?

選擇要在其下創(chuàng)建計(jì)算視圖的包名稱(chēng)。右鍵單擊包→點(diǎn)擊“New”→“Calculation View”。當(dāng)你點(diǎn)擊“Calculation View”時(shí),將打開(kāi)新窗口。

Creating a Calculation View

輸入視圖名稱(chēng)、描述并選擇視圖類(lèi)型為計(jì)算視圖,子類(lèi)型標(biāo)準(zhǔn)或時(shí)間(這是添加時(shí)間維度的特殊類(lèi)型的視圖)。你可以使用兩種類(lèi)型的計(jì)算視圖 - 圖形和SQL腳本。

圖形計(jì)算視圖

它具有默認(rèn)節(jié)點(diǎn),如聚合,投影,連接和聯(lián)合。它用于消耗其他屬性,分析和其他計(jì)算視圖。

基于SQL腳本的計(jì)算視圖

它是使用SQL命令或HANA定義的函數(shù)構(gòu)建的SQL腳本編寫(xiě)的。

數(shù)據(jù)類(lèi)別

在此默認(rèn)節(jié)點(diǎn)中,多維數(shù)據(jù)集是聚合。你可以選擇星型連接與多維數(shù)據(jù)集維度。

維度,在此默認(rèn)節(jié)點(diǎn)中是投影。

Data Category

星型連接(Star Join)的計(jì)算視圖

它不允許在數(shù)據(jù)基礎(chǔ)上添加基于列的表,屬性視圖或分析視圖。必須將所有維度表更改為在星型連接中使用的維度計(jì)算視圖??梢蕴砑铀械氖聦?shí)表,并可以在計(jì)算視圖中使用默認(rèn)節(jié)點(diǎn)。

以下示例顯示了如何使用星形連接的計(jì)算視圖:

你有四個(gè)表,兩個(gè)維度表和兩個(gè)事實(shí)表。你必須找到所有員工的列表,其中包括他們的入職日期,員工姓名,員工ID,工資和獎(jiǎng)金。

在SQL編輯器中復(fù)制并粘貼下面的腳本并執(zhí)行。

維度表 - Empdim和Empdate

Create column table Empdim (empId nvarchar(3),Empname nvarchar(100));
Insert into Empdim values('AA1','John');
Insert into Empdim values('BB1','Anand');
Insert into Empdim values('CC1','Jason');
Create column table Empdate (caldate date, CALMONTH nvarchar(4) ,CALYEAR nvarchar(4));
Insert into Empdate values('20100101','04','2010');
Insert into Empdate values('20110101','05','2011');
Insert into Empdate values('20120101','06','2012');

事實(shí)表 - Empfact1,Empfact2

Create column table Empfact1 (empId nvarchar(3), Empdate date, Sal integer );
Insert into Empfact1 values('AA1','20100101',5000);
Insert into Empfact1 values('BB1','20110101',10000);
Insert into Empfact1 values('CC1','20120101',12000);

Create column table Empfact2 (empId nvarchar(3), deptName nvarchar(20), Bonus integer );
Insert into Empfact2 values ('AA1','SAP', 2000);
Insert into Empfact2 values ('BB1','Oracle', 2500);
Insert into Empfact2 values ('CC1','JAVA', 1500);

現(xiàn)在我們必須使用星型連接來(lái)實(shí)現(xiàn)計(jì)算視圖。首先將兩個(gè)維度表更改為維度計(jì)算視圖。

使用星型連接創(chuàng)建計(jì)算視圖。在圖形窗格中,為2個(gè)事實(shí)表添加2個(gè)投影。將兩個(gè)事實(shí)表添加到兩個(gè)投影,并將這些投影的屬性添加到輸出窗格。

Star Join

從默認(rèn)節(jié)點(diǎn)添加連接并連接兩個(gè)事實(shí)表。將Fact Join的參數(shù)添加到輸出窗格。

Output Pane

在星型連接中,添加維度計(jì)算視圖和Fact Join,如下所示。在輸出窗格中選擇參數(shù)并激活視圖。

Active View

SAP HANA計(jì)算視圖 - Star Join

成功激活視圖后,右鍵單擊視圖名稱(chēng),然后單擊“Data Preview”。將屬性和度量添加到值和標(biāo)簽軸,并進(jìn)行分析。

使用Star Join的好處

它簡(jiǎn)化了設(shè)計(jì)過(guò)程。你不需要?jiǎng)?chuàng)建分析視圖和屬性視圖,并且可以直接將事實(shí)表用作投影。

通過(guò)星型連接可實(shí)現(xiàn)3NF。

沒(méi)有Star Join的計(jì)算視圖

在2個(gè)維度表上創(chuàng)建2個(gè)屬性視圖 - 添加輸出并激活這兩個(gè)視圖。

在事實(shí)表上創(chuàng)建2個(gè)分析視圖→在分析視圖的數(shù)據(jù)基礎(chǔ)中添加屬性視圖和Fact1/Fact2。

現(xiàn)在創(chuàng)建計(jì)算視圖→維度(投影)。創(chuàng)建兩個(gè)分析視圖的投影并連接它們。將此連接的屬性添加到輸出窗格。現(xiàn)在連接投影并再次添加輸出。

激活視圖成功,并轉(zhuǎn)到數(shù)據(jù)預(yù)覽進(jìn)行分析。

Without Star Join


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)