Define logical Key on Logical Dimension Table

It's recommended to define a logical key for any logical dimension table - in 10g there was a function on the right mouse button, as far as I remember - but in 11g there is no such functionality ? the foreign key can be added by "green plus" button, but not the primary key ?? you have to type in the name of the key, then you can choose the column and then you select as primary key ... funny.
bug or undocumented feature?

Hi Srini,
Since my main logical fact table consists of two LTS and the dimension being created from this table will also have 2 LTS, the content level will be set to all levels on which the fact is joined.
So I would like to create a logical dimension based out of my dimension and then assign the content level at the detail level.
Please let me know if I am not clear.
Thanks

Similar Messages

  • What is the use of logical key in logical tabls in bmm

    hi
    can any one tell me why we have to create logical key for logical table in bmm
    Thanks
    sreedhar

    See the links below
    why we have to create logical key at  levels in Hierarchies
    Re: Business Model - Logical Primary key
    Regards,
    Sandeep
    Edited by: Sandeep Saini on 15-Sep-2010 05:17

  • How to determine the logical Keys of logical fact table in BMM layer?

    Hello guys
    I'd like to know more about how to know what columns of the logical fact table should be used as key in BMM layer. How OBIEE behaving differently when different keys are selected?
    In my situation, I have 1 fact table that physically joins to 20 dimensions in physical layer. Therefore, in physical layer, this fact table has about 20 foreign keys but no primary keys..
    In the logical layer, this fact table is logically joined to the same group of dimension tables. So in this case, how do I know what columns in logical fact table I should use as keys?
    Please advice
    Thanks

    thanks for the reply...
    The interesting thing I notice is that, when I start using fragmentation with the fact tables in its LTS, if not primary key is defined in the logical fact table, then I will be getting errors:
    [nQSError: 10058] A general error has occurred. [nQSError: 14023] None of the fact sources for columns are compatible with the detail filter []. (HY000)
    When I create the key by choosing random columns from the fact table as the logical key columns, this error goes way and the correct SQL is generated according to the frag..
    Because of such behavior, I'd really like to know how logical key really works in BMM layer.

  • Logical Key for Degenerate Dimension

    Hi Gurus,
    Need some help on the degenerate dimensions in the BMM layer.
    I have one fact table with dimension attributes and I would like to move the attributes into separate logical table and treat it as dimension.
    Now my newly created dimension has the Fact LTS and I would like to assign a logical key to the newly created table and then create the logical dimension.
    Can anyone provide some inputs on we can assign the logical key to the column?
    Thanks

    Hi Srini,
    Since my main logical fact table consists of two LTS and the dimension being created from this table will also have 2 LTS, the content level will be set to all levels on which the fact is joined.
    So I would like to create a logical dimension based out of my dimension and then assign the content level at the detail level.
    Please let me know if I am not clear.
    Thanks

  • Demographics dimension and Logical Key.

    Hello,
    I have a simple star schema where there is a fact table linked to four dimensions. One of the dimensions is Customer Demographics. Others are Product, Time and Dealer.
    Am I correct in using surrogate key of the demographics dimension as Logical Key for Demographics dimension in the BMM layer? Could you please let me know?
    Thanks,
    Manoj.

    If the requirement is to do lots of "demographic" type queries - like sales amounts by race, gender, age, etc. - then snowflaking it off of a "person" dimension would really hurt query performance. Typically you only have demographic dimensions when either:
    1. You don't have a person dimension at all - it's only the demographics you are interested in, or
    2. You have a person dimension with millions of members, and splitting the demographics out into a separate dimension (typically a few thousand rows) means you can do a small join between the fact and a 3 thousand row demographics dimenion instead of doing a join between the fact table and a multi million row dimension table
    In either case, snowflaking off of a person dimension table is either impossible or very bad for performance.
    Thanks,
    Scott

  • Primary Key & Logical Key in Hierarchy

    Am a bit confused with the primary key in Dimensions.....
    1. Can anyone explain the use of Primary key and the criteria to define the primary key for a level if the level has more than one level keys....
    2. If a level has more than 2 logical keys and both of them are used for drilldown (use for drilldown checked) then what will happen.... lets say we have 2 keys key1 & key2 then which key is used for drilldown in answers.....

    1. Can anyone explain the use of Primary key and the criteria to define the primary key for a level if the level has more than one level keys....The level key defines the unique elements in each logical level. The dimension table logical key has to be associated with the lowest level of a dimension and has to be the level key for that level.A logical level can have multiple level keys. When that is the case, specify the key that is the primary key of that level.
    2. If a level has more than 2 logical keys and both of them are used for drilldown (use for drilldown checked) then what will happen.... lets say we have 2 keys key1 & key2 then which key is used for drilldown in answers.....With "use for drilldown" checked for 2 logical keys , when you drill form the parent level both the keys will be displayed in the report.
    Rgds,
    Dpka

  • Foreign keys in logical fact

    Hi,
    Should I define foreign keys in logical fact table? I need to use "aggregation rule=count distinct" of the foreign key column in my reports.
    Thanks.
    Andy

    Hi Andy,
    You can add the foreign keys to your fact table as a measure column (count distinct aggregation).
    Do not use these foreign keys to create foreign key joins in the logical layer. Always use complex joins (http://obibb.wordpress.com/2010/08/06/joins-in-oracle-bi-ee/)
    Good Luck,
    Daan Bakboord
    http://obibb.wordpress.com

  • Why we have to create logical key at  levels in Hierarchies

    hi
    i have one doubt that what is the use of logical key at levels in hierarchies directly we can create logical primary key and we can enable for drill down option
    what is the use of creating logical key at levels (what i known is that is for unique column in the logical level)
    i need small example for this
    apart from that why we have to create logical key in logical tables in bmm layer so what is the need of it
    Thanks
    Sreedhar

    hi Sreedhar,
    I suggest you to go through
    http://download.oracle.com/docs/cd/E12103_01/books/admintool/admintool_BusModSetup20.html#wp1005703
    will clarify your doubts :-)
    Thanks,
    Saichand.v

  • How to Maintain Surrogate Key Mapping (cross-reference) for Dimension Tables

    Hi,
    What would be the best approach on ODI to implement the Surrogate Key Mapping Table on the STG layer according to Kimball's technique:
    "Surrogate key mapping tables are designed to map natural keys from the disparate source systems to their master data warehouse surrogate key. Mapping tables are an efficient way to maintain surrogate keys in your data warehouse. These compact tables are designed for high-speed processing. Mapping tables contain only the most current value of a surrogate key— used to populate a dimension—and the natural key from the source system. Since the same dimension can have many sources, a mapping table contains a natural key column for each of its sources.
    Mapping tables can be equally effective if they are stored in a database or on the file system. The advantage of using a database for mapping tables is that you can utilize the database sequence generator to create new surrogate keys. And also, when indexed properly, mapping tables in a database are very efficient during key value lookups."
    We have a requirement to implement cross-reference mapping tables with Natural and Surrogate Keys for each dimension table. These mappings tables will be populated automatically (only inserts) during the E-LT execution, right after inserting into the dimension table.
    Someone have any idea on how to implement this on ODI?
    Thanks,
    Danilo

    Hi,
    first of all please avoid bolding something. After this according Kimball (if i remember well) is a 1:1 mapping, so no-surrogate key.
    After that personally you could use Lookup Table
    http://www.odigurus.com/2012/02/lookup-transformation-using-odi.html
    or make a simple outer join filtering by your "Active_Flag" column (remember that this filter need to be inside your outer join).
    Let us know
    Francesco

  • Best Practice loading Dimension Table with Surrogate Keys for Levels

    Hi Experts,
    how would you load an Oracle dimension table with a hierarchy of at least 5 levels with surrogate keys in each level and a unique dimension key for the dimension table.
    With OWB it is an integrated feature to use surrogate keys in every level of a hierarchy. You don't have to care about
    the parent child relation. The load process of the mapping generates the right keys and cares about the relation between the parent and child inside the dimension key.
    I tried to use one interface per Level and created a surrogate key with a native Oracle sequence.
    After that I put all the interfaces in to one big Interface with a union data set per level and added look ups for the right parent child relation.
    I think it is a bit too complicated making the interface like that.
    I will be more than happy for any suggestions? Thank you in advance!
    negib
    Edited by: nmarhoul on Jun 14, 2012 2:26 AM

    Hi,
    I do like the level keys feature of OWB - It makes aggregate tables very easy to implement if your sticking with a star schema.
    Sadly there is nothing off the shelf with the built in knowledge modules with ODI , It doesnt support creating dimension objects in the database by default but there is nothing stopping you coding up your own knowledge module (use flex fields maybe on the datastore to tag column attributes as needed)
    Your approach is what I would have done, possibly use a view (if you dont mind having it external to ODI) to make the interface simpler.

  • Dimension Table populating data

    Hi
    I am in the process of creating a data mart with a star schema.
    The star schema has been defined with the fact and dimension tables and the primary and foreign keys.
    I have written the script for one of the dimensions and would like to know when the job runs on a daily basis should the job truncate the table every day and rebuild the dimension table or should it only add new records to the table. If it should add only
    new records to the table how do is this done?
    I assume that the fact table job is run once a day and only new data is added to it?
    Thanks

    It will depend on the volume of your dimensions. In most of our projects, we do not truncate, we update only updated rows based on a fingerprint (to make the comparison faster than column by column), and insert for new rows (SCD1). For SCD2 we apply
    similar approach for updates and inserts, and expirations in batch (one UPDATE for all applicable rows at the end of the package/ETL). 
    If your dimension is very large, you can consider truncating all data or deleting only affected modified rows (based on nosiness key) to later reload those, but you have to be carefully maintaining the same surrogate keys reference by your
    existing facts.
    HTH,
    Please, mark this post as Answer if this helps you to solve your question/problem.
    Alan Koo | "Microsoft Business Intelligence and more..."
    http://www.alankoo.com

  • Facts and Dimension tables.

    We have around 6 facts tables and 10 dimensions tables. The ER diagram shows the fact tables are joined. Now how do I arrange these tables in order to form a star schema? Any suggestions?

    You should make Joins (foreign keys) between fact tables and dimensions tables on Physical Layer of Administration Tool. The cardinality should be 1 to N, being 1 in table dimension and N in the fact table.
    Right click on one element of physical layer, and select 'physical diagram' -> 'Object(s) and all joins'. Then appears all tables. To define foreign keys, select icon 'new foreign keys', first select dimension table and second click over fact table to make a cardinality 1:N.
    Good luck,
    Regards.
    Edited by: Hammett81 on Jul 21, 2010 11:14 PM
    Edited by: Hammett81 on Jul 21, 2010 11:22 PM

  • Static and small dimension table should I use lookup

    Hi Gurus,
    I am creating interface to load my fact table.
    Generally for different codes to replace with surrogate keys I use dimension table for look-up in interface.
    but I have question if dimension table is very small and has only static values like
    Sur_key, Code, Description.
    1, C, Create
    2 , R, Redeem
    in such case if in interface for fact table, I just write expression "if source_table.column=C then 1 else 2".
    Please advice if this is better way or not.
    Thanks in advance.

    I agree - it is much better practice to use lookups to populate surrogate keys. Using hard-coded values in code requires the developer to always remember that dependency on dimensional data and can cause unexpected results down the line if the keys are updated or are inconsistent across environments.

  • What is '#Distinct values' in Index on dimension table

    Gurus!
    I have loaded my BW Quality system (master data and transaction data) with almost equivalent volume as in Production.
    I am comparing the sizes of dimension and fact tables of one of the cubes in Quality and PROD.
    I am taking one of the dimension tables into consideration here.
    Quality:
    /BIC/DCUBENAME2 Volume of records: 4,286,259
    Index /BIC/ECUBENAME~050 on the E fact table /BIC/ECUBENAME for this dimension key KEY_CUBENAME2 shows #Distinct values as  4,286,259
    Prod:
    /BIC/DCUBENAME2 Volume of records: 5,817,463
    Index /BIC/ECUBENAME~050 on the E fact table /BIC/ECUBENAME for this dimension key KEY_CUBENAME2 shows #Distinct values as 937,844
    I would want to know why the distinct value is different from the dimension table count in PROD
    I am getting this information from the SQL execution plan, if I click on the /BIC/ECUBENAME table in the code. This screen gives me all details about the fact table volumes, indexes etc..
    The index and statistics on the cube is up to date.
    Quality:
    E fact table:
    Table   /BIC/ECUBENAME                    
    Last statistics date                  03.11.2008
    Analyze Method               9,767,732 Rows
    Number of rows                         9,767,732
    Number of blocks allocated         136,596
    Number of empty blocks              0
    Average space                            0
    Chain count                                0
    Average row length                      95
    Partitioned                                  YES
    NONUNIQUE  Index   /BIC/ECUBENAME~P:
    Column Name                     #Distinct                                       
    KEY_CUBENAMEP                                  1
    KEY_CUBENAMET                                  7
    KEY_CUBENAMEU                                  1
    KEY_CUBENAME1                            148,647
    KEY_CUBENAME2                          4,286,259
    KEY_CUBENAME3                                  6
    KEY_CUBENAME4                                322
    KEY_CUBENAME5                          1,891,706
    KEY_CUBENAME6                            254,668
    KEY_CUBENAME7                                  5
    KEY_CUBENAME8                              9,430
    KEY_CUBENAME9                                122
    KEY_CUBENAMEA                                 10
    KEY_CUBENAMEB                                  6
    KEY_CUBENAMEC                              1,224
    KEY_CUBENAMED                                328
    Prod:
    Table   /BIC/ECUBENAME
    Last statistics date                  13.11.2008
    Analyze Method                      1,379,086 Rows
    Number of rows                       13,790,860
    Number of blocks allocated       187,880
    Number of empty blocks            0
    Average space                          0
    Chain count                              0
    Average row length                    92
    Partitioned                               YES
    NONUNIQUE Index /BIC/ECUBENAME~P:
    Column Name                     #Distinct                                                      
    KEY_CUBENAMEP                                  1
    KEY_CUBENAMET                                 10
    KEY_CUBENAMEU                                  1
    KEY_CUBENAME1                            123,319
    KEY_CUBENAME2                            937,844
    KEY_CUBENAME3                                  6
    KEY_CUBENAME4                                363
    KEY_CUBENAME5                            691,303
    KEY_CUBENAME6                            226,470
    KEY_CUBENAME7                                  5
    KEY_CUBENAME8                              8,835
    KEY_CUBENAME9                                124
    KEY_CUBENAMEA                                 14
    KEY_CUBENAMEB                                  6
    KEY_CUBENAMEC                                295
    KEY_CUBENAMED                                381

    Arun,
    The cube in QA and PROD are compressed. Index building and statistics are also up to date.
    But I am not sure what other jobs are run by BASIS as far as this cube in production is concerned.
    Is there any other Tcode/ Func Mod etc which can give information about the #distinct values of this Index or dimension table?
    One basic question, As the DIM key is the primary key in the dimension table, there cant be duplicates.
    So, how would the index on Ftable on this dimension table show #distinct values less than the entries in that dimension table?
    Should the entries in dimension table not exactly match with the #Distinct entries shown in
    Index /BIC/ECUBENAME~P on this DIM KEY?

  • [Rookie] Some clarification on Dimension Table

    Hi!
    I am preparing for BW certification, and sorry to post this very basic query. On certification notes, I came accross a statement that says - "Dimension table contains link to fact table and SID table".
    I think this statement is wrong. Dimension table has DIM-ID & SID-Ids so there is no link to fact table in dimension table.
    Please give your comment on this.

    hi,
    should true/correct, check
    http://help.sap.com/bp_biv335/BI_EN/documentation/Multi-dimensional_modeling_EN.doc
    page 11
    ... These dimension tables surround the fact table, which contains the facts (key figures), and are linked to that fact table via unique keys, one per dimension table. Each dimension key uniquely identifies a row in the associated dimension table....
    hope this helps.

Maybe you are looking for

  • Status for Purchase order or contract.

    Hi,     Where can I see the  Standard settings for Statuses of PO or PC in the SRM system ? Basically I want to know which are the statuses (Held, awating approval, ordered or released...so on) set by system for PO & PC & their sequence. I am working

  • Apex_util.get_print_document with bind

    All, I'm trying to create a process to bulk print a report to the file system using the API apex_util.get_print_document. Is there a way to pass bind variables to the report query when using this API? If not, has anyone come up w/another solution on

  • Triggering of dynamic actions in infotypes!

    Hi Experts, I have Query regarding the triggering of dynamic actions. Have a scenario where I create a record in infotype 21 with subtype 'XX". On save of this record I need the dynamic actions to be triggered , where I will write the logic to modify

  • Detailo of credit mem0

    Hi,   I have a credit memo..and it is now cleared. But 4 days back it was not cleard. When I went in icon of hat, it says posting on 3/6 and the id of the person I would like know whether the ID here shows of the person who made the payments on 3/6 a

  • How can i stop people from buring our music

    We will be be setting up a studio. I need to be able to let people LISTEN to the music they and we recorded, but NOT be able to burn it. how can I do this? Is there something like apples DRM that I can encode my own files so they can be taken off the