ODS Partitioning ?
Hi -
I am looking for guidelines regarding ODS/DSO Partitioning.
We are dealing with the LO extractor which brings billing conditions into BW/BI (We are running BI 7). We expect very large volumes of data from this extractor.
We plan to implement a design the follows EDW standards. First level write-optimized DSO, second level standard ODS, and finally into a cube. Most of our transformation will occur between the first and second level DSO - including any filtering.
As we are working out the details of our design, we are trying to determine if we should utilize logical partioning for the first and second level DSO Objects.
Are there any guidelines around maximum ODS Size? Does anyone have reccomendations regarding ODS Partitioning?
I have searched the forum and found plenty of information on logical partitioning of Cubes but have found nothing regarding ODS objects.
Points will be awarded.... Thanks for your help.
Wond -
Thanks, your answer is helpful. I guess in terms of loading from the ODS - I will be loading a delta to the cube so the actual load will come from the change log - it will not be by selection. The change log wont be large so, except for the initial load - it should manageable.
Regarding activiation. When activation occurs, determining if an existing record exists would be done via the semantic key... correct? There would be an index on the key of the ODS - so the search would not be a sequential read through the entire table - it would be and index search. So, would activation really suffer as you suggested?
Lets say I decide to partition it - what number of records or size per ODS would I want to achieve... again, I would look for a guideline from SAP or others from experience to say... If you are going to go throug the work to partition your ODS you want to keep them under X records or X Size.
Any ideas?
Some points awarded.... some points remain!! Thanks.
Similar Messages
-
Hello,
i just want to know that is it possible to make the partition of the dso.
if yes then how to do this, and what is happening in database level.Hi Viral,
You can use Multi dimensional clustering in DSO which is similar to partitioning in Cubes.
To do this Double click on the DSO in the modeling view of the administration workbench.
Go to Extras'---> DB Performance -
> Clustering.
Multidimensional clustering (MDC) physically organizes a table in blocks. Each block only contains data records with the same values in the MDC dimensions.
Multi-dimensional clustering can significantly improve the performance of database queries. If the queries contain restrictions on MDC dimensions, only the blocks of the table that contain the corresponding dimension values must be read. For the data access block indexes are used, which are considerably smaller than conventional row indexes and can therefore be searched more quickly.
Best regards,
Sunmit. -
hi
can u explain how to partition ODS and steps to do that.
regards,
manjuHi,
ODS partitioning is not possible.
But can partition the Active tables
Check this for more,
http://help.sap.com/saphelp_nw04/helpdata/en/e6/bb01580c9411d5b2df0050da4c74dc/frameset.htm
As well this thread also,
Partioning of ODS object
Hope this helps......... -
Hi,
We have 4 ODS (one for month), and then a multiprovider to join them. The records of each ods are around 200.000.000, we are thinking about partitioning the active table. When the month changes, we want to delete one ODS (month - 3), and then we are going to load the new month in this ODS.
How can we partition the ods from BW?
The partitions must be recreated when the new month comes, this can be automatic?
Thanks
VictoriaPartitioning could be done only before the fill of data to ODS
After filling data repartitioning is possible only in version BI 7.x ( repartitioning is partitioning after filling data in ODS)
If you want to partition, you can create 4 partition based on months in the active table after emptying out the ODS.Partition cannot be automatic instead you can create partition based on month for 4 months while creating partition. So ODS will store data accordingly in the active table. -
Hi All,
The cube 0FIAR_C03 gets data from DSO 0FIAR_O03
Three extractors(0FI_AR_4,0FI_AR_3,0FIAR_O03) feeds data into the DSO 0FIAR_O03
We have a huge volume of data coming into DSO.
If we build three more dsos on top of it for logical data partitioning, will there be nay pblem.
Can anyone of one explain any problem in getting data from the three datatsources.
Thanks in advance<i>Three extractors(0FI_AR_4,0FI_AR_3,0FIAR_O03) feeds data into the DSO 0FIAR_O03.</i>
0FIAR_O03 feeds 0FIAR_C03 and 0FIAR_O03 is fed by 0FI_AR_4,0FI_AR_3 .
Why are you using both 0FI_AR_3 & 0FI_AR_4 ?
This DataSource replaces DataSource 0FI_AR_3 (Accounts Receivable: Line Items) and uses the same extraction structure. The migration of DataSource 0FI_AR_3 to new DataSource 0FI_AR_4 is described in OSS note 410797.
<b>
Source</b> http://help.sap.com/saphelp_nw2004s/helpdata/en/bc/02f93abb013b0de10000000a114084/content.htm
It should be only datasource instead of 3 feeding 0FIAR_O03.
For ODS Performance Optimization you may look at
http://help.sap.com/saphelp_nw04/helpdata/en/e6/bb01580c9411d5b2df0050da4c74dc/content.htm
Partioning of ODS object
ODS Partitioning ? -
How to create DB partitioning in active data tables for ods?
hi all,
Can anyone let me know how to create DB partitioning in active data tables for ods. if any docs pls share with me at my email id : [email protected]
regds
harithaHaritha,
The following steps will briefly explain you to improve the performance in terms of DB partitioning as well as loading. Please find the same,
transaction RSCUSTA2,
oss note 120253 565725 670208
and remove 'bex reporting' setting in ods if that ods not used for reporting.
hope this helps.
565725
Symptom
This note contains recommendations for improving the load performance of ODS objects in Business Information Warehouse Release 3.0B and 3.1 Content.
Other terms
Business Information Warehouse, ODS object, BW, RSCUSTA2, RSADMINA
Solution
To obtain a good load performance for ODS objects, we recommend that you note the following:
1. Activating data in the ODS object
In the Implementation Guide in the BW Customizing, you can implement different settings under Business Information Warehouse -> General BW settings -> Settings for the ODS object that will improve performance when you activate data in the ODS object.
1. Creating SIDs
The creation of SIDs is time-consuming and may be avoided in the following cases:
a) You should not set the indicator for BEx Reporting if you are only using the ODS object as a data store.Otherwise, SIDs are created for all new characteristic values by setting this indicator.
b) If you are using line items (for example, document number, time stamp and so on) as characteristics in the ODS object, you should mark these as 'Attribute only' in the characteristics maintenance.
SIDs are created at the same time if parallel activation is activated (see above).They are then created using the same number of parallel processes as those set for the activation. However:if you specify a server group or a special server in the Customizing, these specifications only apply to activation and not the creation of SIDs.The creation of SIDs runs on the application server on which the batch job is also running.
1. DB partitioning on the table for active data (technical name:
The process of deleting data from the ODS object may be accelerated by partitioning on the database level.Select the characteristic after which you want deletion to occur as a partitioning criterion.For more details on partitioning database tables, see the database documentation (DBMS CD).Partitioning is supported with the following databases:Oracle, DB2/390, Informix.
1. Indexing
Selection criteria should be used for queries on ODS objects.The existing primary index is used if the key fields are specified.As a result, the characteristic that is accessed more frequently should be left justified.If the key fields are only partially specified in the selection criteria (recognizable in the SQL trace), the query runtime may be optimized by creating additional indexes.You can create these secondary indexes in the ODS object maintenance.
1. Loading unique data records
If you only load unique data records (that is, data records with a one-time key combination) into the ODS object, the load performance will improve if you set the 'Unique data record' indicator in the ODS object maintenance.
Hope this helps..
****Assign Points****
Thanks,
Gattu -
Logical partitioning of an ODS - when / what size e.g. 100 Mio records?
Hi Folks,
we got an ODS/DSO with about 80 fields and we are currently planning futher rollouts which will lead to an overall volume in the DSO about 100 Mio records.
I wonder if this volume for a DSO is still fine to do reporting and loading / activation with good performance?
Or is there a "rule of thumb" to have let's say only 50 Mio reocrds in a ODS and then go for a logical partion approach in larger scenario
50 Mio -> Region EMEA, APJ
50 Mio -> Region AMS
Thanks for you inputs in advance,
Axel100 Mo records is not such a big DSO. You should not encounter problems for loading and/or activating your DSO.
You may encounter performance problems with reporting functionnalities but it will depend on the reporting you do. And anyway, if you really want to do reporting on this data, why don't you put this level of detail in the cube (logically partitionned or not).
You can logically partitionned any kind of infoProvider, but I've never seen this for DSO (I'd rather partition the upper levels and have a DSO with all data).
Regards,
Fred -
Logical vs. Physical Partitioning
Hi,
In a discussion of logical partition the author pointed out that
if a query that needs data from all 5 years would then automatically (you can control this) be split into 5 separate queries, one against each cube, running at the same time. The system automatically merges the results from the 5 queries into a single result set.
1. Can you direct me on how to control this as the author indicated?
2. Also, the author noted that
Physical Partitioning - I believe only Oracle and Informix currently support Range partitioning.
a) Does it mean that BW does not use physical partitioning?
b) Where do we indicate physical or logical partitioning as an option in BW?
c) Or, when we talk about dimension table, etc. is there always an underlining database such as Oravle, Infomix, etc in BW? If so, what does BW use?
3. For physical partitions, I read that the cube needs to be empty before it can be partitioned. What about logical partition?
4. Finally, what are the underlying criteria to decide on logical or physical partitioning or both
Thanks. Can you direct me on how to control this as the author indicated?
You make this setting RSRT.
2. Also, the author noted that
Physical Partitioning - I believe only Oracle and Informix currently support Range partitioning.
DB2 also support partiioning. Also the current relese of SQL server support partitioning.
b) Where do we indicate physical or logical partitioning as an option in BW?
Physical parittions are set up in the cube change option. When you are in the cube change mode, on the themenu, chose extras - performance / DB parameters - parttitios.
Now a screen will pop giving the time characteristics in the cube and choose the characteristic (s) that you wish to chose and confirm the entries - then you will get another small pop up where you set the no of parittions.
Also, pl note that you can partition only on fiscalyear and fiscal period and not on other time characteritsitcs.
Logical partitions: Logical paritions are nothinb but spilting the cube into numerous cubes of smaller sizes. You combine all these cubes by means of multi provider. For example, if you have 1000 cost centers , you may want to split into cubes based on the cost cenree numbers and combine them into a multi provider.
No more setting is required.
c) Or, when we talk about dimension table, etc. is there always an underlining database such as Oravle, Infomix, etc in BW? If so, what does BW use?
Dimension tables / fact tables/ ODS tables /master data tables are all database tables. Which ever database you use and when yu activate these objects, the tables are created in the underlying database.
3. For physical partitions, I read that the cube needs to be empty before it can be partitioned. What about logical partition?
Logical partiton can be done any time.
4. Finally, what are the underlying criteria to decide on logical or physical partitioning or both
The underlying criteria is facotrs such as :
(a) the no of years of history tou wish to view in reports.
(b) te no ofyears you will hold the data in BW before archiving.
(c) othe performance matters related tro sizing.
Ravi Thothadri -
ODS to CUBE loading - taking too much time
Hi Experts,
I am loading data from R/3(4.7) to BW (3.5).
I am loading with option --> PSA and then Data Target (ODS ).
I have a selection criteria in Infopackage while loading from standard Datasource to ODS.
It takes me 20 mins to load 300K records.
But, from ODS to Infocube ( update method: Data Target Only), it is taking 8 hours.
The data packet size in Infopackage is 20,000 ( same for ODS and Infocube).
I also tried changing the data packet size, tried with full load , load with initialization,..
I tried scheduling it as a background job too.
I do not have any selection criteria in the infopackage from ODS to Cube.
Please let me know how can I decrease this loading time from ODS to Infocube.Hi,
To improve the data load performance
1. If they are full loads then try to see if you make them delta loads.
2. Check if there are complex routines/transformations being performed in any layer. In that case see if you can optimize those codes with the help of an abaper.
3. Ensure that you are following the standard procedures in the chain like deleting Indices/secondary Indices before loading etc.
4. Check whether the system processes are free when this load is running
5. try making the load as parallel as possible if the load is happening serially. Remove PSA if not needed.
6. When the load is not getiing processed due to huge volume of data, or more number of records per data packet, Please try the below option.
1) Reduce the IDOC size to 8000 and number of data packets per IDOC as 10. This can be done in info package settings.
2) Run the load only to PSA.
3) Once the load is succesfull , then push the data to targets.
In this way you can overcome this issue.
Ensure the data packet sizing and also the number range buffering, PSA Partition size, upload sequence i.e, always load master data first, perform change run and then transaction data loads.
Check this doc on BW data load perfomance optimization
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/1955ba90-0201-0010-d3aa-8b2a4ef6bbb2
BI Performance Tuning
FAQ - The Future of SAP NetWeaver Business Intelligence in the Light of the NetWeaver BI&Business Objects Roadmap
Thanks,
JituK -
Logical partitioning, pass-through layer, query pruning
Hi,
I am dealing with performance guidelines for BW and encountered few interesting topics, which however I do not fully undestand.
1. Mainetance of logical partitioning.
Let's assume logical partitioning is performed on year. Does it mean that every year or so it is necessary to create additional cube/transformation and modify multiprovider? Is there any automatic procedure by SAP that supports creation of new objects, or it is fully manual?
2.Pass- though layer.
There are very few information about this basic concept. Anyway:
- is pass through DSO write optimized one? Does it store only one loading - last one? Is it deleted after lading is sucessfully finished (or before new load starts)? And - does this deletion do not destroy delta mechanism? Is the DSO replacing PSAfunctionally (i.e. PSA can be deleted every load as well)?
3. Query pruning
Does this happen automatically on DB level, or additional developments with exits variables, steering tables and FMs is required?
4. DSOs for master data loads
What is the benefit of using full MD extraction and DSO delta insetad of MD delta extraction?
Thanks,
Marcin1. Mainetance of logical partitioning.
Let's assume logical partitioning is performed on year. Does it mean that every year or so it is necessary to create additional cube/transformation and modify multiprovider? Is there any automatic procedure by SAP that supports creation of new objects, or it is fully manual?
Logical partitioning is when you have separate ODS / Cubes for separate Years etc ....
There is no automated way - however if you want to you can physically partition the cubes using time periods and extend them regularly using the repartitioning options provided.
2.Pass- though layer.
There are very few information about this basic concept. Anyway:
- is pass through DSO write optimized one? Does it store only one loading - last one? Is it deleted after lading is sucessfully finished (or before new load starts)? And - does this deletion do not destroy delta mechanism? Is the DSO replacing PSAfunctionally (i.e. PSA can be deleted every load as well)?
Usually a pass through layer is used to
1. Ensure data consistency
2. Possibly use Deltas
3. Additional transformations
In a write optimized DSo - the request ID is key and hence delta is based on request ID. If you do not have any additional transformations - then a Write optimized DSO is essentially like your PSA.
3. Query pruning
Does this happen automatically on DB level, or additional developments with exits variables, steering tables and FMs is required?
The query pruning - depends on the run based and cost based optimizers within the DB and not much control over how well you can influence the execution of a query other than havin up to date statistics , building aggregates etc etc.
4. DSOs for master data loads
What is the benefit of using full MD extraction and DSO delta insetad of MD delta extraction?
It depends more on the data volumes and also the number of transformation required...
If you have multiple levels of transformations - use a DSO or if you have very high data volumes and want to identify changed records - then use a DSO. -
Hello all,
I am not able to delete the request from ODS .
It gives the error message :no request found in the change log.
how shlould i delete the request??
thnx in advance.
Regards,
Dhanya.Hello,
thnx sriram n balaji!
i checked my infosource through the prgm:RSAR_PSA_CLEANUP_DIRECTORY
the following message appears in the display log:
PSA: 8ZFIADS11_CA
Version 000 technical name /BIC/B0000043000
Partition 0003
Request Ratio:[Deleted:Total]->1 :2
Records Ratio:[Deleted:Total]->753943 :1507886 ,50 % logically deleted
Partition 0004
Request Ratio:[Deleted:Total]->0 :1
Records Ratio:[Deleted:Total]->0 :753943 ,0 % logically deleted
what should i infer from this ?
can anyone please tell me the step by step procedure to delete the request.
Regards,
Dhanya. -
How to get the Change Log Table name of the ODS from the system table
Hi,
I have a list of ODSs in the system and I am interested in finding the corresponding Change Log Table and the number of records in that table.
Can any one please tell me the name of the system table where this information is stored.
I dont want to get in this information manully (from the Contents tab of the ODS maintenane).
Regards,
Harikiran GunnalaHi
Go to SE16
Give the table name as "RSTSODS".
For User application field give CHANGELOG as input
and execute. You will get all the list of Changelog tables Along with below mentioned data
PSA
Version
To
Valid from
Object Status
Technical ODS name
Program Name
Maint Program
Object Name
Last changed by
UTC Time Stamp in Short Form
Partition number
Regards
Raj -
How to store as single record data coming from different ods to cube
Hi All,
we have the scenario like .
Same contract values are uploaded from 3 ods to cube.In the cube this information is stored as 3 different records.
Is there any option having same contract no and same fiscal period values should be stored as single record in cube.
Thanks in advance.
Regards,
Shradda.Hi Shradda,
On Performance Side .....consider below points
1. Indexes on Cube ( That delete indexes before load and create them after Load ).
2. Aggregate Design ( Decision on Base Aggregates, roll up Hierarchy , BW Statistics etc ).
3. Partition of InfoCube ( Basically decision on No. of Partition )
4. Data Package Size ( Always try to have larger Data Package so that preaggreation will reduce the no. of Data Records ).
Best is Service.sap.com on BI page u will find material for performance . THat will help you .
To assign points on the left of screen u will get radio buttons for assigning points for each person who has responded .
Regards,
Vijay -
How to select on an ODS with index to consume less internal memory?
Hi all,
I want to load an ODS B from ODS A with an enhanced communication structure. The enhanced fields are populated through look up on a third ODS C based on joining condition with certain fields of the data_package (structure of ODS A).
The entire code is written in the start routine from A to B and the look up on C is done by a <b>select statement on C for all entries in data_package ...etc</b>. However this ODS C has huge data and when we are loading the data from A to B and hitting this select in start routine it is giving us a short dump due to shortage of extendable memory space.
To solve this problem we had built an index on ODS C with the fields used in where clause of the select statement but the problem persists. Can anybody tell me how can we take the benefit of the index so created in the select statement on ODS C in start routine ? Because it is the internal memory and not the query size that is giving the trouble is there any way to partition ODS C and use select on the partitions separately? Should an internal table of type ODS C be declared as sorted table with unique key instead of standard table ?
FYI, the index fields we have added in ODS maintenance screen are checked for unique.I guess the short dump you are encountering is due to the size of the internal table you are filling up from ODS C not the index. Check the where clause on the select statement. You can reduce the data package size. Try using selections on the infopackages from A to B to limit the data... you can try other options to split the data into multiple (serial sessions) based on the business rules & logic in place at your implementation.
Default installation has a limitation of 2GB on the size of internal sessions considering signed 32bit variable on 32 bit o/s systems. Now that most of the unix based systems are 64bit and with unsigned 32bit variables you can use 4GB or more.
Check the note 548845 for more info
Gopal
Pls assign points if you find the response helpful ! -
Difference in number of records in GROUP BY and PARTITION BY
Hi Experts
If I run the following query I got 997 records by using GROUP BY.
SELECT c.ins_no, b.pd_date,a.project_id,
a.tech_no
FROM mis.tranche_balance a,
FMSRPT.fund_reporting_period b,
ods.proj_info_lookup c,
ods.institution d
WHERE a.su_date = b.pd_date
AND a.project_id = c.project_id
AND c.ins_no = d.ins_no
AND d.sif_code LIKE 'P%'
AND d.sif_code <> 'P-DA'
AND a.date_stamp >='01-JAN-2011'
AND pd_date='31-MAR-2011'
GROUP BY c.ins_no,
b.pd_date,
a.project_id,
a.tech_no;
I want to show the extra columns a.date_stamp and a.su_date
in the out put so that I have used PARTITION BY in the second query but I got 1079 records.
SELECT c.ins_no, b.pd_date,a.date_stamp,a.su_date, a.project_id,
a.tech_no,
COUNT(*) OVER(PARTITION BY c.ins_no,
b.pd_date,
a.project_id,
a.tech_no)c
FROM mis.tranche_balance a,
FMSRPT.fund_reporting_period b,
ods.proj_info_lookup c,
ods.institution d
WHERE a.su_date = b.pd_date
AND a.project_id = c.project_id
AND c.ins_no = d.ins_no
AND d.sif_code LIKE 'P%'
AND d.sif_code <> 'P-DA'
AND a.date_stamp >='01-JAN-2011'
AND pd_date='31-MAR-2011'
Please help me why I got 1079 records.
And also please help me how to show the two extra columns in the out put whcich are not used in
GROUP BY clause.
Thanks in advance.Hi,
user9077483 wrote:
Hi Experts
If I run the following query I got 997 records by using GROUP BY. ...Let''s call this "Query 1", and the number of rows it returns "N1".
The results tell you that there are 997 distinct combinations of the GROUP BY columns (c.ins_no, b.pd_date, a.project_id, a.tech_no).
I want to show the extra columns a.date_stamp and a.su_date
in the out put so that I have used PARTITION BY in the second query but I got 1079 records. ...Let's call the query without the GROUP BY "Query 2", and the number of rows it returns "N2".
Please help me why I got 1079 records.Because there are 1079 rows that meet all the GROUP BY conditions. Query 2 has nothing to with distinct values in any columns. You would expect that N2 to be at least as high as N1, but it's not surprising that the N2 is higher than N1.
And also please help me how to show the two extra columns in the out put whcich are not used in
GROUP BY clause.Doesn't Query 2 show those two columns already? If the Query 2 is not producing the results you want, then what results do you want?
Post a little sample data (CREATE TABLE and INSERT statements, relevant columns only) for all the tables involved, and the results you want from that data.
Explain, using specific examples, how you get those results from that data. Point out a couple of places where Query 2 is not doing what you want.
Always say which version of Oracle you're using.
Maybe you are looking for
-
Convert PC Pagemaker docs to Mac Pagemaker docs?
I've recently switched to iMac from PC and need to convert documents/booklets created in PC Pagemaker 7.0 to Mac Pagemaker 7.0. Possible? My docs are already labeled with .pmd; now what
-
Re: Satellite P200-1JR - S/PDIF OUT is stereo only
Hi. I have Toshiba P200-1JR. When I'm connecting laptop to receiver trough optical cable and trying to watch movies with AC3 5.1 sound, I'm getting only stereo sound. 1. Receiver is working correctly with PS3 and DVD player. 2. In S/PDIF options I ha
-
Compile error for BPEL process
I am attempting to compile the second BPEL tutorial (the one that connects to a service) using Jdeveloper. I am running into the following error: Error: C:\Oracle\jdeveloper\webservices\lib\jaxr_api.jar (The system cannot find the file specified) Thi
-
HT5731 Is Download later available in the UK?
Is this available in the UK? I cannot get it to work/it doesn't ask me on my iPad, iPhone or Mac. It should as I have iTunes in the cloud. On my Mac it wants to download straight away, on my iPhone it says it is over 50MB (obviously it is, but if it
-
I want to upgrade to Adobe Reader 10.0.2. What version of OSX supports it? CoCo