本節書摘來自華章出版社《sap hana平台應用開發》一書中的第3章,第3.1節資訊模組化,作者劉剛,更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視。
第3章 信 息 建 模
如果讀者已經具有關于sap hana資訊模組化和存儲過程的知識,可以跳過本章及第4章,直接學習第5章,這樣并不會對後續的學習有任何影響。
在sap hana中進行xs應用開發時,最先接觸到的開發對象應就是hana資訊模型(屬性視圖、分析視圖、計算視圖、sql視圖)了。但是,資訊模組化僅僅是sap hana xs應用開發的一個組成部分,相對比較獨立。
在實際項目中,不使用任何資訊模型也能完成整個xs應用的開發。但是,因為基于sap hana的資訊模型是一個虛拟多元資料立方體,并且還提供了應用權限(application privileges)對象,這可以使我們很容易應用它的高效率聚合運算、層級視圖、虛拟計算列、通路隔離特性、靈活複用性、易于更新等功能,而且資訊模型的運算效率比純sql的表關聯查詢效率要高,這也是在xs應用中大量應用它的原因。
**注意事項:
第3章和第4章執行和示範的開發方式均沒有采用xs項目的方式,而是直接在hana運作期的content下進行開發的。之是以這樣做,是因為sap hana資訊模組化隻是xs應用開發的一個部分,并且不依賴于任何xs對象,它還早于xs應用伺服器被包含到sap hana産品中的,是以,筆者覺得第3章和第4章與xs應用開發沒有直接關系(沒有引用任何xs應用的對象)。隻是從sps08開始,hana資訊模組化也有了設計期對象(xxx.attributeview、xxx.analyticalview等),開發人員在xs項目中對其進行建立、修改、激活操作。
如果将這些資訊模組化的内容放入xs應用開發的過程中進行講解,讀者可能突然就從xs應用的開發中跳轉到hana資訊模組化了,然後在2章之後,又回到xs應用的開發,這樣會導緻本書的編排出現問題,會使讀者覺得内容不夠自然和流暢。
學習完sap hana資訊模組化之後,再學習開發xs應用,直接在xs項目下建立一個hana資訊模型、分析權限,然後在xs項目中使用這些建立好的資訊模型就可以了。
這裡應注意一點:在xs應用下開發的sap hana資訊模型是放在xs項目下的package中,而不是直接在content中建立出來的。**
3.1 準備工作和tpc-h
在2.3.4節,已經建立了demo、demo_2、hana_tpch三個使用者,接下來會使用hana_tpch使用者登入到sap hana系統,然後建立tpc-h表,并且導入一些測試資料。
hana_tpch這個使用者擁有以下權限:
modeling(系統權限)。
_sys_bic的select、execute操作權限。
_sys_bi的select、execute操作權限。
tpc-h表定義的sql腳本和資料,可以在www.hanapost.com/download中下載下傳,打開tpc-h的sql腳本之後,記得将schema名字換成你自己建立的schema名字。圖3-1所示為tpc-h模型的所有資料庫表的關系圖,如果讀者建立了一些測試資料,也應考慮這些資料的一緻性。
接下來,介紹在sap hana工作台中的具體操作步驟。由于attribute view(屬性視圖)是sap hana模組化的基礎,是以這裡先介紹如何使用sap hana工作台的模組化工具建立tpc-h模型中的兩個屬性視圖,如圖3-2所示。
本節将重點介紹客戶(customer)屬性視圖的建立步驟。對于供應商部件(supplier_part),其操作步驟與客戶類似。為了節省篇幅,在本節的結尾隻會圍繞幾個截圖進行簡要介紹,不再涉及具體步驟。
從模組化方法來看,sap hana模組化應該歸到rolap(relational olap)的範疇,是以,屬性視圖取代了傳統rdbms中的次元表。并且,可以使用屬性視圖實作更加靈活、複雜的功能:
可以在多張oltp業務表的基礎上建構單個次元。
可以暴露資料庫表的部分列,或添加新列(calculated column)。
可以預先設定過濾條件(filter),減少查詢時的資料量,提高效率。
可以建立hierarchy(層次結構),實作分析中常用的鑽取功能。

sap hana模型視圖需要存放在同一個地方,是以,首先需要建立一個後面要用到的package。在本例中,建立一個名為demo的package。
步驟如下:切換到sap hana modeler視角,然後在content檔案夾中右擊,建立一個package(名稱為demo),暫時不為它配置設定任何delivery unit。