天天看點

《SAP HANA平台應用開發》—第2章2.3節熟悉SAP HANA工作台

本節書摘來自華章出版社《sap hana平台應用開發》一書中的第2章,第2.3節熟悉sap hana工作台,作者劉剛,更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視。

2.3 熟悉sap hana工作台

sap hana工作台是一個用戶端軟體,是基于eclipse核心并且遵守gpl規範進行的擴充和功能開發。sap提供了不同作業系統版本的軟體供使用者下載下傳。

sap hana工作台的版本必須和sap hana伺服器的版本相同,revision的版本盡量不要相差太多,雖然其也支援向下相容,但是畢竟不同的sps版本還是有一些差異的,是以,在項目開發中,盡量保持sap hana伺服器和sap hana工作台軟體版本的一緻性。

作為和sap hana系統進行互動工作的用戶端軟體,sap hana工作台軟體提供了如下功能:

對sap hana系統進行監控、安全管理、配置管理、審計、啟動和更新、系統備份等。

在sap hana中建立資料庫表、視圖、存儲過程、資訊模型。

對sap hana進行data provision操作,從外部系統實時複制資料到sap hana,或者直接将離線csv檔案傳輸到資料庫表中。

基于sap hana共享資源庫進行xs原生應用的協同開發、部署、版本管理。

2.3.1 視角切換

在啟動sap hana工作台用戶端軟體後,單擊工具欄上的“”按鈕,sap hana工作台軟體會出現圖2-8所示的界面,使用者選中不同的視角,然後單擊“ok”按鈕,将會使sap hana工作台切換到不同的視角中。

在sap hana工作台中最常用的視角有三個,下面對這三個視角及該視角下的能做的一些操作進行簡要介紹。

sap hana administration console視角

在該視角下,使用者可以對sap hana系統執行與系統管理相關的所有操作(例如,監控、權限、備份恢複等)。

《SAP HANA平台應用開發》—第2章2.3節熟悉SAP HANA工作台

如圖2-9所示,使用者可以在這個視圖下檢視sap hana系統的基本管理資訊(例如,記憶體和cpu使用率),對系統進行配置、日志檢視、安全審計和備份等操作。

《SAP HANA平台應用開發》—第2章2.3節熟悉SAP HANA工作台

在這個視角下,管理者使用者可以對資料庫進行運作監控和管理等操作,建立資料庫schema、表、視圖、存儲過程,建立使用者、角色、賦予權限等操作。此外,還可以單擊sql console按鈕,打開一個sql查詢的執行界面,然後直接輸入sql語句,執行需要完成的操作。

**提示資訊:

在這個管理者視角下,能做的操作就是将sap hana當作一個資料庫來進行正常的管理操作。**sap hana development視角

這是sap hana xs原生應用的開發視角,也是本書中主要應用的視角。

如圖2-10所示,在該視角下,使用者可以使用xs系統資源庫來管理項目,建立基于sap hana的原生應用程式。

《SAP HANA平台應用開發》—第2章2.3節熟悉SAP HANA工作台

sap hana modeler視角

這是sap hana資訊模組化的視角,在sap hana提供xs項目的開發功能之前,資訊模組化視角和系統管理視角是sap hana工作台的主要功能。

如圖2-11所示,在該視角下,使用者主要是建立資訊模型(屬性視圖、分析視圖、計算視圖,本書中統稱為資訊模型),并且将開發的内容打包為delivery unit(簡稱du,傳遞包),然後在sap hana系統中進行du的導入/導出等。

《SAP HANA平台應用開發》—第2章2.3節熟悉SAP HANA工作台

**注意事項:

因為sap hana資訊模組化的功能目前已經全部被整合到xs項目中,所有新開發的資訊模組化的對象(屬性視圖、分析視圖、計算視圖、分析權限)都可以作為一個設計期對象放在xs項目中。從長期來看,這個視角下的功能應該會被逐漸廢棄,目前處于一個過渡時期,是以還保留着這個視角。

因為很多老sap hana項目的hana資訊模型基本上都是直接在content目錄下開發的,目前無法直接将其遷移到一個xs項目中(遷移過去之後,視圖的名字和package都将發生變化),是以,還保留着這個開發視角讓客戶可以維護原來在非xs項目中直接開發的視圖。**

2.3.2 sap hana系統運作期對象

切換到“administration”視角,目前sap hana系統中的所有運作期可以執行的對象都分布在以下4個檔案夾中。展開一個sap hana系統,就能看到catalog、content、security、provisioning這4個檔案夾,每個檔案夾中所儲存的内容都是不同的,如圖2-12所示。

《SAP HANA平台應用開發》—第2章2.3節熟悉SAP HANA工作台

catalog檔案夾

catalog檔案夾存放着目前sap hana系統下的所有schema,每個schema可以被視為一個單獨資料庫空間。使用者可以建立新的schema,并且可以在新schema下建立新的資料庫表、存儲過程、sequence、觸發器、視圖等。

security檔案夾

security檔案夾存放着目前系統的審計政策和設定資訊,以及sap hana的所有使用者、角色。管理者使用者可以直接在這裡建立新的使用者和角色,也可以對已有的使用者和角色進行權限上的調整。

provisioning檔案夾

建立一些sda的配置,為外部的其他資料源(見圖2-13)在sap hana中配置一個連接配接對象。例如,建立一個oracle的連接配接,這樣可以在sap hana中通過virtual table作為媒介對oracle資料庫中的表進行讀/寫操作。

《SAP HANA平台應用開發》—第2章2.3節熟悉SAP HANA工作台

content檔案夾

在content檔案下存放着系統自帶的業務内容和使用者自己開發的業務内容,主要是資訊模型對象和分析權限,而且content下面的package在展開之後,隻會顯示那些資訊模型對象,而将其他的web對象統統隐藏起來了。如果使用者需要檢視這些package下被隐藏的對象,需要切換到repositories标簽下進行檢視。

如圖2-14所示,即使不使用xs項目,使用者也可以直接在這裡建立package、hana資訊模型(屬性視圖、分析視圖、計算視圖)和分析權限對象。

《SAP HANA平台應用開發》—第2章2.3節熟悉SAP HANA工作台

當然,直接在content下建立對象是以前的方式,如果需要開發xs應用,那麼自然而然,就需要将這些對象建立到xs項目中。

注意事項:

即使使用者不使用xs項目來進行開發,也可以做其他工作,例如,直接建立schema、資料庫表、存儲過程、視圖、hana資訊模型、角色等。

但是,唯獨web對象是無法在這三個檔案夾下進行開發的,在這種情況下sap hana中所開發的對象基本上是用來為外部的bi系統或者應用系統提供資料的。

在sap hana提供xs項目、資源庫之後,所有的開發都可以遷移到xs項目中進行開發,但是原來的功能還是繼續保留,主要原因如下:

過去直接在content下開發的對象,使用者繼續對其進行維護,暫時沒必要遷移到一個新的xs項目中。如果要遷移,原來通路這個資訊模型的外部應用有可能也需要修改代碼(因為對象所在的package路徑發生變化,那麼激活後的列視圖的名稱也會帶上新的命名空間的路徑)。

在項目上線後,sap hana系統的管理者還會建立額外的資料庫使用者、新角色,供技術支援人員來使用。

2.3.3 常用的三個按鈕

在圖2-14中,有三個按鈕,這三個按鈕是經常使用的,這三個按鈕(從左到右的順序)的功能如下。

system monitoring():打開目前sap hana工作台中所有連接配接上的sap hana系統基本監控資訊界面。

administration():顯示目前sap hana系統的資訊界面,例如,cpu使用率、記憶體和磁盤使用占比等監控資訊。

sql console():打開一個新的sql指令操作界面。使用者可以在sql console中輸入各種sql指令對sap hana系統進行操作。在後面的很多章節中,筆者隻要提及打開一個sql console,就是這個界面。如圖2-15所示,界面上的tr1(system)意味着目前的這個sql console是用system使用者來連接配接到tr1這個系統的。

《SAP HANA平台應用開發》—第2章2.3節熟悉SAP HANA工作台

使用者可以輸入sqlscript語句,然後單擊按鈕或者按f8鍵執行該sql代碼,最後,在result頁籤中會出現這個sql操作的結果,并且在下面的log區域會傳回sap hana執行該sql代碼所花費的時間,以及處理是否成功的提示。如果出現錯誤(如權限不夠、文法不對),提示資訊也會出現在log區域。

提示資訊:

在sap hana工作台中,可能會使用多個不同的使用者連接配接同一個sap hana系統。如果要用不同的使用者去執行sql console界面中的sql語句,那麼隻需要單擊按鈕,就可以切換到其他的使用者上。

2.3.4 建立表和上傳資料hana schema

使用者可以直接在sql console界面中輸入以下sql代碼,進而建立一個名為test的schema對象。如果不指定所有者,建立的schema的所有者就是目前執行這個sql的使用者。

文法如下:

create schema [owned by ]

例子如下:

create schema test owned by system

在建立好test之後,啟動sap hana工作台,使用system使用者登入到sap hana系統,然後展開hana系統,打開catalog檔案夾,test就出現在使用者可以通路的清單中了。除了上述這種指令行方式之外,也可以通過可視化向導建立新使用者(參考2.4.1節)的方式來建立一個schema對象。

在sap hana工作台中展開security檔案夾,右擊,建立一個新使用者,在最後激活這個使用者時,系統會建立一個和使用者同名的schema。該使用者就是這個同名schema的擁有者。可以對這個schema進行任何操作,對這個schema下的内容進行管理。

如圖2-16所示,假如使用system登入到系統,然後建立demo、demo_2、hana_tpch三個新使用者,系統就會自動在catalog檔案下建立出3個同名的schema對象。

《SAP HANA平台應用開發》—第2章2.3節熟悉SAP HANA工作台

展開schema對象,使用者可以在其中建立各種資料對象,例如,列視圖、資料庫視圖、索引、表類型、存儲過程、資料庫表、觸發器、序列對象等。除了使用者自己建立的新schema以外,系統也會預設自帶一些schema。表2-2對這些系統預設的schema進行了簡要介紹。

表2-2 系統預設自帶的一些schema

系統schema 說  明

_sys_bi 使用者在sap hana中建立的資訊模型的元資訊(例如,多少次元、多少名額,以及虛拟資訊立方體的資訊)都被儲存在這個schema中的資料庫表中,例如,所有分析視圖和計算視圖的元資訊都儲存在bimc_all_cubes表中

_sys_bic 在使用者建立的資訊模型、決策表被激活之後,将生成相應的column view(列視圖),這些列視圖被儲存在這個schema下

_sys_repo 使用者新開發的資訊模型、xs應用、開發包、釋出包等對象都儲存在這個schema中,包括其不斷更新、激活的版本資訊。也可以了解成在進行應用開發時的資源庫

_sys_security 儲存着目前sap hana系統的密碼、黑名單等

_sys_statistics 該schema中主要用于statistics server儲存系統運作狀态(例如,有多少新建立的資料庫表、占用多少空間、cpu運作負載、硬體和持久層的實時狀态資訊),以及監控系統所用的資料庫表

_sys_xs 儲存着使用者開發的xs應用的運作期配置、通路統計等資訊

《SAP HANA平台應用開發》—第2章2.3節熟悉SAP HANA工作台

因為前面提及了sql console,這意味着使用者可以在sql console中執行sqlscript腳本,如create column table、create schema等操作。既然可以建立對象,這就引出了一個建立出來的對象的擁有者的問題,是以,這裡做一些補充說明。

所有通過sql console建立的資料庫對象,其擁有者是目前執行這個sql指令的使用者。如果其他的使用者希望通路這個資料庫對象,隻能讓這個對象的擁有者賦予其操作的權限,否則,即使是system也無法通路。

所有在xs項目中建立資料庫對象的定義,激活後産生的資料庫對象的擁有者是

_sys_repo這個系統使用者。

hana table

前面我們使用system賬戶登入了hana系統,并且建立了demo使用者,及其同名的schema,接下來,就可以在schema中建立資料庫表了。

(1)使用圖形界面

在sap hana工作台中,找到可以使用的schema對象,在該schema對象上右擊,在彈出的快捷菜單中選擇“new table”指令,如圖2-17所示。

《SAP HANA平台應用開發》—第2章2.3節熟悉SAP HANA工作台

接下來,會在右邊面闆中出現圖2-18所示的界面。使用者可以在這個資料庫表的定義面闆中實作以下功能:

定義新建立的資料庫表的名稱。

定義資料表的存儲類型,即是行存儲還是列存儲。

定義資料庫表所包含的字段及其sql資料類型。

定義額外的索引對象。

《SAP HANA平台應用開發》—第2章2.3節熟悉SAP HANA工作台

表2-3列出了在sap hana中可以使用的sql資料類型,在建立資料庫表時可以參考進行引用。

《SAP HANA平台應用開發》—第2章2.3節熟悉SAP HANA工作台

(2)使用sql指令行

直接在sql console中輸入建立資料庫表的指令,就可以得到和上一種方法相同的結果。

create [] table ...

舉例如下:

create column table m_customer_info (

customer_id varchar(8) primary key,

f_name varchar(16),

l_name varchar(16)

);

如果需要參考源oracle資料庫系統的表,則可以将資料庫表的ddl定義資訊複制出來,粘貼到sap hana工作台的sql console中,稍加調整就可以執行。

如果oracle資料庫中有大量表需要遷移到sap hana中,可以使用sap data services或者ds workbench工具,前提是設定好目标表的資料類型(可以和oracle系統的中源表類型不一緻)。在運作該etl作業時,data services會自動在sap hana中建立相同sql資料類型的資料庫表。**導入資料

sap hana工作台中提供了import功能,使用import向導可以将離線檔案導入已有的資料庫表中。下面将示範如何使用import向導從本地計算機将離線csv檔案錄入sap hana系統的某個資料庫表中。

具體步驟如下:首先在sap hana工作台中選擇“file→import”指令,打開如圖2-19所示的界面,此時選擇“data from local file”選項,然後單擊“next”按鈕,進入下一步。

《SAP HANA平台應用開發》—第2章2.3節熟悉SAP HANA工作台

在“target system”向導界面中選擇一個目标系統,以及以哪個使用者來執行此次import操作。

如圖2-20所示,本次選擇了“tr2(system)”作為目标系統(注:tr2是hana系統,表示以system為登入使用者來執行這個操作),将資料導入tr2這個sap hana系統,import資料的操作則使用system這個賬戶來執行。

《SAP HANA平台應用開發》—第2章2.3節熟悉SAP HANA工作台

單擊“next”按鈕,進入下一步,并且在圖2-21所示的界面中設定以下參數。

surce file:具體的csv資料檔案。

field delimiter:離線檔案的資料分隔符。

header row:離線檔案是否有頭描述行。

import all data:從檔案的第幾行資料截止到第幾行資料。

target table:是将資料加載到現有的某個schema中的資料庫表,還是根據本地csv檔案的資料類型來新建立一個資料庫表。

《SAP HANA平台應用開發》—第2章2.3節熟悉SAP HANA工作台

設定好上述資訊後,單擊“next”按鈕,進入下一步。

在圖2-22所示的界面中,sap hana工作台提取了一些“data.csv”檔案中的資料,并顯示在該界面左邊的source filed區域,同時将其命名為column_0、column_1、column_2、column_3。

在圖2-21所示界面右邊的target table區域,将目标資料庫表中的所有字段和類型資訊顯示出來,供使用者建立映射關系時使用。

最後,使用者需要單擊按鈕,建立離線資料檔案列和目标資料庫表列的一個映射關系,完成後的效果如圖2-22所示。

《SAP HANA平台應用開發》—第2章2.3節熟悉SAP HANA工作台

最後,單擊“finish”按鈕完成整個過程。

在import過程執行完成之後,右擊目标資料庫表,在彈出的快捷菜單中選擇“open data preview”指令,就可以顯示出目前這個資料庫表中所有資料記錄,如圖2-23所示。

到這裡為止,關于使用sap hana工作台提供import向導功能的介紹結束了。

《SAP HANA平台應用開發》—第2章2.3節熟悉SAP HANA工作台

在使用者導入少量資料的情況下(例如,幾十萬條資料記錄),使用sap hana 工作台的import向導工具較為快速。

如果使用者需要導入的離線資料量較大(例如,離線資料檔案超過幾千萬條記錄或者容量有好幾個gb),而目前環境中又沒有etl軟體可以使用,則可以考慮在伺服器端使用import指令來進行導入,其基本的操作方式如下。

将離線檔案複制到hana系統所在的linux系統中的某個目錄下,在sap hana工作台中打開sql console,然後執行如下指令:

使用import指令可以将較大的離線資料檔案導入到sap hana中,而且不需要任何etl軟體環境。關于import指令更為詳細的參數介紹,可以參考sap hana sql reference manual文檔→sql statement→data import export statements→import from部分。