An Hyperion Essbase OLAP Server partitioned application can span multiple servers, processors, or computers. Partitioning your applications can help you:
This chapter contains the following sections:
CAUTION: | You must design partitions carefully. We strongly recommend that you read this chapter before creating partitions. |
Hyperion Essbase Partitioning is a collection of features that makes it easy to design and administer databases that span Hyperion Essbase applications or servers. You must license Hyperion Essbase Partitioning separately from Hyperion Essbase OLAP Server. You must license the Hyperion Essbase Partitioning option for every server that contains a database partition.
Based on user requirements, you can decide to:
Partitioned databases contain at least one data source, the primary site of the data, and at least one data target, the secondary site of the data. A single database can serve as both the data source for one partition and the data target for another. When you define a partition, you map cells in the data source to their counterparts in the data target.
Figure 6-1: Data Source and Data Target
A Hyperion Essbase database can contain many different partitions as well as data that is not shared with any other Hyperion Essbase database. You can define partitions between:
You can only define one partition of each type between the same two databases. For example, you can only create one replicated partition between the Sampeast East database and the Samppart Company database. The East or Company databases can, however, contain many replicated partitions that connect to other databases.
A single database can serve as the data source or data target for multiple partitions. To share data among many databases, create multiple partitions, each with the same data source and a different data target.
Figure 6-2: Data Shared at Multiple Targets
An overlapping partition occurs when similar data from two or more databases serve as the data source for a single data target in a partition. For example, IDESC
East,
Sales
from database 1 and Boston,
Sales
from database 2 are mapped to IDESC
East, Sales
and Boston,
Sales
in database 3. Because Boston
is a member of the dimension East
, the data for Boston
mapped to database 3 from database 1 and database 2, overlap. This data overlap results in an overlapping partition.
Figure 6-3: Overlapping Partitions
An overlapping partition is allowed in linked partitions, but is invalid in replicated and transparent partitions and will generate an error message during validation.
A partition is the piece of a database that is shared with another database. Partitions contain the following parts:
The server, application, and database name of the data source.
The server, application, and database name of the data target.
The login and password information for the data source and the data target. This information is used for internal requests between the two databases to execute administrative and user operations.
A flag indicating whether the partition is replicated, transparent, or linked.
A definition of one or more areas shared between the data source and the data target. An area is a subcube of the database that is shared between databases. To share more than one non-contiguous portion of a database, define multiple areas in a single partition. This information determines which parts of the data source and data target are shared so that Hyperion Essbase can put the proper data into the data target and keep the outlines for the shared areas synchronized.
A description of how the members in the data source map to members in the data target. Hyperion Essbase uses this information to determine how to put data into the data target if the data target and the data source use different names for some members and dimensions.
Information about whether the partition is up-to-date and when the partition was last updated.
Here is the suggested workflow for partitioning a database.
Review the following list of questions. If you find yourself answering yes to many of them, or answering yes to some that are very important to you, partitioning your databases may solve your problems.
Sometimes, it does not make sense to partition a centralized database. Partitioning a database can require additional disk space, network bandwidth, and administrative overhead. Review the following list of questions. If you find yourself answering yes to many of them, or answering yes to some that are very important to you, you may not want to partition your database.
When designing a partitioned database, you need to determine:
The answers to these questions determine which data to include in each partition. For examples, see Scenarios for Designing Partitioned Databases.
Note: | You cannot partition attribute dimensions. |
You can create the following types of partitions:
A replicated partition is a copy of a portion of the data source that is stored in the data target. Some users can then access the data in the data source while others access it in the data target.
In the Samppart and Sampeast applications shipped with Hyperion Essbase, for example, the database administrator at The Beverage Company (TBC) created a replicated partition between the East database and the Company database containing Actual, Budget, Variance, and Variance%. Users in the eastern region now store their budget data locally. Because they don't have to retrieve this data live from the corporate headquarters, their response times are faster and they have more control over the down times and administration of the local data. For a more complete description of the sample partitioned databases provided with Hyperion Essbase, see Scenario 1: Partitioning an Existing Database.
Changes to the data in a replicated partition flow from the data source to the data target. Changes made to replicated data in the data target do not flow back to the data source. If users change the data at the data target, Hyperion Essbase overwrites their changes when the database administrator updates the replicated partition.
The database administrator can prevent the data in the replicated portion of the data target from being updated. This setting (choose Settings from the Connect page of the Partition Wizard) takes precedence over access provided by security filters and is also honored by batch operations such as dataload and calc. By default, replicated partitions are not updateable. For information on how to set a partition as updateable or not, see Specifying the Partition Type and Connection Information.
Replicated partitions must follow these rules:
The data source and data target outlines for the non-shared areas do not have to be mappable.
Figure 6-5: Invalid Replicated Partition
The cells in a data target can be the data source for a different replicated partition. For example, if the Samppart Company database contains a replicated partition from the Sampeast East database, you could replicate the cells in the Sampeast East database into a third database, such as the Sampwest West database.
For information on using Dynamic Time Series members in replicated partitions, see Using Dynamic Time Series Members in Partitions.
Replicated partitions can solve many database problems. Following are the advantages of using a replicated partition:
Replicated partitions are not always the ideal partition type. Following are the disadvantages of using a replicated partition:
If these disadvantages are too serious, consider using transparent or linked partitions instead.
To improve the performance of replicated partitions, consider the following when replicating data.
For example, to replicate along the Market dimension:
Sometimes you cannot calculate derived data at the data target. In that case, you must replicate it from the data source. For example, you cannot calculate derived data at the data source if the data:
Use a replicated partition when you want to:
One port is used for every unique user and machine combination. If a user defines several replicated partitions on one server using the same user name, then only one port is occupied.
In a replicated partition, when a user (user1) drills into an area in the target that accesses source data, user1 is using the user name declared in the partition definition (partition user) to access the data from the source database. This causes the use of an additional port because different users (user1 and partition user) are connecting to the application.
If a second user (user2) connects to the target database and drills down to access source data, user2 also uses the user name declared in the Partition Wizard (partition user) to access the source database. Because the partition user is already connected to the source database, an additional port is not needed for the partition user, as long as user2 is accessing the same source database.
Note: | Because of the short-term nature of replication, replicated partitions and ports are rarely a problem. |
A transparent partition allows users to manipulate data that is stored remotely as if it were part of the local database. The remote data is retrieved from the data source each time that users at the data target request it. Users do not need to know where the data is stored, because they see it as part of their local database.
Because the data is retrieved directly from the data source, users see the latest version of the data. When they update the data, their updates are written back to the data source. This means that other users at both the data source and the data target have immediate access to those updates.
If you create a transparent partition, users at the data source may notice slower performance as more users access the source data and users at the data target may notice slower performance as more users access the source data.
Figure 6-6: Transparent Partitions
For example, the database administrator at TBC could use a transparent partition to calculate each member of the Scenario dimension on a separate CPU. This reduces the elapsed time for the calculation, while still providing users with the same view of the data. For a more complete description of the partitioned Sample Basic database, see Scenario 1: Partitioning an Existing Database.
Transparent partitions must follow these rules:
Figure 6-7: Valid Transparent Partition
Figure 6-8: Invalid Transparent Partition
For more information on using Dynamic Time Series members in transparent partitions, see Using Dynamic Time Series Members in Partitions.
Transparent partitions can solve many database problems. Following are the advantages of using a transparent partition:
Transparent partitions are not always the ideal partition type. Following are the disadvantages of using a transparent partition:
Hyperion Essbase does not recalculate the values of transparent dependents because the outlines for the data source and the data target may be so different that such a calculation would not be accurate.
For example, suppose that the data target outline contained a Market dimension with East, West, South, and Central members and the data source outline contained an East dimension with New York and New Jersey members. If you tried to calculate the data target outline, you would assume that East was a level 0 member. In the data source, however, East is derived by adding New York and New Jersey. Any calculations at the data target, however, would not know this and could not reflect any changes made to New York and New Jersey in the data source. To perform an accurate calculation, therefore, you must first calculate East in the data source and then calculate the data target.
For more information on transparent calculations, see Calculating Transparent Partitions.
If these disadvantages are too serious, consider using replicated or linked partitions instead.
To improve the performance of transparent partitions, consider the following facts when creating the partition:
Use a transparent partition when you want to:
When you perform a calculation on a transparent partition, Hyperion Essbase performs the calculation using the current values of the local data and transparent dependents. When calculating local data that depends on remote data, Hyperion Essbase performs a bottom-up calculation. The bottom-up calculation can be done only when the calculator cache on the target database is used properly. For complete information on bottom-up calculations, see Understanding Bottom-Up Versus Top-Down Calculation. For information on the calculator cache, see Using the Calculator Cache.
Increasing the amount of memory assigned to the calculator cache greatly improves calculation performance with transparent partitions. When a calculation is started, a message in the server event log indicates whether or not the calculator cache is enabled or disabled on the target database. Using the calculator cache on the target database reduces the number of blocks that are requested from the data source during calculation. This, in turn, reduces the amount of network traffic that is generated by transferring blocks across the network. For information on estimating the size of the calculator cache, see Using the Calculator Cache.
If the data target and data source outlines are identical except for different member formulas, make sure that your partition definition will produce the desired calculation results.
For example, suppose that the data source and data target outlines both contain a Market dimension with North and South members, and children of North and South. On the data target, Market is calculated from the data for the North and South members (and their children) on the data source. If any of these members on the data source contain member formulas, these formulas are calculated, thus affecting the calculated value of Market on the data target. These results may be different from how the Market member would be calculated from the North and South members on the data target, where these formulas may not exist.
Make sure that any formulas you assign to members in the data source and data target will produce the desired results.
One port is used for every unique user and machine combination. If a user defines several transparent partitions on one server, using the same user name, then only one port is occupied.
In a transparent partition, when a user (user1) drills into an area in the target that accesses source data, user1 is using the user name declared in the partition definition (partition user) to access the data from the source database. This causes the use of an additional port because different users (user1 and partition user) are connecting to the application.
If a second user (user2) connects to the target database and drills down to access source data, user2 also uses the user name declared in the Partition Wizard (partition user) to access the source database. Because the partition user is already connected to the source database, an additional port is not needed for the partition user, as long as user2 is accessing the same source database.
A linked partition connects two different databases with a data cell. When you click the linked cell in the data source, you drill across to a second database, the data target, and view the data there. If you are using Hyperion Essbase Spreadsheet Add-in, for example, a new sheet opens displaying the dimensions in the second database. You can then drill down into these dimensions.
Unlike replicated or transparent partitions, linked partitions do not restrict you to viewing data in the same dimensionality as the target database. The database that you link to can contain very different dimensions than the database from which you connected. To prevent users from seeing privileged data, you must establish security filters on both the data source and the data target. See Setting Up Security for Partitioned Databases.
There are no performance considerations for linked partitions, beyond optimizing the performance of each linked database.
For example, if TBC grew into a large company, they would have several business units. Some data, such as profit and sales, exists in each business unit. TBC could store profit and sales in a centralized database so that the profit and sales for the entire company are available at a glance. The database administrator could link individual business unit databases to the corporate database. For an example of creating a linked partition, see Scenario 3: Linking Two Databases.
Linked partitions allow users to navigate to databases that contain different dimensions. Following are the advantages of using a linked partition:
Linked partitions are not always the ideal partition type. Following are the disadvantages of using a linked partition:
Use a linked partition when you want to connect databases with different dimensionality.
When accessing a linked partition, Hyperion Essbase tries to use the end user's (user1) login information to connect to the source database. If user1 does not have access to the source database, Hyperion Essbase looks for the linked partition default user name and password. If these defaults are not specified, user1 is requested to enter login information to access the source database. Port usage varies depending on the number of different user names being used to access the various source and target databases (and whether those databases are contained within the same or different servers).
Table 6-1 should help you choose which type of partition to use.
After you have answered the questions in Table 6-1, you can compare the partition types in the following table.
You can use attribute functions for partitioning on attribute values. But you cannot partition an attribute dimension. Use attribute values to partition a database when you want to access members of a dimension according to their characteristics.
For example, in the Sample Basic database, you cannot partition the Pkg Type attribute dimension. But you can create a partition that contains all the members of the Product dimension that are associated with either or both members (Bottle and Can) of the Pkg Type dimension. If you create a partition that contains members associated with Can, you can access data only on Product members that are packaged in cans; namely, 100-10, 100-20, and 300-30.
You can use the @ATTRIBUTE command and the @WITHATTR command to define partitions.
For example, to extract data on all members of the Product dimension that are associated with the Caffeinated attribute dimension, you can create a partition such as @ATTRIBUTE (Caffeinated). But you cannot partition the Caffeinated attribute dimension.
Based on the previous example, the following partition is incorrect:
Figure 6-11: Incorrect Partitioning
Based on the previous example, the following example is correct:
Figure 6-12: Correct Partitioning
For more information about these commands, refer to the section on Calculation Commands in the Hyperion Essbase Quick Technical Reference.
For more information on attribute dimensions, see Working with Attributes
Users accessing replicated, transparent or linked partitions may need to view data stored in two or more databases. The following sections describe how to set up security for each partition type so that users do not view or change inappropriate data.
To set up security for users in a replicated partition, you should:
This setting overrides user filters that allow the user to update data. By default, replicated partitions are not updateable at the data target. See Specifying the Partition Type and Connection Information.
To set up security for the administrative account in a replicated partition, you should:
To set up security for users in a transparent partition, you should create filters at the data target to determine what end users can view and update as local data, just as you would for a standard Hyperion Essbase database. Remember that, unlike replicated partitions, end users can update transparent partitions unless you create filters preventing them from doing so. See Managing Security at Global and User Levels
The administrative account performs all read and write operations requested by the data target for the data source. For example, when end users request data at the data target, the administrative account retrieves the data. When end users update data at the data target, the administrative account logs into the data source and updates the data there.
You can create filters on the administrative account in addition to filters on the end users. Filters on the administrative account can ensure that no one at the data target can view or update inappropriate data. For example, the administrator at the corporate database could restrict write access on certain cells to avoid relying on administrators in the various regions to set up security correctly for each end user.
To set up security for the administrative account in a transparent partition, you should:
Users accessing linked databases may need to connect to two or more databases. To facilitate drill across access you can:
For information on creating user accounts and filters, see Managing Security at Global and User Levels
When a user drills across on data to a data target, Hyperion Essbase logs the user into the data target using the following steps:
The following sections describe some basic ways to partition a database.
Let's assume that TBC, the fictional soft drink company upon which the Sample Basic database is based, started out with a centralized database. As the eastern region grew, however, this was no longer feasible. The networks to the eastern region could not handle the large flow of data. Users were constantly waiting for data that they needed to make decisions. One day, the network went down and users at the eastern region couldn't access the data at all.
Everyone agreed that the eastern region needed to access its own data directly, without going through the company database. In addition, TBC decided to change where budgeting information was stored. The corporate budget would stay at company headquarters, but the eastern region budget would move to the eastern region's database.
So, let's assume that TBC decided to ask you to partition their large centralized database into two smaller databases: Company and East.
Note: | This scenario is based on the Samppart application, which contains the Company database, and the Sampeast application, which contains the East database. Both are shipped with Hyperion Essbase. |
TBC's Sample Basic database contains five standard dimensions: Year, Measures, Product, Market, and Scenario.
Figure 6-13 shows a subset of the partitioned databases. The arrows indicate flow from the data source to the data target. The Company database is the data source for the Corp_Budget member and the data target for the East and the East Actual members. The East database is the data source for its East and Actual members and the data target for the Corp_Budget member.
Figure 6-13: Decentralizing a Database
Now that the corporate database is partitioned, users and database administrators see the following benefits:
Let us assume that TBC has several databases, such as Inventory, Payroll, Marketing, and Sales. Users viewing the Sample Basic database want to share data with and navigate to those other databases and you, the database administrator, want to synchronize related data. It is impractical to combine all of the databases into one database, because:
By connecting the databases instead, you can:
So you decide to connect multiple databases.
Note: | This scenario is not shipped with Hyperion Essbase. |
You decide to use a replicated partition for the Opening_Inventory and Ending_Inventory members because the network connection is slow.
Now that the Sample Basic database is partitioned, users and database administrators see the following benefits:
Let us assume that TBC, the fictional soft drink company upon which the Sample Basic database is based, has two main databases the Sample Basic database and TBC Demo. Both databases have similar outlines, but TBC Demo has two additional dimensions: Channel, which describes where a product is sold, and Package, which describes how the product is packaged.
The database administrator for the Sample Basic database notices that more and more users are requesting that she add channel information to the Sample Basic database. But, since she doesn't own the data for channel information, she is reluctant to do so. She decides instead to allow her users to link to the TBC Demo database which already contains this information.
Note: | This scenario is not shipped with Hyperion Essbase. |
The database administrator decides to link the Product dimension of the Sample Basic database to the Product dimension of TBC Demo. Users can then drill across to TBC Demo and view the Channel and Package information.
Note: | This is the opposite of replicated and transparent databases, where users move from the data target to the data source. |
Members | Partition type | Reasons |
---|---|---|
Product | Linked | The database administrator wants to link from the Product dimension. |
Now that the databases are linked, users and database administrators see the following benefits:
Copyright © 1991-2000 Hyperion Solutions Corporation. All rights reserved.