通过将事实表从关系数据库提取到 Excel 文件并部署多维数据集,可以利用表格式数据创建多维数据集。
系统会检测出列标题和数据之间的关系模式以部署多维数据集。多维数据集中可用于将表格式数据转换为结构的过程包括以下概念:
列之间的相关性
列类型(例如日期、数字和文本)之间的相关性
公用前缀和业务智能相关术语(例如成本、价格、账户)的标题文本分析
报表结构(例如合并的单元格和空单元格)
(可选)强制指定标题,用于明确定义多维数据集配置,可以包含公式来创建度量维。
度量层次(也可在多维数据集设计器的“转换数据”中生成)。
提供了示例表格式数据 Excel 文件来演示内建标题和强制指定标题。
使用表格式数据时,应分析数据,然后再利用数据创建多维数据集。接着,在创建多维数据集之后,应确定多维数据集大纲是否采用所需方式。
您可以在 Essbase 实例或多维数据集设计器中从表格式数据创建多维数据集。请参见从表格式数据创建和更新多维数据集。
内建标题使用“表.列”格式,如 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.xlsx
和 Sample_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)的度量维。这些列都有数据。一些列标题使用公式创建度量维。这些列没有数据。例如,为创建 Total Spend 维,列 O 中的标题使用下面的 Essbase 公式:Measure.Total Spend[="Addressable Spend" + "Non-Addressable Spend";]。为创建 AddSpendPercent 维,列 P 中的标题使用下面的 Essbase 公式:Measure.AddSpendPercent[="Addressable Spend"/"Total Spend";]。
转换过程可创建此层次:
当维名称重复时,转换过程还可以指定度量维。假设有一个列标题使用以下公式:Meas.profit[="a1"-"b1";],该公式可创建 Meas 维。如果在另一个列标题中使用 Meas 维名称作为顶层父级,例如 Meas.Sales,则 Sales 维也会被视为度量列。