Overview of Attribute Dimensions

To illustrate the purpose of attribute dimensions, consider the Sample Basic database, available in the gallery section of Essbase file catalog. In this database, Products have attributes that are characteristics of the products, such as a product's size and packaging.

Attribute members reside in attribute dimensions. When viewed in the outline viewer/editor of the Essbase web interface, an attribute dimension has the letter A next to its name in the outline.

The image below shows the Sample Basic outline featuring the Product dimension and three attribute dimensions: Caffeinated, Ounces, and Pkg Type. To the right of the Product dimension, the terms Caffeinated, Ounces, and Pkg Type show that these attribute dimensions are associated with the Product dimension.


This image shows the Sample Basic outline emphasizing base dimension (Products) and its associated attribute dimensions (Caffeinated, Ounces, and Pkg Type), as described in the text preceding and following the image.

Attributes are associated with sparse, non-attribute dimensions, called base dimensions. In the example above, the Product dimension is the base dimension for the attribute dimensions Caffeinated, Ounces, and Pkg Type. Market is the base dimension for the attribute dimensions Population and Intro Date.

Note:

Attribute dimensions and members are Dynamic Calc (with the exception of non-aggregating attributes), so Essbase calculates attribute information at retrieval time. Attribute data is not stored in the database.

Members of Attribute Dimensions

Members of an Essbase attribute dimension are potential attributes of the members of the associated base dimension. After you associate a base dimension with an attribute dimension, you associate members of the base dimension with members of the attribute dimension.

The Sample_Dynamic Basic cube has five standard dimensions (Year, Measures, Product, Market, and Scenario), and five attribute dimensions (Caffeinated, Ounces, Pkg Type, Population, and Intro Date).


The Sample_Dynamic Basic cube has five standard dimensions (Year, Measures, Product, Market, and Scenario), and five attribute dimensions (Caffeinated, Ounces, Pkg Type, Population, and Intro Date).

The standard dimension Product is associated with four attribute dimensions: Caffeinated, Ounces, Pkg Type, and Intro Date). The standard dimension Market is associated with the attribute dimension Population.

The Market dimension member Connecticut is associated with the 6000000 member of the Population attribute dimension. That makes 6000000 an attribute of Connecticut.


Detail of member Connecticut in the Market dimension displays the attribute associations it has.

The product member 100-10 has three attributes—it has caffeine, is sold in 12-ounce containers, and is sold in cans.


Detail of member 100-10 in the Product dimension displays the attribute associations it has.

Restrictions for Base and Attribute Dimensions and Members

As you implement Essbase attributes in your database, observe rules regarding members of attribute dimensions, and members of their base dimensions.

You can tag only sparse dimensions as attribute dimensions.

Before you can save an outline to the server, each attribute dimension must be associated with a standard, sparse dimension as its base dimension.

Attribute dimensions must be the last dimensions in the outline.

Attribute dimensions have a type setting—text, numeric, Boolean, or date. Text is the default setting. Although assigned at the dimension level, the type applies only to the level 0 members of the dimension. See Attribute Types.

If you remove the attribute tag from a dimension, Essbase removes prefixes or suffixes from its member names. Prefixes and suffixes are not visible in the outline. See Set Prefix and Suffix Formats for Member Names of Attribute Dimensions.

A base dimension member can have many attributes, but only one attribute from each attribute dimension.

For example, product 100-10 can have size and packaging attributes, but only one size and only one type of packaging.

You cannot associate an attribute with an implied shared member, the child of which is tagged as shared.

You can use attribute values in calculations in the following comparisons:

  • > (greater than)

  • >= (greater than or equal to)

  • < (less than)

  • <= (less than or equal to)

  • == (equal to)

  • <> or != (not equal to)

  • IN

Restrictions for Attribute Dimension Association

When you associate an Essbase attribute dimension with a standard dimension, the standard dimension becomes the base dimension for the attribute dimension. The base dimension must be sparse, and while it can have multiple attribute associations, any given attribute dimension can only have one associated base dimension.

Observe these restrictions on attribute dimension associations:

  • An attribute dimension must be associated with a sparse standard dimension.

  • A standard dimension can be a base dimension for multiple attribute dimensions.

  • An attribute dimension can be associated with only one base dimension.

    For example, assume there is a Size attribute dimension with members Small, Medium, and Large.


    Attribute dimension named Size with members Small, Medium, and Large.

    If you associate the Size attribute dimension with the Product dimension, you cannot also associate the Size attribute dimension with the Market dimension. Tracking size-related information for the Market dimension requires another attribute dimension with a different name.

Restrictions for Attribute Member Association

As you associate members of Essbase attribute dimensions with a members of base dimensions, observe rules about association levels. Also, you can't associate multiple attributes from the same dimension with a single base member.

Observe these restrictions on attribute member associations:

  • You cannot associate multiple members from the same attribute dimension with the same base dimension member. For example, the Bottle and Can package types cannot both be associated with the product 100-30.

  • You can associate members from different attribute dimensions with the same member of a base dimension. For example, a decaffeinated cola product (100-30) sold in 16-ounce bottles has three attributes: Caffeinated:False; Ounces:16; and Pkg Type:Bottle.


    Detail of member 100-30 in the Product dimension in Sample Basic displays the attribute associations it has.

  • Essbase does not require that each member of a base dimension be associated with a member of an attribute dimension.

  • The level 0 members of attribute dimensions are the only members that you can associate with base dimension members.

    For example, in the Population attribute dimension, you can associate only level 0 members such as 3000000, 6000000, and 9000000, with members of the Market dimension. You cannot associate a level 1 member such as Small.


    Expanded attribute dimension Population revealing all levels.

    The name of the level 0 member of an attribute dimension is the attribute value. The only members of attribute dimensions that have attribute values are level 0 members.

    You can use the higher-level members of attribute dimensions to select and group data. For example, you can use Small, the level 1 member of the Population attribute dimension, to retrieve sales in both the 3000000 and 6000000 population categories.

  • All base dimension members associated with members of a particular attribute dimension must be at the same level. This is called the "association level." The first attribute association determines the association level.

  • You cannot associate an attribute with an implied shared member, the child of which is tagged as shared.

Attribute Types

Essbase attribute dimensions are of type text, numeric, Boolean, or date. The type you select enables appropriate functions for grouping, selecting, or calculating the data. Although assigned at the dimension level, the attribute type affects only level 0 members of the attribute dimension.

Text attribute type

The default attribute type is text. Text attributes enable basic attribute member selection and comparisons in calculations. Because the comparisons are textual, Essbase compares characters. For example, the package type Bottle is less than the package type Can, because B precedes C in the alphabet. In the Sample Basic database, Pkg Type is a text attribute dimension.

Numeric attribute type

The names of level 0 members of numeric attribute dimensions are numeric values. You can include the names (values) of numeric attribute dimension members in calculations. For example, you can use the number of ounces specified in the Ounces attribute to calculate profit per ounce for each product.

You can also associate numeric attributes with ranges of base dimension values; for example, to analyze product sales by market population groupings—states with 3,000,000 population or less in one group, states with a population between 3,000,001 and 6,000,000 in another group, and so on. See Set Up Member Names Representing Ranges of Values.

Essbase supports date attributes from January 1, 1970, through January 1, 2038.

Boolean attribute type

All Boolean attribute dimensions in a database contain only two members. The member names must match the settings for the database; for example, True and False. If multiple Boolean attribute dimensions exist, specify a prefix or suffix member name format to ensure unique member names; for example, Caffeinated_True and Caffeinated_False. See Set Boolean Attribute Member Names.

Date attribute type

You can use date attributes to specify the date format—month-day-year or day-month-year—and to sequence information accordingly. See Change the Member Names in Date Attribute Dimensions. You can use date attributes in calculations. For example, you can compare dates in a calculation that selects product sales from markets established since 10-12-1999.

Essbase supports date attributes from January 1, 1970, through January 1, 2038.

Comparison of Attribute and Standard Dimensions

Attribute dimensions and members are similar to standard dimensions and members. You can add aliases and comments, include hierarchies, and name generations / levels. Attribute dimensions must be sparse, Dynamic Calc, and positioned at the end of the outline, with no formulas or shared members.

The following table describes major differences between attribute and standard dimensions and their members.

Table 6-2 Differences Between Attribute and Standard Dimensions

Functionality Attribute Dimensions Standard Dimensions

Storage

Sparse. An attribute dimension's base dimension also must be sparse

Can be dense or sparse

Storage property

Can be Dynamic Calc only. Therefore, not stored in the database. The outline does not display this property.

Can be Store Data, Dynamic Calc, Never Share, or Label Only

Position in outline

Must be the last dimensions in the outline

Must be above all attribute dimensions in the outline

Partitions

Cannot be defined along attribute dimensions, but you can use attributes to define a partition on a base dimension

Can be defined along standard dimensions

Formulas (on members)

Cannot be associated

Can be associated

Shared members

Not allowed

Allowed

Two-pass calculation member property

Not available

Available

Two-pass calculation with runtime formula

If a member formula contains a runtime-dependent function associated with an attribute member name, and the member with the formula is tagged as two-pass, calculation skips the member and issues a warning message. Runtime-dependent functions include: @CURRMBR, @PARENT, @PARENTVAL, @SPARENTVAL, @MDPARENTVAL, @ANCEST, @ANCESTVAL, @SANCESTVAL, and @MDANCESTVAL.

Calculation is performed on standard members with runtime formulas and tagged two-pass.

Two-pass, multiple dimensions: Calculation order

Order of calculation of members tagged two-pass depends on order in outline. The last dimension is calculated last.

Calculation result is not dependent on outline order for members tagged two-pass in multiple dimensions.

Two-pass calculation with no member formula

Calculation skipped, warning message issued. Therefore, member intersection of two-pass tagged members and upper-level members may return different results from calculation on standard dimensions.

Available

Dense Dynamic Calc members in nonexisting stored blocks

Calculations skip dense dimensions if they are on nonexisting stored blocks.

For attributes to work on dense members, data blocks for the dense members must exist. When retrieving data on a dense member that has a Dynamic Calc formula and no attributes, Essbase dynamically creates the data block and returns a value. However, if the Dynamic Calc dense member has an attribute, doing a retrieve on the attribute member results in #MISSING, because Essbase skips the dynamic calculation on the dense member and, therefore, the data block is not created.

To identify nonexisting stored blocks, export the database or run a query to find out whether the block has data.

Available

UDAs on members

Not allowed

Allowed

Consolidations

For all members, calculated through the Attribute Calculations dimension members: Sum, Count, Min, Max, and Avg. Consolidation operators in the outline are ignored during attribute calculations.

Consolidation operation indicated by assigning the desired consolidation symbol to each member

Member selection facilitated by Level 0 member typing

Available types include text, numeric, Boolean, and date.

All members treated as text

Associations

Must be associated with a base dimension

N/A

Spreadsheet drill-downs

List the base dimension data associated with the selected attribute. For example, drilling down on the attribute Glass displays sales for each product packaged in glass, where Product is the base dimension for the Pkg Type attribute dimension.

List lower or sibling levels of detail in the standard dimensions. For example, drilling down on Qtr1 displays a list of products and their sales for that quarter.

Solve Order and Attributes

If hybrid mode is enabled for your Essbase cube, you can set the solve order for attribute dimensions and their base dimensions, eliminating the need to tag members as two-pass.

In hybrid mode, the default calculation order (also known as solve order) matches that of block storage databases, with some enhancements. If you wish to use a non-default solve order, you can set a custom solve order for dimensions and members.

For more information about hybrid mode, see Adopt Hybrid Mode for Fast Analytic Processing.

Two-Pass Calculations on Attribute Dimensions

Two pass calc is skipped for attribute calculations on Essbase members that lack a formula or have an unsupported formula.

The following example, based on the Product dimension in the Sample Basic database, illustrates how two-pass calculations work on attribute dimensions. Assume member "400-30" is tagged as two-pass.

If member "400-30" has the following member formula:

="400–10";

Essbase executes the formula when performing a retrieve on "400-30."

If "400-30" has the following member formula:

=@CURRMBR("Market");

Essbase skips the calculation because the formula includes the @CURRMBR runtime function, which is not allowed, and issues the following error message:

Two-pass calc skipped on member [400-30] in attribute calc

If "400-30" does not have a member formula, the same error message is generated because a member tagged as two-pass must have a formula.

Comparison of Attributes and UDAs

Attributes and UDAs enable analysis based on characteristics of the data. Attributes provide greater capability than UDAs. This topic describes the differences between attributes and UDAs in terms of Essbase data storage, retrieval, conversion, and calculation.

Data Storage

Attributes can be associated with sparse dimensions only, while UDAs can be used with dense and sparse dimensions.

Data Retrieval

Data Retrieval Attributes UDAs

You can group and retrieve consolidated totals by attribute or UDA value. For example, associate the value High Focus Item to various members of the Product dimension and use that term to retrieve totals and details for only those members.

Supported

Simple

Supported

More difficult to implement, requiring additional calculation scripts or commands

You can categorize attributes in a hierarchy and retrieve consolidated totals by higher levels in the attribute hierarchy; for example, if each product has a size attribute such as 8, 12, 16, or 32, and the sizes are categorized as small, medium, and large. You can view the total sales of small products.

Supported

Supported

More difficult to implement

You can create crosstab views displaying aggregate totals of attributes associated with the same base dimension.

Supported

You can show a crosstab of all values of each attribute dimension.

Not supported

You can retrieve only totals based on specific UDA values.

You can use Boolean operators AND, OR, and NOT with attribute and UDA values to refine a query. For example, you can select decaffeinated drinks from the 100 product group.

Supported

Supported

Because attributes have a text, Boolean, date, or numeric type, you can use appropriate operators and functions to work with and display attribute data. For example, you can view sales totals of all products introduced after a specific date.

Supported

Not supported

You can group numeric attributes into ranges of values and let the dimension building process automatically associate the base member with the appropriate range. For example, you can group sales in various regions based on ranges of their populations—less than 3 million, between 3 million and 6 million, and so on.

Supported

Not supported

Through the Attribute Calculations dimension, you can view aggregations of attribute values as sums, counts, minimums, maximums, and averages.

Supported

Not supported

You can use an attribute in a calculation that defines a member. For example, you can use the weight of a product in ounces to define the profit per ounce member of the Measures dimension.

Supported

Not supported

You can retrieve specific base members using attribute-related information.

Supported

Powerful conditional and value-based selections

Supported

Limited to text string matches only

Data Conversion

Based on the value of a UDA, you can change the sign of the data as it is loaded into the database. For example, you can reverse the sign of all members with the UDA Debit. Sign flipping is not supported for attributes.

Calculation Scripts

Calculation Scripts Attributes UDAs

You can perform calculations on a member if its attribute or UDA value matches a specific value. For example, you can increase the price by 10% of all products with the attribute or UDA of Bottle.

Supported

Supported

You can perform calculations on base members whose attribute value satisfies conditions that you specify. For example, you can calculate the Profit per Ounce of each base member.

Supported

Not supported