SCD type 2 in OWB 10g R2

Hello,
I am trying out the SCD type 2 in OWB 10g R2. I have no hierarchies and hence created a dimension with one level. Apart from three business attributes I have 2 mandatory attributes as "EFFECTIVE_DATE" and "EXPIRY_DATE". I have set one of the business attributes to "Trigger History".
I have 3000 rows in the source table. There is no transformation. the data is loaded from source to this dimension directly. One business attribute is loaded using a constant.
When I executed the mapping, all 3000 rows are populated in the target with the expiry date column having null values and current date in the effective date, which is absolutely fine. When I execute the mapping again without changing anything in the source, rows are inserted in to the target with the effective date set to the second run and the expiry date set to previous effective date. As I understand new rows should be inserted only if there is change in the data.
Please correct me if I am wrong. Please clarify and if my understanding is right where am I doing wrong with OWB?
Your help is greatly appreciated
Thanks a lot on advance!
Regards,
Maruthi

Hi Roelant,
I think it is important to be aware that although Paris - 10gR2 - is not actually buggy (in this respect!), it is really quite idiosyncratic in exactly how it processes SCDs.
I followed up on your and Mark's comments, and did an in depth analysis of this topic. It is at http://www.donnapkelly.pwp.blueyonder.co.uk/documents/OWB_10gR2_SCD.pdf
My conclusions are perhaps of interest to anyone considering doing SCD processing with Paris.
I'll be doing a follow-up this weekend, and publishing a sort of 'how-to-do-it' guide.
Cheers,
Donna
Message was edited to add the words: "in this respect"

Similar Messages

  • How to implement SCD type 2 in OWB 11g

    Hi all,
    I would like to know that how to implement SCD type 2 in OWB 11g.
    Actually I have tried to implement it but the target table which contains the effective_date and expiration_date are null after running the mapping.
    I have set the effective date and expiration date settings in the SCD tab of dimension object.
    Kindly help me the same if anyone knows.
    Kind regards,
    shikha

    You were able to get OWB11g to move data?
    Are you running on a 64-bit windows server? I could not get it to do a basic data move on this type of server install.

  • Simple OWB 10g R2 Example for Type 2 Dimensions Needed

    Hello,
    Does someone have a simple example of a Type 2 dimension on OWB 10g R2? That I can run and test. The ideal would be an MDL file that includes all the elements, so I only have to install and run it?
    I have been trying to make this work for far too long now. All of this was not a problem in OWB 9i but I'm having trouble getting OWB 10g R2 to work like I'm used to.
    Thanks
    Eric
    [email protected]

    Sutirtha
    FYI, with my configuration of having separate database instances for target and OWB repository I ran into a bit of an issue when deploying a map:
    'RPE-01012: Cannot deploy PL/SQL maps to the target schema because it is not owned by the Control Center' error.
    Even though I could do deploy tables, views, MVs et all but for some reason I couldn't deploy my mapping. Solution to get around this problem is to:
    * create new OWB repository in the target environment using the REPOSITORY ASSISTANT
    * add target schema as an OWB user using OWBREPowner (Global Explorer panel/Security/Users), check user as 'target schema' option
    * start control center service against the target warehouse using target schema credentials
    * delete previously created separate dedicated OWB repository
    Now mappings can be deployed successfully.
    My only concern now is if this is a valid legit configuration? I would hate to run into problems in the future once my environment becomes bigger.
    What are your thoughts on this?

  • New licensing for OWB 10g R2 (Paris)

    Hi,
    Does anyone know how much the new licenses (per DB server CPU) for OWB 10g R2 (Paris) cost?
    Is it correct that the features for the modeling of SCD 1 and 2 are not included in the basic "Core ETL Features"?
    If I'm using the the SCD 2 features to develop the OWB mappings do I also need to license the "Enterprise ETL" for the production server?
    Related to the previous question: for the production DB where I only need the runtime part of the repository is it required to license any options?
    Regards
    Maurice
    PS: 2 links related to these questions:
    http://www.rittman.net/archives/2006/05/owb_10g_release_2_now_availabl.html
    http://www.oracle.com/technology/products/warehouse/htdocs/owb_10gr2_faq.htm#HowisOWBPackaged

    Maurice, not sure what to say. If you've been using OWB, then you don't lose any functionality going to the new version, and it will be "free". You simply won't get any of the new functionality (all of the old functionality is included in the "core" features)
    However, as I said in the other post, I hope Oracle reconsiders the SCD 1 / 2 / 3 licensing. To me, SCD type 2 are not "enterprise level" functionality - that is base level functionality for ANY data mart or data warehouse. I have no problems with paying for options the other ETL vendors are charging for (data quality comes to mind...), but if we deploy a large DW on a 32 processor box, paying for the Oracle licenses AND an addition $300,000+ for OWB functionality just to simplify SCD type 2, seems WAY overkill. Actually, in our project, we had pretty much settled on Oracle as the RDBMS for our DW, but if OWB is up in the air, we will probably open this up for an RFQ.
    Scott

  • Errors in demo project OWP_BP in OWB 10g

    Hi,
    there are several errors in the demo project OWB_BP in the OWB 10g-directory <OWB_HOME>/owb/misc/time.
    1.) In the mapping TF_Time_Map there's a unlegal default value for the attribute startDate of the Map Input Parameter: '01-Jan-95'. The following table function TIMEDATA expects a value in the format 'dd-mon-yyyy', so the mappinmg makes a dataset beginning on '01-Jan-0095'!
    2.) The readme-file says you should load the table function, the sequences, types etc. into the runtime repository - but you need them in the target schema!
    3.) The dimension T_TIME has the levels day, month, quarter and year und OWB makes for every ID of a level a unique key constraint for the index. In the table function TIMEDATA you have more than one dataset with the same ID in the dimension table, because all days of Januar 1995 have the same month_id, quarter_id and year_id. Because of that the mapping stops with many errors: ORA-00001: Unique Constraint (ZUZ_TARGET.TTIME_L_YEAR_UK) violation and only one record is imported to the dimension table.
    Can anybody tell me how I can resolve the Unique Constraint (ZUZ_TARGET.TTIME_L_YEAR_UK) violation?
    Thanks,
    Detlef

    Detlef,
    You are correct on all three. The most significant problem #3 has been discussed on this forum before and the updated version of the function that fixes the issue is here OLAP dimension level constraints
    Nikolai Rochnik

  • Newby trying to capturing SCD Type 2 data

    Hi all,
    OWB Client 10.2.0.1.31
    OWB Repos 10.2.0.1.0
    Target DW DB Oracle 10.2.0.3.0
    I've been working with OWB for 2+ years now but what we currently do is very simple mappings and process flows only. Now I need to start capturing history data. I've determined that I want my data to look something like this:
    SURROGATE_ID BUS_ID PROD_NAME REVENUE_TYPE EFFECTIVE_DATE EXPIRATION_DATE
    1 1-ASDF WIDGET ONGOING 1/1/2009 11/19/2009
    2 1-ASDF WIDGET ONETIME 11/20/2009 NULL
    When revenue_type value changes, "expire" the old record and create a new record. (I understand the basic concept of surrogate key, business key, effective date, end date, and trigger column).
    I've been combing through the Oracle docs and forums as best as I can to find the best practice/recommended approach. I've also completed some basic OWB Implementation lessons, and I still have some basic questions:
    1. When I create a "dimension" in OWB and deploy it (which is giving me lots of trouble!) what object does it create in the db? I see in the case of a simple time dimension it creates a sequence and a table. But for SCD2, what db objects should I expect to see in the db?
    2. I have found in OTN under "Sample Code" for OWB an article "Slowly Changing Dimensions with Oracle 9i Warehouse Builder (9.0.4)" that launches http://www.oracle.com/technology/sample_code/products/warehouse/files/SCDWhitePaper.zip. Is this still the current best practice for creating SCD2 even in OWB 10.2.0.1.0?
    3. I'm a little confused about levels and hierarchies (when I go to validate and deploy my dimension, OWB yells at me about these things). Based on my table design above, I think I do not need any levels or hierarchies. Can someone give me guidance on how to set up my levels and hierarchies properly?
    I think that should help confuse me for a while. Thanks!
    Sammi

    All,
    thanks so much for taking the time to try to help me out! Here are some followup questions I have.
    In the "dimension canvas" I get the following tabs by default:
    relational, dimensional, business definition.
    After I "auto bind" my dimension, I get a new tab called "dim_tbl_test_dim" (which is the name I gave to the new test dimension). But when I close out of the dimension editor and then open it up again, both the auto-binding and the "dim_tbl_test_dim" tab seem to be gone. Is this expected behavior?
    In searching on the subject I came across this thread, which provides a quick summary on the full life cycle of building and deploying an SCD2. Is this the correct high level process to follow (and I have inserted some questions about several steps in the process)?
    Re: How to view data from cubes & Dimensions in OWB 10g
    Taking a simple example:
    Source Table = A
    Destination Table = B
    Dimension = C
         (how do I tell OWB to bind to my destination table?)
    Mapping = D (to load A into B)
         (can somone point me to details or docs on how to properly do this mapping? for instance, what load type do i use, what matching columns do i specify, what are the load properties of the different columns?)
    Validate Table A.
    Validate Table B.
    Validate Dimension C.
    Validate Mapping D..
    Deploy table B.
    Deploy Sequence
    Deploy mapping D.
    Deploy dimension C (configured => Deploy All).
    Execute mapping to load table B.
    View data in Dimension C.
    Thanks again for all the help!
    Sammi

  • VLD-0363 on SCD Type 2

    Hi all,
    I'm getting the following error while validating a scd type 2 dimension:
    "VLD-0363: For Slowly Changing Strategies Type-II Dimension DIM_A, if any of the trigger, effective date or expiration date is set for a level then all of them must be set"
    This is because I'm trying to create a dimension similar to this:
    DIM_A
    LEVEL_A
    DT_BEGIN --effective date
    DT_END --expiration date
    COD_A
    ID_A
    DESC_A
    LEVEL_B
    DT_BEGIN --effective date
    DT_END --expiration date
    COD_B
    ID_B
    DESC_B
    LEVEL_A_COD_A -- trigger history
    I don't want to keep history on the descriptions because I can assume that, if the description changes, then it must be a typo or some kind of correction. I just want to keep history of the changes in the hierarchy.
    OWB doesn't let me do this...
    Does this make any sense to you? What is your opinion? Have you ever try to do something like this? Are there any workarounds?
    Thank you for your comments.
    Best Regards.

    Hi,
    my advise is to map the DIM1_NAT_KEY iside the Fact Table of the Business Model, so you have a new Logical Table Source inside the Logical Fact Table that maps the DIM1_NAT_KEY as a measure. Define the Level for this Logical Table Source and set the COUNT DISTINC aggregation. In this way OBIEE knows that that measure is inside a fact an it treat like that.
    I hope it helps.
    Regards,
    Gianluca

  • How to view the DDL script prior to object deployment in OWB 10g R2?

    How to view the DDL script prior to object deployment in OWB 10g R2?
    Here is what I' looking for: in 10gR2, let's say I've built dimension X, but it's not deployed yet. I've selected one of the deployment options, let's say: "Deploy to Catalog only". Now, I'd like to see a DDL script that will be executed at the deployment time. Where can I find this script? What screen? What menu?
    Thanks,
    vr

    Viewing the Scripts
    After you have generated scripts for your target objects, you can open the scripts and
    view the code. Warehouse Builder generates the following types of scripts:
    ■ DDL scripts: Creates or drops database objects.
    ■ SQL*Loader control files: Extracts and transports data from file sources.
    ■ ABAP scripts: Extracts and loads data from SAP systems.
    To view the generated scripts:
    1. From the Generation Results window, select an object in the navigation tree on the
    left of the Generation Results dialog.
    2. Select the Scripts tab on the right of this dialog.
    The Scripts tab contains a list of the generated scripts for the object you selected.
    3. Select a specific script and click the View Code button.
    Regards,
    Marcos

  • OWB 10g to 9i compatibility

    I have been working with OWB 10g release2. Now we got other project on 9iDS.
    Can I use same 10g OWB client to connect to OWB 9i Repository?
    I can connect to OWB 9i repository through TOAD.
    When I tried to connect through OWB 10g client,
    I am getting error API5022:Cannot connect to the repository.
    Is such type of downward compatibility permitted?
    Pavan.

    There are no real problems with running two clients on the same machine, installed in two different homes.
    But if you have the chance, you might want to migrate the other project to your OWB version and live happily ever after ... :)

  • SCD Type 2 Conversion

    Hello, I am converting to OWB. The existing ETL has some support for SCD Type 2. It does not support Triggering attributes, however if the ETL determines that the Business identifier no longer exists in the source table it will set a Status attribute to I (for inactive) in the target table.
    I assume that I can program this logic in OWB using an SCD Type 1. However, if possible I would like to take advantage of OWB's native support for SCD Type 2. Is it possible to define a SCD as Type 2 but not identify any Triggering attributes? If so, can OWB detect when the Business identifier no longer exists in the source table and update the Expiration Date in the target table? If so, can I modify the logic that updates the Expiration Date so that it also set's the Status attribute to I (for backwards compatibility)?
    I may have to resort to a SCD Type 1 and program the update to the Status attribute. However, if I could use OWB's native support for SCD Type 2, I would be in a position to introduce Triggering attributes as the business need arose.
    Thank you for your help.

    Hi,
    several years ago Oracle published whitepaper which described steps for designing OWB mappings for loading SCD (types 1,2,3) tables.
    But recently (after website reorganization) this whitepaper was removed, although you can stil find it by googling with "scdwhitepaper",
    or you can directly download it from http://sourceforge.net/projects/owbland/files/Stuffs_from_Oracle_site/SCDWhitePaper.zip/download
    Also it is available for download OWB experts which implement generation of SCD2 mappings according this whitepaper:
    http://odi-ee.blogspot.com/2009/02/scd-type2-expert-table-operator.html
    http://owbexpert.blogspot.com/2008/12/hallo-hallo.html
    Also look at this thread {message:id=4336731} with discussion of bug which force to update all rows in target table, even they not changed between mapping executions.
    Regards,
    Oleg

  • SCD type 2 and 3 for Relational Dimension?

    SCD type 2 and 3 for Relational Dimension?
    ==========================
    Thanks for your replies.
    I searched this forum and web on SCD 2 and 3 implementation using Relational Dimension (Table) using OWB.
    I find some thread talks about implementing Oracle Dimensional structures, which has levels/hierarchy etc.
    If we design our dimension in pure relational fashion, how do we go about using OWB for SCD 2 and 3?
    Are there any new SQL features of 11g to help us here?
    Thanks in helping.
    RI

    Hi,
    several years ago Oracle published whitepaper which described steps for designing OWB mappings for loading SCD (types 1,2,3) tables.
    But recently (after website reorganization) this whitepaper was removed, although you can stil find it by googling with "scdwhitepaper",
    or you can directly download it from http://sourceforge.net/projects/owbland/files/Stuffs_from_Oracle_site/SCDWhitePaper.zip/download
    Also it is available for download OWB experts which implement generation of SCD2 mappings according this whitepaper:
    http://odi-ee.blogspot.com/2009/02/scd-type2-expert-table-operator.html
    http://owbexpert.blogspot.com/2008/12/hallo-hallo.html
    Also look at this thread {message:id=4336731} with discussion of bug which force to update all rows in target table, even they not changed between mapping executions.
    Regards,
    Oleg

  • Building a valid SCD type 2

    Hi,
    has anybody ever designed a mapping to fill a scd type 2 with more than one level? I know the example from the transformation guide and the whitepaper and it works fine with one level. But you can't use it with dimensions with more levels in my opinion:
    The problem is how to fill the id from the not base levels.
    1) If I use a sequence for that, Oracle can't use query rewrite on this dimension for aggregating higher levels, can it?
    2) If I use let's say the id from the enterprise model for the higher levels, that dimension becomes invalid as soon as a higher level attribute changes (check this with dbms_dimension.validate_dimension). So query rewrite will fail again, won't it?
    All examples found in oracle docs are using just one level except for one example, and this doesn't fill the id from the second level.
    A solution? Comments?
    Regards,
    Torsten

    Hi Patrick!
    You've problably defined a number of trigger columns
    which determines the loading action, so
    NUMBER_OF_CITIZENS would be one of them. As soon as
    this changes, on the next load all persons that live
    in Köln would be SCD'd (i.e. have their current
    record closed and a new one inserted with the new
    number of citizens).Correct. Let's use this as an example.
    You are making it sound like you have two completely
    different source sets which you offer 'independently'
    to the dimension (since you want to make use of the
    key on the city-level). No. I don't want to use the city-level-key. But when defining a dimension, there is one key (called id in the owb) and some more dependend attributes.
    CREATE DIMENSION dim_person
    LEVEL person IS (dim_person.pers_id)
    LEVEL city IS (dim_person.city_id)
    HIERARCHY std (
    person CHILD OF
    city
    JOIN KEY (dim_person.city_id) REFERENCES city
    ATTRIBUTE city DETERMINES (dim_person.population)
    But in the end it does not matter whether you have a
    unique identification of the city level, since
    records are inserted on person-level, and that is
    where you have defined that extra MATCHING column on,
    yes?No. The unique identification on city level is for validating the dimension. Of course the table which holds the dimension data is always valid whatever the data is. But the data has to be well formed for a valid dimension. If I use the example from above with dbms_dimension.validate_dimension(...) the result will be an invalid dimension.
    If I'm completely missing the point here, I guess I'm
    not understanding your problem and its approach
    then.The approach would be building your changed/unchanged transformation for each level. But I am asking here if I am the only person who sees this problem? Or maybe here is no problem.
    My bottom line is: when you're loading a dimension
    you have only one source set that is compared to the
    current dimension, and your point of view is the
    lowest level, unregarding any of its higher level
    attributes unless they are part of the natural key.
    Clarifying this using your example, there are two
    source tables:
    -ODS_PERSON with attributes PERSON_ID (surrogate
    key), PERSON_NAME, PERSON_TAX_NUMBER (natural key),
    MARITAL_STATUS, CITY_ID (FK to ODS_CITY)
    -ODS_CITY with attributes CITY_ID (SK), NAME (NK),
    POPULATION.
    The dimension would have the following attributes:
    ID, PERSON_NAME, PERSON_TAX_NUMBER,
    PERSON_MARITAL_STATUS, CITY_NAME, CITY_POPULATION
    (divided over 2 levels).
    The JOIN would then compare values from joined
    ODS_PERSON-ODS_CITY with the existing dimension
    values.
    Trigger columns would be PERSON_MARITAL_STATUS,
    CITY_NAME, CITY_POPULATION and the overall natural
    key (for matching purposes) for the dimension would
    be PERSON_TAX_NUMBER.
    As you can see, in this example there is no need for
    any unique identification on any other level than the
    lowest.But you have to give the dimension the unique key. This is what you are doing when renaming the id of the city level to the city_name.
    LEVEL city IS (dim_person.city_name)
    ATTRIBUTE city DETERMINES (dim_person.population)
    Cheers, PatrickI hope I could point to the problem a little bit more.
    Regards,
    Torsten

  • Star Schema Using OWB 10g

    Hello,
    I would like to know whether is it possible to build a star schema using Oracle OWB 10g?
    If so how could I do build one? Any help is highly appreciable.
    Regards

    Hi ,
    You can use Oracle SQL Developer Data Modeler .
    SQL Developer Data Modeler provides a full spectrum of data and database modeling tools and utilities, including modeling for Entity Relationship Diagrams (ERD), Relational (database design), Data Type and Multi-dimensional modeling, full forward and reverse engineering and DDL code generation. The Data Modeler imports from and exports to a variety of sources and targets, provides a variety of formatting options and validates the models through a predefined set of design rules.
    Oracle SQL Developer Data Modeler can connect to any supported Oracle Database and is platform independent
    http://www.oracle.com/technology/products/database/datamodeler/index.html
    Thanks,
    Sutirtha

  • Owb 10g R2

    I’m new to owb and I’m using owb 10g R2. I need to create a map to return a set of values based on the latest process’s date.
    The map reads data from a view source and then using sorter operation to sort data by ORDER_NUMBER, DATE_PROCESS, ORDER_STATUS asc
    ORDER_NUMBER     DATE_PROCESS     ORDER_STATUS
    A00378091          06/23/2011               1
    A00378091          06/25/2011               3
    A00378091          07/15/2011               5
    A00447816          05/17/2011               3
    A00447816          05/20/2011               5
    A00447816          06/25/2011               4
    I use the aggregator group by order_number to get the max(date_process) but I don’t know how to get a value of order_status.
    How do I crate a map to return the value as
    A00378091          07/15/2011               5
    A00447816          06/25/2011               4
    I very appreciate your help, thanks.

    Thanks Igor. I still don’t know how to do it. I’m sorry that I’m not clear that the set of data are not in a table yet.
    The following is a list of steps in the map.
    1. Read data from view (~ 900,000 rows)
    2. Sort data using sorter operation.
    Sorter operation ORDER_NUMBER, DATE_PROCESS, ORDER_STATUS asc (data are not in a table)
    A00378091      06/23/2011      1
    A00378091      06/25/2011      3
    A00378091      07/15/2011      5
    A00447816      05/17/2011      3
    A00447816      05/20/2011      5
    A00447816      06/25/2011      4
    3. Aggregator group by order_number to get the max(date_process). I don’t know what expression on mrp_order_status to get the latest value based on max(date_process). I can’t use min/max(order_status) because it gave me a wrong order_status’s value
    4. table (loading type Update/Insert)
    order_number is a key on a table and I need to get the latest data of date_process and order_status from the sorter (or aggregator) to update/insert into a table. So the data in a table will contain
    A00378091      07/15/2011      5
    A00447816      06/25/2011      4
    I never use table operator, I try to find the site so I can learn more about it. Would you please explain step by step? I very appreciate your help.

  • How do we learn more about expert in OWB 10g?

    How do we learn more about expert in OWB 10g?
    We are using OWB repository 10.2.0.1.0 and OWB client 10.2.0.1.31. The Oracle version is 10 G (10.2.0.3.0). OWB is installed on Linux.
    I reviewed user guide. It have little info on expert of OWB 10g.
    I like to know/learn more about it.
    Do we have cookbook type of docs?
    How did our forum members learn about owb 10g expert?
    Thanks in advance.
    RI

    Here are various bits and pieces that should get you started, I'll see if there is a cookbook, I know we have an internal one.
    There is an introduction paper here;
    http://www.oracle.com/technology/products/warehouse/pdf/Oracle%20Warehouse%20Builder%2010gR2%20What%20is%20an%20Expert.pdf
    There are examples on the utility exchange, probably a reasonable one that uses the built in components is the data mover expert;
    http://www.oracle.com/technology/products/warehouse/htdocs/Experts/datamover.zip
    There are other interesting examples, such as the create dimension from expert that helps building a dimensional structure and maps. For this one I added simple java procedures for a shuttle dialog and a data entry table that allow different information to be captured.
    See the create dimension from expert here;
    http://www.oracle.com/technology/products/warehouse/htdocs/Experts/datamover.zip
    Another example on accelerating map construction is the SQL to map accelerator which uses the OWB custom dialog to get information, and can be found at the blog post http://blogs.oracle.com/warehousebuilder/newsItems/viewFullItem$198
    You can edit these experts and see the code, the data mover expert has much less code and just glues together pieces of the OWB UI components into a task list that is more specific for the user. The create dimension expert is much more tcl oriented but really simplifies the task at hand.
    Cheers
    David

Maybe you are looking for

  • Where do we pass tax condation type and condation value in this bapi: SD_SALESDOCUMENT_CHANGE

    Hi Experts, I am using this to change sales order. SD_SALESDOCUMENT_CHANGE I am passing condation type and condation values for each line item under table parameter CONDATION_IN.  Here in which fields do i need pass tax condation type and condation v

  • Partner function in header level of sales order

    Hi All, During the sales order create/change (VA01/va02). Depending upon the business unit i want to populate partner function. I have modified the user exit "MV45AFZZ - userexit_save_document_prepare " and userexit_save_document . i tried both the e

  • MV50AFZ1 Billing doc error

    Hi everyone, e use the user exit MV50AFZ1 to create billing automatically when Post Goods Issue is performed. Here we are getting an error: Log: 0017367105 000000 Document 0017367105 is currently being processed The required processing is stopped, as

  • ASA 5512 ver8.6(1)2 Turning off Flood Protection for a UDP range

    Hello, I've got a client that's using a file transfer program that uses UDP range 30001-30021 for data and TCP22 for control. The program, Aspera, can have up to 2000 connections a second and is causing the ASA to think it is under attack. Is there a

  • Data compression

    Dear All, I have one more query how to compress a table (syntax) and how to check the difference in size between compress table "A" and uncompress table "A". Context : We all are forms & Report 6i developer, no DBA in our company. We have data of las