In Memory Analytics
In Memory Analytics
Guide
Version: 10.7
10.7, March 2017
Copyright 2017 by MicroStrategy Incorporated. All rights reserved.
If you have not executed a written or electronic agreement with MicroStrategy or any authorized MicroStrategy distributor (any such agreement, a
"Separate Agreement"), the following terms apply:
This software and documentation are the proprietary and confidential information of MicroStrategy Incorporated and may not be provided to any other person. Copyright
2001-2017 by MicroStrategy Incorporated. All rights reserved.
THIS SOFTWARE AND DOCUMENTATION ARE PROVIDED AS IS AND WITHOUT EXPRESS OR LIMITED WARRANTY OF ANY KIND BY EITHER MICROSTRATEGY
INCORPORATED OR ANYONE WHO HAS BEEN INVOLVED IN THE CREATION, PRODUCTION, OR DISTRIBUTION OF THE SOFTWARE OR DOCUMENTATION,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE AND
NONINFRINGMENT, QUALITY OR ACCURACY. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE SOFTWARE AND DOCUMENTATION IS WITH
YOU. SHOULD THE SOFTWARE OR DOCUMENTATION PROVE DEFECTIVE, YOU (AND NOT MICROSTRATEGY, INC. OR ANYONE ELSE WHO HAS BEEN INVOLVED
WITH THE CREATION, PRODUCTION, OR DISTRIBUTION OF THE SOFTWARE OR DOCUMENTATION) ASSUME THE ENTIRE COST OF ALL NECESSARY SERVICING,
REPAIR, OR CORRECTION. SOME STATES DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO THE ABOVE EXCLUSION MAY NOT APPLY TO YOU.
In no event will MicroStrategy, Incorporated. or any other person involved with the creation, production, or distribution of the Software be liable to you on account of any claim
for damage, including any lost profits, lost savings, or other special, incidental, consequential, or exemplary damages, including but not limited to any damages assessed against
or paid by you to any third party, arising from the use, inability to use, quality, or performance of such Software and Documentation, even if MicroStrategy, Inc. or any such
other person or entity has been advised of the possibility of such damages, or for the claim by any other party. In addition, MicroStrategy, Inc. or any other person involved in
the creation, production, or distribution of the Software shall not be liable for any claim by you or any other party for damages arising from the use, inability to use, quality, or
performance of such Software and Documentation, based upon principles of contract warranty, negligence, strict liability for the negligence of indemnity or contribution, the
failure of any remedy to achieve its essential purpose, or otherwise. The entire liability of MicroStrategy, Inc. and your exclusive remedy, shall not exceed, at the option of
MicroStrategy, Inc., either a full refund of the price paid, or replacement of the Software. No oral or written information given out expands the liability of MicroStrategy, Inc.
beyond that specified in the above limitation of liability. Some states do not allow the limitation or exclusion of liability for incidental or consequential damages, so the above
limitation may not apply to you.
The information contained in this manual (the Documentation) and the Software are copyrighted and all rights are reserved by MicroStrategy, Inc. MicroStrategy, Inc. reserves
the right to make periodic modifications to the Software or the Documentation without obligation to notify any person or entity of such revision. Copying, duplicating, selling, or
otherwise distributing any part of the Software or Documentation without prior written consent of an authorized representative of MicroStrategy, Inc. are prohibited. U.S.
Government Restricted Rights. It is acknowledged that the Software and Documentation were developed at private expense, that no part is public domain, and that the
Software and Documentation are Commercial Computer Software provided with RESTRICTED RIGHTS under Federal Acquisition Regulations and agency supplements to
them. Use, duplication, or disclosure by the U.S. Government is subject to restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in Technical Data and Computer
Software clause at DFAR 252.227-7013 et. seq. or subparagraphs (c)(1) and (2) of the Commercial Computer Software-Restricted Rights at FAR 52.227-19, as applicable.
Contractor is MicroStrategy, Incorporated., 1850 Towers Crescent Plaza, Tysons Corner, VA 22182. Rights are reserved under copyright laws of the United States with respect to
unpublished portions of the Software.
The following terms and notices apply regardless of whether you have executed a Separate Agreement:
Trademark Information
The following are either trademarks or registered trademarks of MicroStrategy Incorporated or its affiliates in the United States and certain other countries:
MicroStrategy, MicroStrategy 10, MicroStrategy 10 Secure Enterprise, MicroStrategy 9, MicroStrategy 9s, MicroStrategy Analytics, MicroStrategy Analytics Platform, MicroStrategy
Desktop, MicroStrategy Operations Manager, MicroStrategy Analytics Enterprise, MicroStrategy Evaluation Edition, MicroStrategy Secure Enterprise, MicroStrategy Web,
MicroStrategy Mobile, MicroStrategy Server, MicroStrategy Parallel Relational In-Memory Engine (MicroStrategy PRIME), MicroStrategy MultiSource, MicroStrategy OLAP
Services, MicroStrategy Intelligence Server, MicroStrategy Intelligence Server Universal, MicroStrategy Distribution Services, MicroStrategy Report Services, MicroStrategy
Transaction Services, MicroStrategy Visual Insight, MicroStrategy Web Reporter, MicroStrategy Web Analyst, MicroStrategy Office, MicroStrategy Data Mining Services,
MicroStrategy Narrowcast Server, MicroStrategy Health Center, MicroStrategy Analyst, MicroStrategy Developer, MicroStrategy Web Professional, MicroStrategy Architect,
MicroStrategy SDK, MicroStrategy Command Manager, MicroStrategy Enterprise Manager, MicroStrategy Object Manager, MicroStrategy Integrity Manager, MicroStrategy
System Manager, MicroStrategy Analytics App, MicroStrategy Mobile App, MicroStrategy Tech Support App, MicroStrategy Mobile App Platform, MicroStrategy Cloud,
MicroStrategy R Integration, Dossier, Usher, MicroStrategy Usher, Usher Badge, Usher Security, Usher Security Server, Usher Mobile, Usher Analytics, Usher Network Manager,
Usher Professional, MicroStrategy Services, MicroStrategy Professional Services, MicroStrategy Consulting, MicroStrategy Customer Services, MicroStrategy Education,
MicroStrategy University, MicroStrategy Managed Services, BI QuickStrike, Mobile QuickStrike, Transaction Services QuickStrike Perennial Education Pass, MicroStrategy Web
Based Training (WBT), MicroStrategy World, Best in Business Intelligence, Pixel Perfect, Global Delivery Center, Direct Connect, Enterprise Grade Security For Every Business,
Build Your Own Business Apps, Code-Free, Welcome to Ideal, The Worlds Most Comprehensive Analytics Platform, The Worlds Most Comprehensive Analytics Platform.
Period.
Other product and company names mentioned herein may be the trademarks of their respective owners.
Specifications subject to change without notice. MicroStrategy is not responsible for errors or omissions. MicroStrategy makes no warranties or commitments concerning the
availability of future products or versions that may be planned or under development.
Patent Information
This product is patented. One or more of the following patents may apply to the product sold herein: U.S. Patent Nos. 6,154,766, 6,173,310, 6,260,050, 6,263,051, 6,269,393,
6,279,033, 6,567,796, 6,587,547, 6,606,596, 6,658,093, 6,658,432, 6,662,195, 6,671,715, 6,691,100, 6,694,316, 6,697,808, 6,704,723, 6,741,980, 6,765,997, 6,768,788,
6,772,137, 6,788,768, 6,798,867, 6,801,910, 6,820,073, 6,829,334, 6,836,537, 6,850,603, 6,859,798, 6,873,693, 6,885,734, 6,940,953, 6,964,012, 6,977,992, 6,996,568,
6,996,569, 7,003,512, 7,010,518, 7,016,480, 7,020,251, 7,039,165, 7,082,422, 7,113,474, 7,113,993, 7,127,403, 7,174,349, 7,181,417, 7,194,457, 7,197,461, 7,228,303, 7,260,577,
7,266,181, 7,272,212, 7,302,639, 7,324,942, 7,330,847, 7,340,040, 7,356,758, 7,356,840, 7,415,438, 7,428,302, 7,430,562, 7,440,898, 7,486,780, 7,509,671, 7,516,181, 7,559,048,
7,574,376, 7,617,201, 7,725,811, 7,801,967, 7,836,178, 7,861,161, 7,861,253, 7,881,443, 7,925,616, 7,945,584, 7,970,782, 8,005,870, 8,035,382, 8,051,168, 8,051,369, 8,094,788,
8,130,918, 8,296,287, 8,321,411, 8,452,755, 8,521,733, 8,522,192, 8,577,902, 8,606,813, 8,607,138, 8,645,313, 8,761,659, 8,775,807, 8,782,083, 8,812,490, 8,832,588, 8,943,044,
8,943,187. 8,958,537, 8,966,597, 8,983,440, 8,984,274, 8,984,288, 8,995,628, 9,027,099, 9,027,105, 9,037, 577, 9,038,152, 9,076,006, 9,086,837, 9,116,954, 9,124,630,
9,154,303, 9,154,486, 9,160,727, 9,166,986, 9,171,073, 9,172,699, 9,173,101, 9,183, 317, 9,195,814, 9,208,213, 9,208,444, 9,262,481, 9,264,415, 9,264,480, 9,269,358, 9,275,127,
9,292,571, 9,300,646, 9,311,683 9,313,206, 9,330,174, 9,338,157, 9,361,392, 9,378,386, 9,386,416, 9,391,782, 9,397,838, 9,397,980, 9,405,804, 9,413,710, 9,413,794, 9,430,629,
9,432,808, 9,438,597, 9,444,805, 9,450,942, 9,450,958, 9,454,594, 9,507,755, 9,513,770, 9,516,018, 9,529,850, 9,563,761, and 9,565,175. Other patent applications are
pending.
Third Party Software
Various MicroStrategy products contain the copyrighted technology or software of third parties ("Third Party Software"). Your use of MicroStrategy products is subject to all
applicable terms and conditions associated with any such Third Party Software
Datalogics, Inc.
Copyright 2000-2017 Datalogics, Inc.
Copyright 1984-2017 Adobe Systems Incorporated and its licensors. All rights reserved
Adobe, Adobe PDF Library, and The Adobe Logo are trademarks of Adobe Systems Incorporated.
CONTENTS
Overview and Additional Resources 1
Description of this guide 1
About this book 2
Resources 4
Feedback 11
1. About MicroStrategy OLAP Services 13
OLAP Services features 13
The benefits of using OLAP Services 16
Privileges required for Developer and Web users 17
Report types: Standard and OLAP reports 18
Standard OLAP analysis features 19
2. Sharing Sets of Data Among Reports: Intelligent Cubes 22
Sharing Intelligent Cubes 22
Updating Intelligent Cubes without re-processing: Incremental Refresh 43
Improving the performance of large Intelligent Cubes: Partitioning 50
3. Reporting on Intelligent Cubes 51
Reporting and analyzing data with OLAP Services features 51
Reporting and analyzing data with Intelligent Cubes 52
Reporting on Intelligent Cubes with dynamic sourcing 67
4. Importing Large Datasets into MicroStrategy 69
Overview: Large, in-memory datasets in MicroStrategy 69
Creating an application that uses a partitioned dataset 70
Editing and updating your dataset 74
5. Derived Elements 78
Types of derived elements 80
Creating derived elements 88
Defining derived element functionality and formatting 121
Interaction with other reporting features 131
6. Derived Metrics 141
Creating a derived metric 142
Editing derived metrics 155
Formatting derived metrics 155
Deleting derived metrics 155
View filter effects on derived metrics 156
Derived element effects on derived metrics 156
7. View Filters 158
Comparing view filters to report filters and report limits 161
Creating a view filter 165
Deleting a view filter 186
View filter effects on reporting features 186
8. Dynamic Sourcing 198
Scenarios that benefit from dynamic sourcing 198
Best practices for supporting dynamic sourcing 200
Configuring dynamic sourcing 206
Using Cube Advisor to support dynamic sourcing 218
Tracking the use of dynamic sourcing 227
9. Dynamic Aggregation 243
Using dynamic aggregation 245
Functions used in dynamic aggregation 246
View filter effect on dynamic aggregation 257
A. Efficient Functions for Partitioned Datasets 258
Functions for partitioned datasets 258
B. Best Practice for MicroStrategy PRIME 264
Prerequisites 265
Parallel queries 270
Partitioning cubes 275
Sizing 278
Chapter 7, View Filters: Includes information on view filters, which restrict the
amount of data displayed on the report, providing you with a different view of the
data.
Chapter 8, Dynamic Sourcing: Includes information on dynamic sourcing, which
extends the accessibility of Intelligent Cubes by allowing regular reports to
automatically access published Intelligent Cubes that can satisfy the data
requirements of the report.
Chapter 9, Dynamic Aggregation: Includes information on dynamic aggregation,
which allows you to change the level of report aggregation on the fly, while you are
reviewing the report results.
Efficient Functions for Partitioned Datasets: Includes a list of functions that work
most efficiently and faster with partitioned datasets.
Best Practice for MicroStrategy PRIME Includes a brief explanation of PRIME
(Parallel Relational In-Memory Engine), the next generation of OLAP cubes) and
configuration best practice recommendations.
The sample documents and images in this guide, as well as some example steps,
were created with dates that may no longer be available in the MicroStrategy
Tutorial project. If you are re-creating an example, replace the year(s) shown in
this guide with the most recent year(s) available in the software.
Analytics Enterprise
The name of MicroStrategy Desktop has been changed to MicroStrategy Developer.
MicroStrategy 10.6
l You can now merge multiple Intelligent Cubes to form a new dataset while
maintaining existing connections to the merged cubes. For steps, see Merging
Intelligent Cubes.
MicroStrategy 9.4
You can use one or more Intelligent Cubes as datasets in Report Services documents.
For steps, see Creating Report Services documents that connect to Intelligent
Cubes, page 55.
If you are using derived elements in Report Services documents with multiple
datasets, derived metrics in the document may evaluate incorrectly. For steps to
allow derived metrics to calculate correctly, see Derived element interactions with
derived metrics, page 131.
If you are using derived elements in Report Services documents with multiple
datasets, derived elements from all datasets may be combined, depending on their
definition. For examples and considerations when using derived elements in
documents with multiple datasets, see Derived elements in Report Services
documents with multiple datasets, page 138.
Best Practice for MicroStrategy PRIME has been added to help you configure
PRIME (Parallel Relational In-Memory Engine).
Prerequisites
Before working with this document, you should be familiar with:
MicroStrategy objects, including attributes, metrics, and filters
Project creation and configuration
Report creation and manipulation
MOLAP and ROLAP analyses
Structured Query Language (SQL)
Resources
This section provides details on how to access books, online help, MicroStrategy
Education and Consulting resources, and how to contact MicroStrategy Technical
Support.
Documentation
MicroStrategy provides both manuals and online help; these two information sources
provide different types of information, as described below:
Manuals: MicroStrategy manuals provide:
Introductory information and concepts
Examples and images
Checklists and high-level procedures to get started
The steps to access the manuals are described in Accessing manuals and other
documentation sources, page 9.
Most of these manuals are also available printed in a bound, soft cover format. To
purchase printed manuals, contact your MicroStrategy Account Executive with a
purchase order number.
Help: MicroStrategy online help provides:
Detailed steps to perform procedures
Descriptions of each option on every software screen
Additional formats
MicroStrategy manuals are available as electronic publications, downloadable on the
Apple iBooks Store or Google Play, and can be read on your iOS or Android device
respectively. To download a book, search for the books title in the iBookstore or Google
Play. To view a list of manuals that are currently available, scan the following QR codes
using your devices camera:
For iOS devices, scan the following QR code:
For new MicroStrategy releases, it may take several days for the latest manuals to
be available on the iBookstore or Google Play.
Translations
For the most up-to-date translations of MicroStrategy documentation, refer to the
MicroStrategy Knowledge Base. Due to translation time, manuals in languages other than
English may contain information that is one or more releases behind. You can see the
version number on the title page of each manual.
Finding information
You can search all MicroStrategy books and Help for a word or phrase, with a simple
Google search at http://www.google.com. For example, type MicroStrategy derived
metric or MicroStrategy logical table into a Google search. As described above, books
typically describe general concepts and examples; Help typically provides detailed steps
and screen options. To limit your search to MicroStrategy books, on Googles main page
you can click More, then select Books.
Help
Each MicroStrategy product includes an integrated help system to complement the
various interfaces of the product as well as the tasks that can be accomplished using the
product.
Some of the MicroStrategy help systems require a web browser to be viewed. For
supported web browsers, see the MicroStrategy Readme.
MicroStrategy provides several ways to access help:
Help button: Use the Help button or ? (question mark) icon on most software
windows to see help for that window.
Help menu: From the Help menu or link at the top of any screen, select
MicroStrategy Help to see the table of contents, the Search field, and the index for
the help system.
F1 key: Press F1 to see context-sensitive help that describes each option in the
software window you are currently viewing.
Adobe Reader is required to view these manuals. If you do not have Adobe Reader
installed on your computer, you can download it from
http://get.adobe.com/reader/.
The best place for all users to begin is with the MicroStrategy Basic Reporting Guide.
To access the installed manuals and other documentation sources, see the following
procedures:
To access documentation resources from any location, page 9
To access documentation resources on Windows, page 9
To access documentation resources on UNIX and Linux , page 9
1 Visit http://www.microstrategy.com/producthelp.
1 From the Windows Start menu, choose Programs (or All Programs),
MicroStrategy Documentation, then Product Manuals. A page opens in your
browser showing a list of available manuals in PDF format and other documentation
sources.
2 Click the link for the desired manual or other documentation source.
If bookmarks are not visible on the left side of a product manual, from the View
menu click Bookmarks and Page. This step varies slightly depending on your
version of Adobe Reader.
1 Within your UNIX or Linux machine, navigate to the directory where you installed
MicroStrategy. The default location is /opt/MicroStrategy, or
$HOME/MicroStrategy/install if you do not have write access to
/opt/MicroStrategy.
2 From the MicroStrategy installation directory, open the Help folder.
3 Open the Product_Manuals.htm file in a web browser. A page opens in your
browser showing a list of available manuals in PDF format and other documentation
sources.
4 Click the link for the desired manual or other documentation source.
If bookmarks are not visible on the left side of a product manual, from the View
menu click Bookmarks and Page. This step varies slightly depending on your
version of Adobe Reader.
Documentation standards
MicroStrategy online help and PDF manuals (available both online and in printed
format) use standards to help you identify certain types of content. The following table
lists these standards.
These standards may differ depending on the language of this manual; some
languages have rules that supersede the table below.
Type Indicates
bold Button names, check boxes, options, lists, and menus that are the focus of
actions or part of a list of such GUI elements and their definitions
Example: Click Select Warehouse .
italic Names of other product manuals and documentation resources
When part of a command syntax, indicates variable information to be replaced by
the user
Example: Type copy c:\filename d:\foldername\filename
Courier Calculations
font Code samples
Registry keys
Path and file names
URLs
Messages displayed in the screen
Text to be entered by the user
Example: Sum(revenue)/number of months.
+ A keyboard command that calls for the use of more than one key (for example,
SHIFT+F1).
A note icon indicates helpful information for specific situations.
A warning icon alerts you to important information such as potential security risks;
these should be read before continuing.
Education
MicroStrategy Education Services provides a comprehensive curriculum and highly
skilled education consultants. Many customers and partners from over 800 different
organizations have benefited from MicroStrategy instruction.
Courses that can help you prepare for using this manual or that address some of the
information in this manual include:
MicroStrategy Developer: Reporting Essentials
MicroStrategy Developer: Advanced Reporting
For the most up-to-date and detailed description of education offerings and course
curricula, visit http://www.microstrategy.com/Education.
Consulting
MicroStrategy Consulting Services provides proven methods for delivering leading-edge
technology solutions. Offerings include complex security architecture designs,
performance and tuning, project and testing strategies and recommendations, strategic
planning, and more. For a detailed description of consulting offerings, visit
http://www.microstrategy.com/services-support/consulting.
Technical Support
If you have questions about a specific MicroStrategy product, you should:
1 Consult the product guides, Help, and readme files. Locations to access each are
described above.
2 Consult the MicroStrategy Knowledge Base online at
https://resource.microstrategy.com/support.
Feedback
Please send any comments or suggestions about user documentation for MicroStrategy
products to:
documentationfeedback@microstrategy.com
Send suggestions for product enhancements to:
support@microstrategy.com
When you provide feedback to us, please include the name and version of the products
you are currently using. Your feedback is important to us as we prepare for future
releases.
Metrics can also be moved between the report layout and the Report Objects pane,
but this does not affect the level of aggregation for the report.
By default, the Analytical Engine selects the best aggregation function to use for each
metric. However, you can also specify the function for each metric. You can use any of
the standard predefined subtotal functions or define your own functions using user-
defined subtotals.
For more detailed information on dynamic aggregation, refer to Chapter 9, Dynamic
Aggregation.
Cube for quick-response MOLAP analysis. Drilling can also be enabled outside of an
Intelligent Cube for full ROLAP analysis.
Use MicroStrategy Developer, Office, or Web
Using OLAP Services, you can perform the same multidimensional analysis whether
you use MicroStrategy Developer, Office, or Web.
Apply security restrictions on users and objects
Reporting with OLAP Services and Intelligent Cubes adhere to the same standards of
data access security as the rest of your MicroStrategy project.
Increase user self-service and productivity
Since accessing Intelligent Cubes for OLAP analysis does not require runtime
processing on the data warehouse and can use schedules to reduce IT management,
users have increased flexibility to create and modify their own reports to suit their
unique work environment.
In Developer, the moment you use an OLAP Services feature, whether it is dynamic
aggregation, a derived metric, a derived element, or a view filter, the standard report
becomes an OLAP report, as shown in the following image. Notice that Standard is
replaced by OLAP after a view filter is applied.
The report type change from Standard to OLAP is displayed only in Developer. The
same indication is not shown on reports in MicroStrategy Web.
When a saved OLAP Services report is opened again, it remains an OLAP Services
reportwhile a Standard report can be turned into an OLAP Services report, but an
OLAP Services report cannot be turned into a Standard report.
Sorting, page 21
Subtotals, page 21
Thresholds, page 21
Aliasing
When displaying a report, you can use the aliasing feature to rename any object on the
report grid, such as attribute names, consolidation names, custom group names, and
metric names. You can perform this task from both MicroStrategy Developer and Web.
Banding
Banding allows you to color groups of rows or columns so that they form bands of data
that are easy to locate and analyze. Banding can also make it easier to make sense of a
very large report, because the large amounts of data are broken up into visual groups. If
you need to keep track of values that mean different things in different columns (for
example, dollars in one column and inventory quantities in another column), banding
can help you avoid reading the wrong number.
Banding is a method of organizing or grouping data values in a grid report according to
certain criteria. You can band rows or columns in several ways. You can band based on
the number of rows or columns (for example, alternating color every 5 rows). You can
also band data based on the row and column headers (for example, sorting the Units Sold
column in order, then applying alternating colors to sets of values). For information on
applying banding to a report, see the Basic Reporting Guide.
Outline mode
Outline mode allows you to create an indented grouping of related attribute elements.
You can collapse and expand sections of related data. This function is particularly useful
in instances where the information displayed would otherwise involve repetitive entries.
For example, in the case of a grid report showing sales by year, each year is broken down
by month. With outline mode enabled, the data is organized into groups, with months of
each year nested below the years.
Page-by
Page-by is a way to segment data in a grid report by placing available attributes,
consolidations, or metrics on a third axis called the Page axis. Based on the varying
objects on the axis, you can view the report data in separate pages. This feature is most
useful when you have an extremely long report with many objects, and you need to scroll
to see all the data. You can page by many objects, such as attributes, metrics, hierarchies,
consolidations, custom groups, and so on.
Pivoting
Pivoting enables you to rearrange the columns and rows in a report to view data from
different perspectives. With data pivoting, you can do the following:
Move an object from the row header to the column header
Sorting
Sorting allows you to specify an ascending or descending order for a particular row or
column to present the report data. You can select what objects you want to sort, the
sorting criteria, and the sorting order. MicroStrategy Developer and Web offer quick sort,
advanced sort, and hierarchical sort.
Subtotals
Using the Subtotal feature, you can add, remove, and edit the subtotals at different levels
for metrics on the report. The subtotal functions available include sum, count, min, max,
average, mean, median, and so on. You might choose to display all subtotals, a grand
total only, or subtotals across levels where you select the object to be subtotaled.
Additionally, Developer allows you to construct custom subtotals that, for example, allow
you to enable subtotals for selected metrics only.
Thresholds
A threshold highlights data that meets conditions defined by you. Highlighting data can
include using different cell formats, symbols, images, or replacement text.
Intelligent Cubes act as a layer between your data warehouse and MicroStrategy reports
that analyze and display data, as illustrated below.
The abstraction that Intelligent Cubes provide between your data warehouse and reports
can improve the performance of your business intelligence application in the following
ways:
Reports that connect to an Intelligent Cube can perform reporting and analysis
manipulations within the Intelligent Cube without hitting the data warehouse. These
manipulations are executed much faster than running a new query against a data
warehouse.
The data that reports can access is restricted to the data within the Intelligent Cube.
Users can still perform a few ROLAP manipulations such as drilling that can access
the data warehouse. However, these types of manipulations that cause re-execution
against the data warehouse are not as accessible as they are when using standard
reports.
For example, when using a standard report, users can access any attribute defined for
the project and include it on the report. A manipulation of this type requires re-
execution against the data warehouse. Conversely, a user working in a report that
connects to an Intelligent Cube can only add attributes to the report grid if the
attributes are included in the Intelligent Cube.
Therefore, Intelligent Cubes help to limit the amount of processing done in the data
warehouse and improve performance.
Security filters are applied separately for each user at the level of the report
connecting to the Intelligent Cube, rather than having to create multiple Intelligent
Cubes for each security filter. For more information, see Maintaining data access
security, page 23.
data with security filters. For more information on security filters, see the System
Administration Guide.
User and group security filters are applied automatically on reports that connect to an
Intelligent Cube, as shown below:
This approach allows a single Intelligent Cube to be used by multiple security filters,
rather than having to create separate Intelligent Cubes for each security filter. By using a
single Intelligent Cube to support all the security filters for a project, data access security
is implemented automatically with minimal burden on Intelligence Server memory.
However, there are some differences in security filter resolution for reports that connect
to Intelligent Cubes as compared to reports that directly access the data warehouse. For
information on these differences, see Security filter resolution for reports connected to
Intelligent Cubes, page 24 below.
Another possible cause of metrics not properly returning data on reports connected
to Intelligent Cubes is the use of dynamic aggregation (see Chapter 9, Dynamic
Aggregation). However, when this is caused by dynamic aggregation, null values are
displayed for the metric rather than not displaying any information at all. The image
below shows the difference between security filter resolution and dynamic
aggregation as the cause for metrics not displaying any data.
By default, null values are represented by dashes (--) on reports. For information
on changing the display of null values, see Changing the display of null values,
page 255.
For more specific scenarios and examples of when security filter resolution can occur,
see Security filter resolution when attributes in a users security filter are not in the
Intelligent Cube used for the report, page 26.
If a user is experiencing one of the two scenarios listed above due to security filter
resolution, the following resolutions can be considered:
The user continues to Data access security is maintained. No Some data that may
use the report that additional resources are needed to be available to the
accesses the Intelligent modify the Intelligent Cube or to create a user by directly
Cube. new report. querying a data source
may not be available in
the report that
accessed an Intelligent
Cube.
The user creates or The user is able to verify the full results A new report that
views a report with the that can be returned for such a report. directly queries a data
same definition that source must be
directly queries a data created.
source rather than
accessing an Intelligent The new report cannot
Cube. take advantage of the
improved query
performance of
accessing an
Intelligent Cube.
Add the attributes used The security filter resolution for the user The Intelligent Cube
in a users security filter can use the standard process and return must be published
to the Intelligent Cube the same data as if the report were again to reflect the
and publish the directly querying a data source. This is new definition.
updated Intelligent also helpful if multiple users could benefit Publishing the
Cube. from the same change to the Intelligent Intelligent Cube can
Cube definition. require substantial
system resources.
Including additional
attributes requires
more memory for the
Intelligent Cube to be
stored on Intelligence
Server.
Security filter resolution when attributes in a users security filter are not in the
Intelligent Cube used for the report
When attributes in a users security filter are not in the Intelligent Cube used for the
report, the outcome depends on how the attributes are related to those in the Intelligent
cube, as described below:
Attributes in the security filter are related to attributes in the
Intelligent Cube: No data is returned, to maintain data access security.
For example, an Intelligent Cube includes the attributes Year and Region, and the
metric Revenue. A user creates a report that connects to this Intelligent Cube, and
includes Year and Revenue on the report. The users security filter is defined on the
attribute Quarter to return data only for the first quarter of 2008.
By including the Year attribute on the report, this report would return information
for all quarters in each year. However, the user is allowed to only see data for the
first quarter of 2008. To maintain this data access security, no data is returned for
the report.
Attributes in the security filter are not related to attributes in the
Intelligent Cube: The data returned depends on whether metrics in the Intelligent
Cube report fact data based on attributes related to those in the users security filter:
A fact in the Intelligent Cube is reported A fact in the Intelligent Cube is not
based on an attribute in the security filter reported based on any of the
attributes in the security filter
Attributes in Data can be returned using the standard Data can be returned using the
the security security filter resolution. However, to maintain standard security filter resolution. In
filter are not
related to
data access security, no data is displayed for this scenario the security filter does
attributes in any metrics where fact data is reported based not need to restrict any data, and
the Intelligent on attributes related to those in the security the metric data can also be
Cube filter. displayed.
You can use the ACL Editor in -MicroStrategy Web to assign the following permission
groups to users, for each Intelligent Cube:
Consume Grants permission to create and execute reports based on this Browse
Intelligent Cube.
Read
Use
Add Grants permission to create and execute reports based on this Browse
Intelligent Cube, and republish/re-execute the Intelligent Cube to
update the data. Read
Use
Execute
Collaborate Grants permission to create and execute reports based on this Browse
Intelligent Cube, republish/re-execute the Intelligent Cube to update the
data, and modify the Intelligent Cube. Read
Write
Delete
Use
Execute
For information on ACLs and access permissions, see the System Administration Guide.
While creating Intelligent Cubes, bear in mind that Intelligent Cubes can deplete
Intelligence Servers system resources. Create Intelligent Cubes for logical subsets
of your data, rather than using them as a reflection of your entire data warehouse.
For information on managing the size of Intelligent Cubes, see Managing
Intelligent Cubes in the System Administration Guide.
Define your business query: Before you can determine what objects to place on an
Intelligent Cube, you need to know what data you want to make available for reports
to access directly. To define your Intelligent Cube, make sure you consider the
following questions:
What subset of business queries does the Intelligent Cube need to provide data
for? Intelligent Cubes allow you to create sets of data that can support multiple
reports that answer variations to similar business queries.
Do you have reports that currently access your data warehouse that could benefit
from accessing an Intelligent Cube instead? To support this scenario, you can use
dynamic sourcing to connect these reports to Intelligent Cubes that you create.
You can also use MicroStrategy Cube Advisor to create Intelligent Cubes that
these reports can access. For information on using Cube Advisor to support
dynamic sourcing, see Using Cube Advisor to support dynamic sourcing, page
218.
Look for existing Intelligent Cubes: Before you create an Intelligent Cube, search
through MicroStrategy to see whether a similar Intelligent Cube already exists that
can serve the same purpose as the Intelligent Cube that you intend to create. This
can not only save you time, it can help you avoid unnecessary duplication in your
MicroStrategy project. You can search a project for Intelligent Cubes, or you can
view Intelligent Cubes created for your projects in the Intelligent Cube Monitor. For
information on using the Intelligent Cube Monitor, see the System Administration
Guide .
Review the feature support for Intelligent Cubes: The MicroStrategy features that are
available for Intelligent Cubes differ from those available for reports. To review this
list, see Supporting various features with Intelligent Cubes, page 29 below.
Since Intelligent Cubes are used simply to share a set of data, no data or report results are
displayed when you execute an Intelligent Cube. However, executing an Intelligent Cube
publishes the Intelligent Cube, which can then be accessed as a set of data for multiple
reports (see Publishing Intelligent Cubes, page 39).
Prerequisites
Review the information provided in Prerequisites to creating Intelligent Cubes, page
29.
You need the Use Intelligent Cube Editor privilege to create Intelligent Cubes. This
privilege is part of OLAP Services.
1 In Developer, from the File menu select New, and then Intelligent Cube. The
New Intelligent Cube dialog box opens.
If the New Intelligent Cube dialog box does not open, from the Tools menu,
select Developer Preferences. Expand the Object Templates category,
select General, and from the Show templates for the following objects list,
select Report. Click OK to accept your changes, and then repeat the previous
step to open the New Grid dialog box.
2 Select Empty Intelligent Cube and click OK. The Report Editor opens.
3 Add objects such as attributes, metrics, and so on for the Intelligent Cube, the same
way you would add report objects.
4 Create a filter for the Intelligent Cube as needed.
If you create a filter on an Intelligent Cube, any data that is restricted from the
Intelligent Cube is not available for any reports that connect to the Intelligent
Cube. While this can help reduce the size of the Intelligent Cube, it also
reduces the amount of data available in the Intelligent Cube.
5 Click Save and close to save the Intelligent Cube and close the Report Editor.
6 To publish an Intelligent Cube, see Publishing Intelligent Cubes, page 39.
1 Right-click the report and select Edit. The Report Editor opens.
2 From the Data menu, point to Intelligent Cube Options, and select Convert to
Intelligent Cube.
3 If the report contains objects that cannot be included in the Intelligent Cube, one of
the following messages is displayed:
If the report includes OLAP Services features such as view filters, derived
metrics, or dynamic aggregation, you are prompted to automatically remove
these features as part of the conversion process. Click Yes to have these features
automatically removed so that the report can be converted into an Intelligent
Cube.
If the report includes features such as consolidations, custom groups, or
prompts, a warning message is displayed that explains that these objects cannot
be included in the Intelligent Cube. Click OK to close the warning message and
then manually remove the objects from the report. You can then attempt to
convert the report to an Intelligent Cube again.
4 After the conversion process is completed successfully, save the Intelligent Cube.
5 You must publish an Intelligent Cube to make it available for multiple reports to
access and report on its set of data. To publish an Intelligent Cube, see Publishing
Intelligent Cubes, page 39.
You have created the schedule to subscribe the publication of an Intelligent Cube to.
For information on creating schedules, see the System Administration Guide.
and executed against the data warehouse. This action does not take advantage of the data
stored in the Intelligent Cube.
When this drilled-to report is created, only objects that were on the report layout of the
report you drilled from are included in the drilled-to report. Any objects that are only in
the Report Objects pane of the report you drilled from are not included in the drilled-to
report. This can help reduce the size of the drilled-to report. However, if you are drilling
from a report that accesses a large Intelligent Cube, it is possible that a user could include
all objects of an Intelligent Cube on a report. Drilling outside of the Intelligent Cube on
such a report could cause excessive load on the data warehouse and Intelligence Server.
The procedures below describe the steps to enable drilling outside of a specific Intelligent
Cube, or any Intelligent Cubes in a project:
To enable or disable drilling outside of an Intelligent Cube for reports accessing a
specific Intelligent Cube, page 35
To enable or disable drilling outside of an Intelligent Cube for reports accessing
any Intelligent Cubes in a project, page 36
Prerequisites
An Intelligent Cube has been created.
You need the Use Intelligent Cube Editor privilege. This privilege is part of OLAP
Services.
This procedure enables drilling outside of all Intelligent Cubes within a project.
Review the considerations in Enabling ROLAP drilling for reports accessing
Intelligent Cubes, page 34 before enabling drilling outside of all Intelligent Cubes
for a project.
The same report returns data that matches the users locale. This is because the
Intelligent Cube has been defined to include localized data.
The SQL view of these reports shown below demonstrates how the data is returned in
different languages:
Notice that different columns of data were returned for the report based on the locale
used to run the report. This demonstrates a column-based solution to localizing your
data. It is recommended that you use a column-based solution rather than a connection
mapping-based solution to localize your data for Intelligent Cubes. For information on
this recommendation, see the Supplemental Reference for System Administration.
Localizing an Intelligent Cube does not localize any data, it only returns data that has
already been configured in a MicroStrategy project as part of a localization solution. For
information on defining localization rules for your MicroStrategy projects, see the
Project Design Guide.
Providing localized data causes the Intelligent Cube size to be larger than if it supported
only a single locale. However, providing localized data in Intelligent Cubes is necessary if
users expect reports that return Intelligent Cube data to return localized data to reflect
their locale.
The steps below let you define Intelligent Cubes to support various languages.
Prerequisites
An Intelligent Cube has been created.
The project for the Intelligent Cube has been configured to support multiple
languages. For information on localizing projects, see the Project Design Guide.
You need the Use Intelligent Cube Editor privilege. This privilege is part of OLAP
Services.
You can publish Intelligent Cubes manually, or you can schedule the publication of
Intelligent Cubes for a specific time, as described in:
Publishing Intelligent Cubes manually, page 39
Publishing Intelligent Cubes using a schedule, page 40
Unpublishing an Intelligent Cube, page 42
Prerequisites
An Intelligent Cube has been created. For information on creating an Intelligent
Cubes, see Creating Intelligent Cubes, page 28.
You need the Publish Intelligent Cube (Developer) and/or Web Publish Intelligent
Cube (Web) privileges. These privileges are part of OLAP Services.
The steps below show you how to publish an Intelligent Cube in Developer. You can
follow the same high-level steps in Web to browse to an Intelligent Cube, and then run
the Intelligent Cube to publish it.
1 In MicroStrategy Developer, browse to the location of the Intelligent Cube to
publish.
If you define Intelligent Cubes to use the connection mapping configured for
your project, the Intelligent Cubes are published with the connection mapping
defined for the user account employed to publish the Intelligent Cubes. For
information on defining Intelligent Cubes to support connection mapping, see
the System Administration Guide.
You cannot create subscriptions for Intelligent Cubes that have been created using
the Import Data feature in MicroStrategy Web. For information on the Import
Data feature, refer to the MicroStrategy Web Help.
Prerequisites
An Intelligent Cube has been created.
You have created the schedule to subscribe the publication of an Intelligent Cube to.
For information on creating schedules, see the System Administration Guide.
8 Keep the default user that is selected or select a different user with administrative
privileges, and click Next. The Subscription Wizard - Specify Subscription Properties
page opens.
9 You can choose from the following subscription properties:
Run subscription immediately: Select this check box if the Intelligent Cube
should be published immediately. This causes any Intelligent Cubes included in
the subscription to be published immediately. The Intelligent Cubes will also be
re-published based on the schedule used in the subscription.
Expire subscription on: Select this check box if the subscription should
expire. If you select an expiration date, the subscription is deleted on that date
and Intelligent Cubes included in the subscription are no longer scheduled for
publication. The Intelligent Cubes can be published manually.
10 Click Next. The Subscription Wizard - Summary page opens.
11 Review the summary information, and click Finish to create the subscription. If you
selected to run the subscription immediately, the Intelligent Cubes are executed
against the data warehouse and published to the Intelligent Cube Monitor.
You can view and edit the new subscription from the Subscription Manager. For
example, you can select a different schedule to use for the subscription or modify the
expiration date for the subscription. For information on subscriptions and the
Subscription Manager, see the System Administration Guide.
2 From the Folder List, expand Administration, then expand System Monitors,
then expand Caches, and select Intelligent Cubes. The Intelligent Cube Monitor
is displayed.
3 Right-click an Intelligent Cube and select Delete. The Intelligent Cube is
unpublished from the Intelligent Cube Monitor and its data cannot be accessed by
reports.
If you choose to define an incremental refresh filter or report, you should not
re-publish the Intelligent Cube by double-clicking, or by publishing it on a
schedule. Doing so will overwrite any changes made by the incremental
refresh filter or report.
1 In Developer, navigate to the Intelligent Cube you want to define republish settings
for.
2 Right-click on the Intelligent Cube, and select Edit. The Intelligent Cube Editor
opens.
3 From the Data menu, select Configure Intelligent Cube. The Intelligent Cube
Options dialog box opens.
4 Navigate to the Data Refresh category.
5 Choose one of the following options:
Full Refresh: This is the default. The Intelligent Cubes SQL is re-executed,
and all the data is loaded from the data warehouse into Intelligence Server's
memory.
Use this option under the following conditions:
If the data in the Intelligent Cube is outdated.
If the Intelligent Cube must be re-processed based on a metric. For example,
an Intelligent Cube that contains data for the top 200 stores by Profit must
be re-calculated every time it is updated, and thus must use the Full Refresh
option.
Dynamic refresh: The Intelligent Cube's filter is evaluated. If new data is
returned, it is added to the Intelligent Cube, and data that no longer meets the
filters criteria is deleted from the Intelligent Cube. The dynamic refresh option
is illustrated in the image below.
Select this option for Intelligent Cubes that have a rolling set of datafor
example, an Intelligent Cube that always contains data for the past six months.
If you choose to define an incremental refresh filter or report, you should not re-
publish the Intelligent Cube by double-clicking it, or by publishing it on a schedule.
Doing so will overwrite any changes made by the incremental refresh filter or
report.
1 In Developer, navigate to the Intelligent Cube for which you want to define the
incremental refresh.
2 Right-click the Intelligent Cube, and select Define Incremental Refresh
Report. The Incremental Refresh Options dialog box opens.
3 Under Refresh type, select one of the following options. The differences between
the options are illustrated in the image below.
You can change these options at any time by opening the incremental refresh
in the Report Editor, and from the Data menu, selecting Configure
incremental refresh options.
4 Click OK. The Report Editor opens with a new incremental refresh. If the Intelligent
Cubes definition included a filter, it appears in the Report Filter pane.
5 In the Report Filter pane, edit the filter if applicable, or create a new filter.
The filter must only qualify on attributes that are present in the Intelligent
Cube.
6 To preview the data that will be updated in the Intelligent Cube, from the View
menu, select Preview Data. The data is displayed in a grid view.
If your security filter prevents you from viewing some data, the preview only
displays data that you can view. However, when the incremental refresh is
executed, all the data is updated in the Intelligent Cube, regardless of security
filters.
7 To execute the incremental refresh immediately, click the Run Report button.
8 To save and close the incremental refresh, click Save and Close.
1 Navigate to the Intelligent Cube for which you want to define the incremental
refresh.
2 Right-click the Intelligent Cube, and select Define Incremental Refresh
Report. The Incremental Refresh Options dialog box opens.
3 Under Refresh type, select one of the following options. The differences between the
options are illustrated in the image below.
If you are using the Delete option, you can use a subset of attributes from
the Intelligent Cube on the reports template.
Update only: The incremental refresh report is evaluated. If the data returned
is already in the Intelligent Cube, it is updated where applicable. No new data is
added to the Intelligent Cube.
You can change these options at any time by opening the incremental refresh
in the Report Editor, and from the Data menu, selecting Configure
incremental refresh options.
5 Select Report, and click OK. The Report Editor opens, with a new incremental
refresh report. By default, the reports template contains all the attributes and
metrics from the Intelligent Cube.
6 Edit the report, if necessary.
7 To preview the data that will be updated in the Intelligent Cube, from the View
menu, select Preview Data. The data is displayed in a grid view.
If your security filter prevents you from viewing some data, the preview only
displays data that you can view. However, when the incremental refresh is
executed, all the data is updated in the Intelligent Cube, regardless of security
filters.
8 To execute the incremental refresh immediately, click the Run Report button.
9 To save and close the incremental refresh, click Save and Close.
While reporting on Intelligent Cubes, there are a few scenarios that can produce
unexpected results. To troubleshoot these issues, see Troubleshooting reports
connected to Intelligent Cubes, page 65.
This section discusses the features available for reports that connect to Intelligent Cubes,
and how the reports utilize standard reporting features and OLAP Services features to
execute reporting and analysis manipulations completely within the Intelligent Cube.
This section includes information on the small differences in workflows and standards
when using standard reporting features in these reports:
Creating reports that connect to Intelligent Cubes, page 52
Creating Report Services documents that connect to Intelligent Cubes, page 55
Creating Visual Insight dashboards that connect to Intelligent Cubes, page 55
Analyzing data using standard OLAP Services features, page 61
Run-time reporting with prompts, page 61
Relational analysis with drilling, page 62
Troubleshooting reports connected to Intelligent Cubes, page 65
In Developer, you can also create a report that connects to an Intelligent Cube by
right-clicking an Intelligent Cube and selecting Create Report.
Changing the Intelligent Cube that a report points to is possible in Developer only.
Prerequisites
A report has been created that connects to a published Intelligent Cube.
A second Intelligent Cube has been created and published that has the same or
similar data as the report you want to link to it.
You need the Define Intelligent Cube Report privilege. This privilege is part of OLAP
Services.
1 In Web, click New Document. The Create Document page opens, showing
document templates that you can use.
2 Click a template for the document. A new document opens, in Design mode.
3 In the Dataset Objects pane, click Add Dataset. The Select Dataset dialog box
opens.
4 In the Select Dataset dialog box, navigate to the Intelligent Cube that you want to use
as a dataset.
5 Select the Intelligent Cube, and click OK. The Intelligent Cube is added to the
Dataset Objects pane.
6 To add another Intelligent Cube to the document, repeat the steps above.
For detailed information on using documents with multiple datasets, refer to the
Document Creation Guide.
The steps to create VI dashboards that connect to Intelligent Cubes are described below.
Prerequisites
An Intelligent Cube has been created and published.
You need the Define Intelligent Cube Report privilege. This privilege is part of OLAP
Services.
If you want to use multiple Intelligent Cubes as datasets for your dashboard, you
must have the Execute Report that Uses Multiple Data Sources privilege.
If you want to use multiple Intelligent Cubes as datasets for your dashboard, you
must have the Import Table from Multiple Data Sources privilege.
1 In Web, click New Dashboard. The Select Dataset dialog box opens.
2 In the Select Dataset dialog box, navigate to the Intelligent Cube that you want to use
for the dashboard.
3 Select the Intelligent Cube, and click Next. A new VI dashboard opens, with the
Intelligent Cube added to the Dataset Objects pane.
4 To add another Intelligent Cube to the dashboards datasets, in the toolbar, click
Add Dataset.
For steps to create visualizations and analyze data in VI dashboards, see the
MicroStrategy Web Help.
For descriptions of scenarios involving duplicate data between cubes, see Handling
duplicate data when merging Intelligent Cubes, page 58.
Prerequisites
l User must have full control access rights to the cubes being merged.
l None of the cubes being merged are exclusive.
l Cubes must support the same access type. (For example, In-Memory only cubes cannot
merge with Direct Data Access only cubes.)
For simplicity, the following steps refer to Cube A and Cube B, where Cube B will
be merged into Cube A.
1. From the MicroStrategy Web Home page navigate to the Intelligent Cube (Cube A)
you want to merge data into.
Cube A must be selected here to maintain its attribute IDs after the merge. If
you select Cube B, any dashboards or reports linked to Cube A before the
merge may not function correctly.
5. Navigate to the Intelligent Cube (Cube B) you want to add. Select the Cube and
click OK.
l To add another cube, repeat Steps 4 and 5.
l To save the updated Cube A, click Save Progress.
6. If you are finished adding to Cube A, click Update Dataset.
7. In the Data Access Mode window choose how you access the new cube by
selecting Connect Live or Import as an In-memory Dataset.
8. The Start your analysis window opens. You can choose from Create Dashboard,
Create Document, or Create Report.
Multiform attributes follow the same rules as above. When multiform and single
form attributes are compared, the data types for the ID of the multiform
attribute and the name of the single form attribute are checked for
compatibility.
Partitioned Tables
l If Cube A and Cube B both have two partition tables, they will merge successfully. To
group the tables into a single table, select Yes in the reminder window. You can also
group them together manually on the table menu.
l If all the sub tables are the same, the newly added duplicate database table will be
removed.
l If the tables in Cube B are not a subset of the group tables in Cube A, but they can be
grouped, you will see the pop up window for the partition option. Click Yes to remove
duplicate tables. Click No to keep the tables separate. The tables can be grouped
manually on the table menu.
Prompts allow users to choose which objects and filtering criteria to apply to a report
during report execution.
Prompts serve the same purpose in any report, including reports that connect to
Intelligent Cubes. However, instead of modifying SQL at report run time, prompts allow
reports to select data within the Intelligent Cube, as illustrated below.
The image above shows standard run-time reporting with prompts, while using OLAP
Services to execute against the Intelligent Cube rather than against the data warehouse.
The performance of your business intelligence application is improved by reducing
execution against your data warehouse and maintaining only a single Intelligent Cube for
multiple prompted reports.
Prompts on reports that connect to Intelligent Cubes can only access data that is
available within the Intelligent Cube. These restrictions are applied automatically when
creating prompts. For example, the attributes Year and Region and the metrics Cost and
Revenue are included in the Intelligent Cube shown in the image above. If you create an
object prompt in your report that connects to this Intelligent Cube, then you can only
create prompts based on one of Year, Region, Cost, and Revenue.
You cannot use prompts that include objects or data that are not part of the
Intelligent Cube, or prompts that use hierarchies. If you try to use such prompts,
an error message is displayed.
Prompts in reports that access Intelligent Cubes can use the complete ROLAP schema of
a project. However, if a prompt retrieves data from outside the Intelligent Cube, re-
execution against the data warehouse is necessary.
report grid to an attribute that is not on the report grid, but available in the Report
Objects pane. If the attribute is not available in the Report Objects pane, it is not an
available drilling option by default. However, Intelligent Cubes can be defined to allow
drilling outside of an Intelligent Cube to the full relational data warehouse.
For example, your report includes the attribute Year. After analyzing data at the Year
level, you want to analyze data for each quarter. You can drill down from Year to the
attribute Quarter to view and analyze data at the new logical level. This drilling action is
performed within an Intelligent Cube. Following this example scenario, you want to drill
from year 2007 to quarters for that year. You have a report connected to an Intelligent
Cube that is defined as shown below:
Notice that Quarter is not on the report, but it is included in the Report Objects pane on
the left as it is a part of the Intelligent Cube that the report is connected to. As shown in
the report above, you right-click the 2007 attribute element for Year and drill down to
Quarter. The drilled-to report is shown below.
This drilled-to report is executed within and connected to the same Intelligent Cube as
the original report. This is verifiable by looking at the Report Objects pane, which shows
that the report objects are being returned from the same Intelligent Cube (named
Drilling I Cube) as the original report. This provides relational analysis without having to
execute the report against the data warehouse.
In the scenario above, drilling is performed within the Intelligent Cube, which is
achievable through any report connected to an Intelligent Cube. However, if the
Intelligent Cube is defined to allow drilling outside it (see Enabling ROLAP drilling for
reports accessing Intelligent Cubes, page 34), you can also drill to any object not
included in the Intelligent Cube. While drilling outside of an Intelligent Cube requires
execution against the data warehouse, it provides access to the full ROLAP schema of the
project outside of the Intelligent Cube.
In the next example, the same scenario of drilling from Year to Quarter is used, except
that the Intelligent Cube does not contain the Quarter attribute. As shown in the report
below, you right-click the 2007 attribute element for Year and drill down to Quarter.
Notice in the report shown above that all the attributes in the Time hierarchy are
available drilling options even though they are not all included in the Intelligent Cube.
These attributes are available drilling options because the Intelligent Cube is defined to
enable drilling outside of the Intelligent Cube. As shown in the report above, you right-
click the 2007 attribute element for Year and drill down to Quarter. The drilled-to report
is shown below.
This drilled-to report is executed against the data warehouse, and it allows you to access
data outside of the Intelligent Cube for further relational analysis. Notice also that all
report objects that were not on the report grid are now removed from the Report Objects
pane, because this new, drilled-to report is not connected to the Intelligent Cube.
You should consider the execution time requirements for a report before drilling outside
of an Intelligent Cube.
For basics on how to drill on data, see the Basic Reporting Guide. For information on
creating drill maps, which are used to enable drilling techniques, see the Drill Maps
chapter in the Advanced Reporting Guide.
Your security filter does not allow you to see the data available on the Intelligent
Cube. For information on how to resolve data availability due to security filter
resolution, see Resolving security filter resolution, page 66 below.
By default, null values are represented by dashes (--) on reports. For information
on changing the display of null values, see Changing the display of null values,
page 255.
If dynamic aggregation is the cause for null values being displayed, resolutions for this
issue are described in Metrics that are not dynamically aggregated by default, page
248.
If your security filter is the cause for metric data not being displayed, see Resolving
security filter resolution, page 66.
While reporting on Intelligent Cubes, there are a few scenarios that can produce
unexpected results. To troubleshoot these issues, see Troubleshooting reports
connected to Intelligent Cubes, page 65
Design your documents and dashboards using MicroStrategy Web. For steps to
design documents and dashboards, see the MicroStrategy Web Help.
Maintain and update your dataset, as described in Editing and updating your
dataset, page 74.
Your application allows users to add or update data in your warehouse by using
Transaction Services.
All tables that have more than two billion rows of data cannot be partitioned based
on the same attribute.
The calculations for your KPIs require the entire dataset. For example, KPIs that use
functions such as First, Last, Standard Deviation, OLAP functions, and so on require
the entire dataset.
For a full list of the most efficient functions to use in partitioned datasets, see
Appendix A, Efficient Functions for Partitioned Datasets.
Your data is unstructured, and include data sources other than RDBMS or flat files.
Your dataset needs to be updated in real time.
The data type of the partition attribute must be one of the following:
Integer
BigDecimal
Text
Date
The partition attribute should be present on as many fact tables as possible, especially
your largest fact tables. This requirement ensures that the calculations that you need
to perform take full advantage of MicroStrategys parallel processing capabilities.
The partition attribute is not used to filter your dataset. This ensures that when users
analyze data in your application, the maximum number of partitions are involved in
the calculations, which leads to faster response times.
The partition attribute is on any tables that are larger than two billion rows.
16 Click and drag the name of the table from the Available Tables panel to the panel on
the right.
17 Click Finish.
You can do more than just simple combinations of attribute elements with derived
elements. For example, after you have defined the East Coast derived element, you can
determine the East Coast regions percent contribution to profit, as shown in the last row
of the report below.
This demonstrates only a fraction of the analysis and formatting capabilities of derived
elements. With derived elements you can also create custom sort orders for attribute
elements, use aggregation functions such as Average to combine attribute elements, and
perform other analysis and formatting tasks.
Derived elements are evaluated on the report dataset without regenerating or re-
executing SQL.
The following sections of this chapter cover derived element concepts, functionality, and
procedures:
Types of derived elements, page 80
Creating derived elements, page 88
Defining derived element functionality and formatting, page 121
Interaction with other reporting features, page 131
Group derived elements are created by selecting attribute elements to include in each
derived element. The image below shows how the East Coast Group derived element is
created in the Derived Elements Editor:
Group derived elements can only combine attribute elements, they cannot
combine other derived elements. If you want to create a derived element that is a
combination of other derived elements, you must use a Calculation derived
element (see Calculation derived element, page 85).
You can quickly create Group derived elements using right-click options (see Creating
quick groups, page 90), or you can use the Derived Elements Editor to access the full
functionality of derived elements (see Using the Derived Elements Editor, page 101).
You can also use this type of derived element to display the attribute elements in a
different order. This enables you to do more advanced attribute element sorting than
simple ascending or descending sorts. For information on using Group derived elements
to sort the display of attribute elements on a report, see Creating quick sorts, page 99.
Filter derived elements are created by filtering attribute elements to include in each
derived element. There are two methods to create Filter derived elements:
Create a Filter derived element using a filter qualification on a list of attribute
elements. This includes using the In list and Not in List operators.
In list: A filter qualification using In list returns data for all the attribute
elements you select. An In list filter qualification that returns all the southern
regions is shown below.
Not in List: A filter qualification using Not in List returns data for all the
attribute elements you do not select, for a given attribute. A Not in List filter
qualification that returns all the southern regions is shown below.
Create a Filter derived element using a filter qualification on attribute forms. This
enables you to use various logical and mathematical operators to create filter
qualifications on attribute forms to return data. An attribute form qualification using
a Begins with operator that returns all southern regions is shown below.
You can use any of the following operators in attribute form qualifications, which are
described in detail in Appendix A, Logical and Mathematical Operators for Filtering
in the MicroStrategy Advanced Reporting Guide:
To create Filter derived elements, you must use the Derived Elements Editor (see Using
the Derived Elements Editor, page 101).
Calculation derived elements are created by defining expressions with valid combinations
of operators, functions, attribute elements, and derived elements. An example of a valid
expression is shown below.
You can include the following when you create a Calculation derived element expression:
Attribute elements: You can include attribute elements in your expression by
selecting the attribute from the drop-down list, selecting attribute elements, and
dragging and dropping them into the expression area.
Derived elements: You can include other derived elements in your expression by
selecting derived elements from the Groups drop-down list, and dragging and
dropping them into the expression area. The example below shows a Calculation
derived element created by performing a division of two other derived elements.
Operators: You can include ( ), +, -, *, and /, which are all available on the toolbar.
Functions: You can include Average, Greatest, and Least by clicking f(x) on the
toolbar and completing the Insert Function Wizard. For information on these
functions, see Creating quick calculations, page 92. For steps to use the Insert
Function Wizard, click Help in the wizard.
Clear: You can clear the expression to start creating a new expression.
Validate: You can check your expression to see if its syntax is valid. Any errors in
syntax are highlighted in red.
To create Calculation derived elements, you can either quickly create derived elements
with right-click options (see Creating quick calculations, page 92), or you can use the
Derived Elements Editor to access the full functionality of derived elements (see Using
the Derived Elements Editor, page 101).
Central, Mid-Atlantic, and Web are all attribute elements that are not included in any
derived elements. The All Other derived element gathers these remaining attribute
elements, and displays them on a report as individual attribute elements.
You can also include all of the attribute elements that are part of the All Other derived
element as one consolidated element on a report (see Displaying derived elements or
their attribute elements, page 123).
While this is the most common way the All Other derived element is used, you can
define attribute elements included in other derived elements to also be included as part
of the All Other derived element. For information on including attribute elements in the
All Other derived element, see Displaying derived elements and their attribute elements
simultaneously, page 125.
You can create derived elements with the following methods, which are all described in
this section:
Depending on the type of report you are creating a derived element on, you can
use either MicroStrategy Developer or Web. To see which interfaces you can use,
refer to the tables under each of the following methods.
Quickly creating groups, calculations, and sorts, page 89: While reviewing the data
on a report or document, you can quickly group attribute elements into derived
elements for further analysis of your data.
Using the Derived Elements Editor, page 101: Using the Derived Elements Editor
provides the full set of derived elements functionality when creating derived
elements.
Creating and using stand-alone derived elements, page 117: You can create stand-
alone derived elements that can be used in multiple reports and Grid/Graphs. You
use the Derived Elements Editor to create stand-alone derived elements, but you do
not have to create them from within a report or Grid/Graph.
Review the table following the list of quick group derived elements for a list of
when you can use these quick group options to create derived elements.
Creating quick groups, page 90: Creates a simple group of attribute elements.
Creating quick calculations, page 92: Creates a calculation on the attribute elements
or derived elements (or a combination of both).
Creating quick sorts, page 99: Creates a derived element that sorts the attribute
elements on the report or document in any order you want. This option is only
available if no derived elements are defined for the attribute on the report or
document.
These quick group options to create derived elements are quick and easy ways to create
derived elements. However, creating derived elements with these quick group techniques
is only available with the configurations listed in the table below:
You can then type a name for the group, such as Fall 08, and then click OK. A derived
element is created for the Fall 08 group, which displays and aggregates the data for
October and November 2008.
You can also group attributes elements to create derived elements for the winter, spring
and summer months. A report with a derived element for each season group is shown
below.
As shown in the report above, data for each customer industry sector is aggregated for
the three months of each group. For example, Retail and Consumer Products had one
sales order in June 2009, three sales orders in July 2009, and one sales order in August
2009. This data is aggregated to a total of five sales orders for the Summer 09 time
period.
2 Navigate to and run the Intelligent Cube report. View the report in either Grid View
or Grid and Graph View.
3 In the grid display of the report, hold down the CTRL key and select multiple
attribute elements within the same attribute.
Do not select derived elements for the attribute, as you cannot create quick
groups based on derived elements. To group derived elements, you must use
the Derived Elements Editor.
4 Right-click your selection and select Group. The Create Group dialog box opens.
5 Type a name for the derived element, and click OK.
The group is created as a derived element and displayed on the report. You can modify
the derived element using the Derived Elements Editor (see Using the Derived Elements
Editor, page 101).
If you select exactly two attribute elements, you can choose from all of the
calculations listed below.
If you select more than two attribute elements, Subtract and Divide are not
available calculations as they can only accept two operands. If you want to create
a subtraction or division including more than two attribute elements, you must
use the Derived Elements Editor.
The Greatest and Least calculations are best used when your report has only one
metric. These calculations operate on each metric individually, so if your report
has more than one metric, the values for the Greatest derived element will not
necessarily correspond to the same attribute element.
Least: Calculates and displays the least value of each metric for two or more
attribute elements, derived elements, or a combination of both.
Using the same example used to illustrate the Greatest calculation listed above, the
table below shows an example of a creating a least calculation on the books and
electronics categories.
To illustrate quick calculations, consider the following example. You have a report that
displays the unit price, cost, and profit for all items sold in the Action movies
subcategory, as shown below.
You decide to do further analysis based on the unit cost of the various items listed. To
provide this analysis you begin to put the items into various groups that perform an
average of their data. You create the first group by selecting Vanishing Point, Godzilla,
Apollo 13, Le Mans, The African Queen, and Manhunter, then right-clicking the
selection, pointing to Create Calculation, and selecting Average. This process is
shown below.
You then type a name for the group, such as Average Unit Costs $7.00-$9.99, and then
click OK. A derived element is created for the Average Unit Costs $7.00-$9.99 group,
which displays an average of the data for Vanishing Point, Godzilla, Apollo 13, Le Mans,
The African Queen, and Manhunter.
When you create the quick calculation, the resulting derived element appears at
the top of the report, and its attribute elements remain below it. To hide these
elements, use the Derived Elements Editor. To show or hide attribute elements
using the Derived Elements Editor, see Displaying derived elements and their
attribute elements simultaneously, page 125.
You can then group the rest of the items into two other groups, one for Average Unit
Costs $10.00-$13.99 and one for Unit Costs $14.00+. The resulting report is shown
below.
You can now view your data at a new summarized level. The report shows a relatively
sizable average unit profit for items with unit costs greater than $14.00. You can
continue your analysis to see whether the higher prices are affecting the average number
of items sold, as shown below.
As shown in the report above, the higher prices have no negative effect on the number
of items sold for the items you expect a higher profit margin on. This type of analysis can
lead you to update your pricing guidelines to maximize profits for items of varying values.
2 Navigate to and run the Intelligent Cube report. View the report in either Grid View
or Grid and Graph View.
3 In the grid display of the report, press the CTRL key and select multiple attribute
elements within the same attribute.
4 Right-click your selection, point to Create Calculation, and then select one of the
following calculations. Each is described in Creating quick calculations, page 92.
If you selected exactly two attribute elements, you can choose from all of the
calculations listed below.
If you select more than two attribute elements, Subtract and Divide are not
available calculations as they can only accept two operands.
If you want to create a subtraction or division including more than two attribute
elements, you must use the Derived Elements Editor.
Sum
Subtract
Average
Greatest
Least
Divide
The Defining Group dialog box opens.
5 Type a name for the derived element and click OK.
The calculation is created as a derived element and displayed on the report. You can
modify the derived element using the Derived Elements Editor (see Using the Derived
Elements Editor, page 101).
After reviewing the list of vendors with the largest open payable amounts from highest to
lowest, you can sort the vendors into any order that meets your requirements. You can
achieve this by right-clicking the Vendor attribute, pointing to Sort, and then selecting
List (custom). The Derived Elements Editor opens with all of the attribute elements
listed as selected objects.
You can move the elements up and down in the Selected objects list to re-order them on
the report. When you are ready, click OK to accept the changes and return to the report.
Notice the new order of Vendor attribute elements in the report shown below.
If Custom is not an option in the Sort options, this means that the attribute
has a derived element defined for it on the report. You must remove any
derived elements defined for the attribute before you can create a quick sort to
re-order the attribute elements.
4 In the Selected objects list, move the attribute elements to the order you want
them displayed on the report.
5 Once the attribute elements are ordered appropriately, click OK. The Derived
Elements Editor closes and you are returned to the report.
The report displays the attribute elements in the new order. You can modify the derived
element using the Derived Elements Editor (see Using the Derived Elements Editor,
page 101).
If List (custom) is not an option in the Sort options, this means that the
attribute has a derived element defined for it on the source report. You must
remove any derived elements defined for the attribute before you can create a
quick sort to re-order the attribute elements.
5 In the Selected objects list, re-order the attribute elements as you want to view
them on the report.
6 Once the attribute elements are ordered appropriately, click OK. The Derived
Elements Editor closes and you are returned to the report.
The document displays the attribute elements in the new order. You can modify the
derived element using the Derived Elements Editor (see Using the Derived Elements
Editor, page 101).
of derived elements functionality when creating derived elements. The Derived Elements
Editor is shown in the image below.
For example, if you use right-click menu options create a quick calculation on a report
connected to an Intelligent Cube, the expression can only include one type of function or
operand such as +, /, and Average. However, in the Derived Elements Editor, you can
create expressions with a valid combination of different functions. You can create a
derived element from the Derived Elements Editor with an expression of the following
form:
(AttributeElement1 + AttributeElement2) / Sum
(AllAttributeElements)
You can modify derived elements in the following ways using the Derived Elements
Editor:
Applying derived element values to subtotals, page 121
Displaying derived elements or their attribute elements, page 123
Displaying derived elements and their attribute elements simultaneously, page 125
Formatting derived elements, page 128
Creating and using stand-alone derived elements, page 117
Creating Filter derived elements with Not in List and Where filter qualifications (see
Filtering attribute elements to create a derived element, page 109)
Sample report
The report shown below is used in the procedures and examples that follow for creating
derived elements with the Derived Elements Editor.
Editor in MicroStrategy Developer and Web in the reporting objects listed below:
A standard report. To access the Derived Elements Editor from standard reports, see
To access the Derived Elements Editor in standard reports, page 105.
A report which is connected to an active Intelligent Cube. The table below lists the
views you can access the Derived Elements Editor from, in MicroStrategy Developer
and Web. To access the Derived Elements Editor from reports, see To access the
Derived Elements Editor in reports connected to an active Intelligent Cube, page
105.
A Grid/Graph in a Report Services document. The table below lists the modes you
can access the Derived Elements Editor from, in MicroStrategy Developer and Web.
To access the Derived Elements Editor from Grid/Graphs, see To access the Derived
Elements Editor in Grid/Graphs , page 105.
You can also create stand-alone derived elements by accessing the Derived Elements
Editor from outside reports or Grid/Graphs. Stand-alone derived elements can be used
by multiple reports and Grid/Graphs. For information on using a derived element in
multiple reports and accessing the Derived Elements Editor to create stand-alone derived
elements, see Creating and using stand-alone derived elements, page 117.
The steps below show you how to create a Group derived element on a report, as well as
specific instructions to create the sample report shown above.
Prerequisites
The report on which you create the derived element is connected to an active
Intelligent Cube, or the Report Services document with a Grid/Graph included in
one of the document sections, on which you create the derived element.
You need the Define Derived Elements (Developer) and/or the Web Define Derived
Elements (Web) privileges. These privileges are part of OLAP Services.
While this procedure creates only Group derived elements, you can create any
combination of Group, Filter, and Calculation derived elements on a report or
Grid/Graph.
1 Log in to a project in MicroStrategy Developer. For steps to use the Derived
Elements Editor to create derived elements in MicroStrategy Web, see the
MicroStrategy Web Help.
derived element to, type a name, and click Save. Click OK. The Derived
Elements Editor closes and you are returned to the report or document.
Stand-alone derived elements can only be modified by editing the stand-alone
object; you cannot modify them from within reports or Grid/Graphs. For
information stand-alone derived elements, see Creating and using stand-alone
derived elements, page 117.
If you used the steps above to create the sample report, the report is displayed with the
regions grouped into East Coast, West Coast, Central and South, and Web.
The steps below show you how to create a Filter derived element on a report, as well as
specific instructions to create the report shown above.
Prerequisites
You need the Define Derived Elements (Developer) and/or the Web Define Derived
Elements (Web) privileges. These privileges are part of OLAP Services.
While this procedure creates only Filter derived elements, you can create any
combination of Group, Filter, and Calculation derived elements on a report or
Grid/Graph.
5 From the Definition tab, click Click here to start a new qualification.
6 Click Field, and then select an attribute.
For the example scenario, select Region.
7 Click Operator, and then select one of the following operators to create a filter
qualification (for the example scenario, select Where):
In list: Returns attribute data for the list of attribute elements you select. Click
Value, and then select the attribute elements to return data for.
Not in List: Returns attribute data for the list of attribute elements that are not
in the list of attribute elements you select. Click Value, and then select the
attribute elements to exclude data for.
Where: Returns attribute data based on a filter qualification of an attribute
form. Proceed to the next step to select an attribute form and complete the filter
qualification.
8 For filter qualifications that use the operator Where, new Field, Operator, and Value
fields appear. Follow the steps below to complete the filter qualification:
a Click Field, and then select an attribute form. For the example scenario, select
DESC.
b Click Operator, and then select the operator for the filter qualification on the
attribute form. For the example scenario, select Begins with.
c Click Value, and use one of the options to enter in the required value. For the
example scenario, select Type a value, and then type South.
9 To rename the derived element group, from the Change Group drop-down list,
and select Rename Group. Type a name for the Filter derived element.
For the example scenario, rename the derived element as Southern Regions.
For example, in a report with Region and Category attributes and a Profit metric (see the
image in Sample report, page 103), you can combine the regions on the report into
various groups for profit analysis. The final report you create with Calculation derived
elements is shown below.
The steps below show you how to create a Calculation derived element on a report, as
well as specific instructions to create the sample report shown above.
Prerequisites
You need the Define Derived Elements (Developer) and/or the Web Define Derived
Elements (Web) privileges. These privileges are part of OLAP Services.
While this procedure creates only Calculation derived elements, you can create any
combination of Group, Filter, and Calculation derived elements on a report or
Grid/Graph.
1 Log in to a project in MicroStrategy Developer. For steps to use the Derived
Elements Editor to create derived elements in MicroStrategy Web, see the
MicroStrategy Web Help.
b Right-click the attribute to create or modify derived elements for, and click
Derived Elements. The Derived Elements Editor opens.
For the example scenario, right click the Region attribute, and click Derived
Elements.
To access the Derived Elements Editor for a Grid/Graph in a Report Services
document:
a Expand the document section that contains the Grid/Graph.
b Double-click the Grid/Graph to edit it.
c Right-click the attribute to create or modify derived elements for, and click
Derived Elements. The Derived Elements Editor opens.
For the example scenario, right click the Region attribute, and click Derived
Elements.
6 To rename the derived element, from the Change Group drop-down list, select
Rename Group. Type a name for the derived element.
For the example scenario, rename the group as Total Profit.
15 Click ... (browse) next to Argument 1, and in the Select an Object dialog box, select
Central. Then click OK. Repeat this step for each successive argument, selecting
the following regions:
Mid-Atlantic
Northeast
Northwest
South
Southeast
Southwest
Web
16 Click Finish.
17 From the Change Group drop-down list, select Rename Group. Type Average
Profit to rename the derived element.
30 From the Change Group drop-down list, select Rename Group. Type Greatest
Regional Profit % Contribution to rename the derived element.
31 You can save your derived element for the report or Grid/Graph, or save the derived
element as a stand-alone object that can be used by multiple reports and
Grid/Graphs:
To save the derived element for the report or Grid/Graph, click OK. The
Derived Elements Editor closes and you are returned to the report or document.
To save the derived element as a stand-alone object that can be used by multiple
reports and Grid/Graphs, click Save Groups. Choose a location to save the
derived element to, type a name, and click Save. Click OK. The Derived
Elements Editor closes and you are returned to the report or document.
Stand-alone derived elements can only be modified by editing the stand-alone
object; you cannot modify them from within reports or Grid/Graphs. For
information on sharing derived elements, see Creating and using stand-alone
derived elements, page 117.
If you used the steps above to create the sample report, the report is displayed with the
regions grouped into Total Profit, Average Profit, Greatest Regional Profit, and Greatest
Regional Profit % Contribution.
To use a derived element in multiple reports and Grid/Graphs, you must create a stand-
alone derived element. There are two methods with to create a stand-alone derived
element:
Create a derived element from within a report or Grid/Graph and then save it as a
stand-alone object. You can use the Derived Elements Editor to create and save the
derived element as a stand-alone derived element. You can use this method in
MicroStrategy Developer and Web. For information on creating a derived element
within a report or Grid/Graph using the Derived Elements Editor, see Using the
Derived Elements Editor, page 101.
Once you save a derived element as a stand-alone derived element, it can no longer
be modified from within the report or Grid/Graph. For information on how to
modify a stand-alone derived element, see Editing stand-alone derived elements,
page 120.
Create a stand-alone derived element outside of any report or Grid/Graph. You can
use this method only in MicroStrategy Developer. To used this method, see Creating
a stand-alone derived element, page 118.
Once created, a stand-alone derived element has the following functionality:
All Group, Calculation, Filter, and All Other derived elements are saved as part of the
derived element. You cannot select a subset of the derived elements; you must save
and share the entire collection of derived elements.
A stand-alone derived element can only be connected to the attribute that was used
to define the derived element. For information on how to connect derived elements
to attributes in other reports and Grid/Graphs, see Using a derived element in
multiple reports or Grid/Graphs, page 119.
The stand-alone derived element itself can be modified, but you cannot modify it
from within a report or Grid/Graph. Any modifications for the derived element are
applied to the derived element in all of the reports and Grid/Graphs that it is used in.
For information on how to modify a stand-alone derived element, see Editing stand-
alone derived elements, page 120.
The stand-alone derived element can only be deleted if it is not used in any report or
Grid/Graph. A list of reports and Grid/Graphs that use the derived element is
displayed when you attempt to delete a stand-alone derived element.
2 From the File menu, point to New, and then select Derived Element. The Select
Attribute dialog box opens.
3 Browse to and select the attribute you want to base your derived element on, and
then click Open. The Derived Element Editor opens.
4 You can create Group, Filter, and Calculation derived elements to define your stand-
alone derived element. With the exception any steps to access or close the Derived
Elements Editor, you can use the same processes and techniques described in the
following sections to create derived elements for a stand-alone derived element:
Grouping attribute elements to create a derived element, page 106
Filtering attribute elements to create a derived element, page 109
Using calculations to create derived elements, page 112
5 Click Save and Close, the Save Derived Element As dialog box opens.
6 Type a name and click Save. The Derived Elements Editor closes and the derived
element is saved as a stand-alone object.
You can now use your derived element in reports connected to Intelligent Cubes and
Grid/Graphs in Report Services documents, as described in Using a derived element in
multiple reports or Grid/Graphs, page 119.
3 Click Link Derived Elements. The Select Derived Elements dialog box opens.
4 Browse to and select the derived element to connect to the attribute, and then click
Open.
5 Click OK to save your changes and close the Derived Elements Editor.
You need the Define Derived Elements (Developer) and/or the Web Define Derived
Elements (Web) privileges. These privileges are part of OLAP Services.
You have the following options in the Derived Elements Editor for applying derived
element values to subtotals. The examples below are all based on the basic report above.
Use this (default behavior) The derived element In a report with Category and Profit, you
element values are applied to all subtotals. This create a derived element defined as
when means that a derived elements aggregated Electronics - Books. Applying the derived
calculating data is applied to all subtotals for the element value to the subtotal means
subtotals report, rather than the values for the that subtotals uses the value resulting
individual items that are part of a derived from the subtraction of the Electronics
element. and Books attribute elements, as shown
below.
Use the The values of the separate items that In a report with Category and Profit, you
individual make up the derived element are applied create a derived element defined as
items that to all subtotals. For Group and Filter Electronics - Books. Applying the
make up derived elements, only attribute elements individual item values to the subtotal
this can be included as items of derived means that the subtotal uses the
element elements. Calculation derived elements individual values of the Electronics and
when can include attribute elements as well as Books attribute elements, as shown
calculating other derived elements. below.
subtotals
The steps below show you how to define subtotal behavior for derived elements.
Prerequisites
A standard report, a report connected to an active Intelligent Cube, a Grid/Graph in
a Report Services document, or a stand-alone derived element.
This procedure also assumes you have created derived elements for the report,
Grid/Graph, or stand-alone derived element.
You have the Derived Elements Editor open. For information on accessing the
Derived Elements Editor, see Accessing the Derived Elements Editor , page 103.
You need the Define Derived Elements (Developer) and/or the Web Define Derived
Elements (Web) privileges. These privileges are part of OLAP Services.
Keep individual items separate (default behavior for the All Other derived element):
The attribute elements included as items of a derived element are displayed
individually instead of the derived element.
For example, in a report with Category and Profit, you create a Group derived
element that combines the Books and Electronics attribute elements. You choose to
keep the individual options separate, which displays the separate attribute elements
in the report, as shown below.
This is the default for an All Other derived element because it displays all attribute
elements (that were not included in any other derived elements) as separate attribute
elements. This gives the appearance on the report that these attribute elements are
not part of any derived element.
The steps below show you how to define whether derived elements are displayed as one
consolidated entry, or all of the attribute elements that are items of the derived element
are displayed individually.
Prerequisites
A standard report, a report connected to an active Intelligent Cube, a Grid/Graph in
a Report Services document, or a stand-alone derived element.
This procedure also assumes you have created derived elements for the report,
Grid/Graph, or stand-alone derived element.
You have the Derived Elements Editor open. For information on accessing the
Derived Elements Editor, see Accessing the Derived Elements Editor , page 103.
You need the Define Derived Elements (Developer) and/or the Web Define Derived
Elements (Web) privileges. These privileges are part of OLAP Services.
You have the following options in the Derived Elements Editor to display derived
elements and their attribute elements simultaneously:
Do not include individual items in the All Other element (default behavior): The
attribute elements that are used to define the derived element are excluded from the
All Other derived element. This means that the attribute elements are not displayed,
only their combined data for the derived element is displayed.
For example, in a report with Category and Profit, you create a Group derived
element that combines the Books and Electronics attribute elements. By selecting to
keep the default option, the derived element is displayed on the report but the
attribute elements that makes up these derived elements are not, as shown below.
Include individual items in the All Other element: The attribute elements that are
used to define the derived element are also included in the All Other derived
element. This means that the attribute elements are displayed along with the derived
elements they are a part of.
For example, in a report with Category and Profit, you create a Group derived
element that combines the Books and Electronics attribute elements. You select to
include the Books attribute element and the Electronics attribute element in the All
Other derived element. This displays the derived element, as well as the individual
Books and Electronics attribute elements, as shown below.
For an attribute element to be included in the All Other derived element, all derived
elements that the attribute element is included in must be defined to include their
attribute elements in the All Other derived element. This can cause unexpected
behavior when an attribute element is included in multiple derived elements.
For example, in a report with Category and Profit, you create a Group derived
element that combines the Books and Electronics attribute elements. You create a
second Group derived element that combines Electronics and Movies. The report is
shown below.
You select to include the attribute elements of the Books and Electronics derived
element in the All Other derived element. Notice that Books is displayed but
Electronics is not displayed, as shown below.
This is because the Electronics attribute element is also a part of the Electronics and
Movies derived element, which is defined to exclude its attribute elements in the All
Other calculation. To display the Electronics attribute element along with both
derived elements, you must define both derived elements to include their attribute
elements in the All Other derived element.
The steps below show how to define whether derived elements are displayed with their
attribute elements simultaneously.
Prerequisites
A standard report, a report connected to an active Intelligent Cube, a Grid/Graph in
a Report Services document, or a stand-alone derived element.
This procedure also assumes you have created derived elements for the report,
Grid/Graph, or stand-alone derived element.
You have the Derived Elements Editor open. For information on accessing the
Derived Elements Editor, see Accessing the Derived Elements Editor , page 103.
You need the Define Derived Elements (Developer) and/or the Web Define Derived
Elements (Web) privileges. These privileges are part of OLAP Services.
Notice that the derived element Greatest Regional Profit % Contribution uses derived
element formatting to apply a percentage format to the profit values for the derived
element. If you used metric formatting to apply a percentage format to profit values, the
percentage format applies to all profit values across all derived elements. But this formats
data incorrectly for the derived elements Total Profit, Average Profit, and Greatest
Regional Profit.
Notice that each derived element name has a different format but the attribute elements
for the Category attribute all share the same format.
Formatting derived elements is only available from the Derived Elements Editor. The
procedure below describes how to format derived elements.
Prerequisites
A standard report, a report connected to an active Intelligent Cube, a Grid/Graph in
a Report Services document, or a stand-alone derived element.
This procedure also assumes you have created derived elements for the report,
Grid/Graph, or stand-alone derived element.
You have the Derived Elements Editor open. For information on accessing the
Derived Elements Editor, see Accessing the Derived Elements Editor , page 103.
You need the Define Derived Elements (Developer) and/or the Web Define Derived
Elements (Web) privileges. These privileges are part of OLAP Services.
Profit Margin is a derived metric, with the definition Profit/Revenue. Notice that the
values for Profit Margin are much higher than they should be for the derived elements,
but the value for the Web attribute element is correct. This is because Profit Margin is
calculated for the individual attribute elements, before the attribute elements are
combined to display the derived elements.
By evaluating the derived elements before the Profit Margin derived metric, the correct
Profit Margin values are displayed for all derived elements and attribute elements.
The following procedures show you how to modify the evaluation order of derived
elements:
To modify the evaluation order of derived elements in reports, page 132
To modify the evaluation order of derived elements in Grid/Graphs in Report
Services documents, page 133
1 In Developer, log in to a project that includes a report with derived elements and
derived metrics.
2 Browse to and right-click a report, and select Run. The report is executed in the
Report Editor.
3 From the Data menu, select Report Data Options. The Report Data Options
dialog box opens.
4 Expand the Calculations category, and then select Evaluation Order.
5 Clear the Use default evaluation order check box. This displays all objects on
the report that can have their evaluation order modified.
6 In the Evaluation Order column, select the evaluation orders for each object in
the report.
Objects are evaluated from lowest evaluation order number to highest. However, if
you define an object to use Default as its evaluation order, it may be evaluated before
an object with an evaluation order of 1.
For example, if you define a derived element with an evaluation order of 1 and a
derived metric with an evaluation order of Default, the derived metric is evaluated
first. This is because derived metrics are evaluated before derived elements by default.
To evaluate a derived element before a derived metric, define the derived metric to
have a higher evaluation order than the derived element.
7 Click OK to save your changes and close the Report Data Options dialog box. The
changes to the evaluation order are displayed in the report. To view the evaluation
order of the various objects on the report, display the report in SQL View.
Page-by makes viewing a large report easier than scrolling through long lists of data.
Attributes are one of the most common objects included in the page-by area of a report.
When an attribute is included in the page-by area, you can select which attribute element
to view data for.
For example, the report below on the left includes the attributes Region and Category,
along with the Profit metric. The Region attribute is included in the page-by area, and
Central is selected by default. The report below on the right displays all the attribute
elements available in the page-by area.
If you create derived elements for an attribute included in the page-by area, the derived
elements are available from the page-by field to display their associated data.
For example, the report below shows East Coast, West Coast, and Central and South
derived elements based on the Region attribute.
If Region is moved to the page-by area, the derived elements are available for selection
from the page-by field, along with the Web attribute element, as shown below.
You must move attributes from the page-by area to the grid of the report to create
or modify derived elements for the attribute. You can then move the attribute back
to the page-by area once all derived element modifications are complete.
You create two thresholds, the first defined on a metric and the second defined on an
attribute, as shown in the following image.
When the report is executed, only the Profit > 400000 threshold is displayed, as shown
below.
The Profit > 400000 threshold uses the derived element data to determine when to
display the defined formatting.
However, the formatting for the Central and South threshold is not displayed. This is due
to the fact that the separate Central and South attribute elements are not on the report,
and are instead replaced with a Central and South derived element. While you cannot
display this type of threshold formatting for derived elements, you can still apply
formatting to the data for each derived element, as described in Formatting derived
elements, page 128.
Thresholds are covered in greater detail in the MicroStrategy Basic Reporting Guide.
easily with the help of drilling. It allows you to execute another report based on the
original report to get more detailed or supplemental information.
When you drill on attribute elements in a report, the resulting report restricts the results
to data only for the attribute elements used when drilling. For example, if you drill from
the Year 2007 attribute element down to Quarter, the resulting report only includes
quarters that are within 2007.
The same standard applies to drilling on derived elements. Drilling on a derived element
restricts the resulting report to only data for the attribute elements used to define the
derived element.
For example, the report below shows East Coast, West Coast, and Central and South
derived elements based on the Region attribute.
If you drill down from the East Coast derived element to Call Center, the resulting report
shown below returns data for Call Centers within the East Coast regions (Northeast, Mid-
Atlantic, Southeast).
Dataset 1 is a Regional Profit report, containing the Region attribute and the Profit
metric. The derived element Western Regions is defined on Region, with the
following elements:
Northwest
Southwest
The dataset is shown in the image below.
Dataset 2 is a Regional Revenue report, containing the Region attribute and the
Revenue metric. The following derived elements are defined on Region:
Northern Regions, containing the Northwest and Northeast elements.
Central and Mid-Atlantic, containing the Central and Mid-Atlantic elements.
The dataset is shown in the image below.
In the document, a Grid/Graph is created, and the following objects are added to it:
Region
Profit
Revenue
When the document is executed, the data from both datasets is combined, and derived
elements from both datasets are displayed on the combined Grid/Graph, as shown in the
image below:
For attribute elements that are not part of a derived element, such as South and
Southeast, data from both datasets is combined and displayed.
If your datasets contain derived elements with the same name, and containing the same
attribute elements, the data for the derived elements is combined and displayed in a
single row.
For detailed instructions to use documents with multiple datasets, refer to the Document
Creation Guide.
Notice that in the Report Objects pane to the left of the report (and shown below), the
derived metric is preceded by an fx symbol, instead of the usual metric symbol, meaning
this is a new metric based on the existing metrics in the report.
Since derived metrics are created within a report, they can only be used for the report in
which they are created. Derived metrics cannot be saved as individual objects in the
project, and therefore cannot be applied to other reports in the project.
This chapter discusses the following topics on derived metrics:
Creating a derived metric, page 142
Editing derived metrics, page 155
Formatting derived metrics, page 155
Deleting derived metrics, page 155
View filter effects on derived metrics, page 156
Derived element effects on derived metrics, page 156
Best practices
Follow the guidelines below when creating derived metrics:
In reports, you can define derived metrics with objects in the Report Objects pane.
The Report Objects are the components included in the report definition, even if
they are not displayed on the report grid.
A derived metric can be defined with the metrics in the report definition. The Input
Metric Formula dialog box where you create derived metrics allows you to choose
only from objects included in the report definition, as shown below.
Attributes included in the report definition are also available to use in the definition
of a derived metric. If you use an attribute as part of the metric definition, the metric
calculation requires new report SQL to be executed against the data warehouse. This
re-execution is not required for derived metrics that only use metrics in their
definitions.
You can use one or more functions or operators in the formula of the derived metric.
Click the fx button to access available functions and operators.
You can use numeric prompts in the formula of the derived metric, which allows
users to determine part of the value of the metric. For example, if the value of your
metric depends on the current tax rate, you can prompt users to type the current tax
rate.
For steps to create prompts, see the Basic Reporting Guide.
You can change the level at which a derived metric is calculated. For example, the
derived metric sum(M1) {Attribute1} is calculated at the Attribute1 level. For
information on metric levels, see the Advanced Reporting Guide.
Any user can modify a derived metric after report execution, since its formula is
visible to all users. If a derived metric should not be modified by end users, create the
metric in the Metric Editor and add it to the report as a normal metric.
Transformation objects cannot be used with derived metrics because they require
SQL to be re-executed against the data warehouse.
View filters can filter the results of a derived metric. A view filter is an additional
filter applied in memory to the report results to restrict the amount of data displayed
on the report. For more information on view filters, see Chapter 7, View Filters.
A derived metric is dependent on any report objects that are included in the derived
metrics definition. Because of this dependency, you cannot remove an object from
the report that is used in a derived metric definition.
If you try to remove an object from the report, a message is displayed that indicates
you cannot remove the object because it is being used by the derived metric. You can
however move an object off the report grid so that it only appears in the Report
Objects pane. This allows you to hide the object from the report grid and still support
any derived metrics that are dependent on it.
In Report Services documents that use multiple datasets, you can create derived
metrics that use metrics from different datasets. If you do so, note the following:
The metrics you use may be calculated at different levels, depending on the
definition of the datasets. For example, one dataset contains the Subcategory
attribute and the Revenue metric, and another dataset contains the Category
attribute and the Profit metric. If you create a derived metric based on Revenue
and Profit, note that Revenue is calculated at the Subcategory level, and Profit is
calculated at the Category level. This can be useful to create percent-to-total
metrics.
If the derived metric is to be used in a data field, it is recommended that you use
a calculated expression instead.
For information and examples of using derived metrics in documents with multiple
datasets, refer to the Document Creation Guide.
You can create derived metrics with the following methods described in this section:
Quickly creating a derived metric in Web, page 144: You can create a derived metric
based on often-used functions, such as Average, by using the Insert Metric feature in
Web.
Creating a derived metric using the Input Metric Formula dialog box, page 145:
You can create any type of derived metric by defining derived metric expressions
using the Input Metric Formula dialog box.
Using rank and percent-to-total metric analysis , page 149: You can quickly create
derived metrics that display the percent in relation to a selected total of each item
affected by the metric or display a ranking number to the metric values for a given
attribute. These can be quickly created using shortcut metrics.
Minimum
Sum
For steps to create a derived metric using any other function, see Creating a derived
metric using the Input Metric Formula dialog box, page 145.
To create a derived metric with the Input Metric Formula dialog box
For details on each option for any of the steps below, click Help.
1 Open a report in MicroStrategy Developer or Web.
2 Open the Input Metric Formula dialog box to create a new metric by performing one
of the following steps:
In Developer: From the Insert menu, select New Metric.
In Web: From the Data menu, select Insert New Metric.
3 The pane on the left displays the Report Objects, which shows the components
(attributes, attribute forms, metrics, custom groups, consolidations, and so on)
included in the report, even if the components are not displayed in the report grid.
In Developer: Double-click or drag-and-drop an object to use it to define the
derived metric.
In Web: Select an object and click the arrow to use it to define the derived
metric. This moves the object to the window on the right.
4 Add functions and operators by typing their syntax or characters. You can also click
the fx button to open the Insert Function Wizard, which guides you through adding
functions and operators.
5 Continue to add report components, functions, operators, constant values, and other
valid metric formula objects to complete your formula.
6 To add the level at which to calculate the metric, enclose the metric formula in
parentheses. Type the attribute name between curly braces {} after the metric
formula. If the attribute name contains a space, enclose the name within brackets
[]. For example, ([Unit Cost] * [Units Sold]) {[Customer Name]},
where Unit Cost and Units Sold are metrics and Customer Name is an attribute. This
is a valid expression.
For more information on metric levels, see the Advanced Reporting Guide.
7 After you have created the expression, you can determine whether the expression is
valid by performing one of the following steps:
In Developer: Click Validate. An error is displayed if the expression is invalid.
In Web: Click Apply. An error is displayed if the expression is invalid.
8 In the Metric Name (Developer) or Name (Web) field, enter a name for the new
metric.
When naming a MicroStrategy object, you must follow the naming convention rules
for your particular database platform. Using a word reserved by your database
platform can result in an error when the report is executed. Refer to your database
documentation for a list of these database-reserved words.
9 Click OK to create the new derived metric for your report. The Input Metric
Formula dialog box closes and the derived metric is added to the report.
To format the values or headers of a derived metric, see Formatting derived metrics,
page 155.
A derived metric is created to display the average profit generated per customer with
transactions. The procedure below describes how to create and format this derived
metric for the report shown above.
Prerequisites
You need the Create Derived Metrics (Developer) and/or the Web Create Derived
Metrics (Web) privileges. These privileges are part of OLAP Services.
Along with revenue totals for each sales representative, you can also highlight a sales
representatives percent contribution to revenue for their sales region, as well as
company-wide. You insert two percent-to-total shortcut metrics to display this
information, as shown in the report below:
This report provides analysis into sales representatives performances at both the regional
and company-wide level.
The report is updated showing your new shortcut metric that displays the percent-to-
totals for the components selected. To edit a shortcut metric, see Editing derived
metrics, page 155. To format the values or headers of a derived metric, see Formatting
derived metrics, page 155.
Along with revenue totals for each sales representative, you can also highlight sales
representatives relative performances company-wide. You insert a rank shortcut metric
to display this information, as shown in the report below:
This report provides analysis into sales representatives relative performances company-
wide. If you use Sales Region as a break-by, employees would be ranked within their sales
regions.
By default, a rank shortcut metric ranks values from low to high in ascending order.
Therefore, the lowest value has a rank of 1 and the highest value has a rank equal to the
total number of items being ranked within a given break-by grouping. You can change
the metric to rank in descending order by editing the metric.
Refer to the procedure below for steps to create a rank shortcut metric.
Prerequisites
You need the Create Derived Metrics (Developer) and/or the Web Create Derived
Metrics (Web) privileges. These privileges are part of OLAP Services.
select to Break by Region. Each employee is ranked within their region; that
is, each region has a separate ranking.
3 If you are creating a rank shortcut metric in MicroStrategy Web, you must choose
from the following sort orders:
Ascending: Values are ranked from least to greatest in ascending order.
Therefore, the smallest value has a rank of 1 and the largest value has a rank
equal to the total number of items being ranked within a given break-by
grouping.
Descending: Values are ranked from greatest to least in descending order.
Therefore, the largest value has a rank of 1 and the smallest value has a rank
equal to the total number of items being ranked within a given break-by
grouping.
In Developer, by default, a rank shortcut metric ranks values from low to high in
ascending order. You can change the metric to rank in descending order by editing
the metric, as described in To change the ranking order of a rank shortcut metric,
page 154.
The report is updated showing your new shortcut metric that displays the ranking for the
components selected. To edit a shortcut metric, see Editing derived metrics, page 155.
To format the values or headers of a derived metric, see Formatting derived metrics,
page 155.
If you do not want the derived metric to be saved as part of the report, you can delete it
from the report completely by right-clicking the derived metric and selecting Remove
from Report.
If the derived metric is included in the definition of another derived metric on the
report, an error message is displayed. To delete the derived metric from the report, you
must remove or modify any derived metrics that are dependent on the derived metric
you are attempting to delete.
element effects on derived metrics and how to evaluate them correctly, see Derived
element interactions with derived metrics, page 131.
After a view filter is applied, the resulting report below includes the following view filter
qualifications:
Region In list {Northwest, Southwest}: This qualification restricts the report results
to display data only for the Northwest and Southwest regions.
Profit Greater than 15000: This qualification restricts the report results to display
data only for product categories in the Northwest or Southwest regions that had
greater than $15,000 in profits.
The view filters definition is displayed above the report, as shown below.
The following table lists scenarios where you can use view filters to best support your
business model and enhance the analysis of your reports.
Modify the data displayed without re- Adding, deleting, or modifying view filters are all
executing SQL against the data warehouse. executed against a report in memory.
Allow multiple users to create separate Multiple users can define individual view filters to
views of data on a single report in memory. further restrict the data of a report connected to a
shared Intelligent Cube.
Filter on attributes included in the report. With the attribute Year on a report, you can use a view
filter to determine which years of data to display on the
report.
Perform attribute-to-attribute comparisons. With the attributes Customer City and Store City on a
report, you can specify that Customer City be the same
as the Store City. This can give a view of how a store is
performing with local customers.
Filter on metrics included in the report. The With the metric Profit on a report, you can filter on Profit
output level for the filter can be applied at greater than or equal to $1,000,000.
the report level or the level of the attributes
displayed on the report.
Perform metric-to-metric comparisons. With Revenue and Operating Cost metrics on a report,
you can specify that Revenue be greater than or equal
to Operating Cost.
Filter on attributes or metrics that are not You can drag-and-drop the Profit metric from the report
displayed on the report. grid to the Report Objects pane. This removes the Profit
metric from the display, but any view filters based on
that object are still calculated.
Can be saved as a stand alone object and used in multiple reports No Yes
Can quickly switch the level at which the qualification is evaluated from Yes No
report level to the level of attributes displayed on the report
Can be modified while viewing the report data Yes No
Design considerations
The decision to use a view filter or a report filter to answer your business questions relies
on two key factors, functionality and system management.
View filters and report filters both provide a rich set of filtering functionalities, which
can be used to answer your business questions. However, since report filters are executed
against the data warehouse, more advanced filtering is supported. You may need to use a
report filter to implement some of your more advanced business questions. For example,
you can define a report filter at report run time by including a prompt in the filter
definition. For a list of features supported by report filters that are not supported for view
filters, see View filters versus report filters , page 161.
From a system management perspective, report filters and view filters provide two
alternatives that affect memory and data warehouse usage.
Report filters help to reduce the memory size of reports by returning less data from the
data warehouse. These results can be stored in a cache that decreases the time it takes to
access and run the report. The drawback to this approach is that any modifications to
the report filter cause the system to access the data source again to create a new report
definition, which must be stored in the cache in place of the old definition. The cache
still provides quick access to the new report, but this process causes an extra load on the
system.
View filters can help reduce memory used by reports, by utilizing Intelligent Cubes.
Intelligent Cubes are sets of data that can be shared as a single in-memory copy, among
many different reports created by multiple users. Filtering on reports connected to
Intelligent Cubes is only achievable with view filters. View filters provide much of the
same filtering functionality as report filters, while allowing multiple users to perform
analysis on a single Intelligent Cube.
Add a report filter (Country = U.S.) that qualifies on the attribute Country, which is not
part of the reports definition. The result is the report shown below, which contains data
for the regions in the U.S. only, as defined in the report filter.
Although the report filter is based on an attribute not in the report itself, the report data
is still affected because of the relationships among the objects in the report, which are all
part of the same attribute hierarchy.
In contrast, a view filter can be created only on objects that are part of the reports
definition. (The objects in a reports definition are displayed in the Report Objects pane.)
This is because view filters only have access to data in the Report Objects pane of the
report, rather than the entire data warehouse.
To provide the same type of analysis used in the first report that uses a report filter,
include Country in the Report Objects pane of the report, but remove it from the grid.
With Country in the Report Objects pane, you can create a view filter to restrict data to
Regions in the US, as shown below.
An important aspect of report limits is that they are processed by the SQL Engine after
metrics are aggregated. In the report SQL, the report limit definition is included in the
Having clause, instead of the Where clause as for the report filter. You can observe this
in the reports SQL statement, shown in the image below.
In addition to this functionality, the following features supported for report limits are not
supported for view filters:
Can quickly switch the level at which the qualification is evaluated from Yes No
report level to the level of attributes displayed on the report
For general information on report limits, see the Basic Reporting Guide.
Design considerations
A view filter is similar to a report limit in that it can also be applied at the report level.
However, the report limit and the view filter are not interchangeable. A report limit
restricts the size of the report data set that is returned from the data warehouse. In
contrast, the view filter is applied to the report dataset without altering its size, allowing
you to view a subset of that information. A view filter retrieves information quickly
because Intelligence Server dynamically accesses the data already in the report results.
Report designers must consider how to balance the memory usage and the processing
power between the data warehouse and Intelligence Server. A report limit is more
efficient in terms of report data size because it does not return unnecessary information
from the data warehouse. Therefore, the report limit can be used to save space on the
Intelligence Server memory. However, if a report limit is too restrictive, you may need to
frequently redefine the data definition to yield the information users want to see.
On the other hand, a view filter is more flexible, allowing you to refine your analysis after
the report is executed. A view filter gives you more control over the subset of data
retrieved from the database you want to see. The view filter may be more useful for
analysts because it allows analysts to conduct further investigation and refinement of the
report results after the report is executed against the data warehouse.
displayed on the report, they are created and defined in slightly different ways.
You can create a view filter in any report. This includes reports connected to an
Intelligent Cube, reports returning information directly from a data warehouse, Freeform
SQL reports returning information from an Excel spreadsheet, and so on.
The following sections provide examples of using view filters on reports returning
information directly from a data warehouse.
Refer to the following sections to create a view filter that contains attribute and/or
metric qualifications:
Filtering data based on business attributes, page 166: Using view filters based on
business attributes, you can view a subset of report data that focuses on the business
data you are interested in.
When creating an attribute qualification for a view filter, you can either qualify on a
list of attribute elements, or you can qualify on attribute forms:
Qualifying on a list of attribute elements is achievable by using the In list or Not
in list operators and selecting from a list of attribute elements. For basic steps to
filter on a list of attribute elements, see the procedure To create a view filter
with an attribute qualification, page 168.
Qualifying on attribute forms is achievable by using the Where operator and
selecting from available attribute forms. For information on qualifying on
attribute forms, see Filtering based on attribute form qualifications, page 169.
Filtering data based on metrics, page 170: Using view filters based on metrics, you
can view a subset of report data that focuses on the data values and ranges you are
interested in.
Combining view filter qualifications with operators, page 185: When a view filter
has multiple qualifications at the same output level, they are always joined by
operators. When qualifications are joined, operators govern the interaction between
the different filtering conditions.
The report identifies, for each quarter, the top five materials by net sales order amount.
Once you review the top 5 materials for each quarter in 2007, you decide to focus on the
UC PCEconomy 100 and UC PCEconomy 200 by creating a view filter that includes
these two materials. The view filter along with the resulting report is shown below.
The report shown above focuses on the UC PCEconomy 100 and UC PCEconomy 200
materials to show when these two materials had net sales order amounts in the top 5 for
a given quarter.
The steps below show you how to create a view filter with an attribute qualification, as
well as how to create the example scenario above.
Prerequisites
You need the Use View Filter Editor (Developer) and/or the Web Use View Filter
Editor (Web) privileges. These privileges are part of OLAP Services.
qualifications with operators, page 185. For information on the output level of view
filter qualifications, see Evaluating qualifications at the report or grid level, page 181.
If you use this view filter with the TOP 5 Materials by Net Sales Amount and
Quarter report, the resulting report is the same as the example scenario in
Filtering data based on business attributes, page 166, which uses the attribute
element qualification Material In list {UC PCEconomy 100, UC
PCEconomy 200}.
You can use any of the following operators in attribute form qualifications. These
operators are described in detail in Appendix A, Logical and Mathematical Operators
for Filtering in the MicroStrategy Advanced Reporting Guide:
This report returns revenue, cost, and profit data for employees, while also displaying the
region the employee is in. The view filter restricts the report results to only return data
for those employees who generated less than $500,000 in revenue. This reduces the
large number of employee results to a smaller set of employees that are generating a
relatively low amount of revenue.
When creating metric qualifications in a view filter, you can use various logical and
mathematical operators. You can use any of the following operators in metric
qualifications. These are described in detail in Appendix A, Logical and Mathematical
Operators for Filtering in the MicroStrategy Advanced Reporting Guide:
Exactly
Different from
Greater than
Less than
Greater than or equal to
Less than or equal to
Between
Not Between
Is Null
Is Not Null
Once you select an operator, you can either type in a value or select a metric to return
the value to qualify on.
You can also qualify on the rank or percentage of a metric value for a given report. For
example, you can restrict the report shown above to display all data for employees in the
bottom 20% of revenue. For information on using view filters to restrict report results
based on ranks or percentages of metric data, see Filtering metrics on rank and
percentage ranges, page 174.
The steps below show you how to create a view filter with a metric qualification, as well
as how the example scenario above was created.
Prerequisites
You need the Use View Filter Editor (Developer) and/or the Web Use View Filter
Editor (Web) privileges. These privileges are part of OLAP Services.
You can also create a new view filter qualification on a metric by right-clicking
a metric, pointing to Filter On, and selecting Add Condition.
You can create a view filter to then restrict the data on the report to profit margins
greater than last years profit margins. The metric-to-metric qualification and resulting
report are shown below.
You can now review when regions had increases in profit margins. For example, from
the report above you can determine that the Northwest and Southeast regions have
shown increases in profit margins from 2006 to 2007.
You can take advantage of view filters ability to update the report results without having
to re-execute SQL against the data warehouse to perform further quick analysis. For
example, you can switch the operator from Greater Than to Less Than to quickly switch
to a view of data for profit margins that are less than the previous years profit margins.
The metric-to-metric qualification in the view filter and resulting report are shown
below.
The steps below show you how to create a view filter with a metric-to-metric
qualification, as well as how the example scenario above was created.
Prerequisites
You need the Use View Filter Editor (Developer) and/or the Web Use View Filter
Editor (Web) privileges. These privileges are part of OLAP Services.
You can also create a new view filter qualification on a metric by right-clicking
a metric, pointing to Filter On, and selecting Add Condition.
operators, which are described as they relate to rank and percent metric qualifications in
the table below:
In Developer, all of the operators listed below can be used to create rank and
percent metric qualifications as part of a view filter. Rank and percent metric
qualifications using any of these operators can be viewed in MicroStrategy Web.
However, only the Is Highest (referred to as Highest or Highest% in Web) and Is
Lowest (referred to as Lowest or Lowest% in Web) can be used to create or modify
rank and percent metric qualifications in Web.
Is Not Identifies values that are not null. Using the rank or percent metric qualifications is not
Null necessary with this operator. To return all data where metric values are not null, you can
simply create a view filter metric qualification on the metric that uses the Is Not Null
function.
Top Identifies the topmost value range in a given set:
For rank ranges, you can provide a topmost rank range. For example, you can display
only data within the top 20 rank range.
For percentage ranges, you can provide a topmost percentage range. For example,
you can display only data within the top 20% range.
Bottom Identifies the lowest set of values in a given set:
For rank ranges, you can provide a lowest rank range. For example, you can display
only data within the bottom 20 rank range.
For percentage ranges, you can provide a lowest percentage range. For example, you
can display only data within the bottom 20% range.
Exclude Identifies a value range that is not in the topmost value range in a given set:
top
For rank ranges, you can provide a topmost rank range to exclude from the report
results. For example, you can display only data that excludes the top 20 rank range.
For percentage ranges, you can provide a topmost percentage range to exclude from
the report results. For example, you can display only data that excludes the top 20%
range.
Exclude Identifies a value range that is not in the lowest set of values in a given set:
bottom
For rank ranges, you can provide a lowest rank range to exclude from the report
results. For example, you can display only data that excludes the bottom 20 rank
range.
For percentage ranges, you can provide a lowest percentage range to exclude from
the report results. For example, you can display only data that excludes the bottom
20% range.
Is Identifies the highest value. This operator should only be used with rank ranges. For rank
Highest ranges, this restricts report results to display data for only the highest value of a given
metric.
Is Lowest Identifies the lowest value. This operator should only be used with rank ranges. For rank
ranges, this restricts report results to display data for only the lowest value of a given
metric.
The rank and percentage ranges view filters are discussed in the sections listed below:
Creating a view filter on a rank range of metric values, page 177: You can create a
view filter that restricts report results based on a rank range of metric values for a
given report. This can allow you to view analysis such as the bottom 20 products in
terms of profit margin.
Creating a view filter on a percentage range of metric values, page 179: You can
create a view filter that restricts report results based on a percent range of metric
values for a given report. This can allow you to view analysis such as employees
between 30% and 60% of tenure length with the company.
Only a subset of the report results are shown above, but notice that data for 360 items
have been returned. To narrow the analysis of the report, you create a view filter to
restrict the report results to the bottom 20 products in terms of profit margin. The view
filter and resulting report are shown below.
With this updated report, you can now perform further analysis on each item to
determine a strategy to improve your profit margins.
Notice that the view filter above uses the Bottom operator. For a description of each
operator available when creating view filters with rank ranges, see Filtering metrics on
rank and percentage ranges, page 174.
The steps below show you how to create a view filter with a rank metric qualification, as
well as how the example scenario above was created.
Prerequisites
You need the Use View Filter Editor (Developer) and/or the Web Use View Filter
Editor (Web) privileges. These privileges are part of OLAP Services.
For the example scenario, create a report with Item, Revenue, Profit, and Profit
Margin on the report, as shown in Creating a view filter on a rank range of metric
values, page 177.
3 If the View Filter area is not displayed, from the View menu, select View Filter.
4 In the View Filter area, click Click here to start a new qualification.
5 To create a rank metric qualification, click Field, point to Rank, and then select a
metric.
For the example scenario, select Profit Margin.
6 Click Operator, and then select an operator.
For the example scenario, select Bottom.
7 Click Value, and then select Type a value. Type the value for the rank number you
want to restrict data to.
For the example scenario, type 20.
8 If the Auto-Apply Changes check box is cleared, click Apply to apply the view filter
to the report.
The report is updated. The report data is restricted as defined by the view filter. If you
define multiple view filter qualifications at the same output level, you can modify the
logical operator used to join the qualifications, as described in Combining view filter
qualifications with operators, page 185. For information on the output level of view
filter qualifications, see Evaluating qualifications at the report or grid level, page 181.
You decide to analyze this report to show only the data that is within the top 10% of
profit. The view filter and resulting report are shown below.
With this analysis, you can now perform further analysis to determine why profit was at
its highest during these years and within these regions.
Notice that the view filter above uses the Top operator. For a description of each
operator available when creating view filters with percent ranges, see Filtering metrics
on rank and percentage ranges, page 174.
The steps below show you how to create a view filter with a percent metric qualification,
as well as how the example scenario above was created.
Prerequisites
You need the Use View Filter Editor (Developer) and/or the Web Use View Filter
Editor (Web) privileges. These privileges are part of OLAP Services.
8 If the Auto-Apply Changes check box is cleared, click Apply to apply the view filter
to the report.
The report is updated. The report data is restricted as defined by the view filter. Further
analysis on this report is performed to demonstrate how you can change the level of
evaluation for view filter metric qualifications. This analysis is provided in Evaluating
qualifications at the report or grid level, page 181.
If you define multiple view filter qualifications at the same output level, you can modify
the logical operator used to join the qualifications, as described in Combining view filter
qualifications with operators, page 185. For information on the output level of view
filter qualifications, see Evaluating qualifications at the report or grid level, page 181.
currently available on the report grid. These two options can produce different report
results when using the OLAP Services feature called dynamic aggregation.
Dynamic aggregation enables you to remove attributes from the report grid, but keep
them as part of the report definition. The action of moving attributes on or off of the
report grid aggregates the metric values at the new level of the report. For information
on dynamic aggregation, see Chapter 9, Dynamic Aggregation.
By default, metric qualifications in a view filter are evaluated at the level of data that is
available on the report grid. This means that any attributes that are included in the
Report Objects pane but not on the report grid are not used to determine the level of the
metric qualification.
For example, you create a report with Year, Region, Category, Revenue, and Profit on the
report, with Category not displayed on the report grid, as shown below.
You can use dynamic aggregation to drag and drop the Category attribute from the report
grid to the Report Objects pane. This allows Category to affect the report level without
being displayed on the grid.
You decide to analyze this report to show only the data that is within the top 10% of
profit. The view filter and resulting report are shown below.
Steps to create the report shown above is described in Creating a view filter on a
percentage range of metric values, page 179.
Notice that only two rows of data are returned. The metric qualification has been
evaluated at the level of the report grid, which is Year and Region. This gives you a view
of data within the top 10% of profit for the data displayed on the report grid.
However, this report also includes the Category attribute in the Report Objects pane.
Since this attribute is available on the report, you can also view data within the top 10%
of profit at the Category, Region, and Year level. Evaluating the metric qualification at
this level returns the report results shown below.
Notice that there are many more rows of data that are within the top 10% of profit. This
is because Category is now included in the calculation of the metric qualification. While
this evaluation option for metric qualifications returns a different type of analysis, the
same analysis can be achieved by simply adding all attributes from the Report Objects
pane onto the report grid, so that all attributes are then present on the report grid.
The following information should be taken into consideration when choosing an
evaluation level for a metric qualification. This information assumes you are familiar with
report levels as explained in the Advanced Reporting Guide:
Evaluation at the report grid level: Evaluating metric qualifications at the level
present on the report grid allows the view filter to dynamically display analysis that
reflects the data available on the report grid. If all attributes are on the report grid,
then this level is used to calculate the metric qualification. Additionally, anytime an
attribute is moved between the Report Objects pane and the report grid, the view
filter dynamically recalculates the metric qualification to reflect the new level of data
on the report grid.
You can join metric qualifications evaluated at the grid level to any other metric
qualifications evaluated at the grid with logical operators, as described in Combining
view filter qualifications with operators, page 185.
If derived metrics are also on this report, evaluating metric qualifications at the grid
level also causes the metric qualifications to be evaluated after derived metrics by
default. This means that these qualifications filter the results of any derived metric
calculations. For more information, see View filter effects on derived metrics, page
187.
Evaluation at the report level: Evaluating metric qualifications at the report
level, regardless of what attributes are on the report grid or the Report Objects pane,
provides a consistent level of analysis during dynamic aggregation.
You can also join metric qualifications evaluated at the report level to attribute
qualifications or other metric qualifications evaluated at the report level with logical
operators, as described in Combining view filter qualifications with operators, page
185.
If derived metrics are also on this report, evaluating metric qualifications at the
report level also causes the metric qualifications to be evaluated before derived
metrics by default. This means that these qualifications filter data before any derived
metric calculations are applied. For more information, see View filter effects on
derived metrics, page 187.
Metric-to-metric qualifications: The evaluation level of metric-to-metric
qualifications cannot be modified. All metric-to-metric qualifications are evaluated at
the report level. For information on metric-to-metric qualifications, see Filtering
based on metric-to-metric comparisons, page 172.
The steps below show you how to modify the evaluation of metric qualifications in a view
filter.
Prerequisites
You need the Use View Filter Editor (Developer) and/or the Web Use View Filter
Editor (Web) privileges. These privileges are part of OLAP Services.
A report with a metric qualification in the view filter that is not a metric-to-metric
qualification.
To observe how this modification can affect report results, the report should also
have some attributes in the Report Objects pane, but not on the report grid.
3 If the View Filter area is not displayed, from the View menu, select View Filter.
4 In the View Filter area, right-click a metric qualification and select one of the
following options, which you can switch between:
Apply Condition at the Grid Level (default): Evaluates the metric
qualification only for the attributes included on the report grid. Attributes in the
Report Objects pane but not on the report grid are not included in the metric
qualification evaluation.
Apply Condition at the {attributes in Report Objects} Level: Evaluates the
metric qualification for all attributes included in the Report Objects pane,
regardless of whether they are displayed on the report grid.
You can choose different evaluation options for separate metric qualifications
in the same view filter.
5 If the Auto-Apply Changes check box is cleared, click Apply to apply the view filter
to the report.
The report is updated. The report data is restricted as defined by the view filter.
You cannot change the logical operator between two metric qualifications if all of
the following are true:
The metric qualifications use two different metrics (for example, Revenue in
Qualification 1 and Profit in Qualification 2).
The metric qualifications are not metric-to-metric qualifications, but instead
compare the metrics to numeric values.
The metric qualifications are evaluated at the grid level.
Because the output level of view filter qualifications determines which qualifications can
be joined with logical operators, by default all attribute qualifications are at the same
output level as other attribute qualifications, and all metric qualifications are at the same
output level as other metric qualifications. This mean that an attribute qualification can
be joined with other attribute qualifications, and metric qualifications can be joined with
other metric qualifications, but attribute and metric qualifications cannot be joined.
However, you can modify the output level of metric qualifications. If you modify a metric
qualification to be evaluated at the report level, the metric qualification can be joined
with attribute qualifications and with any other metric qualifications that have been
defined to be evaluated at the report level. Metric qualifications evaluated at the report
level cannot be joined with metric qualifications evaluated at the grid level. For
information on the benefits of evaluating metric qualifications at the report level versus
the grid level, see Evaluating qualifications at the report or grid level, page 181.
1 In an opened report with a view filter, in the View Filter pane, click Clear.
2 If you do not have Auto-Apply changes selected, click Apply. If you only perform
Clear without Apply, the view filter appears in the report the next time you open it.
1 In an opened report with a view filter, right-click the qualification and select
Remove qualification.
2 If you do not have Auto-Apply changes selected, click Apply. If you only perform
Clear without Apply, the view filter appears in the report the next time you open it.
Using view filters that affect derived metrics with relative functions
Derived metrics with relative functions such as RunningSum or Rank return values that
are relative to other values on a report. When data is restricted by view filter
qualifications on other objects of a report, you can allow the values of derived metrics
with relative functions to calculate their relative values based on the new view of report
data.
For example, consider a report created in the MicroStrategy Tutorial project with Year,
Category, Profit, Profit Margin, and a rank shortcut derived metric named Rank (Profit
Margin) as shown below.
Notice that the 12 rows are ranked in ascending order from 1 to 12 by their profit margin
values. You then create a view filter qualification to display data only when profit is less
than $1,000,000. The view filter and resulting report are shown below.
Notice that while some data no longer appears on the report, the values of the Rank
(Profit Margin) derived metric remain the same. This allows you to view the rank of
profit margins as applied over all the data for the report, including the data that has been
filtered from view.
Since the Rank (Profit Margin) metric is a derived metric, you can modify the report so
that the metrics values are relative to the new view of data supplied by the view filter, as
shown in the report below.
Notice that the percent-to-total values display the distribution of profits over all 12 rows
of data. You then create a view filter qualification based on the percent-to-total derived
metric to display data only when the percent-to-total profit is less than two percent (.02).
The view filter and resulting report are shown below.
While it appears that data is being shown for percent-to-totals greater than two percent,
this is because the Percent to Total Over Rows (Profit) derived metric values have
dynamically changed to reflect the new view of data displayed on the report. A grand
total is displayed to show that the derived metric values add up to 100%, even though
these rows of data combined account for less than four percent of the profits of the
original report. This analysis is applied because the view filter qualification is evaluated at
the report level by default.
The report above provides a view of percent-to-total profit data as displayed on the
report. However, view filter qualifications on derived metrics can also be evaluated at the
grid level so that the derived metrics retain their values that reflect all data available for
the report, as shown in the report below.
Notice that the percent-to-total profit values now appear to be less than two percent and
reflect the values of the original report that included all report data. This is also reflected
in the grand total of 3.28%.
As these scenarios illustrate, you have two options to evaluate view filter qualifications
based on derived metrics with relative functions, summarized below:
Evaluate the view filter qualification at the report level (default). This causes the
derived metric values to dynamically reflect the new view of data on the report after
the view filter qualification is applied.
Evaluate the view filter qualification at the grid level. This causes the derived metric
to retain its values that reflect all data available for the report.
For information on evaluating view filter qualifications at the report level versus the grid
level, see Evaluating qualifications at the report or grid level, page 181.
You then create a view filter to restrict data to only years 2007 and 2008. The view filter
qualification and resulting report are shown below.
Notice that the values for the RunningAvg (Average Net Sales Order Amount per
Customer) metric do not change, only the 2006 values are hidden. The values displayed
do not accurately reflect the view of data and instead reflect the data available for the
entire report, including the 2006 data hidden from view.
This is because the view filter is calculated without re-executing SQL against the data
warehouse, and is evaluated after calculating the metrics on the report. Therefore, the
metric is not recalculated to reflect the view of data shown on the report as restricted by
the view filter.
If you plan to use metrics with relative functions and require them to reflect the data
displayed on the report, you can use one of the options summarized below:
Use report filters rather than view filters. A report filter causes a report to re-execute
its SQL against the data warehouse, which can cause more processing time than a
view filter. However, this allows a metric with a relative function to recalculate its
values based on the filtering criteria.
Use derived metrics with relative functions rather than standard metrics. Derived
metrics can be evaluated after view filters and thus reflect the view of data on a
report without having to re-execute SQL. However, derived metrics cannot be saved
for use in multiple reports and can require modification to work as intended with
view filters. For information on the interaction between view filters and derived
metrics, see View filter effects on derived metrics, page 187.
Notice that dynamic aggregation has been used to remove the Employee attribute from
the report grid. However, there is also a view filter attribute qualification on the
Employee attribute. Even though Employee is not shown on the report, the data
displayed is restricted by the view filter to only display data for the employees Caitlin Bell,
Beatrice Conner, Andrew Johnson, Laura Kelly, and Jack Kieferson. This can be verified
by using dynamic aggregation to drag and drop Employee on the report grid, as shown
below.
Notice that dynamic aggregation has been used to remove the Employee attribute from
display on the report grid. You then create a view filter metric qualification to restrict the
report data for profits greater than $300,000. The view filter qualification and resulting
report are shown below.
The view filter metric qualification is evaluated at the grid level by default. This means
that the dynamic aggregation of removing Employee from the report layout is evaluated
first, and then the view filter metric qualification restricts data based on the remaining
data displayed on the report.
With this evaluation order, the view filter metric qualification returns regions with
profits greater than $300,000.
However, you can also evaluate view filter metric qualifications at the report level. You
can right-click the Profit Greater than $300,000 qualification, and select Apply
Condition at the {Employee, Region} level. Evaluating the metric qualification at
the report level returns the report results shown below.
Notice that only data for the Northeast region is returned, and all metric values are
lower. This is because a view filter metric qualification evaluated at the report level
includes all attributes, in the calculation to restrict data from the report.
Data is first restricted to employees with profits greater than $300,000, and then this
data is aggregated and displayed at the region level. In the first report the Southwest
region included two employees who combined to have more than $300,000 in profit,
but neither employee had more than $300,000 alone. These employees are restricted by
the view filter and are not included when aggregating the data at the region level.
These two options provide two different types of analysis on report data, summarized
below:
Evaluating view filter metric qualifications at the grid level: When view
filter metric qualifications are evaluated at the grid level and dynamic aggregation is
used, only the attributes displayed on the report grid are used to determine the data
restricted from the report.
In the example above, any regions with profits greater than $300,000 for the
included employees are displayed on the report.
Evaluating view filter metric qualifications at the report level: When
view filter metric qualifications are evaluated at the report level and dynamic
aggregation is used, all attributes in the Report Objects pane are used to determine
the data restricted from the report. This includes attributes that are not on the report
grid.
In the example above, any employees with profits greater than $300,000 for the
included employees are displayed on the report. The data for any remaining
employees is then aggregated and displayed at the region level.
For information on evaluating view filter qualifications at the report level versus the grid
level, see Evaluating qualifications at the report or grid level, page 181.
The Music and Movies derived element combines the profit values for the Music
attribute element and Movies attribute element. You then create a view filter
qualification that restricts the report data to the individual Movies attribute element and
Electronics attribute element. The report results are shown below.
Notice that the Music and Movies derived element is still displayed, but the profit value
has decreased. This is because the view filter has restricted the data to only Movies and
Electronics. The Music and Movies derived element can only return profit values for the
available Movies attribute element data. When using view filters and derived elements on
the same report, be aware that any view filter qualifications restrict the data available to
analyze and format with derived elements.
Dynamic sourcing complements the ability to create reports that are connected to a
specific Intelligent Cube. This feature gives you the following performance benefits:
Report designers do not need to know whether an Intelligent Cube includes the
information they need, or which Intelligent Cube they should use. With dynamic
sourcing, an Intelligent Cube that can satisfy the reports data requirements is
detected automatically, without the report designer having to consider which
Intelligent Cubes are available.
The performance of pre-existing reports can be improved without having to modify
the report to access a specific Intelligent Cube. Dynamic sourcing can allow these
reports to automatically detect an Intelligent Cube that satisfies the reports data
requirements.
The performance of prompted reports can be greatly improved. Prompted reports
can cause performance issues, because it is difficult to use report caches with them.
When different prompt answers are chosen, a report cache cannot return
information for the report and the report request must be submitted through the
data warehouse again.
With dynamic sourcing, Intelligent Cubes can provide a set of data that can satisfy
the data requirements of reports executed with different prompt answers.
Reports can drill from one Intelligent Cube to another Intelligent Cube.
increases. However, the overhead only affects Intelligence Servers performance if there
are over a thousand Intelligent Cubes, which is an unlikely business scenario.
Dynamic sourcing must be enabled for projects, reports, and Intelligent Cubes; this is
described in the sections listed below:
Enabling or disabling dynamic sourcing for projects, page 206
Enabling or disabling dynamic sourcing for reports, page 208
Enabling or disabling dynamic sourcing for Intelligent Cubes, page 210
To ensure that correct data is available in an Intelligent Cube for a report, you must
verify that the following objects can support dynamic sourcing:
Attributes are available for dynamic sourcing by default. You should disable
dynamic sourcing for attributes if:
Attribute data in fact and lookup tables contains NULL values.
The attribute elements in fact and lookup tables are not identical.
For steps to disable dynamic sourcing for attributes, see Disabling dynamic
sourcing for attributes, page 211.
Metrics are available for dynamic sourcing by default. You should disable
dynamic sourcing for metrics if metric data in fact tables contains NULL values.
For steps to disable dynamic sourcing for metrics, see Disabling dynamic
sourcing for metrics, page 215.
Aggregate tables are available for dynamic sourcing by default. You should disable
dynamic sourcing for aggregate tables if:
Aggregation functions other than Sum are used.
The aggregate table includes different data than is available in lookup and
fact tables. For example, an aggregate table with years 2006, 2007, and 2008
should not be used for dynamic sourcing if your lookup and fact tables only
include the years 2007 and 2008.
For steps to disable dynamic sourcing for aggregate tables, see Disabling
dynamic sourcing for aggregate tables, page 216.
If the report is based on an MDX data source, such as an SAP BW Cube, it can also
use dynamic sourcing, and retrieve data from an Intelligent Cube that is also based
on an MDX data source.
In such a scenario, the following additional conditions apply:
The report and Intelligent Cube must be based on the same source MDX cube.
Filters on the report must meet the following criteria:
Attributes used in the filter should also be on the Intelligent Cubes
definition.
The report filter must include at least the same restrictions as the Intelligent
Cubes filter, if present. For example, if the Intelligent Cube restricts data to
only the year 2010, the report must include the same restriction.
For additional information on creating reports that access MDX sources, refer to the
MicroStrategy MDX Cube Reporting Guide.
Outline mode
Sorting
Subtotals
used to create metrics, which can be used on reports that can support dynamic
sourcing.
Freeform MDX metrics. On reports based on MDX data sources, these are analogous
to metrics with passthrough functions.
Metrics that use facts with extensions or degradations
Data marts
Report as filter used in the report filter
Using any of the options listed below for the following VLDB properties:
VLDB property Options that prevent report from using dynamic sourcing
Downward outer Preserve all rows for metrics higher than template level without report filter
join
Do not do downward outer join for database that support full outer join
Prerequisite
A project has been created in MicroStrategy.
1 In MicroStrategy Developer, log in to a project source with a user account that has
administrative privileges.
2 Right-click a project and select Project Configuration. The Project Configuration
Editor opens.
3 In the Categories list, expand Intelligent Cubes, and then select General.
The steps below show you how to access the dynamic sourcing VLDB properties for a
project to define project-wide defaults, and includes links to information on how to set
VLDB properties for each object type.
1 In MicroStrategy Developer, browse to a report, and then right-click the report and
select Edit. The report opens in the Report Editor.
2 From the Data menu, select VLDB Properties. The VLDB Properties Editor
opens.
3 From the Tools menu, select the Show Advanced Settings option if it is not
already selected.
4 In the VLDB Settings list, expand Dynamic Sourcing, and then select Enable
Dynamic Sourcing for Report.
5 Clear the Use default inherited value check box.
6 Select one of the following options, depending on whether you want to disable or
enable dynamic sourcing for the report:
To disable dynamic sourcing for the report, select Disable dynamic sourcing
for report.
To enable dynamic sourcing for the report, select Enable dynamic sourcing
for report.
7 Click Save and Close to save your changes to VLDB properties and close the VLDB
Properties Editor.
8 Click Save and Close to save the report and close the Report Editor.
Prerequisite
An Intelligent Cube has been created in a project.
For example, a report includes the attribute Day and the metric Revenue. It
connects to an Intelligent Cube that includes the attribute Day and the metric
Revenue, and it also includes the metric Cost. For some days there is data for
Revenue, but there is no data for Cost. If the Intelligent Cube does not support
any outer joins, then the values for Revenue which do not have corresponding
values for Cost arent returned. In this scenario, the report cannot return
complete information from the Intelligent Cube without outer joins.
Disabled: Select this option to prohibit reports from connecting to Intelligent
Cubes using dynamic sourcing when some outer join properties are not defined.
Selecting this option avoids the possibility of displaying incorrect data in reports.
You can define your Intelligent Cube to support and use outer joins when
necessary. This ensures all data is returned. However, outer joins can cause
additional load on your database and require larger Intelligent Cubes. You can
enable this support by defining the Metric Join Type, described below.
Metric Join Type: Any metrics included in the Intelligent Cube that are to
be available for dynamic sourcing must be defined to use outer joins in the
Intelligent Cube. With the Intelligent Cube open, from the Data menu,
select Report Data Options. In the Report Data Options dialog box,
expand Calculations, and select Metric Join Type. For each metric to
make available for dynamic sourcing, change the Join Type to Outer.
Click OK to save your changes.
For details and examples of VLDB properties, see the Supplemental Reference
for System Administration.
Use Default Project-Level Behavior: Select this option to define the
Intelligent Cube to inherit its dynamic sourcing behavior from the project
settings discussed in Enabling or disabling dynamic sourcing for projects, page
206.
5 Click OK. The Intelligent Cube Options dialog box closes and you are returned to the
Intelligent Cube.
6 Click Save and Close to save your changes and close the Report Editor.
You can track various information related to dynamic sourcing that can help determine
why dynamic sourcing succeeded or failed for reports, as described in Tracking the use
of dynamic sourcing, page 227.
6 Select one of the options depending on whether you want to disable or enable
dynamic sourcing for an attribute:
To enable attributes to use dynamic sourcing (the default option), select
Attribute columns in fact tables and lookup tables do not contain
NULLs and all attribute elements in fact tables are present in
lookup tables.
To disable dynamic sourcing for attributes unless outer joins are used for the
attribute, select Attribute columns in fact tables and lookup tables
may contain NULLs and/or some attribute elements in fact tables
are not present in lookup tables. This setting should be used if your
attribute data is not modeled to support dynamic sourcing.
7 Click Save and Close to save your changes to VLDB properties and close the VLDB
Properties Editor.
8 Click Save and Close to save the attribute and close the Attribute Editor.
You can track various information related to dynamic sourcing that can help determine
why dynamic sourcing succeeded or failed for reports, as described in Tracking the use
of dynamic sourcing, page 227.
qualifications can qualify on the text data of attribute forms without enforcing case
sensitivity.
This is a good option if your database does not enforce case sensitivity. In this
scenario, dynamic sourcing returns the same results that would be returned by the
filter qualification if the report was executed against the database.
Do not allow any string comparison with dynamic sourcing: This option
disables dynamic sourcing for attributes when a filter qualification is used to qualify
on the text data of attribute forms.
This is a good option if your database is case sensitive. In this scenario, dynamic
sourcing could return different results than what would be returned by the filter
qualification if the report was executed against the database.
You can modify this VLDB property for attributes individually or you can modify it for all
attributes within a project. While the definition of the VLDB property at the project level
defines a default for all attributes in the project, any modifications at the attribute level
take precedence over the project level definition. For information on accessing the
VLDB Properties Editor for a project to define a default dynamic sourcing option for all
attributes, see Accessing the dynamic sourcing VLDB properties for a project, page 207.
The procedure below describes how to modify the String Comparison Behavior
VLDB property for an individual attribute.
Prerequisites
An attribute has been created in a project.
disable dynamic sourcing for aggregate tables by modifying the Aggregate Table
Validation VLDB property. This VLDB property has the following options:
Aggregate tables contain the same data as corresponding detail tables
and the aggregation function is SUM: This is the default option for aggregate
tables, which enables aggregate tables for dynamic sourcing.
Aggregate tables contain either less data or more data than their
corresponding detail tables and/or the aggregation function is not
SUM: This option disables dynamic sourcing for aggregate tables. This setting should
be used if your aggregate tables are not modeled to support dynamic sourcing. The
use of an aggregation function other than Sum or the mismatch of data in your
aggregate tables with the rest of your data warehouse can cause incorrect data to be
returned to reports from Intelligent Cubes through dynamic sourcing.
You can disable dynamic sourcing individually for reports that use aggregate tables or you
can disable dynamic sourcing for all reports that use aggregate tables within a project.
While the definition of the VLDB property at the project level defines a default for all
reports in the project, any modifications at the report level take precedence over the
project level definition. For information on accessing the VLDB Properties Editor for a
project to define a default dynamic sourcing option for all metrics, see Accessing the
dynamic sourcing VLDB properties for a project, page 207.
The procedure below describes how to disable or enable dynamic sourcing for an
individual report that uses an aggregate table.
Prerequisite
A report has been created in a project.
1 In MicroStrategy Developer, browse to a report, then right-click the report and select
Edit. The report opens in the Report Editor.
2 From the Data menu, select VLDB Properties. The VLDB Properties Editor
opens.
3 From the Tools menu, select the Show Advanced Settings option if it is not
already selected.
4 In the VLDB Settings list, expand Dynamic Sourcing, and then select
Aggregate Table Validation.
5 Clear the Use default inherited value check box.
6 Select one of the options depending on whether you want to disable or enable
dynamic sourcing for a report that uses aggregate tables:
Aggregate tables contain the same data as corresponding detail
tables and the aggregation function is SUM: This is the default option for
aggregate tables, which enables aggregate tables for dynamic sourcing.
Aggregate tables contain either less data or more data than their
corresponding detail tables and/or the aggregation function is not
SUM: This option disables dynamic sourcing for aggregate tables. This setting
should be used if your aggregate tables are not modeled to support dynamic
sourcing.
7 Click Save and Close to save your changes to VLDB properties and close the VLDB
Properties Editor.
8 Click Save and Close to save the report and close the Report Editor.
When you select the CastorServer instance, you can select whether to use the
default configuration. On the Diagnostics Configuration tab, this check
box is named Use Default Diagnostics Configuration; on the
Performance Configuration tab, this check box is called Use Default
Performance Configuration. This check box refers to the Machine Default
settings. No matter what you have changed and saved on either tab when
CastorServer instance is selected, if you check the Use Default
Configuration box, the system logs whatever information is configured for
Machine Default at run time.
6 In the File name field, type a name for the metric levels log. In later examples, the
log file is named MetricLevelsLog.
7 You can leave the default settings for the other options, and then click Save. Click
Close to close the Log Destination Editor.
8 For the Metric Levels Log dispatcher, in the File Log column, click the drop-
down list and select the metrics level log file that you created in the previous steps.
9 From the File menu, select Save. The metric levels log is created in the Log
directory within the MicroStrategy common files. The default directory is
C:\Program Files\Common Files\MicroStrategy\ Log.
You can use Integrity Manager to perform a before and after test to identify which
reports actually connect to a suggested Intelligent Cube and also to test data
integrity.
If you have previously used Cube Advisor to create Intelligent Cubes to support
dynamic sourcing for the reports in your project, you can use the results file of
this analysis. From the File menu, select Open. In the Open dialog box, select
the Cube Advisor results file to use and click Open.
The results of a Cube Advisor analysis are stored in the MicroStrategy common
files folder (the default is C:\Program Files\
Common Files\MicroStrategy). The name of the file is in the format
ProjectName.details.txt. For example, analyzing the MicroStrategy
Tutorial project creates a Cube Advisor results file named MicroStrategy
Tutorial.details.txt.
To complete the Cube Advisor analysis to review and create Intelligent Cubes,
complete the steps beginning with To review Cube Advisor analysis, page 224.
3 Click ... (browse) to supply the following files to support Cube Advisor and define the
following options:
Metric Level File: The metric levels log file is one of the files that can be used
to track the use of dynamic sourcing. Cube Advisor uses this log file to help
recommend and create Intelligent Cubes to support dynamic sourcing.
If you install and use Cube Advisor on the same machine that hosts Intelligence
Server, the metric levels log file is automatically created by Cube Advisor. In this
scenario you do not need to create the metric levels log file or provide the
location for the file. Otherwise, you must create this file manually and provide
the directory it is stored in.
When manually creating the metric levels log file, the file is created in the Log
directory within the MicroStrategy common files. The default directory is
C:\Program Files\Common Files\ MicroStrategy\Log. For steps on
how to create this file, see Creating the metric levels log, page 219.
Enterprise Manager File: You can also supply a MicroStrategy Enterprise
Manager report to include more information on the performance benefits of
each Intelligent Cube as part of your dynamic sourcing strategy. For information
on locating, executing, and exporting this report as well as the information
provided by supplying the report, see Enterprise Manager report for Cube
Advisor, page 220.
Ignore Reports That Are Covered By Existing Cubes: Select this option
to exclude reports that already connect to an Intelligent Cube from the Cube
Advisor analysis. This prevents Cube Advisor from analyzing and recommending
Intelligent Cubes for reports that already connect to Intelligent Cubes.
Ignore Reports Not In Enterprise Manager File: Select this option to
exclude reports that are not included in the Enterprise Manager report from
Cube Advisor analysis. This allows Cube Advisor to focus only on the reports that
were included in the Enterprise Manager report for further performance
analysis.
4 Click OK to close the Options dialog box and return to Cube Advisor.
5 Provide the following connection information:
Computer Name: Type the name of the machine on which Intelligence Server
is hosted.
Port: Type the port number used for Intelligence Server. The default is 34952.
User: Type the MicroStrategy users user name to connect to a MicroStrategy
project. The MicroStrategy user must have the privileges listed in the
prerequisites for these steps.
Password: Type the password for the MicroStrategy user.
6 Click Connect. MicroStrategy projects are displayed.
7 Select a project, and then click Connect To Project. The Report Selection page
opens.
If you supplied the Enterprise Manager report, you must select the project that
was analyzed using the Enterprise Manager report.
8 Expand the folders of the project to locate the reports to analyze with Cube Advisor.
Selecting a check box for a report includes the report in the analysis. Selecting a
check box for a folder includes all reports in that folder and all reports in folders
within the folder in the analysis.
9 Once you have selected all the reports to analyze with Cube Advisor, click Get Cube
Recommendations. The Analyzing Reports page opens and report analysis begins.
To analyze reports, only the report SQL is analyzed, which allows a large number of
reports to be analyzed without having to execute the report SQL against the database.
If the analysis completes with a message that no reports can use dynamic
sourcing, this can be caused by various scenarios:
The features used in the reports prevent the reports from being able to
use dynamic sourcing. To review a list of features that prevent the use of
dynamic sourcing, see Features that prevent the use of dynamic
sourcing, page 203.
The metric levels log file was not created properly. Review the steps to
create a metrics level log file (see Creating the metric levels log, page
219) and attempt the Cube Advisor analysis again.
Dynamic sourcing is not enabled for the project, reports, or other objects
and features in the project. For information on configuring dynamic
sourcing, see Configuring dynamic sourcing, page 206.
If you did not supply an Enterprise Manager report, the information on the
recommended Intelligent Cubes that is displayed includes the number of reports
that could connect to the Intelligent Cube using dynamic sourcing.
You can select a recommended Intelligent Cube to display the attributes and
metrics that would be included in the Intelligent Cube, as well as a list of reports
that could connect to the Intelligent Cube using dynamic sourcing.
If you supplied an Enterprise Manager report, a Flash visualization provides
detailed information on the recommended Intelligent Cubes, an example of
which is shown below:
as a list of reports that could connect to the Intelligent Cube using dynamic
sourcing.
This also includes information on how many reports that could connect to
the Intelligent Cube require certain attributes and metrics. This analysis
allows you to determine the benefit of including each attribute and metric in
an Intelligent Cube.
Each Intelligent Cube includes a microchart, which represents the subset of
reports that could connect to the Intelligent Cube using dynamic sourcing. A
bar in the microchart represents that the report is covered by the Intelligent
Cube and no bar means that report is not covered by the Intelligent Cube. By
moving the cursor over the microchart, a tooltip is displayed that lists the
various reports that could connect to the Intelligent Cube using dynamic
sourcing.
Once you select a specific Intelligent Cube, the bars for all reports covered by
that Intelligent Cube become blue. This color coding also helps to visually
analyze the overlap of reports across Intelligent Cubes. If you see two
Intelligent Cubes have a very similar report coverage distribution, then only
one of the two Intelligent Cubes should be created.
11 Once you have reviewed the information, select the check boxes for the Intelligent
Cubes to create using Cube Advisor, and then click Create Cube Design. The
Browse for Folder dialog box opens.
12 Select a folder to create the Intelligent Cubes in. Each Intelligent Cube is created in a
separate folder that is created within the folder you select. Click OK. The Cube
Design Options dialog box opens.
13 Select one of the following options:
Design Intelligent Cubes with outer join properties: Select this option
to enable outer joins on all Intelligent Cubes to be created. This ensures that all
warehouse data is captured; however, this can potentially increase the size of the
Intelligent Cubes.
Allow Dynamic Sourcing without enabling outer join properties:
Select this option to allow reports to connect to Intelligent Cubes using dynamic
sourcing even when some outer join properties are not defined. However, this
can cause incorrect data to be returned in certain scenarios.
For additional information on enabling dynamic sourcing for Intelligent Cubes, see
Enabling or disabling dynamic sourcing for Intelligent Cubes, page 210.
Click OK to begin creating the Intelligent Cubes. The Creating Cubes dialog box
opens.
14 Once the Intelligent Cubes are created, click OK.
Each Intelligent Cube is created in a separate folder. Each folder also contains shortcuts
to all the reports that can connect to the Intelligent Cube using dynamic sourcing. This
provides easy recognition of the reports that can connect to each Intelligent Cube using
dynamic sourcing. You must publish the Intelligent Cubes to allow the reports to connect
to the new Intelligent Cubes using dynamic sourcing. For information on how to publish
Intelligent Cubes, see Publishing Intelligent Cubes, page 39.
The results of the Cube Advisor analysis are stored in the MicroStrategy common files
folder (the default is C:\Program Files\Common Files\ MicroStrategy). The
name of the file is in the format ProjectName.details.txt. For example, analyzing
the MicroStrategy Tutorial project creates a Cube Advisor results file named
MicroStrategy Tutorial.details.txt. You can use this file with Cube Advisor
to review and create Intelligent Cubes at another time. This scenario is described in the
procedure To review and create recommended Intelligent Cubes using Cube Advisor,
page 222.
With the Diagnostics and Performance Logging tool, you can enable the following
dynamic sourcing log files to track information about the use of dynamic sourcing:
Intelligent Cube parse log, page 228
Report parse log, page 229
Mismatch log, page 230
Extended mismatch log, page 231
Metric levels log, page 232
Fact levels log, page 233
as why some reports cannot use dynamic sourcing to connect to the Intelligent Cube.
The steps below show you how to include this log for Intelligent Cubes in a project.
The VLDB property defined using the steps below can also be defined for
individual Intelligent Cubes. To access the VLDB Properties Editor for an
Intelligent Cube, with the Intelligent Cube open, from the Data menu, select
VLDB Properties.
5 From the Tools menu, ensure that the Show Advanced Settings option is
selected.
6 In the VLDB Settings list, expand Dynamic Sourcing, and then select Enable
Cube Parse Log in SQL View.
7 Clear the Use default inherited value check box.
8 Select Enable Cube Parse Log in SQL View.
9 Click Save and Close to save your changes and close the VLDB Properties Editor.
10 Click OK to close the Project Configuration Editor.
This log lists any reasons why a report cannot use dynamic sourcing. For explanations of
various error codes that can be included in this log, see Dynamic sourcing error codes
and explanations, page 233.
If the entries in this log for a report end with CMI_NO_ERROR, this means the report
can use dynamic sourcing. However, this does not necessarily mean that dynamic
sourcing is used; an Intelligent Cube that meets the data requirements for the report
must be available. To review information on whether the report was able to find a
matching Intelligent Cube, you can review the mismatch log described in Mismatch log,
page 230.
The report parse log can increase in size quickly and thus is best suited for
troubleshooting purposes.
You can also display this log in the SQL View of reports. This log helps determine
whether a report can use dynamic sourcing to connect to an Intelligent Cube. The steps
below show you how to include this log for reports in a project.
The VLDB property defined using the steps below can also be defined for
individual reports. To access the VLDB Properties Editor for a report, with the
report open, from the Data menu, select VLDB Properties.
5 From the Tools menu, ensure that the Show Advanced Settings option is
selected.
6 In the VLDB Settings list, expand Dynamic Sourcing, and then select Enable
Report Parse Log in SQL View.
7 Clear the Use default inherited value check box.
8 Select Enable Report Parse Log in SQL View.
9 Click Save and Close to save your changes and close the VLDB Properties Editor.
10 Click OK to close the Project Configuration Editor.
Mismatch log
When a report that can use dynamic sourcing is executed, which can be verified with the
report parse log (Report parse log, page 229), and Intelligent Cubes are available for
dynamic sourcing, information about whether a matching Intelligent Cube can be found
for the report is included in the mismatch log.
The mismatch log can increase in size quickly and thus is best suited for
troubleshooting purposes.
This log lists any reasons why a report cannot use a specific Intelligent Cube to satisfy its
data requirements. For explanations of various error codes that can be included in this
log, see Dynamic sourcing error codes and explanations, page 233.
If the entries in this log for a report and Intelligent Cube combination end with CMI_
NO_ERROR, this means the report can use dynamic sourcing to access the Intelligent
Cube.
If dynamic sourcing cannot be used because of a metric (CMI_NO_GOOD_METRIC_
FOUND), information on why the metric prevents the use of dynamic sourcing is
provided in the extended mismatch log. For information on this log, see Extended
mismatch log, page 231 below.
You can also display this log in the SQL View of reports. This log helps determine why a
report that can use dynamic sourcing cannot connect to a specific Intelligent Cube. The
steps below show you how to include this log for reports in a project.
The VLDB property defined using the steps below can also be defined for
individual reports. To access the VLDB Properties Editor for a report, with the
report open, from the Data menu, select VLDB Properties.
5 From the Tools menu, ensure that the Show Advanced Settings option is
selected.
6 In the VLDB Settings list, expand Dynamic Sourcing, and then select Enable
Mismatch Log in SQL View.
7 Clear the Use default inherited value check box.
8 Select Enable Mismatch Log in SQL View.
9 Click Save and Close to save your changes and close the VLDB Properties Editor.
10 Click OK to close the Project Configuration Editor.
is provided in the extended mismatch log. This information is listed for every metric that
prevents the use of dynamic sourcing.
The extended mismatch log can increase in size quickly and thus is best suited for
troubleshooting purposes.
You can also display this log in the SQL View of reports. This log helps determine why a
metric prevents the use of dynamic sourcing is provided in the extended mismatch log.
The steps below show you how to include this log for reports in a project.
The VLDB property defined using the steps below can also be defined for
individual reports. To access the VLDB Properties Editor for a report, with the
report open, from the Data menu, select VLDB Properties.
5 From the Tools menu, ensure that the Show Advanced Settings option is
selected.
6 In the VLDB Settings list, expand Dynamic Sourcing, and then select Enable
Extended Mismatch Log in SQL View.
7 Clear the Use default inherited value check box.
8 Select Enable Extended Mismatch Log in SQL View.
9 Click Save and Close to save your changes and close the VLDB Properties Editor.
10 Click OK to close the Project Configuration Editor.
This log file can also be used with MicroStrategy Cube Advisor to recommend and create
Intelligent Cubes that could be connected to by reports using dynamic sourcing. For
information on how Cube Advisor allows you to create and support a dynamic sourcing
strategy that can best support the reports in your projects, see Using Cube Advisor to
support dynamic sourcing, page 218.
CMI_ALL_METRICS_ The Intelligent Cube included metrics, but the metrics were later removed
REMOVED_ or no longer enable dynamic sourcing. This Intelligent Cube cannot be used
for dynamic sourcing.
FROM_CUBE
CMI_ATTRIBUTE_ Dynamic sourcing cannot be used because an attribute form present in the
UNAVAILABLE report is not available in the Intelligent Cube.
CMI_COMPLEX_ Dynamic sourcing cannot be used for the Intelligent Cube because a
METRIC_ metrics formula is too complex. Metrics that are too complex include
compound metrics that are not defined as smart metrics, and simple
EXPRESSION_ON_
metrics that use a formula other than a single aggregation function of a
CUBE single fact. You can remove the metric or modify the metrics formula so
that dynamic sourcing can be supported for the Intelligent Cube. For
information on simple and compound metrics, see the Advanced
Reporting Guide.
CMI_COUNT_ Dynamic sourcing cannot be used because the Count Distinct function is
DISTINCT_FOUND used.
CMI_CUBE_ Dynamic sourcing cannot be used because an attribute form used in the
TEMPLATE_ reports filter qualifications is not available in the Intelligent Cube.
MISSING_
FILTER_
ATTRIBUTE_FORM
CMI_CUBES_FOR_ Dynamic sourcing is disabled for the report. To enable dynamic sourcing for
AD_HOC_ a report, see Enabling or disabling dynamic sourcing for reports, page
208.
DISABLED_FOR_
REPORT
CMI_CUBES_FOR_ Dynamic sourcing is disabled for the project. To enable dynamic sourcing
AD_HOC_ for a project, see Enabling or disabling dynamic sourcing for projects,
page 206.
DISABLED_
MASTERSWITCH
CMI_DIFFERENT_ Dynamic sourcing cannot be used because the report and Intelligent Cube
DB_ROLES use different database instances.
CMI_DIFFERENT_ This error signifies that, due to differing metric formulas, a metric in an
METRIC_FORMULA Intelligent Cube is not a match for a metric on a report. All metrics on an
Intelligent Cube are checked to determine if they are a match for a metric
on a report. This process is done until a match is found, or no match is
found and dynamic sourcing is not used (finding no matches for a metric
returns the error CMI_NO_GOOD_CANDIDATE_METRICS_
FOUND).
CMI_DIFFERENT_ Dynamic sourcing cannot be used because a metric on the report and a
TRANSFORMATIONS_ metric on the Intelligent Cube use different transformations.
USED
CMI_DIMMETRIC_ This error commonly occurs because a compound metric is included in the
BRANCH_IN_CUBE Intelligent Cube, which is preventing the Intelligent Cube from being
available for dynamic sourcing. Only compound metrics that are defined as
smart metrics can be included in Intelligent Cubes.
CMI_DISTINCT_ Dynamic sourcing cannot be used because the Distinct parameter is used
FOUND_ON_ in the aggregation of a metric and the level of data does not match
between the report and the Intelligent Cube. To support dynamic sourcing
AGGREGATION_
when a Distinct parameter is used in an aggregation, the Intelligent Cube
FUNCTION and report must contain the exact same level of data.
CMI_DISTINGUISH_ The report cannot connect to the Intelligent Cube using dynamic sourcing
DUPLICATED_ because the Distinguish Duplicated Rows VLDB property is not defined the
same in the report and the Intelligent Cube. For information on this and
ROWS_MISMATCH_
other VLDB properties, see the Supplemental Reference System
FOR_CUBE_AND_ Administration.
REPORT
CMI_FACT_ENTRY_ Dynamic sourcing cannot be used because a metric uses a fact with a fact
LVL_ERROR extension or degradation. For information on fact level extensions, see the
Facts chapter in the Project Design Guide.
CMI_FACT_ENTRY_ Dynamic sourcing cannot be used because the fact entry level of a metric
LVL_GREATER_ on the report and the filtering criteria of the report cannot be satisfied by
the Intelligent Cube. For example, a report includes a metric that has a fact
THAN_A_FILTER_
entry level of Year, and the filter includes a qualification on the Month
LEVEL attribute, which is at a lower logical level. If the lower level attribute used in
the filter (for this example, Month) is not included in the Intelligent Cube,
dynamic sourcing cannot be used. To support dynamic sourcing, the lower
level attribute must be included in the Intelligent Cube.
CMI_FACT_NOT_ The report cannot connect to the Intelligent Cube using dynamic sourcing
SUPPORTED_AT_ because a metric on the report is at a higher level than what is available on
the Intelligent Cube. For example, a report requires metric data to be
REQUIRED_CUBE_
displayed at a yearly level, but the Intelligent Cube can only display metric
LEVEL data at the quarterly level. Dynamic sourcing cannot be used to connect
the report to this Intelligent Cube.
CMI_FILTER_FACT_ Dynamic sourcing cannot be used because a fact is included in a filter. This
NODE_NOT_ can only occur if you use one of the SQL optimization options available with
the SQL Global Optimization VLDB property.
SUPPORTED
CMI_FILTER_NOT_ The Intelligent Cube cannot be used for dynamic sourcing for the report
RESTRICTIVE_ because it cannot be verified that the Intelligent Cube filter on a particular
metric is less restrictive than the report filter.
ENOUGH
CMI_FILTER_UNIT_ Dynamic sourcing cannot be used because a report is used as a filter of the
ROOT_NODE_ report or Intelligent Cube.
NOT_SUPPORTED
CMI_FILTERS_ The Intelligent Cube cannot be used for dynamic sourcing for the report
CANNOT_ENSURE_ because it cannot be verified that the Intelligent Cube filter is less
restrictive than the report filter.
ALL_DATA_NEEDED_
IS_IN_CUBE
CMI_FULL_OUTER_ Dynamic sourcing cannot be used because full outer joins are not
JOIN_NOT_ supported or enabled in the project or by the database.
SUPPORTED
CMI_IF_NO_ Dynamic sourcing cannot be used for the report because the report
METRIC_REPORT_ contains no metrics, and the Intelligent Cube does not use the same level
as the report. For reports with no metrics, Intelligent Cubes must have the
AND_CUBE_LOWEST_
same level as these reports to use dynamic sourcing.
LVL_MUST_BE_THE_
SAME
CMI_JOINT_ Joint child relationships and many-to-many relationships are not supported
PARENT_OR_JOINT_ for dynamic sourcing.
CHILD_OR_MANY_
TO_MANY_NOT_
SUPPORTED
CMI_METRIC_AND_ The metric in an Intelligent Cube cannot be used for dynamic sourcing
TEMPLATE_ because it is a level metric. For information on level metrics, see the
Advanced Reporting Guide.
LVL_NOT_
MATCHING_IN_CUBE
CMI_METRIC_ Dynamic sourcing cannot be used because the break by parameter for a
BREAK_BY_NOT_ON_ metric on the Intelligent Cube is not included in the Intelligent Cube. The
break by parameter determines when calculations such as running
CUBE_TEMPLATE
summations or moving averages restart their calculations. For example, a
running sum of revenue uses a break by parameter of the Year attribute.
Without the Year attribute on the Intelligent Cube, the metric cannot be
calculated correctly.
CMI_METRIC_ Dynamic sourcing cannot be used because a cross join is used for a metric.
CROSS_JOINED_NO_
GROUP_BY
CMI_METRIC_NOT_ The Intelligent Cube cannot be used for dynamic sourcing because it
OJ includes a metric that does not use outer joins.
Intelligent Cubes of this type can be made available for dynamic sourcing
by using outer joins for all metrics in the Intelligent Cube, or selecting the
Allow dynamic sourcing even if outer join properties are
not set option for the Intelligent Cube (see Enabling or disabling dynamic
sourcing for Intelligent Cubes, page 210).
CMI_METRIC_NOT_ The metric has been disabled for dynamic sourcing, as described in
SAFE Disabling dynamic sourcing for metrics, page 215.
CMI_METRIC_WITH_ The Intelligent Cube cannot be used for dynamic sourcing because it
CONDITIONALITY_ includes a conditional metric. For information on conditional metrics, see
the Advanced Reporting Guide.
IN_CUBE
CMI_METRICS_ Dynamic sourcing cannot be used because nested aggregation is used for
WITH_NESTED_ a metric. Nested aggregation is not supported for dynamic sourcing.
AGGREGATION_NOT_
SUPPORTED
CMI_NO_ERROR No error occurred, the report can use dynamic sourcing if an Intelligent
Cube with the correct data requirements can be found.
CMI_NO_GOOD_ Dynamic sourcing cannot be used because no suitable metric can be found
CANDIDATE_ in the Intelligent Cube for a metric included in the report.
METRICS_FOUND
CMI_NON_AGG_NOT_ Dynamic sourcing cannot be used because a metric uses a function that
REPORT_ cannot use dynamic aggregation by default. This prevents the metric from
being able to display data at the level defined for the Intelligent Cube. For
LEVEL_METRIC_
information on functions that are not dynamically aggregated by default,
FOUND see Metrics that are not dynamically aggregated by default, page 248.
CMI_NON_HDA_ Dynamic sourcing cannot be used because the Intelligent Cube uses
USER_CANNOT_USE_ MultiSource Option to connect to multiple data sources, but the user
running the report dose not have the privileges to use the MultiSource
HDA_CUBE
Option. For information on MultiSource Option, see the Project Design
Guide.
CMI_ The Intelligent Cube cannot be used for dynamic sourcing because it
NONAGGREGATION_ includes a metric that cannot be aggregated, and the metric level in the
report is different than the metric level in the Intelligent Cube.
IN_METRIC
CMI_NULL_ Dynamic sourcing cannot be used because the option selected for the Null
CHECKING_FOR_ checking for Analytical Engine VLDB Property is different for the report and
Intelligent Cube. The same option must be used to match a report and
ANAL_
Intelligent Cube for dynamic sourcing.
ENGINE_MISMATCH
CMI_OLD_OLAP_ Dynamic sourcing cannot be used because old OLAP Services behavior is
FUNCTION_IN_ enabled.
METRIC To use the new OLAP Services behavior, select the Use OLAPs new
behavior option for the OLAP New Behavior VLDB Property.
CMI_PERFORM_OR_ Dynamic sourcing cannot be used because filtering qualifications could not
FAILED be combined correctly with the logical operator OR. To support dynamic
sourcing you can remove or modify filter qualifications. For information on
how filter qualifications can be used with dynamic sourcing, see Best
practices for supporting dynamic sourcing, page 200.
CMI_REPORT_ A report limit is present on the Intelligent Cube. Intelligent Cubes with
LIMIT_ON_CUBE_ report limits cannot be used for dynamic sourcing.
FOUND
CMI_REPORT_OLAP_ Dynamic sourcing cannot be used because the break by parameter for a
METRIC_ metric on a report is not included in the Intelligent Cube. The break by
parameter determines when calculations such as running summations or
BREAK_BY_
moving averages restart their calculations. For example, a running sum of
MISSING_FROM_ revenue uses a break by parameter of the Year attribute. Without the Year
CUBE_ attribute on the Intelligent Cube, the metric cannot be calculated correctly.
TEMPLATE
CMI_REPORT_OLAP_ Dynamic sourcing cannot be used because the sort by parameter for a
METRIC_SORT_BY_ metric is not included in the Intelligent Cube. The sort by parameter
determines the order in which calculations such as running summations or
MISSING_FROM_
moving averages perform their calculations. For example, a running sum of
CUBE_ revenue uses a sort by parameter of the Quarter attribute. Without the
TEMPLATE Quarter attribute on the Intelligent Cube, the metric cannot be calculated
correctly.
CMI_REPORTS_ Dynamic sourcing cannot be used because the report uses metrics that are
WITH_ZERO_RL_ not at the report level. To support dynamic sourcing for these types of
reports, Intelligent Cubes must support outer joins. For information on
METRICS_CAN_
outer join support with Intelligent Cubes, see Enabling or disabling
ONLY_HIT_CUBE_ dynamic sourcing for Intelligent Cubes, page 210.
WITH_FOJ_SUPPORT
CMI_SECURITY_ Dynamic sourcing cannot be used because an attribute used to define the
FILTER_KEY_ security filter of the user executing the report is not included in the
Intelligent Cube.
ATTRIBUTE_
UNAVAILABLE
CMI_SECURITY_ Dynamic sourcing cannot be used because an attribute used to define the
FILTER_LEVEL_ security filter of the user executing the report is not included in the
Intelligent Cube.
ATTRIBUTE_
UNAVAILABLE
CMI_STRING_ Dynamic sourcing cannot be used because the report uses a filter
COMPARISON_NOT_ qualification that qualifies on the text data of an attribute form, and these
types of qualifications have been disabled for dynamic sourcing. For
ALLOWED
information on the String Comparison Behavior VLDB property
which defines this functionality, see Supporting filtering on attributes for
dynamic sourcing, page 213.
CMI_STRING_ Dynamic sourcing cannot be used because the report uses a sort on the
COMPARISON_NOT_ text data of an attribute form, and these types of sorts have been disabled
for dynamic sourcing. For information on the String Comparison
ALLOWED_IN_SORT_
Behavior VLDB property which defines this functionality, see Supporting
BY filtering on attributes for dynamic sourcing, page 213.
CMI_UNEXPECTED_ The report is of a type that cannot use dynamic sourcing, which includes:
REPORT_TYPE MDX cube report
Query Builder report
Freeform SQL report
Data marts
CMI_USER_LOCALE_ The report cannot connect to the Intelligent Cube using dynamic sourcing
NOT_ because the Intelligent Cube is not available for the locale of the user
viewing the report. For MicroStrategy projects that support multiple
SUPPORTED_IN_
languages and character sets, users can view reports that display data for
CUBE their locale. To use dynamic sourcing, an Intelligent Cube must be available
for the users locale.
CMI_USER_DOESNT_ The report cannot connect to the Intelligent Cube using dynamic sourcing
HAVE_ because the user account being used does not have the Use Dynamic
Sourcing privilege. This privilege is required to use dynamic sourcing.
DYNAMIC_
SOURCING_
PRIVILEGE
CMI_VLDB_ The report cannot connect to the Intelligent Cube using dynamic sourcing
SETTING_ because the options used for various VLDB properties do not match
MISMATCH_ between these two objects. For a list of VLDB properties that prevent
FOR_CUBE_AND_ reports from using dynamic sourcing, see Features that prevent reports
from using dynamic sourcing, page 203. For information on VLDB
REPORT
properties, see the Supplemental Reference for System Administration.
CMI_ZERO_ The report cannot use dynamic sourcing because it does not contain any
METRICS_NEEDED metrics, and no matching Intelligent Cube with no metrics can be found.
CMI_UNSUPPORTED_ The Intelligent Cube cannot be used for dynamic sourcing due to an
INCREMENTAL_ unsupported incremental refresh that modifies the data in the Intelligent
Cube.
REFRESH
CMI_RAGGED_ The report cannot be used for dynamic sourcing because it has no metrics,
HIERARCHY_NO_ and attributes from ragged hierarchies. For more information, see the MDX
Cube Reporting Guide.
METRICS_NOT_
SUPPORTED
CMI_NONAGG_BY_ The Intelligent Cube cannot be used for dynamic sourcing because it uses
LKP_ON_INCR_ non-aggregation by lookup and is incrementally refreshed
REFR_CUBE_NOT_
SUPPORTED
CMI_DIFFERENT_ The MDX-based Intelligent Cube cannot be used for dynamic sourcing
MDX_SOURCE_ because the report and Intelligent Cube point to different MDX data
sources.
TABLE_USED
To remove an attribute from the report without using dynamic aggregation, right-clicking
it (the Category attribute is used for this example) and select Remove from Report.
The data for Revenue and Units Sold is aggregated to the Region level, resulting in the
report below.
Notice that the Category attribute is not in the Report Objects pane, and the report
remains a Standard report as indicated in the bottom right corner.
When you remove an attribute or metric from the report, a message is displayed that
indicates the manipulation causes the report to be re-executed. This is because standard
metric aggregation needs to be re-executed against the data warehouse, and therefore
requires new report SQL to be generated.
Now consider the same report, but this time you use dynamic aggregation to return a
different view of the data. Instead of removing Category from the report, Category is
moved to the Report Objects pane, as shown in the image below.
Although the report data is exactly the same as the previous report with standard
aggregation, dynamic aggregation has the following differences:
No re-execution and no new SQL required: Dynamic aggregation does not
require re-execution against the data warehouse. Aggregating data within the report
can improve the performance of your system by reducing the load on the data
warehouse. Dynamic aggregation also improves performance by returning the new
report results as soon as the attribute or metric is moved to Report Objects, instead
of having to wait for the results to be returned from the data warehouse.
Attributes remain in Report Objects: Category is now in the Report Objects
pane and is no longer displayed with bold formatting. Since Category is part of the
report definition, it can be used to define the view of the report. For example, you
can build a view filter to return Revenue only for the electronics category. A standard
report would have to use the report filter to filter on an attribute not on the report,
which would also require re-execution against the data warehouse.
With attributes available in the Report Objects pane, you can easily add them back
onto the report grid.
OLAP report: The report is marked as OLAP (as indicated in the bottom right
corner of the Report Editor) because of the dynamic aggregation performed.
This chapter discusses the following aspects of dynamic aggregation:
Using dynamic aggregation, page 245
Functions used in dynamic aggregation, page 246
View filter effect on dynamic aggregation, page 257
Be careful not to select Remove from Report. If you select this option, the
attribute is completely removed from the report definition, and the report is re-
executed against the data warehouse.
You need the Use Report Objects Window (Developer) and/or the Web Use Report
Objects Window (Web) privileges to use dynamic aggregation. These privileges are part of
OLAP Services.
Another benefit of using dynamic aggregation is that the attributes removed from the
report grid can be easily included back onto the report grid or page-by area. To do this,
right-click an attribute in the Report Objects pane and select Add to Column, Add to
Row, or Add to Page-by to add an attribute from the Report Objects pane onto the
report. The options to move an attribute to the report are shown in the image below.
You can also move attribute forms between the Report Objects pane and the report grid.
If you only move an attribute form and not the attribute itself, dynamic aggregation is
not triggered. For example, if the attribute forms Last Name and First Name for the
attribute Customer are displayed on a report, you can move First Name to the Report
Objects pane without triggering dynamic aggregation. The same First Name attribute
form can be moved back to the report grid without triggering dynamic aggregation.
An attribute must have at least one attribute form displayed to be on the report
grid.
higher level. For more information on metrics that do not have a default dynamic
aggregation function, see Metrics that are not dynamically aggregated by default,
page 248.
By default, the level of the dynamic aggregation is defined by the metric that is being
aggregated. You can define the Subtotal Dimensionality Use VLDB property so that the
dynamic aggregation uses the level of the metrics dynamic aggregation function instead.
For a more detailed description of this VLDB property, along with an example of its use,
see the MicroStrategy Supplemental Reference for System Administration.
If the Count function is set to count distinct entries, it cannot use Sum as its
dynamic aggregation function and returns null values instead. The exception is
for a count distinct function in a shortcut metric defined in a report,
document, or Visual Insight quick dashboard created in MicroStrategy Web.
For instructions to create a shortcut metric, which is a type of derived metric,
see the MicroStrategy Web Help.
A custom subtotal has been included on this report to display subtotals for the
different revenue calculations. For information on creating custom subtotals, see
the Advanced Reporting Guide.
The Revenue, Max Revenue, and Min Revenue metrics use total, maximum, and
minimum subtotals respectively. These are the same default dynamic aggregation
functions that are used for these three metrics because they are built with the Sum, Max,
and Min functions respectively. You can verify that this is true by moving Employee to
the Report Objects pane, which triggers dynamic aggregation, causing the metrics to be
aggregated at the regional level.
Notice that the values for the Northeast and Mid-Atlantic regions are the same values as
the regional subtotals in the report prior to triggering dynamic aggregation. When the
three metrics are aggregated at the regional level, each metric uses its default dynamic
aggregation function to perform the calculation.
the data at the higher level would yield erroneous or null values if using only the data in
the report. The metrics would need to be re-executed against the data warehouse to
return correct values.
Metrics that cannot be calculated correctly using a dynamic aggregation function have
the default dynamic aggregation function set to none. Metrics have their default
aggregation function set to none if they are defined with the following functions:
Average (Avg): Sum of input values divided by number of input values.
Count (Distinct=true): Number of distinct input values.
Geometric mean (Geomean): Square root of the product of input values.
Median: Middle value when input values are sorted.
Mode: Most frequently found input value.
Standard Deviation (Stdev): Statistical distribution of input
values.
Variance (Var): Square of the standard deviation of input values.
Non-group functions or arithmetic operators: Metrics defined in this way
are called compound metrics.
For information on supporting dynamic aggregation for compound metrics, see
Dynamic aggregation for compound metrics, page 253. Dynamic aggregation is
supported for a shortcut metric defined in a report, document, or Visual Insight
quick dashboard created in MicroStrategy Web. Dynamic aggregation and subtotals
are calculated correctly for these shortcut metrics, even if they contain the functions
listed above. For instructions to create shortcut metrics, which are a type of derived
metric, see the MicroStrategy Web Help.
When you use dynamic aggregation at a level the Analytical Engine considers erroneous
for a metric defined with one or more of the functions listed above, null values,
represented by dashes (--), are displayed on the report. For information on changing the
display of null values, see Changing the display of null values, page 255.
This section provides the following information related to functions and metrics that do
not support dynamic aggregation by default:
Example of exceptions to dynamic aggregation, page 250
Returning correct metric values by accessing the data warehouse, page 251
Estimating dynamic aggregation values with different aggregation functions, page
252
Dynamic aggregation for compound metrics, page 253
Changing the display of null values, page 255
By default, the Standard Deviation of Revenue and Count Distinct (Items Sold) metrics
would return null values because they use the Standard Deviation and Count Distinct
functions in their metric definitions, respectively. The default dynamic aggregation
functions have instead been set to the functions used for their metric definitions.
Now compare these values to the values returned by executing against the data
warehouse instead of using dynamic aggregation to calculate the values from the data
within the report.
You can see that the Count Distinct (Items Sold) value is 360 for the Northeast region,
which is far different from the 2,160 value returned for the Northeast region in the
report that uses dynamic aggregation. The report above is able to query the data
warehouse and show the distinct items sold by all employees in the Northeast region. For
example, if Employee A, Employee B, and Employee C all sell one or more wrenches, the
item is only counted as one distinct item for the Northeast region.
Dynamic aggregation uses the data available in the report. In this example, all the values
for each employee in a given region are simply added together. When the calculation is
performed, there is no way of relating which distinct items each employee sold. The
calculation results in double-counting distinct items sold by two or more different
employees. Rolling up data to a higher level for metrics defined with functions such as
Standard Deviation and Average also perform erroneous calculations. For this reason, by
default, metrics defined with certain functions return null values instead of erroneous
results.
Note that taking Employee off the report changes the data definition of the report,
instead of the view definition. While you get the correct results, you are no longer taking
advantage of dynamic aggregation to perform the calculations. The SQL must be
regenerated and executed against the data warehouse to retrieve the results.
Using the average function to perform the dynamic aggregation estimates the metric
values to within $1,000 for all but two regions.
The accuracy of data returned when using a different dynamic aggregation function than
the function used to define the metric depends on the similarity of the functions. For
example, you cannot expect an accurate estimation of values if you use Sum as the
dynamic aggregation function for a metric defined with the Standard Deviation function.
You can use any function as the dynamic aggregation function of a metric. However, be
aware that not all functions are well suited for dynamic aggregation (see Metrics that are
not dynamically aggregated by default, page 248).
You can also create your own subtotal to use as the dynamic aggregation function. You
cannot directly use a function as the dynamic aggregation function of a metric, you must
create a subtotal that uses the function in its definition. For steps to create a subtotal,
refer to the Report Designer Help.
The Profit metric in this case is based on a profit fact stored in the data warehouse.
Suppose that your data warehouse only has facts for revenue and cost, but you want to
create a metric that calculates profit. One way you can achieve this is by creating a profit
metric called Compound Profit that combines the two metrics Revenue and Cost. The
metric can be defined as Sum(Revenue) - Sum(Cost).
You can also see a comparison of profit margins by including a Profit Margin metric on
the report. The definition for Profit Margin is Sum(Profit) / Sum(Revenue).
When you add these two metrics to the Dynamic Aggregation report, the report returns
the results shown below.
With Employee in the Report Objects pane and not on the report grid, the metrics are
dynamically aggregated to the regional level. The Profit metric is a simple sum of the
Profit fact. This calculation can be aggregated from the Employee level to the Region
level. By default, the metrics Compound Profit and Profit Margin do not use a dynamic
aggregation function.
For Compound Profit to be dynamically aggregated correctly, you change the dynamic
aggregation function to Sum. In this case the Sum function can be used to aggregate the
data after the subtraction because the order of operations does not matter in a formula
with only sum and subtract. For more information on changing the default dynamic
aggregation function, see Changing the default dynamic aggregation function, page 255.
For Profit Margin, you cannot choose Sum as the dynamic aggregation function, because
the definition of the metric includes a division. If Sum is chosen, the division is
performed first and then these values are added together, which would use the formula
Sum(Profit/Revenue). Recall that the definition of the metric is Sum(Profit) /
Sum(Revenue), performing the sum aggregations first and then dividing the sums.
To return valid results in this case, you can calculate the subtraction after dynamic
aggregation. You can achieve this functionality by defining the compound metric as a
smart metric. After you define both of the compound metrics as smart metrics, the
correct results are returned, as shown below.
You can define a metric as a smart metric using the procedure below. For an
introduction to smart metrics, see Derived elements in Report Services documents with
multiple datasets, page 138.
1 In MicroStrategy Developer, right-click a metric and select Edit. The Metric Editor
opens.
2 On the Subtotals / Aggregation tab, select the Allow Smart Metric check box.
3 Click Save and Close to save your changes and close the Metric Editor.
1 Open a report.
2 From the Data menu, select Report Data Options. The Report Data Options
dialog box opens.
3 Expand the Display category, and then select Null Values. The Display - Null
Values tab opens.
4 Under Aggregation null values, clear Use Default.
5 Replace -- with the symbol you want to use for null values, for example, 00, null,
blank, and so on.
can change the default function used for dynamic aggregation in the Subtotals /
Aggregation tab of the Metric Editor, as shown below.
The validity of the data depends on whether the function can correctly calculate the data
within the report. For this reason, it is recommended that you evaluate your report
requirements and consider the report results before you make the function selection for
dynamic aggregation.
The functions that can be used as the dynamic aggregation function are:
Average
Count (Distinct=true)
Geometric Mean
Maximum
Median
Minimum
Mode
Product
Standard Deviation
Sum
Variance
User-defined function
Metrics defined with certain functions use a default dynamic aggregation function that
returns the correct results in most situations. For example, a metric defined with the
Sum function uses the Sum function to dynamically aggregate its data. You can change
the dynamic aggregation function for this type of metric, but it is recommended that you
do not change these default functions as this can cause erroneous or null results for the
metrics in a report. For more information on metrics with default dynamic aggregation
functions, see Metrics with default dynamic aggregation functions, page 247.
Aggregating data from a report with certain functions can return erroneous or null
results, and therefore the default dynamic aggregation function is set to none. You can
set the default dynamic aggregation function so that these metrics return data instead of
null values. For example, if a metric is defined with Standard Deviation, you can change
the function used for dynamic aggregation from Default to Standard Deviation.
You can, however, use a function that does not match the function or functions used to
define the metric. To see an example that uses this technique, see Estimating dynamic
aggregation values with different aggregation functions, page 252.
1 In MicroStrategy Developer, right-click a metric and select Edit. The Metric Editor
opens.
2 On the Subtotals / Aggregation tab, select a function from the Dynamic
aggregation function drop-down list.
3 Click Save and Close to save your changes and close the Metric Editor.
Sum
VarP (variance of a population)
Var (variance of a sample)
Date and time functions All date and time functions
Internal functions Banding
BandingC
BandingP
Case
CaseV
Null and Zero functions IsNotNull
IsNull
NullToZero
ZeroToNull
String functions Concat (concatenate)
ConcatBlank (concatenate plus blank space)
InitCap (initial capitalization)
LeftStr (left string selection)
Length (length of string)
Lower (lower case)
LTrim (left trim)
Position (position of substring)
RightStr (right string selection)
RTrim (right trim)
SubStr (substring selection)
Trim
Upper (upper case)
Arithmetic operators All arithmetic functions
Comparison operators <
<=
<>
=
>
>=
Begins With
Between
Contains
Ends With
In
Like
Not Begins With
Not Between
Not Contains
Not Ends With
Not In
Not Like
Comparison operators for *<=
rank
*<>
*=
*>=
*Between
Not*Between
Logical operators AND
IF
Not
Or
Data mining functions All data mining functions
Financial functions Accrint (accrued interest)
Accrintm (accrued interest at maturity)
Coupdaybs (coupon period, beginning to settlement)
Coupdays (coupon period, number of days with settlement)
Coupdaysnc (coupon period, settlement to next coupon)
Coupncd (next date after settlement)
Coupnum (coupon, number payable between settlement and
maturity)
Couppcd (coupon date, previous)
Yield
Yielddisc (yield on a discounted security)
Yieldmat (yield at maturity)
Mathematical functions All mathematical functions can be used in partitioned datasets.
Statistical functions AvgDev (average deviation)
BetaDistribution
BinomialDistribution
ChiSquareDistribution
Confidence (confidence interval)
Correlation
Covariance
CritBinomial (criterion binomial)
ExponentialDistribution
Fisher (fisher transformation)
FDistribution (f-probability distribution)
Forecast
ForecastV (forecast, vector input)
GammaDistribution
Growth
GrowthV (growth, vector input)
HypergeometricDistribution
Intercept
InverseBetaDistribution (inverse of the beta distribution)
InverseChiDistribution (inverse of chi-squared distribution)
InverseFisher (inverse of the Fisher transformation)
InverseFDistribution (inverse of F-probability distribution)
InverseGammaDistribution (inverse of gamma distribution)
InverseLognormalDistribution (inverse of lognormal distribution)
InverseNormDistribution (inverse of normal cumulative
distribution)
InverseTDistribution (inverse of T-distribution)
Kurtosis
LognormalDistribution
NegativeBinomialDistribution
NormalDistribution (normal cumulative distribution)
Pearson (Pearson product moment correlation coefficient)
Permut (permutation)
PoissonDistribution
RSquare (square of pearson product moment correlation
coefficient)
Skew
Slope (of a linear regression)
Standardize
StandardNormalDistribution (standard normal cumulative
distribution)
SteYX (standard error of estimates)
TDistribution
Trend
TrendV (trend, vector input)
WeibullDistribution
OLAP MTDI
Version Existed before MicroStrategy 10.0 New in MicroStrategy 10.0
Data Volume In 9.x, limited to 2 billion rows Each partition can have up to 2 billion rows
Definition User specifies the definition of the cube User specifies the tables to load into
on a Report Template with Attributes, memory; Attributes/Metrics are mapped to
Metrics, and Filter these tables
Query Intelligence Server generates the SQL to Queries submitted to the RDBMS are simple
Generation execute against the data source (can use SELECT statements against the tablesno
Multi-Source) joins among tables
By default, final pass of SQL joins lookup
tables to fact table and/or metric temp
tables to retrieve attribute descriptions
Parallel Parallel Data Fetch Option set at Maximum Parallel Queries Per Report set
Intelligent Cube level at Project level
In-memory cubes are perfect for use when creating visually-rich and interactive
dashboard applications. Most in-memory analytics dashboard applications are built using
the MicroStrategy Report Services Document interface. In-memory cubes can also be
used as a dataset within Visual Insight dashboards.
For a brief explanation of PRIME and for configuration best practice recommendations,
see the following sections:
Prerequisites
Parallel queries
Partitioning cubes
Sizing
Cube incremental refresh
Data source
Document / dashboard best practice
Concurrency
Web or mobile access
Prerequisites
Administrators should verify that all environment settings are tuned to accommodate the
cube to be published. The settings are dependent on data volume. For more information
about the environment settings, see the following sections:
Hardware configuration settings
Intelligence Server level settings
Project configuration
For more information about the Job Prioritization tab. click Help.
5 Click OK.
For MTDI: File from URL
4 Click OK.
Other external sources: Facebook, Google Analytics, Google Big Query,
Drop Box, Google Drive, Salesforce, Twitter
Each pool of Data Import processes can have up to 20 threads.
Project configuration
For project configuration, see
Result sets
Data import specific
User specific (if needed)
Result sets
1 In MicroStrategy Developer, right-click on the project and choose Project
Configuration
2 In the Project Configuration editor, expand Governing Rules, expand Default,
and choose Result sets.
3 Verify that the fields are set appropriately. The following figure shows a sample from
a standard project.
Parallel queries
You can improve the speed of cube publication for MTDI with the Maximum Parallel
Queries Per Report setting.
4 In the VLDB Properties window, on the Tools menu, select Show Advanced
Settings.
The Network Transfer Rate depends on the theoretical limit between the data source and
Intelligence Server. However, if the data source is from a database, the Network Transfer
Rate depends on the number of concurrent database threads that can be handled by the
database. Each imported table is executed over a single thread. Therefore, to parallelize a
big table in MTDI, you may want to build multiple views representing slices to be fetched
over an independent connection.
Users are allowed to switch between Permanent Table (for Generic) and Derived
Table syntax (optimal for Single Select). See below.
Number of maximum parallel queries for Parallel Data Fetch is governed by
Number of Partitions setting in the screenshot above.
Pre/post statements
Parallel Data Fetch for OLAP Cubes does not work if the following is set:
Insert Mid Statements
Query optimizations
Parallel Data Fetch for OLAP Cubes does not work if any of the options below are
chosen for the VLDB setting Data population for IntelligentCubes:
Normalize Intelligent Cube data in the database (can provide improved performance
in scenarios where Intelligent Cube data includes a large ratio of repeating data,
dimensions include a large number of attributes, and fact tables have been used to
attribute lookup tables as well)
Normalize Intelligent Cube data in the database using relationship tables (can provide
improved performance in scenarios where Intelligent Cube data includes a large ratio
of repeating data, dimensions include a large number of attributes, and attribute
lookp tables are much small than fact tables)
Direct loading of dimensional data and filtered fact data (can provide improved
performance when majority of the attribute elements are used by the cube. In this
method, lookup tables will not be joined to fact tables)
Partitioning cubes
Note: Before MicroStrategy 10.0, all datasets were non-partitioned. Starting in
MicroStrategy 10.0, partitioning is optional. If you are not partitioning the data,
the published cube consists of one table.
A major advantage of MicroStrategy 10.0 cubes is the ability to partition cubes. While
OLAP cubes were limited to 2 billion rows, PRIME OLAP cubes can be divided into
partitions and each partition can contain up 2 billion rows. This advantage allows
PRIME OLAP cubes to increase in capacity and scalability through partitions.
For more information, see the following sections:
Number of cube partitions
Selection of partition key (distribution key)
Notes about partitioning
Where to define the partition
new column needs to be added to the largest table. Such an approach can
generally be applied to partition only the single largest fact table in the dataset.
Sizing
Ensure that the Intelligence Server has the capacity to support all PRIME cubes in
memory. Additionally, ensure that the server meets all the system requirements, and has
enough capacity for both hard drive space and RAM.
As a general estimation of memory consumption, RAM can consume up to three times as
much as the MSI Table size.
Use the following table as a reference.
INTEGER INTEGER 4
SMALLINT SHORT 2
In the case where the cube has multiple tables, the MSIFile Table size of each cube can
be combined to estimate the peak memory requirement.
In-memory partitioning generally results in more memory requirement as compared to
no partitioning.
For a better understanding of the PRIME cube structure, enable Engine -> CSI logs
before publishing cubes.
Data source
All MicroStrategy Certified Data Sources are compatible with PRIME Cubes.
If sourcing from File, MTDI is the better approach
Network Browser allows files to be loaded from the file systems that Intelligence
Server can access.
Relationships are global in nature. When defined on one table, they create a relationship
table with composite information from all tables.
Metric guide
Available under Function Parameters when Use Lookup for Attribute = False.
Some metrics can be calculated in multiple ways. This setting allows the designer to
suggest which uploaded table should be considered for calculating a certain metric.
In special circumstances, it can also help resolve performance issues introduced by
what may be considered in-efficient joins.
Row Count #Imported Table Name# is the best way for a designer to
control which table a particular metric gets evaluated from.
Note: Derived metrics in View Reports would be aggregated two times: once from
Cube to View Report and then from View Report to document grid.
Concurrency
Memory consumption / CPU utilization during PRIME
cube publication concurrency
Expect peak memory usage to be up to three times the raw data size.
For Intelligence Server to stay responsive, a maximum of 50% of the logical CPU cores
should normally engaged in populating a cube into memory after raw data is fetched.
G derived element in 30
P pivoting 20
page-by 20, 134 in dynamic sourcing 202
derived element interaction PRIME
with 133
best practices
example 134
concurrency 284
in dynamic sourcing 202
cube incremental refresh 279
percent-to-total metric 151
data source 280
partitioned dataset 69
documents and dashboards 280
benefits of 70
introduction 264
creating 73
parallel queries 270
high-level tasks 70
partitioning cubes 275
editing 74
sizing 278
partition attribute 72
web or mobile access 285
requirements
privileges
application 71
OLAP Services 17
Intelligence Server machine 72
project
metrics 72
disabling for dynamic sourcing 206
partition attribute 72
enabling for dynamic sourcing 206
scheduling a data update 75
tuning for dynamic sourcing 199
updating 75
prompt
pattern operator 170
in a report accessing an Intelligent
percent-to-total shortcut metric Cube 61
creating 149 in a report limit 165
example 149 in dynamic sourcing 202
level 151 in Intelligent Cube 30
page-by 151 publishing an Intelligent Cube 39
rules 151 manually 39
percent range view filter 174 on a schedule 40
creating 181
Q
example 179
Query Builder report in dynamic
sourcing 203