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

Microstrategy Custom number formatting symbols

Custom number formatting symbols If none of the built-in number formats meet your needs, you can create your own custom format in the Number tab of the Format Cells dialog box. Select  Custom  as the Category and create the format using the number format symbols listed in the table below. Each custom format can have up to four optional sections, one each for: Positive numbers Negative numbers Zeros Text Each section is optional. Separate the sections by semicolons, as shown in the example below: #,###;(#,###);0;"Error: Entry must be numeric" For more examples, see  Custom number formatting examples . To jump to a section of the formatting symbol table, click one of the following: Numeric symbols Character/text symbols Date and time symbols Text color symbols Currency symbols Conditional symbols Numeric symbols For details on how numeric symbols apply to the Big Decimal data type, refer to the  Project Design Guide . ...

Time-based and event-based schedules

Time-based and event-based schedules executed in a clustered MicroStrategy A  schedule  is a MicroStrategy object that contains information specifying when a task is to be executed. Schedules are stored at the project source level, and are available to all projects within the project source. MicroStrategy Intelligence Server supports two kinds of schedules: Time-triggered schedules execute at a specific date and time, or at a specific recurring date and time. These schedules execute based on the time on the machine where they were created. Event-triggered schedules execute when the event associated with them is triggered. Both types of schedules can be used to schedule reports and documents, called subscriptions, or to schedule administrative tasks like delete all history list, idle project, etc. Execution of Time-Based Schedules in a MicroStrategy Intelligence Server Cluster: In a 9.x MicroStrategy Intelligence Server clustered environment, subscriptions...

Microstrategy Dossiers explained

Microstrategy  Dossiers With the release of MicroStrategy 10.9, we’ve taken a leap forward in our dashboarding capabilities by simplifying the user experience, adding storytelling, and collaboration.MSTR has  evolved dashboards to the point that they are more than dashboards - they are  interactive, collaborative analytic stories . Ultimately, it was time to go beyond dashboards, both in concept and in name, and so  the've  renamed VI dashboards to  ‘ dossiers ’.  Dossiers can be created by using the new Desktop product or Workstation or simply from the Web interface which replaces Visual Insights. All the existing visual Insights dashboards will be converted to Dossiers   With MicroStrategy 10.9, there was an active focus on making it easier to build dashboards for the widest audience of end users. To achieve this, some key new capabilities were added that make it easier to author, read, interact and collaborate on dashboards ...

Personalizing file locations, email and file subscriptions using macros in Microstrategy

Personalizing file locations MSTr allows to dynamically specify the  File Location  and  Backup File Location  in a file device using macros.  For example, if you specify the  File Location  as  C:\Reports\{&RecipientName}\ ,  all subscriptions using that file device are delivered to subfolders of  C:\Reports\ . Subscribed reports or documents for each recipient are delivered to a subfolder with that recipient’s name, such as  C:\Reports\Jane Smith\  or  C:\Reports\Hiro Protagonist\ . The table below lists the macros that can be used in the  File Location  and  Backup File Location  fields in a file device: Description Macro Date on which the subscription is sent {&Date} Time at which the subscription is sent {&Time} Name of the recipient {&RecipientName} User ID (32-character GUID) of the recipient {&RecipientID} Distribution Services add...

MicroStrategy URL API Parameters

MicroStrategy URL Structure The following table summarizes the root URL structure used for every request to MicroStrategy Web. Environment Main Application URL Administration URL J2EE http://webserver/MicroStrategy/servlet/mstrWeb http://webserver/MicroStrategy/servlet/mstrWebAdmin .NET http://webserver/MicroStrategy/asp/Main.aspx http://webserver/MicroStrategy/asp/Admin.aspx Every request sent to MicroStrategy Web calls a central controller. Parameters are appended to  Main.aspx  or  mstrWeb  (in a .NET and J2EE environment, respectively) to indicate to the controller how the request should be internally forwarded and handled. The following examples show a URL for accessing a MicroStrategy folder when the user does not have an existing session. The URL contains not only the parameters needed to connect to MicroStrategy Web, but also the parameters needed to log on and create a session. J2EE environment: <a href="http:...

Bursting file subscriptions Microstartegy

Bursting file subscriptions: Delivering  parts of reports across multiple files: Large MicroStrategy reports and documents are often broken up into separate pages by attributes. In a similar way, with Distribution Services, you can split up, or burst, a report or document into multiple files. When the subscription is executed, a separate file is created for each element of each attribute selected for bursting. Each file has a portion of data according to the attributes used to group data in the report (page-by axis) or document (group-by axis). Ex:, you may have a report with information for all regions. You could place Region in the page-by axis and burst the file subscription into the separate regions. This creates one report file for each region. As a second ex:, if you choose to burst your report using the Region and Category attributes, a separate file is created for each combination of Region and Category, such as Central and Books as a report, Central and Ele...

Reduce Intelligent Cube Size By Finding Intelligent Cube Objects Which Are Not In Use

Reduce Intelligent Cube Size By Finding Intelligent Cube Objects Which Are Not In Use If the i-cubes can potentially be reduced in size an audit can be performed on the cube objects to see which cube objects are not being used by any of the view reports, documents, or dossiers.   The below are examples for a few of the common metadata database platforms . NOTE: To perform this audit, queries are run against the MicroStrategy metadata database. Ensure a metadata backup is taken prior to performing the below actions. Steps: 1) Identify the object ID of the Intelligent cube to be audited by checking the objects Property window 2) Identify the object ID of the project this cube exists within by opening the Project Configuration Sample Cube ID =   CFAF1E9B4D53990698C42E87C7AF2EB5 Sample Project ID =  B7CA92F04B9FAE8D941C3E9B7E0CD754   3) Run the below SQL against the metadata database by replacing the Cube ID and Project ID within the respective ...

Case functions Microstrategy

Ca se functions Microstrategy Case functions return specified data in a SQL query based on the evaluation of user-defined conditions. In general, a user specifies a list of conditions and corresponding return values. Case This function evaluates multiple expressions until a condition is determined to be true, then returns a corresponding value. If all conditions are false, a default value is returned.  Case  can be used for categorizing data based on multiple conditions. This is a single-value function. Syntax Case ( Condition1 ,  ReturnValue1 ,  Condition2 , ReturnValue2 ,...,  DefaultValue ) Example Case(([Total Revenue] < 300000), 0, ([Total Revenue] < 600000), 1, 2) sum(Case (Day@DESC in (“Sat”,”Sun”), Sales, 0) {~+} Sum(Case(Category@DESC In("Books","Electronics"),Revenue,0)){~+} CaseV (case vector) CaseV  evaluates a single metric and returns different values according to the results. It can be used to perfo...

Email Subscription in Microstrategy

Create Email Subscription in Microstrategy Creates an email subscription. Do not include any leading or trailing spaces in the ANSWER parameters. This causes a SQL error and prevents the command from executing. Ex: CREATE EMAILSUBSCRIPTION "New Multi Users" FOR OWNER "administrator" SCHEDULE "Books Closed" CONTACTGROUP "TEST"  CONTENT "Electronics Revenue by Region" IN FOLDER "\Public Objects\REPORTS\SUBJECT Areas\Sales and Profitability Analysis" IN PROJECT "MicroStrategy Tutorial" DELIVERYFORMAT HTML  EXPIRATIONDATE NEVER EXPRIED FILENAME "file_name"   SUBJECT  "Test REPORT" MESSAGE "Please Test"; CREATE EMAILSUBSCRIPTION [ subscription_name ] [FOR OWNER login_name ] SCHEDULE schedule_name  (ADDRESS address_name | USER user_name  | CONTACT contact_name [ADDRESS contact_ address_name ] | CONTACTGROUP contact_group_name ) CONTENT ( report_or_document_name IN FOLDER   loc...