BPC. Change Dimensions
Hello BPC Experts,
We are trying to rebuilt an application set, so we are going to change some of its applications.
The idea that we have is to select some properties of several dimensions and make new dimensions with them.
These are the questions we are facing:
- Which are the main implications of this process?
- Shall we do it in some order? Any steps we should never forget?
- When we are adding new dimensions, we should do one process for each dimension we create, or we can do the process of the dimension at the end?
- Do yo know any precaution measures we should take (I mean, copying the database, with what frequency)?
Thanks in advance
The only key precaution to take is, do this in a development environment, not your production appset.
Secondly, consider making a copy of the original application, and working on the copy -- within the same appset. Depending on how you plan to restructure the dimensionality, you may want to build an empty shell (with no data), map things in a specific way into the new dimensions, and then pump data from the old app to the new app using some *transfer_app logic.
If you take this route, you may also need to create new dimensions for the "old" ones that you plan to slim down. For example, if you have a dimension "KitchenSink" in the existing app, and you want to split it into KitchenSink, Cups, and Plates when you're done -- you may have problems in slimming down KitchenSink, since it'll also mess everything up in the existing app, as soon as you do it. Instead, use three entirely new dimensions Cups, Plates, and NewKitchenSink. Then you can adjust the new stuff without messing up the old stuff, and it helps to keep things straight in your mind -- and in the data -- as you progress through the reorganization.
The main implication of changing an application's dimensionality is that everything else will need to be updated to reflect the newly-added dimensions: reports, input schedules, data management routines, logic, security, etc.
There's a good chance you'll forget something, which you'll only remember when you see that it isn't working. Be prepared in the worst case to just start over, and think through the data migration carefully -- including how you'll port over all these changes to your production environment, once it's been fully tested in Dev.
I can't really be more helpful than that, since there are so many ways that BPC can be customized, and it's all built around the data model & thus the dimensionality. Plan on revising (or at least inspecting) everything.
Similar Messages
-
Aggregating Slowly Changing Dimension
Hi All:
I have a problem with whole lot of changes in the dimension values (SCD), need to create a view or stored procedure:
Two Tables within the Oracle db are joined
Tbl1: Store Summary consisting of Store ID, SUM(Sales Qty)
Tbl2(View): Store View created which consists of Store ID, Name, Store_Latest_ID
Join Relationship: Store_summary.Store_ID = Store_View.Store_ID
If I’m pulling up the report its giving me this info
Ex:
Store ID: Name, Sales_Qty , Store_Latest_ID
121, Kansas, $1200, 1101
1101, Dallas, $1400, 1200
1200, Irvine, $ 1800, Null
141, Gering, $500, 1462
1462, Scott, $1500, Null
1346,Calif,$1500,0
There is no effective date within the store view, but can be added if requested.
Constraints in the Output:
1) If the Store Latest ID = 0 that means the store id is hasn’t been shifted (Ex: Store ID = 1346)
2) If the Store Latest ID = ‘XXXX’ then that replaces the old Store ID and the next records will be added to the db to the new Store ID ( Ex: 121 to 1101, 1101 to 1200, 141 to 1462)
3) Output Needed: Everything rolled up to the New Store ID irrespective of the # of records or within the view or store procedure whenever there is a Store Latest ID that should be assigned to the Store ID (Ex: the Max Latest Store ID Record for all the changing Store ID Values) and if the value of Latest Store ID is 0 then no change of the record.
I need the output to look like
Store ID: Name, Sales_Qty , Store_Latest_ID
1200,Irvine,$4400,Null
1462,Scott,$2000,Null
1346,Calif,$1500,Null or 0
The Query I wrote for the view creation:
Select ss.Store_ID, ss.Sales_Qty, 0 as Store_Latest_ID
From Store_Summary ss, Store_Details sd
Where ss.Store_ID=sd.Store_ID and sd.Store_Latest_ID is null
union
Select sd.Store_Latest_ID, ss.Sales_Qty, null
From Store_Summary ss, Store_Details sd
Where ss.Store_ID=sd.Store_Latest_ID and sd.Store_Latest_ID is not null
And placing a join to the created view to Store Summary ended up getting the aggreagation values without rolling up and also the Store ID's which are not having latest ids are ending up with a value 0 and the ss quantity aggregated, and if there are changes within store id for more than two times then its not aggreagating the ss quatity to the latest and also its not giving the store name of the latest store id.
I need help to create a view or stored procedure
Please let me know if you have any questions, Thanks.
Any suggestions would be really Grateful.
Thanks
VamsiHi
Please see the following example
ID- Name -Dependants
100 - Tom - 5
101 - Rick -2
102 - Sunil -2
See the above contents...assume the ID represents employee ID and the dependants include parents, spouse and kids....
After sometime, dependants may increase over a period of time but noone is sure when exactly it will increase.....assume in case of a single get married and increase in dependants
So the attributes of the Employee had a slow chance of changing over the time
This kind of dimensions are called slowly changing dimensions
Regards
N Ganesh -
not able to see ikm oracle incremental update and ikm oracle slowly changing dimensions under PHYSCIAL tab in odi 12c
But i'm able to see other IKM's please help me, how can i see themNope, It has not been altered.
COMPONENT NAME: LKM Oracle to Oracle (datapump)
COMPONENT VERSION: 11.1.2.3
AUTHOR: Oracle
COMPATIBILITY: ODI 11.1.2 and above
Description:
- Loading Knowledge Module
- Loads data from an Oracle Server to an Oracle Server using external tables in the datapump format.
- This module is recommended when developing interfaces between two Oracle servers when DBLINK is not an option.
- An External table definition is created on the source and target servers.
- When using this module on a journalized source table, the Journaling table is first updated to flag the records consumed and then cleaned from these records at the end of the interface. -
SQL Server Agent Jobs error for Slowly changing dimension
Hi,
I have implemented Slowly changing dimension in 5 of my packages for lookup insert/update.
All the packages are running good in SSDT. And when i deployed the project to SSISDB and run the packages all are running successfully. But when i created a job out of that and run the packages, then 3 packages ran successfully and 2 packages failed.
When i opened All Execution Report. I found the following error:
Message
Message Source Name
Subcomponent Name
Process Provider:Error: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80004005. An OLE DB record is available. Source: "Microsoft SQL Server Native Client 10.0" Hresult: 0x80004005 Description:
"Login timeout expired". An OLE DB record is available. Source: "Microsoft SQL Server Native Client 10.0" Hresult: 0x80004005 Description: "A network-related or instance-specific error has occurred while establishing
a connection to SQL Server. Server is not found or not accessible. Check if instance name is correct and if SQL Server is configured to allow remote connections. For more information see SQL Server Books Online.". An OLE DB record is available.
Source: "Microsoft SQL Server Native Client 10.0" Hresult: 0x80004005 Description: "Named Pipes Provider: Could not open a connection to SQL Server [53]. ".
Process Provider
Slowly Changing Dimension [212]
Then i opened Provider package in SSDT and changed the source reading record limit from 4,00,000 to 15,000 in source query and deployed again and run, then the job succeeded. more than 15,000 failed.
And in the 2nd experiment, I removed slowly changing dimension task and implemented normal lookup for insert/update, and set the source reading limit again to 4,00,000 and deployed again and run, then the job succeeded.
Now i am not able to figure out, what exactly is the problem with Slowly changing dimension task for more than 15,00 records in SQL Server Agent Job run?
Can anybody pls help me out.
Thanks
BikramHi Vikash,
As i have mentioned in the above post, below 2 scenarios:
"Then i opened Provider package in SSDT and changed the source reading record limit from 4,00,000 to 15,000 in source
query and deployed again and run, then the job succeeded. more than 15,000 failed.
And in the 2nd experiment, I removed slowly changing dimension task and implemented normal lookup for insert/update, and set the source reading limit again to 4,00,000 and deployed again and run, then the job succeeded."
That means i am able to connect to sql server.
But if i change the 1st scenario and read 4,00,000 records, the job fails and shows the above mentioned error.
Similarly in the 2nd scenario, if i implement SCD look up, the job fails and shows the above mentioned error.
And i am consistently reproducing this.
Thanks
Bikram -
Changing Dimensions of menu items in menubar
I wanted to make the menu items have an auto width instead of
a fixed with. So I followed the direction in the Help file under
"Change dimensions of menu items" to change the .css. The menu
items now seem to stretch to fit the width of the text, but the
secondary menus now display horizontally instead of vertically
below the top menu item. This is only in Explorer 6 & 7. Works
fine in Firefox.Hi Kayo,
You'll want to checkout these samples:
http://labs.adobe.com/technologies/spry/samples/menubar/AutoWidthHorizontalMenuBarSample.h tml
http://labs.adobe.com/technologies/spry/samples/menubar/AutoWidthVerticalMenuBarSample.htm l
to see what browser bugs you're up against. :-)
--== Kin ==-- -
How to implement mapping for a slowly changing dimension
Hello,
I don't have any experience with OWB and I need some help.
I just don't know how to create the ETL process for a slowly changing dimension.
My scenario is that I have 2 operative systems providing customer information, a staging area and a dwh with a customer dimension with SCD type 2 (created within OWB).
The oltp data is already transferred to the staging area. But how should the mapping for the dwh table look like? Which operators have to be used?
I have to check whether the customer record is new or just updated. How can I check every attribute? A new record shall be loaded, an updated record shall be historized (as I configured it in the SCD type 2). I just don't know how the trigger of the SCD is activated. Do I have to try an update on the trigger attribute and then automaticalle a new record is created? But with which operator can I do this? How should the mapping look like? Or is this impossible and do I have to implement this functionality with SQL code only?
I know how to implement this with SQL code, but my task is to implement this in OWB.
As you see I did not understand the logic of OWB so far and I hope somebody can help me.
Greetings,
JoergJoerg,
Check the blog below which provides good detail and also check the OWB documentation
http://www.rittmanmead.com/2006/09/21/working-through-some-scd-2-and-3-examples-using-owb10gr2/
Thanks,
Sam. -
Facing problem in loading table using IKM Oracle Slowly Changing Dimension
Hi,
I am facing problem in loading dimension table using IKM Oracle Slowly Changing Dimension
Following is the setup :-
SRC :- source_table (MSSQL)
Staging :- staging_table (MSSQL)
TRGT :- target_table (Oracle)
-------- source_table
group_id int
group_version_id int
name varchar (255)
description varchar (255)
comments varchar (2000)
ref_number varchar (255)
is_latest_version decimal (5)
is_deleted decimal (5)
--------- target_table
id number (38,0) - Mapped to <%=odiRef.getObjectName( "L" , "SEQ_NAME" , "D" )%>.nextval
- Executed on target
- defined the column as SK in model
group_id number (38,0) - defined the column as NK in model
group_version_id number (38,0) - defined the column as NK in model
name varchar (255) - undefined on the model description
description varchar (255) - Add row on change
comments varchar (2000) - Add row on change
ref_number varchar (255) - Add row on change
is_latest_version number (1,0) - Add row on change
is_deleted number (1,0) - Add row on change
start_datetime date - SYSDATE
- Executed on target
- Starting Timestamp
end_datetime date - NULL
- Executed on target
- End Timestamp
I am using following KM's:-
LKM SQL to SQL
IKM Oracle Slowly Changing Dimension
CKM SQL
it gives me the following error -
920:Invalid relational operatorHi,
Yes, this is a run-time error. Currently I am debugging it by checking SNP_SESS_TXT_LOG based on sess_no ID.
Now, I get the following error.
I just see the following in the operator:-
911 : 42000 : java.sql.BatchUpdateException: ORA-00911: invalid character
911 : 42000 : java.sql.SQLException: ORA-00911: invalid character
java.sql.BatchUpdateException: ORA-00911: invalid character
at oracle.jdbc.driver.DatabaseError.throwBatchUpdateException(DatabaseError.java:342)
at oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:10720)
at com.sunopsis.sql.SnpsQuery.executeBatch(SnpsQuery.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.execCollOrders(SnpSessTaskSql.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTaskTrt(SnpSessTaskSql.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSqlC.treatTaskTrt(SnpSessTaskSqlC.java)
at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTask(SnpSessTaskSql.java)
at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java)
at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java)
at com.sunopsis.dwg.cmd.DwgCommandSession.treatCommand(DwgCommandSession.java)
at com.sunopsis.dwg.cmd.DwgCommandBase.execute(DwgCommandBase.java)
at com.sunopsis.dwg.cmd.e.i(e.java)
at com.sunopsis.dwg.cmd.g.y(g.java)
at com.sunopsis.dwg.cmd.e.run(e.java)
at java.lang.Thread.run(Unknown Source)
So, I do not get any idea of the exact step that is causing failure.
Is there any setting in the operator that I am missing on? -
Hi al,
How slow changing dimension will support SID?
The following is the advantages with SLOW CHANGING DIMENSION.
1)language support
2) master data independent of infosource
3) uses numeric as indexes for faster access.
plz explain the above points with example . i did not get that point.
plz explain in detail. I will assign fulll points.
Thanx & Regards,
RaviChandra
Edited by: Ravichandra.bi on Sep 20, 2011 10:59 AMHi Ravichandra,
I feel that the advantages that you have mentioned above also applies to dimensions of a cube in general. Slowly changing dimensions is data modelling concept in my view not physically present in the system.
But thanks to your question i was able to deep dive into this concept and increase my knowledge.
I found this link helpful http://en.wikipedia.org/wiki/Slowly_changing_dimension
Best Regards,
Kush Kashyap -
Slow changing dimensions in application express GUI
I need some kind of slow changing dimensions for application express GUI in order to be able
1) simply allow users to edit 1 row for 1 object in APEX GUI
2) widely use historical data in reporting.
I.E.:
Client's Last name (address, etc) was changed. I need to show in reports two points: before change and after:
ID Name Order_date Amount
12 Clark 1/1/10 500
12 Johnson 5/1/10 200
Are there common solutions?There are probably a few approaches you can take:
1) Fine Grained Auditing (FGA) - very extensive and can be completely customized.
http://download.oracle.com/docs/cd/B19306_01/network.102/b14266/cfgaudit.htm#sthref1766
2) Triggers - if you have basic needs on a few tables/columns, it may be easier to just roll your own trigger. You can compare the :old to the :new value, and if they differ, write both to your own auditing table. -
How to Model Slowly changing dimension ?
Hello Gurus,
I would like to know what a slowly changing dimension is, which scenarios is it used and also that how it is modelled.
Also please send screen shots.([email protected])
Thanks and best wishes,
rajHi,
Slowly changing dimensions - Data that changes over a period of time or dimenions that have data that changes slowly. e.g. Person responsible for a cost center. You cannot change that person daily, it is changed over a period of time.
Slowly changing dimensions are of different types: TYPE 0, 1,2,3 and 4.
PB -
Types of dimensions like Line item & Slowly changing dimension?
Hi All,
Please explain about the Line item dimension & Slowly changing dimension.
Can anyone give the scenarios for these dimensions?
Other than these, we have like datapacket, time & unit dimensions.
Is there any other dimensions we have?
Thanks in Advance.Hi,
Line Item Dimension-
A Line Item dimension is the dimension which has only one info object assigned. In this case, the DIM table for this dimension is not created. This way the lookup of data from this dimension is a little faster. An info object (eg: Sales Orders, customers) which can have huge number of data can be made line item dimensions as it will take less time looking up the data while running the reports.
In general,If the size of dimension table exceeds more than 20% of the size of the fact table,We mark it as Line item dimension.It depends upon the scenario.It helps in improving the overall data loading performance.
From Help.Sap
1. Line item: This means the dimension contains precisely one characteristic. This means that the system does not create a dimension table. Instead, the SID table of the characteristic takes on the role of dimension table. Removing the dimension table has the following advantages:
¡ When loading transaction data, no IDs are generated for the entries in the dimension table. This number range operation can compromise performance precisely in the case where a degenerated dimension is involved.
¡ A table- having a very large cardinality- is removed from the star schema. As a result, the SQL-based queries are simpler. In many cases, the database optimizer can choose better execution plans.
Nevertheless, it also has a disadvantage: A dimension marked as a line item cannot subsequently include additional characteristics. This is only possible with normal dimensions.
Line Item: This means that the dimension contains exactly one characteristic. If you set this indicator, no dimension table is created,but rather the SID table of the characteristic takes over the role of dimension table. Omitting the dimension table has the following advantages:
When loading transaction data, no IDs for the entries in the dimension table have to be generated. This number range operation can lead to a decrease in performance in the case of a degenerated dimension.
In the star schema of the InfoCube a possibly very large table, depending on the cardinality, is omitted. The SQL-based queries are therefore more simple. In many cases, the database optimizer can choose better execution plans.
However, there is also one disadvantage: A dimension indicated as a line item cannot accept additional characteristics at a later time. This is only possible for normal dimensions.
Example:
A line item is an InfoObject such as an order number, for whose attributes one or a few facts are listed in the fact table of the InfoCube.
Refer this.
/people/juergen.noe/blog/2007/12/07/spot-on-line-item-dimensions
should help you out.
Slowly Changing Dimension
This comes into picture when you have something which chenages over a period of time.For example,the Designation of an employee.Say,When an employee joins as an Associate and gradually gets promoted to Project Manager,this can be put into Slowly changing Dimension.
I hope thiis helpful for you.Do assign points if you find it helpful.
Regards,
Amar -
Changing dimension references in BPC
Hi Team
I have an account dimension created with "Rate" type reference.
I wish to change the reference from "Rate" type to "None"/ "Account".
a) Is it possible to make changes without impacting data on cube?
b) What all possible impacts will it have?
Thanks in advance.
Regards
AbhishekDimension references are used just for validation of that dimension.
It has no impact regarding to data from cube.
So removing a a dimension reference for a dimension it is not a problem.
This has no impact regarding existing data.
Not even adding a dimension reference for an existing dimension doesn't represent a problem for existing data.
It can be a problem just for processing that dimensions.
Regards
Sorin Radulescu -
BPC - Multiple Dimensions in Row Expansion - NOEXPAND issue
I have an EVDRE report in BPC where I am expanding on two different dimensions in the row (Entity, Geography). I want the Entity Dimension to dynamically expand. However, I want the Geography dimension to be static so I am using a NOEXPAND. The issue I am having is that now Entity won't expand when I change my CV.
Does anyone have a solution to this issue?
Thanks.
-KeithMarvin,
Thanks for the response. Let me start by saying the opposite is true. There can be many entities under one geography which is why I made the Geography a property of Entity so I think we are ok there.
I think I am still a little unclear how that code you provided will only give the Geography that is associated with a particular Entity on the Row Key.
Let me explain:
Ihave an Entity Dimension [E1, E2, E3] and a Geography Dimension [G1, G2]. I also have a property in the Entity Dimension that tells me which GEO_ID each Entity belongs to (i.e. E1->G1, E2->G1, E3->G2).
If I have an input schedule with static rows, I can use an EVPRO in the second column of the row key to pull out the proper Geography key. However if I have a dynamic row expansion I will get the following:
E1, G1
E1, G2
E2, G1
E2, G2
E3, G1
E3, G2
But what I really want is just
E1, G1
E2, G1
E3, G2
Because those are the proper mappings. Does this make more sense? Is there a way to accomplish this dynamically? The only way I have been able to do it thus far is by use a cell key range In which I take out geography from the row expansion and use an EVPRO in the cell key range to provide the proper Geography ID.
Thanks for the help. -
ActiveX error when BPC process dimension
I ever build a dimension in BPC and after I put it into application and process the dimension, the dimension can not be added into application correctly.
Then I tried to delete this dimension, the error message is "ActiveX component can not be created", Does anyone has such issue and how to solve it? thanks.My advice is to contact SAP Support, given that we cannot see the error, have access to your versions, etc. The first thing I would check is if you can make a change to a memberset in a dimension within ApShell. If you get the same error, then you may wish to re-enter the BPC install area on your environment and run the cleint diaqgnostic to verify that the client has what it needs to run. Another option is to uninstall the clients, and re-enstall them. This will not impact your currrent applications, and is a good test prior to contacting the support team.
-
SAP BPC Updating Dimension and Elements whilst users are logged in?
Hi,
In SAP BPC (the Outlooksoft technology), can dimensions hierachies be updated and elements be added without users having to log out?
Thanks in advance.
KaveengaHi Kaveenga,
Yes, dimension hierachies can be updated and elements can be added without users having to log out, but any changes will not be reflected in the users' reports until they log out and back into BPC. Also, until the users have logged out and back in to BPC, there is potential for users to retrieve incorrect data depending on the changes that were made to the dimensions or if other users have subsequently changed data using the updated dimensions.
Thanks,
Scott
Maybe you are looking for
-
Issue in Sync-Async bridge(RFC to File) scenario
Hi All, My scenario id RFC to file synchronous scenario.Following the below link, I configured everything and its working fine. I am working on SAP PI 7.31 Dual Stack. http://scn.sap.com/blogs/henrique/2007/08/02/syncasync-scenarios-without-bpm As me
-
Bank's webpage opens fine on one computer, won't open on another?!?
hi folks- when i access Bank of America's webpage on my macbook, after the login page is entered the next (and briefly correct) page begins to load, and then it "snaps back" to the login page. however, the website works just fine on my imac (and fire
-
No Video with FCP HDV with QTP
I have a strange question.... I have an Intel G5 iMac (10.4.11) and I capture and edit with FCP 5.0.4 using a Sony Z1 using the HDV 1080i50 sequence (I live in Hong Kong) I edit the video and export Quicktime movie using my sequence preset HDV 1080i5
-
Rpass - Secure, simple, and pluggable command-line password management
WARNING: this program requires a python version greater than or equal to 3. EDIT: Fixed a bunch of bugs that made this unusable, please update! EDIT: Added a default configuration file. Hi there! rpass is a command-line password manager that encrypts
-
FCP 5.1 universal upgrade question
I just purchased a MacPro. Sadly, I missed the upgrade deal for FCP Studio owners. Don't really want to spend $700 for the upgrade. Now that Leopard isn't coming out for a few months, and supposedly FCP 6 is going to depend greatly on it. Any thought