Skip to main content

Metric values are repeated across rows when a report is executed in MicroStrategy

Metric values are repeated across rows when a report is executed in MicroStrategy

When comparing report results between DB Query Tool and MicroStrategy, some reports show repeated metric values in MicroStrategy where there were none in DB Query Tool.

To illustrate the issue, a fact table CAT_ITEM_SLS has been added into the MicroStrategy Tutorial project and populated with a small set of three rows.

CAT_IDITEM_IDREVENUE
 110 
 120 
30 

Report results in DB Query Tool:

Report results in MicroStrategy:

In MicroStrategy, the row for "Art As Experience" in the Spring 2007 catalog repeats the $20 value from the Winter 2007 catalog, where DB Query Tool shows the $30 value from the fact table.

CAUSE
The discrepancy occurs because the attribute elements for Catalog and Item are in a many-to-many relationship, but the attribute relationship in the MicroStrategy schema is defined incorrectly with a one-to-many relationship.

Note: MicroStrategy Tutorial ships with a many-to-many relationship between Catalog and Item. The relationship was altered in the above example to illustrate the issue.

The MicroStrategy Analytical Engine prepares data for display in the cross-tabbing step by extracting, from the result table, several normalized tables for each attribute and metric. (This supports dimensionality-aware subtotals and dynamic aggregation, among other features.)

When attributes in a metric's dimensionality are related one-to-many according to the schema, the lowest-level child attribute is sufficient to identify each metric row uniquely. Users may observe this behavior in the MicroStrategy SQL Generation Engine, in that intermediate tables may omit one-to-many parent attributes. Thus, in the above example, MicroStrategy normalizes the Revenue metric results as follows:

ITEM_IDREVENUE
1$10
2$20

If the attribute elements truly had a one-to-many relationship, this normalized table would be valid because each Item ID would map onto exactly one Catalog ID. Item ID 2 maps onto two Catalog IDs, and its normalized metric value is repeated as a result.

ACTION
The report returns valid results if the attribute relationship is modified to be many-to-many. With a many-to-many relationship, the Analytical Engine normalizes the Revenue results based on both attributes and all three values are preserved in the normalized table.

In some scenarios, the warehouse data should have been in a one-to-many relationship but invalid data may have been introduced into the warehouse. Correcting the attribute ID values to maintain a true one-to-many data relationship will also resolve the issue.

Note: Changing the Analytical Engine VLDB property "Metric Level Determination" to the option "Include higher-level related attributes in metric level (deprecated)" bypasses the Analytical Engine normalization logic and also produces the expected report results. However, this could produce inflated subtotal or dynamic aggregation results for dimensional metrics. It is generally not recommended to change this setting except for temporary scenarios while fixing the incorrectly mapped data model.

IMPORTANT
According to KB6831 ("Known data modeling restrictions and solutions in MicroStrategy SQL Generation Engine"), MicroStrategy SQL Generation Engine does not support chains of many-to-many relationships. For example, the following hierarchy would not be valid, because of multiple counting and the removal of some filtering conditions. It may also cause join paths between attributes to be evaluated differently.

Not recommended:

Therefore, it is not a correct solution to change a large number of attribute relationships to be many-to-many.

An alternate approach to many-to-many relationships is to make the many-to-many attributes independent parents of a surrogate key attribute. The many-to-many attributes are not directly related to each other, but have separate one-to-many relationships to the surrogate key. The surrogate key can have as many parents as needed without violating the restriction against in-line many-to-many relationships. The surrogate key should be unique for every distinct combination of its parents. If the attributes exist in a denormalized dimension table, the table's primary key would suffice as the common child.


Comments

Post a Comment

Popular posts from this blog

Algorithm to calculate Logical Table Size in Microstrategy

How are the fact tables determined using the logical table size for SQL generation in MicroStrategy The logical table size is an integer number that represents the granularity or level of aggregation of a particular table. It is called 'logical' because it is not related to the physical size of the tables (number of rows). It is calculated according to the attribute IDs that are present in the table and their level in the system hierarchy.   Even though, the number does not reveal the actual number of rows in the table, it is an accurate way of measuring a table size without having to access its contents.   IMPORTANT:   The system hierarchy is defined by the parent-child relationships between attributes of the same family (formerly known as a dimension), not by user-defined hierarchies (i.e., drilling hierarchies).   MicroStrategy Engine utilizes an algorithm based on attribute keys to calculate the Logical Table Size (LTS): Given the following tables: ...

Types of prompts in Microstrategy

Types of prompts in Microstrategy The different types of prompts allow you to create a  prompt  for nearly every part of a report. Prompts can be used in many objects including reports, filters, metrics, and custom groups, but all prompts require user interaction when the report is executed. The correct prompt type to create depends on what report objects you want users to be able to base a filter on to filter data, as described in the list below. Filter definition prompts   allow users to determine how the report's data is filtered, based on one of the following objects: Attributes in a hierarchy : Users can select prompt answers from one or more attribute elements from one or more attributes. The attribute elements that they select are used to filter data displayed on the report. This prompt lets you give users the largest number of attribute elements to choose from when they answer the prompt to define their filtering criteria. For example, on a repor...
MicroStrategy Developer Preferences options are expanded so big that some options are being cutoff. Show the hidden objects in the  Microstrategy  developer MicroStrategy Developer Preferences options are expanded so big that some options are being cut off. The steps below given in the MSTR article may not work. This can be simple handled by using the steps below:  In the Microstrategy Developer go to Tools -> Preferences (Not my prefernces :) ) Under Developer category -> select Browsing on the browsing tab you see all the options like below: 3. Now using the mouse place the cursor on text box of 10000 which is next to 'Maximum number of monitoring objects displayed per page. 4. Then Hit Tab on Keyboard and hit another Tab on keyboard 5. Then press the space or down arrow on keyboard and click on OK or Enter. That will show the hidden objects in the Microstrategy developer   Normal Version ...

No 'Alert' option appear when trying to create an alert-based subscription in MicroStrategy Distribution Services

The 'Alert' option does not appear when attempting to create an alert-based subscription in MicroStrategy Distribution Services In MicroStrategy Distribution Service 9.x and 10.x, and 11.x versions it is possible to create an alert-based subscription. When right-clicking the metric header of a report in MicroStrategy Web 9.0.x, the 'Alerts' option does not appear:    Cause : This issue occurs because the user attempting to create the alert does  not have all of the necessary privileges on alerts.   Fix : In order to create an alert-based subscription, the following privileges are required: In order ti get permissions to create alerts the user should be given the following privileges by the admin: New Version of Microstrategy 11.x: Server- Distribution: Older Versions of Microstrategy 9.x, 10.x etc..: Web Reporter > Web user Web Analyst > Web create alert   ...

Non Aggregate metrics Beginning lookup, Ending lookup, Beginning fact., Ending fact

Non Aggregate metrics  Beginning lookup,  Ending lookup,  Beginning fact .,  Ending fact A nonaggregatable metric, such as an inventory metric, is one that should not be aggregated across an attribute.   For example, if you have monthly inventory numbers in your data warehouse and want to calculate the yearly inventory, adding the monthly numbers together does not provide a useful business measure. Instead, you may want to use the end-on-hand and beginning-on-hand inventory numbers to see how the total inventory changed during the year.  The following options are available: • To use the first value in the lookup table, select  Beginning lookup . • To use the last value in the lookup table, select  Ending lookup . • To use the first value in the fact table, select  Beginning fact . • To use the last value in the fact table, select  Ending fact .

Level metrics in Microstartegy/MSTR

Level Metrics Level metrics allows the users to choose the right combination of level target, filtering, and grouping (referred to as elements) to achieve your desired results.  The elements of a metric level are described below: • Target : The target is the attribute level at which the metric calculation groups. For a more detailed description, see  Target: The context of a calculation . • Grouping : Grouping determines how the metric aggregates. For a more detailed description, see  Grouping: How aggregation is performed . • Filtering : Filtering governs how the report filter interacts with the metric calculation. For a more detailed description, see  Filtering: Interaction with report filters . The level is indicated between the curly braces ({ }) in the metric definition shown below: Sum(Revenue) {~, Product} The tilde (~) represents the report level with standard filtering, denoted by the plus sign (+). If you add item as a level, th...

Microstrategy "Error type: Odbc error. Odbc operation attempted

 "Error type: Odbc error. Odbc operation attempted: SQLExecDirect. [HYT00:0: on SQLHANDLE] [MicroStrategy][ODBC Oracle Wire Protocol driver]Timeout expired" is shown when executing reports from Web When users are trying to execute some reports in MicroStrategy web in particular, they may receive the Error “SQL Generation Complete Index out of range” and “Timeout expired” error as shown below: Possible Causes: One possible cause is that the MicroStrategy Intelligence Server using a cached database connection that was already dropped by the RDBMS. To resolve this: Admin should delete the database connection caches and create a new DSNs in case they are sharing DSNs to connect to different databases. In addition, change the settings for the ‘Connection lifetime’ and the ‘Connection idle time out’.  Follow the steps below to perform the mentioned changes and verify the report after each step and some of the settings require i-server r...

Super Cubes in MicroStrategy 2019

Super Cubes in MicroStrategy 2019 Beginning in MicroStrategy 11.0 and 2019, users will notice objects referred to as " Super Cubes ".  Super Cubes are simply a renaming of what was previously referred to as MTDI (Multi Table Data Import) Cubes. Note that only the naming convention has changed, as the functionality remains the same . This name change is visible in MicroStrategy Workstation and MicroStrategy Web. In MicroStrategy Workstation, right click on any cube created via Data Import and select Properties . The object Type is listed as Super Cube: This can also be seen when editing or authoring a dossier. In your Datasets panel, hover over the name of your dataset. The tooltip will show the dataset type listed as a Super Cube.

MicroStrategy Hadoop Gateway operation modes

MicroStrategy Hadoop Gateway operation modes MicroStrategy Hadoop Gateway is a native connector which was built based on Spark 1.6.x. You can choose one or more data files from Hadoop HDFS and load them into MicroStrategy Intelligence Server. Data files can be published as either an In-Memory Cube or a Live Connect Cube. MicroStrategy Hadoop Gateway supports three operation modes : YARN client Standalone (HDP cluster does not support Standalone) Local YARN client mode: The driver runs in the client process, and the application master is only used for requesting resources from YARN. Running in this mode requires YARN service to be enabled on your Hadoop cluster. Standalone mode:  MicroStrategy Hadoop Gateway uses Spark Master to coordinate data processing. Local mode:  no application is deployed in the Spark nodes. All data processing is executed in the MicroStrategy Hadoop Gateway host. This modality is intended for testing and troubleshooting.

Microstrategy display a group or sections horizontally in a document

To display a group horizontally or Add sections horizontally: 1.  In MicroStrategy Web, open the document in  Design  or  Editable Mode . 2. From the  Tools  menu, select  Grouping . The Grouping panel is displayed. 3. In the Grouping panel, right-click the grouping field to display horizontally, and select  Grouping Properties . The Grouping Properties dialog box opens. 4 . Select the  Render  object name  horizontally  check box. 5 . Click  OK  to apply the changes and return to the document. Step1: Step 2: More Info: https://www2.microstrategy.com/producthelp/10.7/DocCreationGuide/WebHelp/Lang_1033/Content/DocumentCreationGuide/Displaying_a_group_horizontally.htm#grouping_and_sorting_4135344594_1105953