Text. Text. Text. Text. Text. Text. Text. Text. Text. Text.
越來越多的SAP用戶正在將SAP HANA實施為現有SAP BW的基礎和資料庫,有些可能只是用現代SAP HANA資料庫替換現有資料庫,以提高查詢執行和倉庫管理的速度,當然,這是SAP BW中SAP HANA實施的關鍵目標,但不是唯一一個,
在我看來,使用 SAP HANA Studio 或 Eclipse 緊密集成 的SAP HANA 功能以設計新的資料倉庫管理方式,至少與改善報表性能一樣重要,
當可以動態計算新的報表資料時,為什么還要使用 SAP 應用程式層的舊習慣,在持久層中存盤越來越多的資料? 使用基于 SAP HANA 的暫存(staging)來增強資料流,而無需在多個層(SAP staging layer [SLA])中對傳入資料進行物理暫存,這是我正在客戶現場進行的作業,
本文鏈接:https://www.cnblogs.com/hhelibeb/p/15371591.html
英文原文:SAP-HANA-Calculation-Views
我的方法可以幫助你在設計更改時更加靈活,因為當業務邏輯更改時,暫存層中不會卸載或重新加載資料, 它還可以將 SAP HANA 的運營成本保持在最低水平,因為 SAP HANA 資料庫中的資料越少意味著許可費用越低,
(在由 SAP HANA 提供支持的現代 SAP BW 中,通過持久層切換到虛擬資料暫存、而不是老式資料暫存是明智的,針對復雜場景的SAP HANA計算視圖和程序有助于動態計算資料,從而在涉及資料暫存或資料模型中的擴展/減少方面的業務相關更改時,將卸載和重新加載階段減少到零,在使用SAP HANA Studio或Eclipse的SAP HANA環境中,SAP BW運維人員可以非常輕松地從老式模型切換到新的基于計算視圖的建模,或者運行二者混合場景,)
SAP HANA程序是一個資料庫存盤程序,它通過SAP HANA SQL腳本提供編程功能,類似于ABAP函式, 現在,我將在計算視圖(基于圖形和 SQL 腳本的視圖)的幫助下指導你創建 SAP HANA 資料流,包括你可能遇到的一些陷阱,
我的示例(下圖)是一種簡單的混合方法,

這意味著你使用現有的 SAP BW 入站資料(基于 DataStore 物件 [DSO],在 SAP BW 入口層中),你還可以將SAP BW表資訊(例如SAP資料字典[DDIC]表)合并到一個組合計算視圖中,您可以與SAP HANA Composite Provider for BEx或Analysis for Office報告結合使用, 你還可以直接在Analysis for Office報告中使用計算視圖(這里不涉及權限問題),
(DataStore物件:DSO(資料存盤物件)是以最低粒度級別保存清理和整合的事務或主資料的存盤位置,并且可以使用 BEx 查詢分析這些資料, DataStore 物件包含關鍵指標和特征欄位,資料可以使用增量更新或其他 DataStore 物件甚至從主資料進行更新, 這些 DataStore 物件通常存盤在二維透明資料庫表中,)
所有的截圖都基于Eclipse, 我正在運行Eclipse Neon 3和最新的SAP BW和SAP HANA附加組件, 可以使用 SAP Note1944835 – SAP BW Modeling Tools – Delivery Schedule 1944835 – SAP BW Modeling Tools – Delivery Schedule 找到SAP BW建模工具集,
在以下說明和示例中,我使用基于外部SAP HANA視圖的資料, 在我的示例中,我使用技術DSO內容資料在圖形計算視圖中提供資料和使用資料, 我將該資料與第三個圖形計算視圖中的SQL 腳本計算視圖結合使用,以連接這兩個資料, 我會解釋在圖形計算視圖中通過常規聯接訪問資料與基于 SQL 腳本的計算視圖相比的區別,并解釋SQL 腳本計算視圖的優點, 最后,你可以使用第三個計算視圖,將所有視圖連接到一個點,在 BEx 查詢的幫助下或直接與Analysis for Office結合,為報表用戶提供復合提供程式,
(本文假定讀者熟悉Eclipse使用)
開始創建HANA計算視圖
首先,切換到SAP HANA Development視圖, 建議在SAP HANA開發的情況下使用這個視圖,在所有其他視圖,都無法創建 SAP HANA hdb 程序,
第一個計算視圖是一個簡單的圖形視圖, 右鍵單擊開發包并選擇 New,然后選擇 Calculation View,如圖所示,

操作后顯示如下圖,

(注意:如果螢屏看起來不同,請確保選擇了Repositories選項卡)
接著輸入所需的計算視圖技術名稱,例如 MY_NEW_VIEW(沒圖), 保留默認型別,即Graphical,然后單擊完成按鈕, 默認情況下,系統會生成兩個物件:語意和聚合物件,

在左側,可以找到所有可用的設計物件, 從投影(Projection)選項開始, 將其拖放到場景的空白區域, 投影允許訪問 SAP HANA 中的所有可用物件,例如 DDIC 表、資訊提供者、主資料和現有的 SAP HANA 視圖,
將滑鼠移到投影物件上時,會看到一個綠色的加號,

單擊加號圖示(資料訪問)打開一個對話框,可以在其中搜索所需的物件, 可以讀取資料,然后將該物件添加到您的實際視圖中,
單擊加號圖示后打開的對話框可以搜索所需的物件, 在我的示例中,我輸入了 SAP BW 技術內容物件 WIS_C03(SAP technical cude集TCT_C03 的副本,它是一個InfoCube)的搜索字串, 正如下圖中展示的,搜索結果回傳所有可用的 SAP HANA 物件,例如 InfoProvider 本身和所有現有的部分(例如,維度)表,

我選擇了 InfoCube 本身,它由 Cxx 后綴(從頂部開始的第三項)表示,方法是雙擊條目或簡單地選擇條目并選擇 OK 按鈕, 我建議創建參考其型別的 ADSO(一種標準 DSO)技術名稱,例如 C(用于型別 Cube),
除了將選擇添加到您的投影并顯示名稱之外,您還可以在編輯器詳細資訊窗格中看到所選物件的結構(在我的示例中是 InfoCube 結構),其中顯示了 InfoObjects 以及cube SID 條目,

單擊詳細資訊視圖中的子彈形圖示可將該特定 InfoObject 添加到該投影的輸出(下圖)并將其顏色更改為橙色(已選擇), 此選擇類似于將表的欄位添加到事務SE11中的自定義視圖, LED 形狀的圖示就像一個撥動開關, 灰色表示該欄位已關閉(不使用),而橙色表示該欄位已打開,

因為 InfoCube 使用 SID 以及 InfoObject 鍵,所以選擇可能有點耗時, 為了更好地查看 InfoCube,我建議通過管理作業臺中的更改視圖激活該特定InfoCube的外部 SAP HANA視圖, 或者自動激活所有cube/DSO,
如果已經激活了外部 SAP HANA 視圖,可以直接從 Projection 搜索對話框中選擇該視圖(下圖),

選擇這個外部 SAP HANA 視圖可以讓你更輕松地使用計算視圖, 如下圖,僅顯示 InfoObjects 及其文本元素(如果存在), 可以將它們添加到投影的輸出中,

要將投影映射到場景窗格中的現有聚合物件,請單擊 Projection_2 上方的圓圈圖示, 按住滑鼠,拖動一個連接(線)到聚合物件的底部圖示,然后松開滑鼠, 現在您的投影已連接(圖 12),

選擇聚合物件將顯示投影的所有欄位的結構, 你可以按需決定顯示所有欄位還是只喜歡幾個欄位, 如果想要全部,最好的方法是右鍵單擊標題區域(黑色標題)并選擇 Add All To Output(下圖)選項,它會自動將所有現有欄位映射到輸出,而無需逐個選擇條目,

完成此步驟后,您可以通過單擊 Eclipse 頂部選單中的激活圖示來激活計算視圖,

激活后,可以通過右鍵單擊物件(例如,投影)并選擇資料預覽來直接顯示每個單獨物件的資料, (查詢資料的細節不在本文的范圍,)

為了用更多細節豐富我的示例,我添加了來自新 ADSO 的資料, 和以前一樣,將Projection拖到場景中,單擊加號圖示,然后選擇所需的物件(在我的例子中,InfoProvider被命名為WIS_D01,如下圖 所示),

可以看到兩個投影, 第一個已經連接到聚合物件, 現在加入這兩個表, (這樣就不會丟失所有現有的映射,將連接物件從右側直接拖放到第一個投影和聚合物件之間的連接線上,這會自動添加連接而不破壞任何映射,之后場景如下圖所示,)

最后一步是將第二個投影的輸出拖到顯示的連接的輸入上, 由于現在在兩個物件(WIS_C01和WIS_D01)之間建立了連接,你需要定義所需欄位之間的連接條件, 只需通過單擊橙色專案符號來選擇輸出欄位,并在連接物件之間拖放一條線作為連接條件, 我通過從Projection_2傳輸資料并打開 Projection_1 的其他欄位加入了 0CALDAY, InfoObject 0CALDAY(下圖 )現在是連接條件,但它不會傳輸到輸出資料,因為否則將有兩倍的0CALDAY欄位,

右鍵單擊聯接連接會打開一個對話框,可以在其中交換左右表(對于外聯接很重要)并顯示“編輯...”選項(下圖),

當使用連接編輯模式時,會出現一個新對話框,可以在其中設定不同的連接條件和基數(下圖), 為了簡單起見,保持標準連接條件(內部連接)處于活動狀態,

如你所見,圖形連接不允許您像在ABAP連接中那樣定義復雜的連接條件(例如,使用WHERE陳述句或復雜的過濾器), 要創建此類聯接,需要基于SQL的計算視圖, 在這些計算視圖中,可以定義您喜歡的任何連接條件, 作為替代方案,可以將此類聯接和表訪問的編碼傳遞給SAP HANA程序,以提高靈活性, 這些程序可以在系統范圍內用于所有目的, 首先,必須創建一個新程式, 右鍵單擊包并選擇新建,然后選擇其他...,如圖下圖所示,

在對話框中選擇存盤程序,

為新程序提供名稱和目標schema (下圖),

現在輸入SQL腳本代碼, 我的示例是將SAP BW表RSREQDONE和RSMONICDP中的激活和請求資訊添加到最終計算視圖中,
1 PROCEDURE “JOEBOE”.“system-local.public.JOEBOE::P_GET_BW_MONITOR_DATA” 2 3 4 5 (OUT TABLE_OUT table 6 7 ( 8 9 “RNR” NVARCHAR (30), 10 11 “ICUBE” NVARCHAR (30), 12 13 “DP_NR” NVARCHAR (30), 14 15 “STATUS” NVARCHAR (4), 16 17 “QMSTATUS” NVARCHAR (4), 18 19 “REC_INSERT” INTEGER, 20 21 “REC_UPDATE” INTEGER, 22 23 “DATUM” NVARCHAR (8), 24 25 “UZEIT” NVARCHAR (6), 26 27 “TSTATUS” NVARCHAR (4), 28 29 “TDATUM” NVARCHAR (8), 30 31 “TUZEIT” NVARCHAR (6)) 32 33 ) 34 35 36 37 LANGUAGE SQLSCRIPT SQL 38 39 SECURITY INVOKER 40 41 42 43 DEFAULT SCHEMA “MY_SCHEMA” 44 45 READS SQL DATA AS 46 47 48 49 BEGIN 50 51 /***************************** 52 53 The upper table has to be defined exactly like the receiving SQL Script calculation View 54 55 56 57 *****************************/ 58 59 60 61 — Table out will receive all data in exactly the order as given by upper table from 62 63 — next SQL call. It should be aligned to the fields being used in SQL scipt calc view 64 65 table_out = 66 67 68 69 select distinct 70 71 TB1.”RNR” , 72 73 TB1.”ICUBE” , 74 75 TB1.”DP_NR” , 76 77 TB1.”STATUS”, 78 79 TB1.”QMSTATUS” , 80 81 TB1.”REC_INSERT” , 82 83 TB1.”REC_UPDATE”, 84 85 TB2.”DATUM”, 86 87 TB2.”UZEIT”, 88 89 TB2.”TSTATUS”, 90 91 TB2.”TDATUM”, 92 93 TB2.”TUZEIT” 94 95 96 97 from “SAPT04″.”RSMONICDP” as TB1 98 99 INNER JOIN “SAPT04″.”RSREQDONE” as TB2 100 101 on 102 103 TB1.”RNR” = TB2.”RNR” 104 105 WHERE TB2.”DATUM” > ‘20160101’ AND 106 107 TB1.”ICUBE” like ‘0TCT%’ AND 108 109 (TB1.”QMSTATUS” is NOT NULL AND TB2.”RECORDS” > 0) 110 111 order by TB1.”ICUBE” ASC; 112 113 114 115 116 117 END;SQL Script for Join
我的示例代碼中的第一部分是連接條件中使用的表欄位的宣告, 那些宣告的欄位稍后會發送到計算視圖(類似于 ABAP 中的內部表),
SECURITY INVOKERf負責單個用戶可能擁有的稍后運行該程序的授權, table out 引數接收select陳述句的結果,并將資訊傳遞給稍后使用的輸出表 (table_out), 使用Ctrl + F3或Eclipse選單中的激活圖示在編碼無錯誤后激活程式, 下一步是在計算視圖型別的SQL腳本中使用此程序, (請記住,該程序不是強制性的;可以直接在基于 SLQ腳本的計算視圖中使用代碼,)右鍵單擊包并選擇新建,然后選擇計算視圖, 在熟悉的對話框(下圖)中,確保選擇型別SQL Script(默認為Graphical)并提供必需資訊,例如名稱,

下一個對話框顯示了一個熟悉的場景視圖,但只有兩個簡單的物件,

單擊 Script_View 物件并查看顯示的代碼和輸出窗格, 代碼部分相當簡單(如下), 如你所見,只呼叫您剛剛創建的程序,
/********* Begin Procedure Script ************/ BEGIN –Call procedure that does Join and structure definition to return its value to calculation view call “MY_SCHEMA”.”system-local.public.JOEBOE::P_GET_BW_MONITOR_DATA”(:var_out); END /********* End Procedure Script ************/
程序中宣告的表var_out現在必須連接到計算視圖的輸出欄位, 欄位的型別(下圖)和確切的序列必須與程序中table_out定義的型別和序列對齊,

完成所有設定后,激活并測驗(資料預覽)基于 SQL 的計算視圖,
最后一步是將此計算視圖與前面的示例結合起來, 只需添加一個新投影,單擊加號圖示,然后搜索基于SQL的計算視圖,

計算視圖不僅允許你插入標準 SAP BW 物件,還允許插入所有SAP HANA物件(例如計算視圖),
在新添加的專案中打開所需的輸出欄位,如上所述,添加新的連接條件并使用新的基于 SQL 腳本的計算視圖映射現有組件, 輸出應該類似于我的示例,

你可以使用 SAP HANA 計算視圖的介紹來幫助構建結合圖形和基于SQL的計算視圖的場景,用于各種用途, 在某些情況下,可以通過將此計算視圖直接添加到復合資訊提供者(Composite InfoProvider)以制作報表,完全繞過 DSO 和cube中的經典暫存,
使用 SAP HANA 計算視圖的好處是,可以使用我剛剛在其他幾個視圖(可重用)的投影中創建的視圖,就像我在本文中使用基于 SQL 腳本的視圖一樣,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/305866.html
標籤:其他
上一篇:SAP HANA計算視圖
