將表格資料轉換成立方體

您可以透過將關聯式資料庫的事實表格擷取至 Excel 檔案,然後部署立方體的方式,從列表化資料建立立方體。

系統會偵測資料欄標頭與資料之間關係的模式,以部署多維度立方體。將列表化資料轉換為可以在多維度立方體中使用之結構的程序包括以下概念:

  • 資料欄之間的關聯

  • 資料欄類型之間的關聯 (例如日期、數字與文字)

  • 常用首碼與商業智慧相關詞彙 (例如成本、價格、帳戶) 的標頭文字分析

  • 報表結構 (例如合併的儲存格和空白儲存格)

  • (選擇性) 強制指定標頭,主要用於明確定義立方體的型態,而且可以包括可供建立計量維度的公式。

  • 計量階層 (也可以在立方體設計工具的「轉換資料」中產生)。

提供的範例列表化資料 Excel 檔可展示內建和強制指定標頭的概念。

如果使用列表化資料,請先分析資料再從資料建立立方體。然後在立方體建立後,必須判斷立方體大綱是否是您想要的樣子。

您可以使用 Essbase 執行處理或立方體設計工具,從表格資料建立立方體。請參閱從表格資料建立及更新立方體

使用內建標頭將表格資料轉換成立方體

內建標頭採用 table.column 格式,如 Sample_Table.xlsx 檔案中所示。本範例檔案中的資料欄標頭名稱包括 Units、Discounts、Time.Month、Regions.Region 以及 Product.Brand。

轉換程序會建立以下階層:

Units
Discounts
Fixed Costs
Variable Costs
Revenue
Time
   Month
   Quarter
Years
Regions
   Region
   Area
   Country
Channel
Product
   Brand
...

使用強制指定標頭將表格資料轉換成立方體

您可以利用強制指定標頭 (提示) 指定列表化資料在轉換過程中的處理方式。

例如,您可以強制系統將某個資料欄視為計量或屬性維度。大多數的強制指定標頭都需要有一個以方括號 [ ] 括住的關鍵字。強制指定標頭的範例如 Unstr_Hints.xlsxSample_Table.xlsx 樣板 (在儲藏庫中提供使用) 所示。

支援的強制指定標頭格式:

表格 6-1 強制指定標頭格式

指定 標頭格式 範例

Dimension generation

ParentGeneration.CurrentGeneration

Category.Product

Alias

ReferenceGeneration.Generation[alias]

Year.ShortYearForm[alias]

Attribute

ReferenceGeneration.AttributeDimName[attr]

Product.Discounted[attr]

Measures

MeasureName[measure]

Price[measure]

Measure generation

Parent.child[measure]

最上層父項若是唯一的,會作為帳戶維度名稱。若不是唯一,則會在帳戶維度中自動產生此成員。

Measures.profit[measure]

profit.cost[measure]

cost.price[measure]

Measures formula

MeasureName[=formula_syntax;]

profit[="price"-"cost";]

profit[="D1"-"E1";]

price[=IF ("S1" == #MISSING) "R1"; ELSE "S1"; ENDIF;]

Measures consolidation

MeasureName[+]:加到父項

MeasureName[-]:自父項減去

MeasureName[~]:不合併 (等同於 [measure])

預設值為不合併。

price.shipment[+]

只能替計量維度定義合併

Formula consolidation

FormulaName[+=<formula>]:加到父項

FormulaName[-=<formula>]:自父項減去

profit[+=price-cost]

cost.external[+=ExternalWork+ExternalParts]

UDA

ReferenceGeneration[uda]

Product[uda]

Skip

不會讀取資料欄。

ColumnName[skip]

column[skip]

Recur

在空白的儲存格使用最後一個資料欄儲存格值

遞迴可與其他強制指定結合;以逗號區隔的強制指定清單須以方括號括住,ColumnName[designationA,recur]。

ColumnName[recur]

Product[recur]

Product[uda,recur]

您可以將資料欄指定為計量維度,然後在轉換過程中使用公式以計算的資料建立計量維度。計量和計量公式強制指定標頭的指定方式為在計量維度名稱的後面加上以方括號括住的關鍵字或公式,然後附加到計量維度名稱。

您也可以藉由將計量和公式加到父項或自父項減去,以合併計量和公式。

若要將資料欄指定為計量維度,請在資料欄標頭中輸入計量維度的名稱,然後附加關鍵字 [measure]。例如,可以使用以下語法將 Units 和 Fixed Costs 欄指定為計量維度:Units[measure] 和 Fixed Costs[measure]。

轉換程序會以 Units、Discounts、Fixed Costs、Variable Costs 以及 Revenue 作為計量建立以下階層:

Time
   Year
      Quarter
         Month
Regions
   Region
      Area
         Country
...
Product
   Brand
...
Units
Discounts
Fixed Costs
Variable Costs
Revenue

您可以建立計量層代階層 (parent.child[measure] 階層),其方式與建立一般維度層代相似。

例如,若要建立計量階層,需要輸入 Measures.profit[measure]、profit.cost[measure] 以及 cost.price[measure],而產生以下階層:

Measures
      profit
            cost
                price

若要從公式建立計量維度,請在資料欄標頭中輸入計量維度的名稱,然後在方括號 [ ] 中附加公式語法。在方括號內,請以等號 (=) 為開頭開始公式,以分號 (;) 作為公式結尾。公式中的引數相對應於資料欄名稱或儲存格座標 (必須以引號括住)。您可以在公式中使用 Essbase 計算函數和命令。

假設您有一個名為 Spend_Formulas.xlsx 的 Excel 檔案,當中的 SpendHistory 工作表含有許多資料欄的列表化資料。例如,其中有 Year (A 欄) 和 Quarter (B 欄) 這兩個維度,以及 Spend (J 欄) 和 Addressable Spend (K 欄) 這兩個計量維度。這些資料欄都含有資料。再來,有一些使用公式建立計量維度的資料欄標頭。這些資料欄沒有資料。例如,O 欄中的標頭使用以下的 Essbase 公式建立 Total Spend 維度:Measure.Total Spend[="Addressable Spend" + "Non-Addressable Spend";]。P 欄中的標頭使用以下的 Essbase 公式建立 AddSpendPercent 維度:Measure.AddSpendPercent[="Addressable Spend"/"Total Spend";]。

轉換程序會建立以下階層:


列表化資料轉換預覽圖像。

若有重複的維度名稱,轉換程序也可以識別出計量維度。假設有一個使用以下公式建立 Meas 維度的資料欄標頭:Meas.profit[="a1"-"b1";]。若在另一個資料欄標頭中使用 Meas 維度名稱作為最上層父項,例如 Meas.Sales,那麼 Sales 維度也會被視為計量維度。