SAP HANA 的報告與分析

報告(Reporting)與分析(analytics)是BI工具中的主要流程,好幾種的SAP或其他第三方的BI工具都有這種功能。這一篇文章中我們將會提及SAP BW/4HANA 高效能的工具 — 視覺化報告/分析系統。

SAP BW/4HANA在之前的版本中是將資料的運算/OLAP的操作都放到了 application server layer(OLAP engine)運行,新的版本則是將上述提及的功能拉回到的DB layer來處理。SAP提供了以下幾種工具來進行報告/分析:

  • SAP HANA analysis process
  • Application Function Library
  • Predictive Analysis Library
  • R scripts for statistical computing and data mining
  • text analysis。

SAP BW/4HANA Queries

包含了好幾種的functions與properties來實現在multi-scale datasets 的multidimensional analysis。一個稱為 analytic manager會負責data在InforProvider中對資料的query(retrieving/processing/formatting)。

Queries在 SAP BW/4HANA有以下主要部分

Query properties
定義query執行過程的設定和對第三方工具的可見性的組合設置。 這些query屬性可細分為常規屬性和運行時屬性

Sheet definition
query elements 的組合形成一個工作表,該工作表提供了一種根據報告需求管理資料的機制。

Query elements
這些是characteristic InfoObjects; basic, restricted, and calculated key figures; structures; formulas; and selections

Filters
一系列影響data reported的限制,可以限制從InfoProvider檢索並在報告中使用的資料量。

Variables
可以定義並與InfoObjects關聯的objects,以幫助使filters和選擇更加靈活並合併複雜的規則

Conditions
組合規則以進一步限制所顯示的資訊,例如根據特定key-figuer的前N個記錄

Exceptions
組合規則和alerts以突出顯示報告中的某些數字

Creating a Query with Eclipse-Based Query Designer

之前我們有提到Query properties有分為常規與運行時的屬性。我們先看屬於常規的屬性設定(如下圖)

其中,Zero Suppression是指當rows or columns不論是result values等於零或是當所有的individual values等於零時都會被隱藏起來。另一個是remote access, 當中支援不同的協定

By OLE DB for OLAP: MDX-enabled frontends,像是 SAP BusinessObjects tools

External SAP HANA View : 給SQL-based ODBC third-party tools用的,像是Tableau。當這個選項被啟用時SAP BW/4HANA queries會自動產calculation views.

OData : Representational State Transfer (REST), 像是Qlik

Universal Display Hierarchy,階層性的資料顯示。例如資料階層有 country/state/city若你只要顯示到state就選擇 “Up to level 2”.

運行中的屬性設定(如下圖)是為了override InfoProvider的常規設定。這裡分為兩個部分,

  1. Common Runtime Properties

Process Key Figure with High Precision
使用10進位的小數點運算。有小數點後16與34個數字長度,16位數字長度是預設值為的是減少當資料儲存在OLAP cache的記憶體中。

No Parallel Processing
當Query執行時,它可以在內部被分為好幾個subqueries.這是根據 objects與formulas的複雜度,特別是當query包含了 calculated or restricted key figures與hierarchy conditions. 這個設定中你還可以把subqueries的處理方式分為sequentially 或parallel. 如果是Parallel processing,假定你有一個InfoProvider 是有non-cumulative key figures,哪這一個query processing會分成兩個階段:
會先parallel處理non-cumulative key figures的資料,之後再依序(sequentially)處理non-cumulative key figures避免記憶體的資源耗盡。

Calculating Commutative Formulas After Aggregation
Commutative formulas(例如加法或減法)可以在Aggregation之前或之後進行運算,並返迴相同的結果。如果是before aggregation選項可確保對從InfoProvider傳輸到OLAP engine的dataset中的每個record執行公式計算。 如果公式是在aggregation後計算的,則計算次數取決於查詢中公式的granularity level.

Query Is used as InfoProvider
允許query用作data flow的InfoProvider

OLAP Effort
這一個設定是為了限制OLAP對於在做大量資料的Query。同時也可以被使用在query structure是大規模的或是有複雜的calculations,會讓OLAP engine產生大量的資料結果的。

2. Runtime Profile Properties

Data Integrity Profile
可以讓你從InfoProvider取得資料時是透過predefined available profiles或是客製化設定的expert mode

Query Read Mode
定義OLAP processor如何從InfoProvider在initial query execution與navigation of the query results取得資料。

Query Cache Mode
通過將OLAP calculation result 儲存到具有高度壓縮的SAP BW / 4HANA中的cache中(預設的情況下),定義了不同的選項和演算法,以使用SAP BW / 4HANA cache來優化查詢運行時間。你也可以透過Transaction RSRCACHE 來調整cache的壓縮參數。建議查詢緩存的壓縮大小接近2GB,且compression threshold大於cache中的5000 row

Cache Usage Mode
定義是否將cache emtries用於顯示查詢結果。

Update Cache Objects in Delta Process
指定將在query中檢索到的new data添加到cache中;這也稱作 delta caching

Type of SP Grouping for Delta Caching
幫助優化delat cache. 例如,如果Query基於帶有多個InfoProvider的CompositeProvider,可以對其進行設定,以便將每個InfoProvider的data分別存儲在cache中. 此選項的優勢在於,當執行Query時,只會重新讀取已經變動過資料的InfoProvider。 但這麼做也消耗更多的memory來存儲這些單獨的dataset.

Operations in SAP HANA/BWA
此設定讓你可以將通常在OLAP引擎中執行的複雜計算下推送到SAP HANA DB。

Materialize Intermediate Query Result
SAP BW / 4 HANA提供了一個實現intermediate Query result的選項,它與SAP HANA / BW中的 property Operations結合使用;當 Operations設定為Exception Aggregation 或Formulas Calculated, 大部分的query processing會在HANA DB中處理完。這樣,可以計算Query的intermediate results並將其具體化,以便在drill down操作期間重複使用,並為具有大型dataset的查詢提供更好的性能.儘管對於較小的dataset或根據create query時使用的效能優化等級,在每次執行query時保留intermediate results的重新計算可能會更快。

Use Selection of Structure Elements
此屬性確保僅將structure中存在的elements及其選擇傳遞到dataset以檢索查詢dataset. 例如,如果你的記錄具有在三月和四月的金額,並且在query structure中僅顯示“三月”的column。 此屬性確保僅處理具有三月 record的記錄。這樣,如果你有很多選擇或受限制的key figures,這些key figures或者在初始查詢執行過程中最初沒有顯示,或者在多個操作(例如“篩選”和“drill down”)中使用,則可能會提高性能。

Also Read Child Members
這個設定是當啟動這個property時對屬性“Use Selection of structure elements”的增強功能。 它會自動將所有層次結構後繼元素合併到層次結構類型結構元素的過濾器中,以進行data retrieval。

Optimization Mode
定義現行query優化OLAP processor memory的頻率。 預設情況下,此優化在第一次執行查詢時進行,並且在最後一次優化後31天進行。 它也可以根據“優化期間”屬性定義發生。

Optimization Periods
如果已將Optimization Mode設定為Query Optimization with Individual Period in Days,則定義在OLAP engine優化中要使用的時段。 如果始終將InfoProvider完全刪除並重新reload,則可以使用此設定.

Stat. Detail Level
顯示查詢運行時的統計詳細資訊的詳細資訊程度,如查詢對Trasnsaction RSDDSTAT(Maintenance of Statistic Properties)中所定義.

Filters

Query filter 是一種在quert data時限制要選擇資料。它可以被定一在單一的Query中或是被定義在InfoProvider來重複性的使用。下面就來介紹它的屬性與如何使用filter

Query Filters
Filters是在做Query時針對查詢到的資料所做的一些資料篩選。使用filters的功能主要是在做Query時只針對需要的資料從DB從取出並送到OLAP processor。允許你為報表選擇的InfoProvider可用的characteristics 來create fixed-value filters and default-value ilters

上圖中有兩種設定,區別如下

Filters with fixed values
characteristic values會被使用於filter selection 而且在有query result之後是無法被更改的。

Filters with default values
characteristic values一樣是使用於filter selection但是是在背景中執行的; 它們不會被顯示在selection screen中,但你可以再有query result後更改或移除它。

上面兩種設定你都可以associate variablesy在Query的過程中來接收flexible values

Special Feature: Query Definition without Key Figures
假設你的query中只會有characteristics在query structure中(rows/columns),但在規定中每一個query至少要有一個key figure. 這種狀況下你可以把key figure 加入到Filter: Fixed Values 的panel中. 舉例你可以create一個有customer details的list,這個list包含單筆的 sales order是大於10,000的。

Global Filters

Global Filters是一個可以在同一個InfoProvider並且是不同的query中重複使用的elements。這種功能可以讓你使用相同的filter logic來群組query. 這個好處是當你要change filter logic時只要更動globla filters就好,不用去更動每一個單一的query, 所以當你change logic在global filter時就可以做regression test 。
若你做好filter之後想要把它變成global filter可以如下圖來實作

當你不要這 一個global filter也可以把它移除(如下圖)

Variables

這一個是在不同query elements的query type的參數設定。不同於fixed-value filters,Variable是在query執行時才需要填上新對應的values的。
Query elements通常都伴隨著 InfoObjects,因此每一種的InfoObjects type只能只用某些特定的variable type. 當variable與 InfoObjects有連結時這些variable才可以被使用在query中。

Creating Variables
當你create variable時你必須設定 variable type跟 processing type(如下圖)

Type of Variable基本上有以下幾種

Characteristic Value
包含或限制BW/4HANA characteristics values — 例如,current date in date-type characteristics

Hierarchy
包含或限制hierarchy names — 例如,cost center hierarchies為了做分析而定義在不同的群組中,但又是share同一個cost center.

Hierarchy Nodes
包含或限制 與其相關的hierarchy nodes — 例如特定的cost center

Text
主要是query elements的文字敘述

Formula
包含可在公式,expections和條件中使用的數值.例如,你可以為匯率create formula variable,這個variable將在執行查詢後進行處理

Processing By是指在query運行時將需要的值輸入的方法,支援以下幾種

Manual Input/Default Value
允許在query運行時手動將想要的values輸入。這個想要輸入的value你也可以在variables editor中的default tab中填入就不用每次需要手動輸入。在查詢運行期間,對於準備輸入的variable,default value顯示在與查詢選項中的variable關聯的input field中。 對於尚未準備就緒的variable,將使用variable中定義的default value。

Replacement Path
允許你指定在執行查詢時自動替換variable的值或reference characteristic。例如你有最近12個月的dynamic columns(取決於當前月份),並且可以使用replacement path來設定使用的月份名稱。

Authorization
可以使SAP BW / 4HANA使用在用戶授權對像中定義的vaules來輸入此流程類型的variable,這些值是在與variable中選擇與授權相關的屬性時產生的。 可以與characteristic和hierarchy node variables一起使用

Query Sheet Definition

這是用來你在create query時所需要的structure(如下圖).輸入這一些(characteristics, key figures, formulas, structures, and restrictions)變成是一個collection來產生你所需要的報表。Sheet definition的elements可以是Rows/Columns或是Free characteristics.
Free characteristics是一種Object,這種object在執行default view的報表時不會顯示出來。它們通常加在runtime裡方便你做動態分析。

有幾種Object可以在這邊被使用

Characteristics
這些是InfoProvider中可用的InfoObjects或Fields,為報表中的金額和結果提供了上下文。 這些特徵可以是以下類型
1. Time characteristics
2. Master data characteristics — 可能包含attributes, texts, and hierarchies。這一類的資料不是經常變動的而且也不會影響transaction只是把它當成是reference.
3. Hierarchy characteristics — 以樹狀結構表示master data,該樹狀結構包含在它所引用的InfoObject中,例如,產品層次結構。
4. Unit characteristics — 具有貨幣或度量單位的master data characteristics。 它們經常與key figures 相關聯/鏈接,以便為key figures所代表的數量提供背景訊息。
5. Non-master data characteristics — 交易數據本身中的屬性-例如,銷售訂單號.

Basic key figures
在InfoObjects它們通常代表數字。在貨幣金額或數量的情況下,它們可能與unit type characteristic相關聯

Calculated key figures
它們是可重複使用的elements;它們是通過與InfoProvider的關聯create的,並且可以在共享同一InfoProvider的多個query中使用. 使用計算出的key figures,你可以定義公式和aggregation。 如果需要在query中進行特殊計算,則可以在query中創建一個local element,以引用計算所得的key figure定義為基礎,並將更改應用於此新element.

Restricted key figures
類似Calculated key figures,也是可以被重複使用的。使用Restricted key figures你可以定義filter selections來限制對key figure來說那些record是我要的哪些又是我不要的。例如,在一個具有相同basic key figure的計劃和實際金額的InfoProvider中,你可能希望create兩個單獨的Restricted key figures,以將報表中的計劃和實際金額顯示為兩列,而無需在你的report中添加navigation level而這個navigation level可能包含許多characteristics.

Global structures
這些是直接連結到InfoProvider的structure,可以在共享同一InfoProvider的多個query中重複使用; 這些strcuture的變動將復製到那些queries.

把objects重複使用如下

Interfaces for Analysis

SAP BW/4HANA可以整合好幾種的前端分析工具來做分析。你可在analytic manager開放open analysis interface來整合這些分析工具,這些interface分為multidimensional interfaces and lightweight consumption interfaces。

Multidimensional Interfaces

這是基於Multidimensional Expressions (MDX) query language。MDX的特性是能使用一種的generic format給到不同的前端分析工具,讓你能使用複雜的object(像是hierarchies)。
這些前端的分析工具的通訊協定如下:

OLE DB for OLAP (ODBO)
使用Component Object Model (COM)協定,只支援Microsoft Windows 平台而且需要再本機安裝驅動程式。

OLAP BAPI
使用RFC協定,使用於SAP的各種平台

XML for Analysis
使用HTTP/SOAP協定;SOAP client proxy必須被產生在client端且是使用的Web Service Definition Language (WSDL).

這些分析工具跟SAP BW/4HANA之間的協定溝通是靠MDX processor來處理的。因此就會有一個agent處於OLAP processor與這些分析工具之間。The MDX processor會從前端的分析工具接收要求(基於不同的協定)並且將者這些分析要求傳送到OLAP processor來處理。

Lightweight Consumption Interfaces

這是使用在一些簡單的場景上,沒有透過MDX processor而是透過OData服務通訊的方式要求OLAP processor處理。這個方式大都是使用在行動裝置(像是smartphones, tablets, digital signage)。 OData服務設定與啟用如下圖

Odata的URL的結構會是這樣
<Protocol>://<Server>:<Port>/sap/<Service>
例如:
http://sapserver.com:8000/sap/opu/odata/sap/ZDANSALES_Q001_SRV

SAP BusinessObjects Tools

這是包含了好幾種可以與多個不同種類的SAP system整合的工具。第一個部分是connection的整合,connection是被一個稱為Central Managemen Console (CMC)所管理的。要進入這一個console的URL會是這樣
<protocol>://<ser-ver>:port/BOE/CMC
protocol的部分看你是用http or https,在 CMC中你會看兩種connection type

Relational Connection
當這個工具是用SQL來處理資料的

OLAP Connections
工具是使用MDX來處理資料。下圖是不同的工具支援這一個方式的(如下圖)

雖然可以支援這麼多工具,但我們以下會介紹四種最常用的。分別是universes, SAP HANA, SAP HANA: Online, and SAP BEx。

Universes

這是一個最常用的方式。主要是當前端分析工具與SAP HANA view的橋樑。在這一個方式中部分的資料處裡會在SAP BusinessObjects servers然後將Query result送至前端的分析工具。如果你有多個SAP HANA views使用uriverse joins,你可以設定JOIN_BY_SQL參數來優化處理效能。不過你可以直接使用SAP BusinessObjects工具讓你直接連結SAP HANA views(處於分析工具與SAP HANA database之間)去除掉Universes這一層。

SAP HANA

SAP HANA data source讓你直接連結被create的SAP HANA views。在SAP BW/4HANA中,你可以在Remote Access panel的General property External SPA HANA View使用這一個connection. 這個選項被啟用後SAP HANA view的名稱就會自己跟query的名稱一樣。使用這種data source 這兩種的relational or OLAP connection type都可以支援。

SAP HANA: Online

這種方式只有support relational connection types. 意思是multidimensional elements(像hierarchies)是沒辦法使用的。也沒辦法在前端分析工具create microcube,這用在比較資料量較小報表的複雜度不高時。

SAP BEx

SAP BW/4HANA queries是被create基於Eclipse-based editor上並且會被回存到SAP BW/4HANA system的baclend中。這些queries是能夠透過Transaction RSRT去accessed跟executed的。
所以使用SAP BusinessObjects,你可以用BEx data source去access這些queries.當你使用SAP BEx data source時,被選擇到的qwuery是無法透過SAP HANA content packages去執行的而是SAP BW/4HANA InfoAreas and InfoProviders(如下圖)

比較SAP BEx和SAP HANA OLAP connection,在SAP BusinessObjects Web Intelligence中create report時,SAP BEx connection不會為data source中為報表選擇的所有characteristics創建hierarchy members,而只會為hierarchies defined活動的層次結構 SAP BW / 4HANA中的query顯示在query builder中.

Third-Party Business Intelligence Tools
SAP也提供了透過ODBC, JBDC與ODATA的方式與第三方工具整合。

總結
這一篇我們提到了SAP在reporting and analytics的一些進階功能與第三方工具的整合。我們也提到SAP BW/4HANA做為一個data modeled的central repository與協調analytical 跟reporting.

--

--

運用"雲端服務"加速企業的數位轉型願景
運用"雲端服務"加速企業的數位轉型願景

Written by 運用"雲端服務"加速企業的數位轉型願景

我們協助您駕馭名為"雲端運算"的怪獸,馴服它為您所用。諮詢請來信jason.kao@suros.com.tw. https://facebook.com/jason.kao.for.cloud

No responses yet