hyperion integration with odi

1138
Oracle® Essbase Database Administrator's Guide Release 11.1.2.2.100 Updated: December 2013

Upload: yollotl-kasbekino

Post on 07-Aug-2018

237 views

Category:

Documents


0 download

TRANSCRIPT

Copyright © 1996, 2013, Oracle and/or its affiliates. All rights reserved.
Authors: EPM Information Development Team
Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.
Intel and Intel Xeon are trademarks or registered trademarks of Intel Corporation. All SPARC trademarks are used under license and are trademarks or registered trademarks of SPARC International, Inc. AMD, Opteron, the AMD logo, and the AMD Opteron logo are trademarks or registered trademarks of Advanced Micro Devices. UNIX is a registered trademark  of The Open Group.
This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited.
The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing.
If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it on behalf of  the U.S. Government, the following notice is applicable:
U.S. GOVERNMENT END USERS:
Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs. No other rights are granted to the U.S. Government.
This software or hardware is developed for general use in a variety of information management applications. It is not developed or intended for use in any inherently dangerous applications, including applications that may create a risk of  personal injury. If you use this software or hardware in dangerous applications, then you shall be responsible to take all appropriate fail-safe, backup, redundancy, and other measures to ensure its safe use. Oracle Corporation and its affiliates disclaim any liability for any damages caused by use of this software or hardware in dangerous applications.
 
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Developer Products . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Lifecycle Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Key Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Data Integration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Powerful Querying . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Chapter 3. Understanding Multidimensional Databases  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
OLAP and Multidimensional Databases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Dimensions and Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Standard Dimensions and Attribute Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Sparse and Dense Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Selection of Dense and Sparse Dimensions  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Data Storage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
Data Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Multiple Data Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
The Essbase Solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Chapter 4. Case Study: Designing a Single-Server, Multidimensional Database  . . . . . . . . . . . . . . . . . . . . . . . 75
Process for Designing a Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Case Study: The Beverage Company . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
Analyzing and Planning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Analyzing Source Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
Planning for Security in a Multiple User Environment . . . . . . . . . . . . . . . . . . . . . . . . 79
Creating Database Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Dimension Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Checking System Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Loading Test Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Tags and Operators on Example Measures Dimension . . . . . . . . . . . . . . . . . . . . . . . . 95
Accounts Dimension Calculations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
Formulas and Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
Adding Essbase Administration Servers to Enterprise View . . . . . . . . . . . . . . . . . . . . . . 105
Adding Essbase Servers to Enterprise View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
iv  Contents
About Essbase Administration Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
Part II. Designing and Creating Applications and Databases  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
Chapter 6. Creating Applications and Databases   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Process for Creating Applications and Databases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Understanding Applications and Databases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
Understanding Database Artifacts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
Understanding Database Outlines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
Understanding Data Sources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
Understanding Rules Files for Data Load and Dimension Build . . . . . . . . . . . . . . . . 113
Understanding Calculation Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
Understanding Report Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
Understanding Security Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
Understanding Triggers Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
Creating an Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
Creating a Da t a b a s e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
Annotating a Dat a b a s e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
Using Substitution Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
Setting Substitution Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
Deleting Substitution Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
Updating Substitution Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
Copying Substitution Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
Using Location Aliases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
Creating Location Aliases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
Chapter 7. Creating and Changing Database Outlines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
Process for Creating Outlines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
Creating and Editing Outlines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
Locking and Unlocking Outlines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
Adding Dimensions and Members to an Outline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
Setting Data Storage Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
Positioning Dimensions and Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
Contents  v 
Verifying Outlines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
Saving Outlines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
Saving an Outline with Added Standard Dimensions . . . . . . . . . . . . . . . . . . . . . . . . 129
Saving an Outline with One or More Deleted Standard Dimensions . . . . . . . . . . . . . 129
Creating Sub-Databases Using Deleted Members . . . . . . . . . . . . . . . . . . . . . . . . . . 129
Chapter 8. Creating and Working With Duplicate Member Outlines  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
Creating Duplicate Member Names in Outlines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
Restrictions for Duplicate Member Names and Aliases in Outlines . . . . . . . . . . . . . . . . . 132
Syntax for Specifying Duplicate Member Names and Aliases . . . . . . . . . . . . . . . . . . . . . 133
Using Fully Qualified Member Names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
Qualifying Members b y Differentiating Ancestor . . . . . . . . . . . . . . . . . . . . . . . . . . 134
Using Shortcut Qualified Member Names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
Working with Duplicate Member Names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
Chapter 9. Setting Dimension and Member Properties  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
Setting Dimension Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
Creating Currency Partitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
Creating Attribute Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
Setting Member Consolidation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
Determining How Members Store Data Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
Understanding Stored Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
Understanding Shared Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
Setting Two-Pass Calculations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
Creating UDAs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
Adding Comments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
Process for Creating Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
Understanding Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
Understanding Members of Attribute Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . 160
Understanding the Rules for Base and Attribute Dimensions and Members . . . . . . . 160
Understanding the Rules for Attribute Dimension Association . . . . . . . . . . . . . . . . . 161
Understanding the Rules for Attribute Member Association . . . . . . . . . . . . . . . . . . 161
Understanding Attribute Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
Understanding Two-Pass Calculations on Attribute Dimensions . . . . . . . . . . . . . . . 165
Comparing Attributes and UDAs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
Designing Attribute Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
Using Attribute Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
Optimizing Outline Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
Building Attribute Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
Setting Member Names in Attribute Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
Setting Prefix and Suffix Formats for Member Names of Attribute Dimensions . . . . . 169
Setting Boolean Attribute Member Names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
Changing the Member Names in Date Attribute Dimensions . . . . . . . . . . . . . . . . . . 170
Setting Up Member Names Representing Ranges of Values . . . . . . . . . . . . . . . . . . . 171
Changing the Member Names of the Attribute Calculations Dimension . . . . . . . . . . 172
Calculating Attribute Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
Understanding the Default Attribute Calculations Members . . . . . . . . . . . . . . . . . . 174
Viewing an Attribute Calculation Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
Accessing Attribute Calculations Members Using the Spreadsheet . . . . . . . . . . . . . . 175
Optimizing Calculation and Retrieval Performance . . . . . . . . . . . . . . . . . . . . . . . . . 175
Using Attributes in Calculation Formulas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
Understanding Attribute Calculation and Shared Members . . . . . . . . . . . . . . . . . . . 177
Varying Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
Chapter 11. Linking Objects to Essbase Data  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
Understanding LROs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
Setting Up Permissions for LROs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
Viewing and Deleting LROs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
Exporting and Importing LROs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
Limiting LRO File Sizes for Storage Conservation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
Chapter 12. Working with Typed Measures  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
About Typed Measures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
Text Measures Overview and Workflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
Text List Objects and Text List Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
Working with Date Measures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
Date Measures Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
Implementing Date Measures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
Performing Database Operations on Text and Date Measures . . . . . . . . . . . . . . . . . . . . 193
Loading, Clearing, and Exporting Text and Date Measures . . . . . . . . . . . . . . . . . . . 193
Consolidating Text and Date Measures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
Retrieving Data With Text and Date Measures . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
Limitations of Text and Date Measures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
Working with Format Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
Overview of  Format Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
Implementing Format Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
MDX Format Directive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
Chapter 13. Drilling Through to Or acle Applications  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
Overview of Drill-through to Oracle Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
Understanding Drill-through URLs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
Drill-through URL Name . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
Drill-through URL XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
Creating and Managing Drill-through URLs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
Chapter 14. Designing and Building Currency Conversion Applications  . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
About Currency Conversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
Structure of Currency Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
 viii Contents
Creating Main Database Outlines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
Preparing Main Database Outlines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
Generating Currency Database Outlines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
Linking Main and Currency Databases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
Converting Currency Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
Tracking Currency Conversions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
Troubleshooting Currency Conversion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
Understanding Essbase Partitioning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
Data Sources and Data Targets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
Overlapping Partitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
Attributes in Partitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
Partition Design Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
Benefits of Partitioning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
Guidelines for Partitioning Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
Security for Partitioned Databases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
Using Backup and Restore and Transaction Logging and Replay with Partitioned Databases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
Replicated Partitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
Performance Considerations for Replicated Partitions . . . . . . . . . . . . . . . . . . . . . . . 228
Replicated Partitions and Port Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
Transparent Partitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
Performance Considerations for Transparent Partitions . . . . . . . . . . . . . . . . . . . . . 233
Contents ix 
Transparent Partitions and Member Formulas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
Transparent Partitions and Port Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
Linked Partitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
Drill Across and Linked Partitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
Linked Partitions and Port Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
Case Studies for Designing Partitioned Databases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
Case Study 1: Partitioning an Existing Database . . . . . . . . . . . . . . . . . . . . . . . . . . . 238
Case Study 2: Connecting Existing Related Databases . . . . . . . . . . . . . . . . . . . . . . . 240
Case Study 3: Linking Two Databases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
Chapter 16. Creating and Maintaining Partitions  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
Process for Creating Partitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
Choosing a Partition Type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
Setting up the Data Source and the Data Target . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
Setting the User Name and Password . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
Defining a Partition Area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
Mapping Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
Mapping Data Cubes with Extra Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
Mapping Shared Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248
Importing Member Mappings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248
Creating Advanced Area-Specific Mappings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
Validating Partitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
Saving Partitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
Testing Partitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
Synchronizing Outlines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
Performing Block Storage Outline Synchronization . . . . . . . . . . . . . . . . . . . . . . . . . 254
Tracking Changes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
Populating or Updating Replicated Partitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
Editing and Deleting Partitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
Viewing Partition Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
Chapter 17. Understanding Data Loading and Dimension Building   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
Data Sources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
Rules Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
Situations that Do and Do Not Need a Rules File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270
Data Sources that Do Not Need a Rules File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270
Formatting Ranges of Member Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
Formatting Columns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
Chapter 18. Working with Rules Files  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
Process for Creating Data Load Rules Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
Process for Creating Dimension Build Rules Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
Combining Data Load and Dimension Build Rules Files . . . . . . . . . . . . . . . . . . . . . . . . 278
Creating Rules Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
Setting File Delimiters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280
Naming New Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280
Setting and Changing Member and Dimension Properties . . . . . . . . . . . . . . . . . . . . . . . 281
Using Data Prep Editor to Set Dimension and Member Properties . . . . . . . . . . . . . . 281
Using the Data Source to Work with Member Properties . . . . . . . . . . . . . . . . . . . . . 281
Setting Field Type Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283
Field Types and Valid Build Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283
Rules for Assigning Field Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
Setting Dimension Build Operational Instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
Defining Data Load Field Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
Performing Operations on Records, Fields, and Data . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
Validating, Saving, and Printing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
Requirements for Valid Data Load Rules Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
Requirements for Valid Dimension Build Rules Files` . . . . . . . . . . . . . . . . . . . . . . . 288
Copying Rules Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
Printing Rules Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
 
Chapter 19. Using a Rules File to Perform Operations on Records, Fields, and Data   . . . . . . . . . . . . . . . . . . . 291
Performing Operations on Records . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
Selecting Records . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
Rejecting Records . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
Setting the R ecords Displayed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
Defining Header Records . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
Ignoring Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294
Ignoring Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
Arranging Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
Mapping Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
Defining Columns as Data Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
Adding to and Subtracting from Existing Values . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
Clearing Existing Data Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300
Replacing All Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
Scaling Data Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
Flipping Field Signs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
Chapter 20. Performing and Debugging Data Loads or Dimension Builds  . . . . . . . . . . . . . . . . . . . . . . . . . . 303
Prerequisites for Data Loads and Dimension Builds . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
Performing Data Loads or Dimension Builds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
Stopping Data Loads or Dimension Builds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
Tips for Loading Data and Building Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
Performing Deferred-Restructure Dimension Builds . . . . . . . . . . . . . . . . . . . . . . . . 305
Determining Where to Load Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
Dealing with Missing Fields in a Data Source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
Loading a Subset of Records from a Data Source . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
Saving and Reusing Data Load Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
Debugging Data Loads and Dimension Builds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
Verifying that Essbase Server Is Available . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
Verifying that the Data Source Is Available . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
Checking Error Logs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
Resolving Problems with Data Loaded Incorrectly . . . . . . . . . . . . . . . . . . . . . . . . . . 310
Creating Rejection Criteria for End of  File Markers . . . . . . . . . . . . . . . . . . . . . . . . . 311
Understanding How Essbase Processes a R ules File . . . . . . . . . . . . . . . . . . . . . . . . . 312
 xii Contents
 
Understanding How Essbase Processes Missing or Invalid Fields During a Data Load . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
Chapter 21. Understanding Advanced Dimension Building Concepts  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
Understanding Build Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
Using Generation References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316
Using Level References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
Using Parent-Child References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320
Adding Members as Siblings of the Lowest Level . . . . . . . . . . . . . . . . . . . . . . . . . . . 323
Adding Members to a Specified Parent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
Building Attribute Dimensions and Associating Attributes . . . . . . . . . . . . . . . . . . . . . . . 325
Building Attribute Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326
Working with Numeric Ranges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
Reviewing the R ules for Building Attribute and Base Dimensions . . . . . . . . . . . . . . . 334
Building Shared Members by Using a Rules File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335
Sharing Members at the Same Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336
Sharing Members at Different Generations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338
Sharing Non-Level 0 Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340
Building Multiple Roll-Ups by Using Level References . . . . . . . . . . . . . . . . . . . . . . . 341
Creating Shared Roll-Ups from Multiple Data Sources . . . . . . . . . . . . . . . . . . . . . . 342
Building Duplicate Member Outlines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343
Uniquely Identif  ying Members Through the Rules File . . . . . . . . . . . . . . . . . . . . . . 344
Building Qualified Member Names Through the Rules File . . . . . . . . . . . . . . . . . . . 344
Part IV. Calculating Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
Chapter 22. Calculating Essbase Databases  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
About Database Calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
Calculating Databases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354
Canceling Calculations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
Security Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
Using Formulas and Formula Calculations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357
Process for Creating Formulas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358
Understanding Formula Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359
Constant Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
Nonconstant Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
Basic Equations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362
Conditional Tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
Mathematical Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368
Date and Time Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380
Calculation Mode Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380
Custom-Def ined Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380
Using Substitution Variables in Formulas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381
Using Environment Variables in Formulas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381
Using Formulas on Partitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381
Displaying Formulas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382
Chapter 24. Reviewing Examples of Formulas for Block Storage Databases  . . . . . . . . . . . . . . . . . . . . . . . . . 383
Calculating Period-to-Date Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
Calculating Rolling Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384
 xiv  Contents
Member Calculation Order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391
Determining Member Consolidation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392
Avoiding Forward Calculation References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394
Block Calculation Order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396
Data Block Renumbering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398
Cell Calculation Order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398
Cell Calculation Order for Formulas on a Dense Dimension . . . . . . . . . . . . . . . . . . 404
Calculation Passes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404
Chapter 26. Understanding Intelligent Calculation  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409
Introducing Intelligent Calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409
Intelligent Calculation and Data Block Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410
Limitations of Intelligent Calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411
Using Intelligent Calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412
Using Intelligent Calculation for a Default, Full Calculation . . . . . . . . . . . . . . . . . . . 412
Using Intelligent Calculation for a Calculation Script, Partial Calculation . . . . . . . . . 413
Using the SET CLEARUPDATESTATUS Command . . . . . . . . . . . . . . . . . . . . . . . . . . . 413
Understanding SET CLEARUPDATESTATUS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413
Reviewing Examples That Use SET CLEARUPDATESTATUS . . . . . . . . . . . . . . . . . 414
Calculating Data Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415
Calculating Dense Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415
Calculating Sparse Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416
Handling Concurrent Calculations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417
Understanding Multiple-Pass Calculations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417
Understanding the Effects of Intelligent Calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . 421
Changing Formulas and Accounts Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421
Contents  xv 
Restructuring Databases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421
Converting Currencies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422
Understanding Dynamic Calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423
Understanding Dynamic Calc and Store Members . . . . . . . . . . . . . . . . . . . . . . . . . 424
Retrieving the Parent Value of Dynamically Calculated Child Values . . . . . . . . . . . . 425
Benefitting from Dynamic Calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425
Using Dynamic Calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 426
Dynamically  Calculated Children . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429
Choosing Between Dynamic Calc and Dynamic Calc and Store . . . . . . . . . . . . . . . . . . . 429
Recommendations for Sparse Dimension Members . . . . . . . . . . . . . . . . . . . . . . . . . 429
Recommendations for Members with Specific Characteristics . . . . . . . . . . . . . . . . . 430
Recommendations for Dense Dimension Members . . . . . . . . . . . . . . . . . . . . . . . . . 430
Recommendations for Data with Many Concurrent Users . . . . . . . . . . . . . . . . . . . . 431
Understanding How Dynamic Calculation Changes Calculation Order . . . . . . . . . . . . . . 431
Calculation Order for Dynamic Calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431
Calculation Order for Dynamically Calculating Two-Pass Members . . . . . . . . . . . . . 432
Calculation Order for Asymmetric Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433
Reducing the Impact on Retrieval Time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434
Displaying a Retrieval Factor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435
Displaying a Summary of Dynamically Calculated Members . . . . . . . . . . . . . . . . . . 435
Increasing Retrieval Buffer Size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436
Using Dynamic Calculator Caches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 436
Reviewing D ynamic Calculator Cache Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437
Using Dynamic Calculations with Standard Procedures . . . . . . . . . . . . . . . . . . . . . . . . . 437
Creating Dy namic Calc and Dynamic Calc and Store Members . . . . . . . . . . . . . . . . . . . 438
Restructuring Databases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438
Chapter 28. Calculating Time Series Data  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441
Specifying Accounts and Time Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442
Reporting the Last Value for Each Time Period . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442
Reporting the First Value for Each Time Period . . . . . . . . . . . . . . . . . . . . . . . . . . . 443
Reporting the Average Value for Each Time Period . . . . . . . . . . . . . . . . . . . . . . . . . 444
Skipping #MISSING and Zero Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444
Considering the Effects of First, Last, and Average Tags . . . . . . . . . . . . . . . . . . . . . . 444
Placing Formulas on Time and Accounts Dimensions . . . . . . . . . . . . . . . . . . . . . . . 445
Calculating Period-to-Date Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445
Specifying Alias Names for Dynamic Time Series Members . . . . . . . . . . . . . . . . . . . 448
Applying Predef ined Generation Names to Dynamic Time Series Members . . . . . . . 448
Retrieving Period-to-Date Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449
Chapter 29. Developing Calculation Scripts for Block Storage Databases  . . . . . . . . . . . . . . . . . . . . . . . . . . 451
Using Calculation Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452
Understanding Calculation Script Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454
Adding Comments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456
Controlling the Flow of Calculations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458
Declaring Data Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458
Using Formulas in Calculation Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 460
Basic Equations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461
Conditional Equations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461
Interdependent Formulas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462
Grouping Formulas and Calculations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462
Calculating a Series of Member Formulas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462
Calculating a Series of Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463
Using Substitution and Environment Variables in Calculation Scripts . . . . . . . . . . . . . . 463
Using Substitution Variables in Calculation Scripts . . . . . . . . . . . . . . . . . . . . . . . . . 464
Contents  xvii
Clearing and Copying Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466
Clearing Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466
Copying Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467
Calculating Lists of Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468
Using the FIX Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468
Using the Exclude Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 470
Exporting Data Using the DATAEXPORT Command . . . . . . . . . . . . . . . . . . . . . . . . . . 470
Exporting Data into a Relational Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472
Advantages and Disadvantages of Exporting Data Using a Calculation Script . . . . . . 473
Enabling Calculations on Potential Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473
Using DATACOPY to Copy Existing Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474
Using SET CREATENONMISSINGBLK to Calculate All Potential Blocks . . . . . . . . . 475
Using Calculation Scripts on Partitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475
Writing Calculation Scripts for Partitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475
Controlling Calculation Order for Partitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476
Saving, Executing, and Copying Calculations Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . 476
Saving Calculation Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477
Executing Calculation Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477
Copying Calculation Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 478
Checking Calculation Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 478
Chapter 30. Reviewing Examples of Calculation Scripts for Block Storage Databases  . . . . . . . . . . . . . . . . . . 481
About These Calculation Script Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481
Calculating Variance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481
Calculating Product Share and Market Share Values . . . . . . . . . . . . . . . . . . . . . . . . . . . 484
Allocating Costs Across Products . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485
Allocating Values Within a Dimension . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 486
Allocating Values Across Multiple Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488
Goal-Seeking Using the LOOP Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 0
Forecasting Future Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493
Understanding Custom-Defined Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495
Naming Custom-Defined Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495
Creating Custom-Defined Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 496
Process for Creating Custom-Defined Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 501
Custom-Defined Function Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502
Installing Java Classes on Essbase Serv er . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504
Registering Custom-Defined Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 505
Updating Custom-Defined Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 506
Viewing Custom-Defined Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507
Removing Custom-Defined Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 508
Copying Custom-Defined Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 508
Part V. Retrieving Data  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 511
Chapter 33. Understanding Report Script Basics   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513
Working With a Simple Report Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513
Understanding How Report Writer Works . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 515
Report Extractor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 516
Parts of a Report Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 518
Planning Reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 518
Reviewing the Process for Creating Report Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 519
Creating Report Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 520
Saving Report Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 520
Executing Report Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521
Copying Report Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521
Developing Free-Form Reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521
Understanding Extraction Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 525
Understanding Formatting Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 526
Creating Page, Column, and Row Headings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 528
Modifying Headings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 529
Formatting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 531
Adding Totals and Subtotals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535
Changing How Data Is Displayed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 539
Selecting and Sorting Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 542
Selecting Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 542
Selecting Duplicate Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 544
Selecting Members by Using Boolean Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . 546
Selecting Members by Using Substitution Variables . . . . . . . . . . . . . . . . . . . . . . . . . 547
Selecting Members by Using Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 548
Selecting Members by Using UDAs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 549
Selecting Members by Using Wildcards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 550
Suppressing Shared Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 551
Sorting Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 553
Using TOP, BOTTOM, and ORDERBY with Sorting Commands . . . . . . . . . . . . . . . 554
Using RESTRICT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 555
Using ORDERBY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 555
Using TOP and BOTTOM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 556
Converting Data to a Different Currency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 558
Generating Reports Using the C, Visual Basic, and Grid APIs . . . . . . . . . . . . . . . . . . . . . 558
Chapter 35. Writing MDX Queries  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 559
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 559
Rules for Specifying Sets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 562
Introduction to Axis Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 562
 xx  Contents
Using a Slicer Axis to Set Query Point-of-View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 570
Exercise: Limiting the Results with a Slicer Axis . . . . . . . . . . . . . . . . . . . . . . . . . . . . 570
Common Relationship Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 571
Performing Set Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 571
Creating and Using Named Sets and Calculated Members . . . . . . . . . . . . . . . . . . . . . . . 574
Calculated Members . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 574
Named Sets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 576
Using Substitution Variables in MDX Queries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 578
Querying for Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 579
The Value Type of Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 581
NULL Property Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 582
Process for Creating a Database Subset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 583
Create an Application and Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 584
Copy the Outline File from the Source Database . . . . . . . . . . . . . . . . . . . . . . . . . . . 584
Create an Output File Containing the Required Data Subset . . . . . . . . . . . . . . . . . . 585
Load the Output File into the New Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 586
Exporting Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 587
Exporting Text Data Using Calculation Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . 588
Exporting Text Data Using Report Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 589
Chapter 37. Retrieving Relational Data  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 593
Integrating Relational Databases with Essbase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 593
Hybrid Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 594
Data Retrieval . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 595
Using Outline Editor with Hybrid Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 598
Managing Data Consistency in Hybrid Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . 599
Managing Security in Hybrid Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 599
Advanced Relational Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 600
Part VI. Designing and Manag ing a Security System  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 603
Chapter 38. User Management and Security in EPM System Security Mode  . . . . . . . . . . . . . . . . . . . . . . . . . 605
Using Essbase in EPM System Security Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 605
Security for Users and Groups in EPM Sy stem Security . . . . . . . . . . . . . . . . . . . . . . . . . 606
EPM System Security Migration and Upgrade Considerations . . . . . . . . . . . . . . . . . 606
User Security Considerations after EPM System Security Migration and Upgrade . . . 607
Essbase User Roles for Shared Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 609
Essbase Projects, Applications, and Databases in Shared Services . . . . . . . . . . . . . . . . . . 610
Essbase Users and Groups in Shared Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 612
Assigning Access to Users in Shared Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 612
Launching and Logging In to Shared Services Console . . . . . . . . . . . . . . . . . . . . . . . 612
Assigning Server Access in Shared Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 613
Assigning Application Access in Shared Services . . . . . . . . . . . . . . . . . . . . . . . . . . . 613
Assigning Database Calculation and Filter Access in Shared Services . . . . . . . . . . . . . 614
Assigning Application Access Type in Shared Services . . . . . . . . . . . . . . . . . . . . . . . 615
Migrating Essbase to EPM System Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 615
Application and Database Migration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 616
User and Group Migration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 617
User and Group Identities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 619
Security Information Recovery in EPM System Security Mode . . . . . . . . . . . . . . . . . . . . 619
User and Group Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 619
Application Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 620
Chapter 39. User Management and Security in Essbase Native Security Mode . . . . . . . . . . . . . . . . . . . . . . . 621
About Essbase Native Security Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 621
Continuing to Use Essbase in Native Security  Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . 623
Creating Users and Groups in Essbase Native Security Mode . . . . . . . . . . . . . . . . . . . . . 624
Creating Users in Essbase Native Security Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . 624
Assigning Application Access T ype in Essbase Native Security Mode . . . . . . . . . . . . 624
Creating Groups in Essbase Native Security Mode . . . . . . . . . . . . . . . . . . . . . . . . . . 625
 xxii Contents
 
Granting Permissions to Users and Groups in Essbase Native Security Mode . . . . . . . . . 625
Assigning User and Group Types in Essbase Native Security Mode . . . . . . . . . . . . . . 626
Granting Application and Database Access to Users and Groups in Essbase Native Security Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 627
Granting Designer Permissions to Users and Groups in Essbase Native Security  Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 628
Managing Users and Groups in Essbase Native Security Mode . . . . . . . . . . . . . . . . . . . . 628
Viewing Users and Groups in Essbase Native Security Mode . . . . . . . . . . . . . . . . . . 629
Editing Users in Essbase Native Security Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . 629
Editing Groups in Essbase Native Security Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . 629
Copying an Existing Security Profile in Essbase Native Security Mode . . . . . . . . . . . 629
Deleting Users and Groups in Essbase Native Security Mode . . . . . . . . . . . . . . . . . . 630
Renaming Users and Groups in Essbase Native Security Mode . . . . . . . . . . . . . . . . . 631
Using EPM System Security for External Authentication in Essbase Native Security  Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 631
Managing Global Security for Applications and Databases in Native Security Mode . . . . . 631
Defining Application Settings in Essbase Native Security Mode . . . . . . . . . . . . . . . . 632
Setting General Application Connection Options in Essbase Native Security  Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 632
Setting Application and Database Minimum Permissions in Essbase Native Security  Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 35
Managing User Activity on Essbase Server in Essbase Native Security Mode . . . . . . . . . . 636
Disconnecting Users and Terminating Requests in Essbase Native Security  Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 637
Managing User Locks in Essbase Native Security Mode . . . . . . . . . . . . . . . . . . . . . . 637
Managing Passw ords and User Names in Essbase Native Security Mode . . . . . . . . . . 638
Propagating Password Changes in Essbase Native Security Mode . . . . . . . . . . . . . . . 638
Viewing and Activating Disabled User Names in Essbase Native Security Mode . . . . . 639
Chapter 40. Managing the Essbase Security File (essbase.sec)  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 641
About the Essbase Security File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 641
Managing Essbase Security Backup Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 642
Restoring the Essbase Security File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 643
Changing Essbase Security Backup File Comparison Frequency . . . . . . . . . . . . . . . . . . . 643
Reconciling the Essbase Security File to the State of Essbase on an External Disk . . . . . . . 644
Managing Essbase Security File Fragmentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  644
Displaying the Essbase Security File Fragmentation Status . . . . . . . . . . . . . . . . . . . . 644
Compacting the Essbase Security File While the Agent is Running . . . . . . . . . . . . . . 644
Exporting the Essbase Security File to a Readable Format . . . . . . . . . . . . . . . . . . . . . . . . 645
Contents  xxiii
 
Chapter 41. Controlling Access to Database Cells Using Security Filters  . . . . . . . . . . . . . . . . . . . . . . . . . . . 647
About Security Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 647
Creating Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 648
Filtering Using Substitution Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 651
Filtering with Attribute Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 651
Metadata Filtering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 652
Managing Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 652
Viewing Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 652
Editing Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 653
Copying Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 653
Renaming Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 653
Deleting Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 653
Assigning Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 654
Overlapping Filter Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 654
Overlapping Access Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  655
Example 1: Users Require the Same Access to Databases . . . . . . . . . . . . . . . . . . . . . . . . 657
Example 2: Users Require Differing Access to Databases . . . . . . . . . . . . . . . . . . . . . . . . 658
Example 3: Users Require Differing Access to Databases; Users Will Be Added . . . . . . . . 658
Example 4: Users Require Differing Access to Application and Databases . . . . . . . . . . . . 659
Example 5: Administrator Must Perform Maintenance . . . . . . . . . . . . . . . . . . . . . . . . . 660
Part VII. Enabling Multi-Language Applications Through Unicode  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 661
Chapter 43. Understanding the Essbase Unicode Implementation  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 663
About Unicode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 663
Unicode and Non-Unicode Essbase Server Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 666
Increased Name Lengths . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 666
Unicode-Enabled C API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 667
Unicode-Enabled Administration Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 667
Setting Up a Computer for Unicode Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 671
Defining Password Security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 671
Setting Essbase Server to Unicode Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 672
Viewing the Unicode-Related Mode of  Essbase Server . . . . . . . . . . . . . . . . . . . . . . . 672
Managing Unicode-Mode Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 673
Creating Unicode-Mode Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 673
Backing Up and Restoring Databases Between Unicode and Non-Unicode Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 674
Viewing the Unicode-Related Mode of an Application . . . . . . . . . . . . . . . . . . . . . . . 674
Using Control Characters in Report Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 675
Working with Partitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 675
Working with Logs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 675
Managing File Encoding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 676
Encoding Indicators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 677
Chapter 45. Managing Essbase Using OPMN  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 685
About OPMN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 685
Logging In to Essbase Using Logical Names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 688
Understanding Essbase Failover Clusters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 688
Essbase Failover Clusters and Lease Management . . . . . . . . . . . . . . . . . . . . . . . . . . 690
Fine-Tuning Failover Detection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 691
Universal/Uniform Naming Convention (UNC) Paths . . . . . . . . . . . . . . . . . . . . . . . . . 694
Configuration for SSL Encrypted Communication with Provider Services . . . . . . . . . . . . 695
Contents  xxv 
Essbase Executable Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 697
Understanding the Agent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 698
Starting Essbase on Ports Qualified by Host Names . . . . . . . . . . . . . . . . . . . . . . . . 701
Starting Essbase Server in the Foreground . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 701
Starting Essbase Server as a Background Process . . . . . . . . . . . . . . . . . . . . . . . . . . . 702
Hiding Essbase Server Passwords on HP-UX and Solaris . . . . . . . . . . . . . . . . . . . . . 703
Changing the Essbase Server System Password . . . . . . . . . . . . . . . . . . . . . . . . . . . . 703
Stopping Essbase Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 704
Starting an Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 704
Stopping an Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 705
Starting a Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 707
Stopping a Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 707
Specifying Nondefault Port Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 709
Changing Port Default Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 709
Viewing Port Statistics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 709
Communicating with Essbase Using SSL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 710
Controlling Query Size and Duration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 711
Increasing Agent Connections to Essbase Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 711
Limiting the Number of User Sessions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 712
Chapter 47. Managing Applications and Databases  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 713
Understanding Applications and Databases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 713
Understanding How Essbase Files Are Stored . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 714
Server Softw are File Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 715
Application and Database File Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 716
API File Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 717
Strategies for Backing Up and Recovering Databases . . . . . . . . . . . . . . . . . . . . . . . . 718
Using the File System to Manage Applications and Databases During Backup . . . . . . 719
 xxvi Contents
Using Essbase to Manage Artifacts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 723
Migrating Applications Using Administration Services . . . . . . . . . . . . . . . . . . . . . . . . . 725
Porting Applications Across Platforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 725
Identifying Compatible Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 725
Checking File Names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 726
Transferring Compatible Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 727
Reloading the Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 729
Monitoring Data Changes Using Triggers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 731
Administering Triggers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 731
Effect of Triggers on Performance and Memor y Usage . . . . . . . . . . . . . . . . . . . . . . 734
Trigger Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 734
Contents of the Essbase Server Log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 737
Essbase Server Log Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 738
Contents of the Application Log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 739
Example of an Application Log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 740
Essbase Server and Application Log Message Categories . . . . . . . . . . . . . . . . . . . . . 744
Using Essbase Server and Application Logs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 746
Implementing Query Logs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 751
Understanding and Using Exception Logs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 754
Understanding and Using Dimension Build and Data Load Error Logs . . . . . . . . . . . 760
Chapter 49. Managing Database Settings  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 763
Understanding the Essbase Server Kernel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 763
Understanding Buffered I/O and Direct I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 764
Viewing the I/O Access Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 764
Setting the I/O Access Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 765
Understanding Kernel Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 765
Understanding How Essbase Reads Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 769
Viewing Most-Recently Entered Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 769
Customizing Database Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 770
Using SETDBSTATEITEM in ESSCMD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 771
Chapter 50. Allocating Storag e and Compressing Data  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 773
Storage Allocation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 773
Specifying Disk Volumes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 774
Reviewing an Example of Specifying Volumes to Control Storage . . . . . . . . . . . . . . . 777
Data Compression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 778
Deciding Which Compression Type to Use . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 781
Changing Data Compression Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 782
Checking the Compression Ratio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 783
Data Block Size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 783
Understanding Transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 785
Understanding How Essbase Handles Transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 792
Specifying Data Integrity Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 792
Example of Specifying Isolation Level Settings w ith ESSCMD . . . . . . . . . . . . . . . . . 793
Example of Specifying Isolation Level Settings with MaxL . . . . . . . . . . . . . . . . . . . . 794
Accommodating Data Redundancy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 794
Free Space Recovery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 796
How to Use Spreadsheet Update Logging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 798
Considering Hybrid Analysis Issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 799
Chapter 52. Using MaxL Data Definition Language . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 801
The MaxL DDL Language . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 801
Overview of Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 801
Components of Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 802
Analysis of Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 806
The MaxL Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 807
Command Shell Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 810
Finding Diagnostic Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 817
Viewing Application Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 818
Viewing Database Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 818
Monitoring User Sessions and Requests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 819
Monitoring Applications from the Operating System  . . . . . . . . . . . . . . . . . . . . . . . . . . 819
Chapter 54. Impr oving Essbase Performance  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 821
Recognizing Basic Design Issues That Affect Optimization . . . . . . . . . . . . . . . . . . . . . . . 821
Resetting Databases to Improve Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 821
Using Database Settings to Customize for Maximum Performance . . . . . . . . . . . . . . . . . 822
Database Cache Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 822
Miscellaneous Database Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 824
Measuring Fragmentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 826
Enabling Windows 4 GB Tuning (4GT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 827
Implementing 64-bit Essbase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 827
Contents  xxix 
Understanding Essbase Caches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 831
Sizing Caches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 832
Changing the Index Cache Size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 834
Sizing the Data File Cache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 834
Changing the Data File Cache Size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 834
Sizing the Data Cache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 835
Changing the Data Cache Size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 836
Sizing the Calculator Cache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 836
Sizing D ynamic Calculator Caches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 841
Fine-Tuning Cache Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 844
Understanding Cache Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 844
Checking Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 845
Database Restructuring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 847
Temporary Files Used During Restructuring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 849
Dense Restructures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 850
Parallel Restructuring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 853
Outline Change Log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 853
Essbase Partitioning Option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 854
Chapter 57. Optimizing Data Loads  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 859
Understanding Data Loads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 859
Making the Data Source as Small as Possible . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 861
Making Source Fields as Small as Possible . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 862
Positioning Data in the Same Order as the Outline . . . . . . . . . . . . . . . . . . . . . . . . . . . . 862
 xxx  Contents
Block Size and Block Density . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 868
Order of Sparse Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 868
Incremental Data Loading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 868
Formulas and Calculation Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 869
Monitoring and Tracing Calculations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .