HFM Consolidation Demystified



Similar documents
Leveraging a Help Desk as part of a Hyperion Center of Excellence

P R O V I S I O N I N G O R A C L E H Y P E R I O N F I N A N C I A L M A N A G E M E N T

Why is My Hyperion Application Sick?

<Insert Picture Here> Extending Hyperion BI with the Oracle BI Server

Cloud Cruiser and Azure Public Rate Card API Integration

Top 10 Performance Tips for OBI-EE

Load Testing and Monitoring Web Applications in a Windows Environment

Oracle Hyperion Data Relationship Management Best Practices, Tips and Tricks. Whitepaper

Using Oracle Data Integrator with Essbase, Planning and the Rest of the Oracle EPM Products

Streamline Financial Consolidation and Reporting for a Faster Close

SQL Server Performance Tuning for DBAs

SAP HANA - Main Memory Technology: A Challenge for Development of Business Applications. Jürgen Primsch, SAP AG July 2011

MicroStrategy Course Catalog

Load Testing Hyperion Applications Using Oracle Load Testing 9.1

SAS Financial Intelligence. What s new. Copyright 2006, SAS Institute Inc. All rights reserved.

FDQM Financial Data Quality Management Fundamentals - Tips & Tricks Gary Womack, May 8th, 2013

In-memory Tables Technology overview and solutions

VI Performance Monitoring

Exceptions to the Rule: Essbase Design Principles That Don t Always Apply

VirtualCenter Database Performance for Microsoft SQL Server 2005 VirtualCenter 2.5

NEW FEATURES ORACLE ESSBASE STUDIO

What is Project Financial Planning?

System Requirements Table of contents

In-Memory Analytics: A comparison between Oracle TimesTen and Oracle Essbase

Performance Tuning and Optimizing SQL Databases 2016

Oracle BI 11g R1: Build Repositories

Application of Predictive Analytics for Better Alignment of Business and IT

Who is my SAP HANA DBA? What can I expect from her/him? HANA DBA Role & Responsibility. Rajesh Gupta, Deloitte. Consulting September 24, 2015

CERTIFIED MULESOFT DEVELOPER EXAM. Preparation Guide

Oracle WebLogic Thread Pool Tuning

Estimate Performance and Capacity Requirements for Workflow in SharePoint Server 2010

SYSTEM ecos Embedded Configurable Operating System

Best Practices for Implementing Oracle Data Integrator (ODI) July 21, 2011

CHAPTER - 5 CONCLUSIONS / IMP. FINDINGS

Redis OLTP (Transactional) Load Testing

SQL diagnostic manager Management Pack for Microsoft System Center. Overview

Taking EPM to new levels with Oracle Hyperion Data Relationship Management WHITEPAPER

PATROL From a Database Administrator s Perspective

Performance And Scalability In Oracle9i And SQL Server 2000

Foundations of Business Intelligence: Databases and Information Management

Mirjam van Olst. Best Practices & Considerations for Designing Your SharePoint Logical Architecture

Server & Application Monitor

One of the database administrators

Frequently Asked Questions Sage Pastel Intelligence Reporting

Tivoli Monitoring for Databases: Microsoft SQL Server Agent

SQL Server Performance Intelligence

Running a Workflow on a PowerCenter Grid

CHAPTER 5: BUSINESS ANALYTICS

SQL Server 2012 Performance White Paper

Microsoft Dynamics NAV 2013 R2 Sizing Guidelines for On-Premises Single Tenant Deployments

IBM Cognos Controller

Analyzing IBM i Performance Metrics

ORACLE DATABASE 10G ENTERPRISE EDITION

Super-Charged Oracle Business Intelligence with Essbase and SmartView

Welcome to the course on the consolidation process of the Intercompany Integration Solution.

Informatica Master Data Management Multi Domain Hub API: Performance and Scalability Diagnostics Checklist

Virtualization of Oracle Evolves to Best Practice for Production Systems

Load and Performance Load Testing. RadView Software October

TIBCO Spotfire Metrics Modeler User s Guide. Software Release 6.0 November 2013

Salesforce.com and MicroStrategy. A functional overview and recommendation for analysis and application development

The 5-minute SQL Server Health Check

Enterprise Performance Tuning: Best Practices with SQL Server 2008 Analysis Services. By Ajay Goyal Consultant Scalability Experts, Inc.

Performance Testing. What is performance testing? Why is performance testing necessary? Performance Testing Methodology EPM Performance Testing

Cloud Based Application Architectures using Smart Computing

Managing the PowerPivot for SharePoint Environment

Best Practices for Monitoring Databases on VMware. Dean Richards Senior DBA, Confio Software

Business Usage Monitoring for Teradata

Connecting to Manage Your MS SQL Database

How To Use Ibm Tivoli Monitoring Software

Real-time Data Replication

Oracle BI Suite Enterprise Edition

MDM Multidomain Edition (Version 9.6.0) For Microsoft SQL Server Performance Tuning

How To Balance Workload On Vantage

PTC System Monitor Solution Training

HP OO 10.X - SiteScope Monitoring Templates

Oracle Database 11g: SQL Tuning Workshop

Oracle Database 11g: SQL Tuning Workshop Release 2

SQL Server 2012 Optimization, Performance Tuning and Troubleshooting

Monitoring Replication

Managing Java EE Performance with Embarcadero s J Optimizer Request Analyzer

KonyOne Server Installer - Linux Release Notes

PowerPivot Microsoft s Answer to Self-Service Reporting

ActiveXperts Network Monitor. White Paper

Understanding Server Configuration Parameters and Their Effect on Server Statistics

ERserver. iseries. Work management

IBM Cognos TM1 Enterprise Planning, Budgeting and Analytics

Module 15: Monitoring

Technical Paper. Moving SAS Applications from a Physical to a Virtual VMware Environment

Performance Monitoring with Dynamic Management Views

IBM Business Monitor V8.0 Global monitoring context lab

IBM Cognos Controller Version New Features Guide

Monitoring Databases on VMware

HYPERION SYSTEM 9 N-TIER INSTALLATION GUIDE MASTER DATA MANAGEMENT RELEASE 9.2

SQL Sentry Essentials

Workflow based performance testing. Suresh Srinivasan

Optimizing the Performance of Your Longview Application

UNIVERSE BEST PRACTICES. Rob Rohloff, OEM Sales Consultant

Transcription:

Powering I.T. Empowering Business. HFM Consolidation Demystified Jonathan Berry President & CEO jberry@accelatis.com 203.331.2267 Copyright 2014, Accelatis. All rights reserved. http://www.accelatis.com

Agenda Consolidation from a Business perspective Consolidation from a Technical perspective CPU Utilization Intercompany Database Utilization Subcubes Rules Performance Tips 2014 Accelatis, LLC 2

Who are We? Jonathan Berry Founder / CEO Hyperion Solutions: HFM Development Team 1998-2008 Accelatis: Founded in 2008 Rob Poirier Director Client Services 22 Years of Hyperion / EPM Experience Tony Mitri Architect 20 Years of Hyperion / EPM Experience Development and Support Team 80 Years of Combined Hyperion Experience 2014 Accelatis, LLC 3

Our Focused Mission Provide you the needed insight & control into Oracle EPM / Hyperion to efficiently & consistently manage your system to deliver maximum user benefit. 2014 Accelatis, LLC 4

Our Solution Support Streamline Process Manage All Moving Parts Enterprise Systems Monitor Across All Environments 1. Empower Business Users & IT 2. Broad Approach to APM Optimize Eliminate Bottlenecks Simulate User experience Resolve More Quickly 3. Deep Look into Underlying Systems 2014 Accelatis, LLC 5

Consolidation Process 1. The rule is run for the intersection of the child entity and the Value member that stores the child entity s default currency (Entity Currency). 2. If the child entity s AllowAdjs attribute is set to Y, the rule is run for the intersection of the child entity and the Value member that stores adjustments in the child entity s default currency (Entity Curr Adjs). 3. If the child s currency differs from the parent s currency, the rule is run for the intersection of the child entity and the Value member that stores amounts translated to the parent s home currency (Parent Currency). 2014 Accelatis, LLC 6

Consolidation Process (cont) 4. If a child s currency differs from the parent s currency and the rules file contains a Translation rule, Financial Management executes the Translation rule before step 3. 5. If the child s currency differs from the parent s currency, and the child entity s AllowAdjs attribute is set to Y, the rule is run for the intersection of the child entity and the Value member that stores adjustments translated to the parent s home currency (Parent Curr Adjs). 6. If the parent entity s AllowAdjFromChildren attribute is set to Y, the Logic rule is run for the intersection of the child entity and the Parent Adjs value 2014 Accelatis, LLC 7

Consolidation Process (cont) 7. The rule is run for the intersection of the child entity and the Proportion value. 8. The rule is run for the intersection of the child entity and the Elimination value. 9. If the parent entity s AllowAdjFromChildren attribute is set to Y, the rule is run for the intersection of the child entity and the Contribution Adjs value. 10.For each additional child entity that contains previously unconsolidated data, repeat steps 1 through 9. 11.The rule is run for the intersection of the parent entity and the Value member that stores the parent entity s default currency. 2014 Accelatis, LLC 8

Consolidation vs Aggregation Aggregation is the process of calculating parent total in the HFM application server on the fly without any action by the user. Aggregation is performed within the HFM subcube. Consolidation is the process moving data across the Entity and value dimensions by physically persisting the calculated data to the database, it is a user initiated action. 2014 Accelatis, LLC 9

What Happens Inside HFM? 1. A consolidation is initiated by the user 2. HFM will place a system lock to prevent metadata, rules, security, member lists from being loaded. 3. System prevents starvation 4. Chart logic is performed on the NONE member of the entity dimension. 5. Retrieve all the base level entities for the specified hierarchy and execute chart logic including prior periods with dirty calc status. 2014 Accelatis, LLC 10

What Happens Inside HFM?(cont) 5. Start the consolidation process using a bottom up approach. 1. This entity hierarchy is locked to prevent others consolidations from writing reporting transactions to the DB 2. Enumerate all the parents under the specified hierarchy starting with the bottom most one. 3. For every parent, enumerate all the children and consolidate them into the parent using the HFM consolidation process described in the beginning. 1. Each child is locked by HFM as calculation are performed and unlocked when done. 2. Chart logic and translation are executed on all the children 3. The contribution of all the children is moved into the entity currency of the parent. 4. Save the data to the database in a transactional way. Each subcube in a transaction. 2014 Accelatis, LLC 11

Look familiar? What are my CPUs doing? 2014 Accelatis, LLC 12

Simple Scenario o o o o o o Consolidate hierarchy with 4 base entities, each with 100K records on a machine with 4 Cores Depending on the number of threads that are defined for consol, for this example let say that value is 4. HFM will load the 4 base entities into memory and will start running Calculate on them. They will all finish in roughly the same time due to the same number of records. All 4 CPUs will have high utilization and then all drop HFM can now move up the hierarchy. 2014 Accelatis, LLC 13

Less Simple Scenario o o o o o o o HFM will enumerate those ID for those subcubes, they are not loaded into memory yet. Depending on the number of threads that are defined for consol, for this example let say that value is 4. HFM will load the first 4 subcube into memory from that list into memory and will start running Calculate on them. As soon as one finishes another will be run from that list, till that list is exhausted. At this stage all 4 CPUs should be fully utilized, but might drop when a subcube is loaded for calculation. Once the number of subcube is below the number of threads then are assigned for consol, then we will start to see a drop in CPU utilization. HFM can t move up the hierarchy till all the base entities are done. 2014 Accelatis, LLC 14

What are my CPUs doing? (cont) The HFM Application may have more impact on the performance profile than infrastructure. All children in a hierarchy need to be consolidated before consolidation moves up the hierarchy. 2014 Accelatis, LLC 15

What are my CPUs doing? (cont) In a multi-cpu machine, children of a hierarchy are consolidated on separate threads and parent is processed when all children threads are complete. Entities generally do not have equal amounts of data so some will be completed ahead of others. Most of the CPUs will be utilized for a brief amount of time while waiting for the entity with the most records to finish. 2014 Accelatis, LLC 16

Intercompany o Intercompany - Use rules or native o Open Data unit - efficiencies gained o Organizing rules to run IC elim by partner, not by account 2014 Accelatis, LLC 17

Database Usage HFM is an analytical engine, not a transactional engine o This causes a lot of grief for DBAs and Analysts who treat it and try to analyze it like something that it is not. Ie: analyzing SQL statements. All non-aggregated data points are read from and written to the database o A high-performance database is a critical. o Verify that your database has the properly allocated amount of memory and that your disk performance is optimal. o Periodically run Oracle AWT or MSSQL SQL Profiler to help monitor system performance. 2014 Accelatis, LLC 18

Database Usage (cont) Large numbers of records are frequently added/deleted during normal usage o This effects indexes and thus query performance. Verify that your DBMS performs periodic index statistics updates and/or index rebuilding after high data load cycles to maintain optimal performance. o If your database is stored on a NAS or other network storage device, the performance of the network will directly affect your database performance. Periodically validate that your network is not becoming overloaded or adversely affected by other issues (resets, re-transmits, etc). 2014 Accelatis, LLC 19

Subcubes Subcube are units of memory inside HFM All data for a given Scenario/Year/Entity/Value are in a single subcube Get an understanding of the size of your subcubes Understand the number of subcubes required for your largest branch Understand the intercompany process If you can get all the subcubes in RAM to allow intercompany to perform quickly there are performance benefits Understand that 2 similar looking grids can perform very differently 2014 Accelatis, LLC 20

Subcubes Subcube Population If #records > 100,000 consider changing org structure SQL Example: SELECT lentity, lvalue, count(*) as numrecs FROM COMMA_DCE_1_2011 GROUP BY lentity, lvalue 2014 Accelatis, LLC 21

Capturing Subcube Populations select lentity, lvalue, COUNT (*) FROM <CURRENCY_TABLE> group by lentity, lvalue Entity Value NumRecords 5 10 72 5 11 34 select lentity, lparent, lvalue, COUNT (*) FROM <NODE_TABLE> group by lentity, lparent, lvalue Entity Parent Value NumRecords 5 8 10 72 5 8 11 34 Need to convert IDs to Metadata Labels Need to compare Before and After Consolidation 2014 Accelatis, LLC 22

Rules Gotchas 1. Multiple VBScript engines Do not use global variables as counters Total time calculated may be more than actual elapsed time due to multiple threads 2. Performance Impact of Instrumentation If tracking function time, write data outside of timings If using Objects, make calls asynchronous so writing of data happens in queue on background thread. Do not create thread for every call! 3. Eliminate unnecessary calls to routines from global scope. This can greatly increase load time and application startup time 2014 Accelatis, LLC 23

Rules Gotchas (cont) 4. Writing to file from multiple VBScript engines is dangerous. Each instance may block access to the file and cause deadlocks as well as major performance issues. Doing so effectively forces HFM Consolidation into single threaded operation. 5. Resolution of timing using the Timer function in VBScript is >= 15ms. Using this built-in timing function can amplify timing calculation errors over many iterations. 2014 Accelatis, LLC 24

Performance Tips 2014 Accelatis, LLC 25

Profiling Rules The HFM Rules Profiler is an automated tool for instrumenting, profiling and analyzing HFM Consolidation performance. Overall Inclusive Function Time Most Time Consuming Inclusive Functions Overall Exclusive Function Time Most Time Consuming Exclusive Functions Function Call Frequency Most Frequently Called Functions 2014 Accelatis, LLC 26

Tip 1: OpenDataUnit OpenDataUnit is powerful and efficient mechanism for retrieving data. 2014 Accelatis, LLC 27

Tip 1: OpenDataUnit (cont) Resist using for-next loops instead of OpenDataUnit to do calculation on the account dimension. AccountList = HS.Account.List ("", "") for each Account in AccountList do work next 2014 Accelatis, LLC 28

Tip 1: OpenDataUnit (cont) Use OpenDataUnit instead for the same task Set MyDataUnit = HS.OpenDataUnit("") lnumitems = MyDataUnit.GetNumItems for i = 0 to lnumitems-1 do work next 2014 Accelatis, LLC 29

Tip 2: Sub Calculate Sub Calculate is executed about 8 times for each entity and currency Limit the rules execution on that function Some data manipulation needs to occur only on the default currency, so adding that check in your if statement is a key to improving performance 2014 Accelatis, LLC 30

Tip 2: Sub Calculate (cont) Resist logic against the whole Value dimension If HS.Entity.IsBase(, ) = True do work End if 2014 Accelatis, LLC 31

Tip 2: Sub Calculate (cont) Specify Entity and Value dimensions when possible If HS.Entity.IsBase(, ) = True And HS.Value.Member = <Entity Currency> do work End if 2014 Accelatis, LLC 32

Tip 3: HS.EXP Resolution HS.EXP is mechanism for copying blocks of data within a Subcube in an application. 2012 Accelatis, LLC 33

Tip 3: HS.EXP Resolution (cont) Resist implicitly copying all 4 custom data values from one account to the other. HS.Clear A#DestAccount HS.Exp A#DestAccount = A#SourceAccount 2012 Accelatis, LLC 34

Tip 3: HS.EXP Resolution (cont) Specify N custom data values between Accounts HS.Clear A#DestAccount.C1#DestC1 HS.Exp A#DestAccount.C1#DestC1 = A#SourceAccount.C1#SourceC1 2012 Accelatis, LLC 35

Tip 3: HS.EXP Data Explosion The following causes data explosion by specifying Account on right side and not the left side. HS.Clear "A#Sales.C4#Movement" HS.Exp "C4#Movement = A#Sales.C4#Movement + A#Sales.C4#Increases - A#Sales.C4#Decreases" 2012 Accelatis, LLC 36

Tip 5: Global Logic Code at global scope is executed when applications load and when rules are loaded. Errors in code at global scope will not be reported at load time and may go unnoticed until consolidation failures result Example (code in RED is at global scope) Create global arrays Global_Acclist_Statistical Global_Acclist_Validations Global_Acclist_CAccounts = HS.Account.List("","Statistical") = HS.Account.List("Validations","[Base]") = HS.Account.List("C_Validations","[Base]") Sub NoInput() ' Make all input cells for the Budget Scenario, Year 2004, Sales account calculated (prohibit input) HS.NoInput "S#Budget.Y#2004.A#Sales" HS.NoInput "S#Budget.Y#2004.A#Adminexpenses" HS.NoInput "S#Budget.Y#2003.A#Adminexpenses" End Sub '*** c1 list for security class C1_CORP Global_C1_List = HS.Custom1.List("TotC1","[Base]") For each StrMember in Global_C1_List If UCASE(HS.Custom1.SecurityClass(StrMember)) <> "C1_CORP" then ac1_corp = ExactFilter(aC1_CORP,StrMember,False) End If Next Sub Consolidate() Set MyDataUnit = HS.OpenDataUnit("") dpcon = HS.Node.PCon("") lnumitems = MyDataUnit.GetNumItems End sub 2012 Accelatis, LLC 37

Tip 5: Global Logic (cont) Performance times to open an application and load rules on sample application affected greatly by global logic to build member lists. 300 250 240 270 200 150 100 With Without 50 0 30 App Load Time 10 Rules Load Time 2014 Accelatis, LLC 38

Questions? Jonathan Berry President & CEO jberry@accelatis.com Rob Poirier Director of Client Services rpoirier@accelatis.com 2014 Accelatis, LLC 39