Understanding Attribute Dimensions

Products have attributes that are characteristics of the products, such as a product's size and packaging. Attribute members reside in attribute dimensions.

An attribute dimension has the letter A next to its name in the outline.

The image below shows part of the Sample.Basic outline featuring the Product dimension and some attribute dimensions: Caffeinated, Ounces, Pkg Type, and Intro Date.


This image shows an outline with a base dimension (Products) and attribute dimensions (Caffeinated, Ounces, Pkg Type, and Intro Date), as described in the text preceding and following the image.

In the Properties panel for the Product dimension, you can see which attribute dimensions are associated with the Product dimension.


This image shows attributes for Product (Caffeinated, Intro Date Ounces, and Pkg Type).

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.

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.

Understanding Members of Attribute Dimensions

Members of an 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 associated attribute dimension. The Market dimension member Connecticut is associated with the 6000000 member of the Population attribute dimension. That makes 6000000 an attribute of Connecticut.

Understanding the Rules for Base and Attribute Dimensions and Members

Rules regarding members of attribute dimensions and 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 Understanding 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 Setting 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 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

Understanding the Rules for Attribute Dimension Association

When you associate an attribute dimension with a standard dimension, the standard dimension is the base dimension for that attribute dimension.

  • 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, you might have a Size attribute dimension 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; for example, MarketSize, with the MarketSize attribute dimension associated with the Market dimension.

Understanding the Rules for Attribute Member Association

When you associate a member of an attribute dimension with a member of a base dimension, follow these rules:

  • 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.

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

  • Attributes can be assigned only to level zero members.

  • 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.

    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.

Understanding Attribute Types

Attribute dimensions have a text, numeric, Boolean, or date type that enables different functions for grouping, selecting, or calculating data. Although assigned at the dimension level, the attribute type applies only to level 0 members of the attribute dimension.

  • The default attribute type is text. Text attributes enable the basic attribute member selection and attribute comparisons in calculations. When you perform such comparisons, Essbase compares characters. For example, the package type Bottle is less than the package type Can, because B precedes C in the alphabet. In Sample.Basic, Pkg Type is an example of a text attribute dimension.

  • 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 Setting Up Member Names Representing Ranges of Values.

  • 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 Setting Boolean Attribute Member Names.

  • You can use date attributes to specify the date format—month-day-year or day-month-year—and to sequence information accordingly. See Changing 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.

Comparing Attribute and Standard Dimensions

In general, attribute dimensions and their members are similar to standard dimensions and their members. You can provide aliases and member comments for attributes. Attribute dimensions can include hierarchies, and you can name generations and levels. You can perform the same spreadsheet operations on attribute dimensions and members as on standard dimensions and members; for example, to analyze data from different perspectives, you can retrieve, pivot, and drill down in the spreadsheet.

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

Table 7-1 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, 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, 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.

Understanding Two-Pass Calculations on Attribute Dimensions

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.

Comparing Attributes and UDAs

Attributes and UDAs enable analysis based on characteristics of the data. Attributes provide greater capability than UDAs. The tables in this topic describe the differences between attributes and UDAs in these areas of functionality:

  • Data storage

  • Data retrieval

  • Data conversion

  • Calculation scripts

Table 7-2 Data Storage—Comparing Attributes and UDAs

Data storage Attributes UDAs

You can associate with sparse dimensions.

Supported

Supported

You can associate with dense dimensions.

Not supported

Supported

Table 7-3 Data Retrieval—Comparing Attributes and UDAs

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

Table 7-4 Data Conversion—Comparing Attributes and UDAs

Data Conversion Attributes UDAs

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.

Not supported

Supported

Table 7-5 Calculation Scripts—Comparing Attributes and UDAs

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