属性维概览
要说明属性维的用途,请考虑 Essbase 文件目录的库部分中提供的示例基本数据库。在此数据库中,产品具有产品特征的属性,例如产品的尺寸和包装。
属性成员位于属性维中。在 Essbase Web 界面的大纲浏览器/编辑器中查看时,属性维在大纲中的名称旁边有字母 A。
下图显示了“示例基本”大纲,其中包含“产品”维度和三个属性维:咖啡因、盎司和包装类型。在“产品”维的右侧,术语“含咖啡因”、“盎司”和“包装类型”显示这些属性维与“产品”维关联。

属性与稀疏非属性维(称为基本维)关联。在上面的示例中,“产品”维是属性维“含咖啡因”、“盎司”和“套餐类型”的基本维。“市场”是属性维“填充”和“入门日期”的基本维。
注意:
属性维和成员是动态计算(非聚合属性除外),因此 Essbase 在检索时计算属性信息。属性数据不在数据库中存储。
属性维的成员
Essbase 属性维的成员是关联基本维成员的潜在属性。将基本维与属性维关联后,将基本维成员与属性维成员相关联。
Sample_Dynamic Basic 多维数据集具有五个标准维(年、度量、产品、市场和方案)和五个属性维(含咖啡因、盎司、包类型、填充和入门日期)。

标准尺寸“产品”与四个属性尺寸相关联:咖啡因、盎司、套餐类型和入门日期。标准维“市场”与属性维“填充”关联。
Market 维成员 Connecticut 与 Population 属性维的 6000000 成员关联。这使得 6000000 成为康涅狄格州的属性。

产品成员 100-10 具有三个属性 - 它有咖啡因,在 12 盎司的容器中销售,并在罐中销售。

基本维和属性维和成员的限制
在数据库中实施 Essbase 属性时,请观察有关属性维成员及其基本维成员的规则。
只能将稀疏维标记为属性维。
在将大纲保存到服务器之前,每个属性维都必须与标准稀疏维关联作为其基本维。
属性维必须是大纲中的最后一个维。
属性维具有类型设置 - 文本、数字、布尔值或日期。文本是默认设置。虽然在维级别分配,但该类型仅应用于维的 0 级别成员。请参阅属性类型。
如果从维中删除属性标记,则 Essbase 会从其成员名称中删除前缀或后缀。前缀和后缀在大纲中不可见。请参阅设置属性维的成员名称的前缀和后缀格式。
基本维成员可以具有多个属性,但每个属性维中只能有一个属性。
例如,产品 100-10 可以具有尺寸和包装属性,但只有一种尺寸和一种类型的包装。
无法将属性与隐含的共享成员(其子代标记为共享)关联。
可以在以下比较中使用计算中的属性值:
-
> (大于)
-
>=(大于或等于)
-
<(小于)
-
<=(小于或等于)
-
==(等于)
-
<> 或 !=(不等于)
-
IN
属性维关联的限制
将 Essbase 属性维和标准维相关联时,标准维即成为属性维的基础维。基本维必须是稀疏的,虽然它可以有多个属性关联,但是任何给定的属性维只能有一个关联的基本维。
观察属性维关联的以下限制:
-
属性维必须与稀疏标准维关联。
-
标准维可以是多个属性维的基本维。
-
一个属性维仅可与一个基本维相关联。
例如,假设存在具有成员 Small、Medium 和 Large 的 Size 属性维。

如果将“大小”属性维与“产品”维关联,则不能将“大小”属性维与“市场”维关联。跟踪市场维的大小相关信息需要具有不同名称的另一个属性维。
属性成员关联的限制
在将 Essbase 属性维的成员与基本维的成员关联时,请遵守有关关联级别的规则。此外,无法将同一维中的多个属性与单个基本成员关联。
观察对属性成员关联的以下限制:
-
不能将同一属性维中的多个成员与同一基本维成员关联。例如,“瓶”和“罐”包装类型不能同时与产品 100-30 关联。
-
您可以将不同属性维的成员与基本维的相同成员关联。例如,在 16 盎司的瓶子中销售的脱咖啡因可乐产品 (100-30) 具有三个属性:咖啡因:假;盎司:16;和包装类型:瓶子。

-
Essbase 不要求基本维的每个成员都与属性维的成员关联。
-
属性维的 0 级成员是唯一可以与基本维成员关联的成员。
例如,在“群体”属性维中,只能将 0 级成员(如 3000000、600000 和 9000000)与“市场”维的成员关联。无法关联级别 1 成员,例如“小”。

属性维的 0 级成员的名称是属性值。属性维中唯一具有属性值的成员是 0 级成员。
您可以使用属性维的更高级别成员来选择和分组数据。例如,您可以使用“人员”属性维的级别 1 成员“小”来检索 3000000 和 6000000 人员类别中的销售。
-
仅将属性成员与对应基本维的 0 级成员关联。不支持在基本维的非 0 级成员上定义的属性关联,并且可以在属性查询中生成不正确或不完整的结果。
此限制适用于:- 混合块存储 (BSO) 多维数据集,无论是否已分区。
- 使用透明或联合分区的聚合存储 (ASO) 多维数据集。
- 使用联合分区的经典(非混合)块存储 (BSO) 多维数据集。
此限制不适用于以下情况:- 无分区或透明分区的经典(非混合)块存储 (BSO) 多维数据集。
- 无分区的聚合存储 (ASO) 多维数据集。
-
与特定属性维的成员关联的所有基本维成员必须处于同一级别。这称为“关联级别”。第一个属性关联确定关联级别。
-
无法将属性与隐含的共享成员(其子代标记为共享)关联。
属性类型
Essbase 属性维的类型为文本、数字、布尔值或日期。您选择的类型启用用于对数据进行分组、选择或计算的相应函数。虽然在维层分配,但属性类型仅影响属性维的 0 层成员。
文本属性类型
默认属性类型为文本。利用文本属性可以在计算中实现基本的属性成员选择和比较。由于比较是文本比较,因此 Essbase 会比较字符。例如,包装类型“Bottle”小于包装类型“Can”,因为 B 在字母表中排在 C 前面。在 Sample Basic 数据库中,Pkg Type 是一个文本属性维。
数字属性类型
数字属性维的 0 级成员的名称为数字值。在计算中可以将数值属性维成员的名称(值)包括进来。例如,可以使用“盎司”属性中指定使用盎司数来计算每盎司产品每盎司的利润。
您还可以将数字属性与基本维值范围关联;例如,要按市场群体分组分析产品销售,一个组中总人口数为 3,000,000 或更少,另一个组中总人口数在 3,000,001 到 6,000,000 之间的状态,等等。请参阅设置表示值范围的成员名称。
Essbase 支持从 1970 年 1 月 1 日期属性到 2038 年 1 月 1 日期属性。
布尔值属性类型
在数据库中,所有布尔属性维仅包含两个成员。成员名称必须与数据库的设置匹配,例如 True 和 False。如果存在多个布尔值属性维,请指定前缀或后缀成员名称格式以确保成员名称唯一;例如,Caffeinated_True 和 Caffeinated_False。请参阅设置布尔值属性成员名称。
日期属性类型
您可以使用日期属性指定日期格式(如月 - 日 - 年或日 - 月 - 年)和相应的序列信息。请参阅更改日期属性维中的成员名称。您可以在计算中使用日期属性。例如,您可以比较从自 1999 年 10 月 12 日起建立的市场中选择产品销售的计算中的日期。
Essbase 支持从 1970 年 1 月 1 日期属性到 2038 年 1 月 1 日期属性。
属性和标准维的比较
属性维和成员与标准维和成员类似。您可以添加别名和注释,包括层次结构和名称层代/级别。属性维必须是稀疏的、动态计算,并且位于大纲末尾,没有公式或共享成员。
下表介绍了属性维与标准维及其成员之间的主要差异。
表 6-2 属性维与标准维之间的差异
| 功能 | 属性维 | 标准维 |
|---|---|---|
|
存储 |
稀疏。属性维的基本维也必须为稀疏维 |
可以是密集维和稀疏维 |
|
存储资产 |
只能是动态计算。因此,不能存储在数据库中。大纲不显示此属性。 |
可以是“存储数据”、“动态计算”、“从不共享”或“仅标签” |
|
大纲中的位置 |
必须是大纲中的最后一个维 |
必须高于大纲中的所有属性维 |
|
分区 |
无法沿属性维定义,但您可以使用属性在基本维上定义分区 |
可以按标准维定义 |
|
公式(关于成员) |
无法关联 |
可以关联 |
|
共享的成员 |
不允许 |
已允许 |
|
双遍计算成员属性 |
不可用 |
可用 |
|
具有运行时公式的两遍计算 |
如果成员公式包含与属性成员名称关联的与运行时相关的函数,并且具有该公式的成员被标记为双遍,则计算将跳过该成员并发出警告消息。与运行时相关的函数包括:@CURRMBR,@PARENT,@PARENTVAL,@SPARENTVAL,@MDPARENTVAL,@ANCEST,@ANCESTVAL,@SANCESTVAL 和 @MDANCESTVAL。 |
对具有运行时公式的标准成员执行计算并标记双遍。 |
|
双遍多维:计算顺序 |
标记为两次传递的成员的计算顺序取决于大纲的顺序。最后一个维是最后计算的。 |
计算结果不依赖于在多个维中标记为双遍的成员的大纲顺序。 |
|
无成员公式的两遍计算 |
已跳过计算,发出警告消息。因此,双遍标记成员和上层成员的成员交叉点可能会返回与标准维计算不同的结果。 |
可用 |
|
非现有存储块中的密集 Dynamic Calc 成员 |
如果计算位于不存在的存储块上,则跳过密集维。 要使属性对密集成员起作用,密集成员的数据块必须存在。检索具有动态计算公式但没有属性的密集成员的数据时, Essbase 会动态创建数据块并返回值。但是,如果 Dynamic Calc(动态计算)密集成员具有属性,对属性成员执行检索将导致 #MISSING,因为 Essbase 会跳过密集成员上的动态计算,因此不会创建数据块。 要标识不存在的存储块,请导出数据库或运行查询以查明该块是否具有数据。 |
可用 |
|
成员上的 UDA |
不允许 |
已允许 |
|
合并 |
对于所有成员,通过“属性计算”维成员计算:总和、计数、最小值、最大值和平均值。在属性计算期间,大纲中的合并运算符将被忽略。 |
通过为每个成员分配所需的合并符号来指示合并操作 |
|
0 级成员键入有助于成员选择 |
可用类型包括文本、数字、布尔值和日期。 |
所有成员都被视为文本 |
|
关联 |
必须与一个基本维关联 |
不适用 |
|
电子表格下钻 |
列出与所选属性关联的基本维数据。例如,向下钻取属性“Glass(玻璃)”将显示包装在玻璃中的每个产品的销售额,其中“Product(产品)”是“Pkg Type(程序包类型)”属性维的基本维。 |
在标准维中列出较低级别或同级级别的详细信息。例如,追溯 Qtr1 将显示该季度的产品及其销售列表。 |
解析顺序和属性
如果为您的 Essbase 多维数据集启用了混合模式,则可以为属性维及其基本维设置解析顺序,从而无需将成员标记为双遍。
在混合模式下,默认计算顺序(也称为解析顺序)与块存储数据库的计算顺序相匹配,并具有一些增强功能。如果您希望使用非默认解析顺序,则可以为维和成员设置定制解析顺序。
有关混合模式的更多信息,请参见 Adopt Hybrid Mode for Fast Analytic Processing 。
对属性维进行双遍计算
对于缺少公式或公式不受支持的 Essbase 成员的属性计算,将跳过两次传递计算。
以下示例基于 Sample Basic 数据库中的 Product 维,说明了两遍计算如何处理属性维。假设成员 "400-30" 标记为双遍。
如果成员 "400-30" 具有以下成员公式:
="400–10";对 "400-30" 执行检索时, Essbase 将执行公式。
如果 "400-30" 具有以下成员公式:
=@CURRMBR("Market");Essbase 会跳过计算,因为公式包含不允许的 @CURRMBR 运行时函数,并发出以下错误消息:
Two-pass calc skipped on member [400-30] in attribute calc如果 "400-30" 没有成员公式,则会生成相同的错误消息,因为标记为“双遍”的成员必须具有公式。
属性和 UDA 的比较
属性和 UDA 可根据数据的特征进行分析。属性提供比 UDA 更强大的功能。本主题介绍属性与 UDA 在 Essbase 数据存储、检索、转换和计算方面的差异。
数据存储
属性只能与稀疏维关联,而 UDA 可以与密集维和稀疏维一起使用。
数据检索
| 数据检索 | 属性 | UDA |
|---|---|---|
|
您可以按属性或 UDA 值对合并总计进行分组和检索。例如,将值 "High Focus Item"(高聚焦项)与 "Product"(产品)维的各个成员关联,并使用该术语仅检索这些成员的总计和详细信息。 |
受支持 简单 |
受支持 更难实现,需要额外的计算脚本或命令 |
|
您可以对层次结构中的属性进行分类,并按属性层次结构中的较高级别检索合并总计;例如,如果每种产品都具有大小属性(例如 8、12、16 或 32),并且大小被分类为小、中、大。您可以查看小型产品的总销售额。 |
受支持 |
受支持 更难以实施 |
|
您可以创建交叉表视图,以显示与同一基本维关联的属性的合计。 |
受支持 您可以显示每个属性维的所有值的交叉表。 |
不支持 您只能根据特定的 UDA 值检索总计。 |
|
可以将布尔运算符 AND、OR 和 NOT 与属性值和 UDA 值一起使用来细化查询。例如,您可以从 100 个产品组中选择脱咖啡因饮料。 |
受支持 |
受支持 |
|
由于属性具有文本、布尔值、日期或数字类型,因此可以使用适当的运算符和函数来处理和显示属性数据。例如,您可以查看在特定日期之后推出的所有产品的销售总额。 |
受支持 |
不支持 |
|
您可以将数值属性分组到值范围内,并让维构建流程自动将基本成员与相应的范围关联。例如,您可以根据不同地区的人员范围(小于 300 万、介于 300 万到 600 万等)对销售进行分组。 |
受支持 |
不支持 |
|
通过“属性计算”维,您可以查看属性值的聚合,如总和、计数、最小值、最大值和平均值。 |
受支持 |
不支持 |
|
您可以在定义成员的计算中使用属性。例如,您可以使用产品重量(以盎司为单位)来定义度量维的每盎司成员利润。 |
受支持 |
不支持 |
|
您可以使用与属性相关的信息检索特定的基本成员。 |
受支持 强大的条件和基于值的选择 |
受支持 仅限于文本字符串匹配 |
数据转换
根据 UDA 的值,可以在将数据加载到数据库时更改数据的符号。例如,您可以使用 UDA 借记冲销所有成员的符号。属性不支持符号翻转。
计算脚本
| 计算脚本 | 属性 | UDA |
|---|---|---|
|
如果成员的属性或 UDA 值与特定值匹配,则可以对成员执行计算。例如,您可以将具有“瓶”属性或 UDA 的所有产品的价格增加 10%。 |
受支持 |
受支持 |
|
您可以对属性值满足您指定的条件的基本成员执行计算。例如,您可以计算每个基本成员的每盎司利润。 |
受支持 |
不支持 |