《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系統執行與系統管理相關的所有操作(例如,監控、權限、備份恢復等)。
如圖2-9所示,用戶可以在這個視圖下查看SAP HANA系統的基本管理信息(例如,內存和CPU使用率),對系統進行配置、日志查看、安全審計和備份等操作。
在這個視角下,管理員用戶可以對數據庫進行運行監控和管理等操作,創建數據庫Schema、表、視圖、存儲過程,創建用戶、角色、賦予權限等操作。此外,還可以單擊SQL Console按鈕,打開一個SQL查詢的執行界面,然后直接輸入SQL語句,執行需要完成的操作。
**提示信息:
在這個管理員視角下,能做的操作就是將SAP HANA當作一個數據庫來進行常規的管理操作。**
這是SAP HANA XS原生應用的開發視角,也是本書中主要應用的視角。
如圖2-10所示,在該視角下,用戶可以使用XS系統資源庫來管理項目,創建基于SAP HANA的原生應用程序。
這是SAP HANA信息建模的視角,在SAP HANA提供XS項目的開發功能之前,信息建模視角和系統管理視角是SAP HANA工作臺的主要功能。
如圖2-11所示,在該視角下,用戶主要是創建信息模型(屬性視圖、分析視圖、計算視圖,本書中統稱為信息模型),并且將開發的內容打包為Delivery Unit(簡稱DU,交付包),然后在SAP HANA系統中進行DU的導入/導出等。
**注意事項:
因為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所示。
Catalog文件夾存放著當前SAP HANA系統下的所有Schema,每個Schema可以被視為一個單獨數據庫空間。用戶可以創建新的Schema,并且可以在新Schema下創建新的數據庫表、存儲過程、Sequence、觸發器、視圖等。
Security文件夾存放著當前系統的審計策略和設定信息,以及SAP HANA的所有用戶、角色。管理員用戶可以直接在這里創建新的用戶和角色,也可以對已有的用戶和角色進行權限上的調整。
創建一些SDA的配置,為外部的其他數據源(見圖2-13)在SAP HANA中配置一個連接對象。例如,創建一個Oracle的連接,這樣可以在SAP HANA中通過Virtual Table作為媒介對Oracle數據庫中的表進行讀/寫操作。
在Content文件下存放著系統自帶的業務內容和用戶自己開發的業務內容,主要是信息模型對象和分析權限,而且Content下面的package在展開之后,只會顯示那些信息模型對象,而將其他的Web對象統統隱藏起來了。如果用戶需要查看這些package下被隱藏的對象,需要切換到Repositories標簽下進行查看。
如圖2-14所示,即使不使用XS項目,用戶也可以直接在這里創建package、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這個系統的。
用戶可以輸入SQLScript語句,然后單擊按鈕或者按F8鍵執行該SQL代碼,最后,在Result選項卡中會出現這個SQL操作的結果,并且在下面的log區域會返回SAP HANA執行該SQL代碼所花費的時間,以及處理是否成功的提示。如果出現錯誤(如權限不夠、語法不對),提示信息也會出現在log區域。
提示信息:
在SAP HANA工作臺中,可能會使用多個不同的用戶連接同一個SAP HANA系統。如果要用不同的用戶去執行SQL Console界面中的SQL語句,那么只需要單擊按鈕,就可以切換到其他的用戶上。
2.3.4 創建表和上傳數據
用戶可以直接在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對象。
展開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應用的運行期配置、訪問統計等信息
注意事項:
因為前面提及了SQL Console,這意味著用戶可以在SQL Console中執行SQLScript腳本,如CREATE COLUMN TABLE、CREATE SCHEMA等操作。既然可以創建對象,這就引出了一個創建出來的對象的擁有者的問題,因此,這里做一些補充說明。
- 所有通過SQL Console創建的數據庫對象,其擁有者是當前執行這個SQL命令的用戶。如果其他的用戶希望訪問這個數據庫對象,只能讓這個對象的擁有者賦予其操作的權限,否則,即使是SYSTEM也無法訪問。
- 所有在XS項目中創建數據庫對象的定義,激活后產生的數據庫對象的擁有者是
_SYS_REPO這個系統用戶。
前面我們使用SYSTEM賬戶登錄了HANA系統,并且創建了DEMO用戶,及其同名的Schema,接下來,就可以在Schema中創建數據庫表了。
(1)使用圖形界面
在SAP HANA工作臺中,找到可以使用的Schema對象,在該Schema對象上右擊,在彈出的快捷菜單中選擇“New Table”命令,如圖2-17所示。
接下來,會在右邊面板中出現圖2-18所示的界面。用戶可以在這個數據庫表的定義面板中實現以下功能:
- 定義新創建的數據庫表的名稱。
- 定義數據表的存儲類型,即是行存儲還是列存儲。
- 定義數據庫表所包含的字段及其SQL數據類型。
- 定義額外的索引對象。
表2-3列出了在SAP HANA中可以使用的SQL數據類型,在創建數據庫表時可以參考進行引用。
(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”按鈕,進入下一步。
在“Target System”向導界面中選擇一個目標系統,以及以哪個用戶來執行此次Import操作。
如圖2-20所示,本次選擇了“TR2(SYSTEM)”作為目標系統(注:TR2是HANA系統,表示以SYSTEM為登錄用戶來執行這個操作),將數據導入TR2這個SAP HANA系統,Import數據的操作則使用SYSTEM這個賬戶來執行。
單擊“Next”按鈕,進入下一步,并且在圖2-21所示的界面中設置以下參數。
Surce File:具體的CSV數據文件。
Field Delimiter:離線文件的數據分隔符。
Header Row:離線文件是否有頭描述行。
Import all data:從文件的第幾行數據截止到第幾行數據。
Target Table:是將數據加載到現有的某個Schema中的數據庫表,還是根據本地CSV文件的數據類型來新創建一個數據庫表。
設置好上述信息后,單擊“Next”按鈕,進入下一步。
在圖2-22所示的界面中,SAP HANA工作臺提取了一些“data.csv”文件中的數據,并顯示在該界面左邊的Source Filed區域,同時將其命名為COLUMN_0、COLUMN_1、COLUMN_2、COLUMN_3。
在圖2-21所示界面右邊的Target Table區域,將目標數據庫表中的所有字段和類型信息顯示出來,供用戶建立映射關系時使用。
最后,用戶需要單擊按鈕,建立離線數據文件列和目標數據庫表列的一個映射關系,完成后的效果如圖2-22所示。
最后,單擊“Finish”按鈕完成整個過程。
在Import過程執行完成之后,右擊目標數據庫表,在彈出的快捷菜單中選擇“Open Data Preview”命令,就可以顯示出當前這個數據庫表中所有數據記錄,如圖2-23所示。
到這里為止,關于使用SAP HANA工作臺提供Import向導功能的介紹結束了。
提示信息:
在用戶導入少量數據的情況下(例如,幾十萬條數據記錄),使用SAP HANA 工作臺的Import向導工具較為快速。
如果用戶需要導入的離線數據量較大(例如,離線數據文件超過幾千萬條記錄或者容量有好幾個GB),而當前環境中又沒有ETL軟件可以使用,則可以考慮在服務器端使用Import命令來進行導入,其基本的操作方式如下。
將離線文件復制到HANA系統所在的Linux系統中的某個目錄下,在SAP HANA工作臺中打開SQL Console,然后執行如下命令:IMPORT FROM CSV FILE '/LINUX目錄/離線數據文件名.csv' INTO "目標Schema"."目標數據庫表" WITH RECORD DELIMITED BY '\n' FIELD DELIMITED BY ',' THREADS 20 BATCH 5000;
使用Import命令可以將較大的離線數據文件導入到SAP HANA中,而且不需要任何ETL軟件環境。關于Import命令更為詳細的參數介紹,可以參考SAP HANA SQL Reference Manual文檔→SQL Statement→Data Import Export Statements→IMPORT FROM部分。
總結
以上是生活随笔為你收集整理的《SAP HANA平台应用开发》—第2章2.3节熟悉SAP HANA工作台的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysqld-nt.exe是什么
- 下一篇: 《HBase权威指南》一导读