Dimension tables - parent child or hierarchical

The data I m dealing with is structured as follow. 
A customer has many stores and each store has a POSSystem.
Customer
  Stores
     POSSystem
So now when I create Dimensions, will I create as: 
TableName                       Cols
DimCustomer                  CustKey
DimStores                      StoreKey, CustKey
DimPOS                         POSKey, StoreKey, CustKey
Are these Hierarchical or Parent Child?
Now when I will create Fact table, will I have:
TableName                       Cols
Sample1: DimFactPOS      CustKey,POSKey,StoreKey, #trans
OR
Sample2: DimFactPOS      POSKey, #trans
If I do sample1, then why do I keep "StoreKey, CustKey" in DimPOS? 

From your question, I can assume that you have beginners knowledge in Data modeling and Data Warehousing. 
Let me elaborate it and dilute your confusion. 
You have designed
Star Schema; basic intention for having star schema is to have normalized fact tables and de-normalized dimension tables. 
Reason you are creating three dimension (i.e. DimCustomer, DimStores and DimPOS) here because you must have many-to-one referential integrity between each level. You can google about Hierarchies,
Levels and Level relationships to get insight information about it. 
Keeping normalize data in dimensions and keeping keys in fact table is a business decision. To which level you want to show the aggregated data? You
need to define granuality level based on business needs.
As in star schema, there is 1 fact table related to different dimensions. If I sub divide your assumption, Sample 1 represents
Data Mart and Sample 2 represents Data Warehouse.
I hope it will help you in understanding basic concepts.

Similar Messages

  • Dimension with Parent-Child Hierarchy - not working

    hi,
    i tried making "Dimension with Parent-Child Hierarchy" as described in your tutorials.
    i finished with the admin tool and database changes and with no errors.
    when trying to create a new answer, by only puting the hierarchy column in the answer.
    the result show "no result" exist.
    i am not sure what i am doing wrong. maybe you can point me to the problem?
    thanks
    Mirit.

    956850 wrote:
    hi,
    i tried making "Dimension with Parent-Child Hierarchy" as described in your tutorials.
    i finished with the admin tool and database changes and with no errors.
    when trying to create a new answer, by only puting the hierarchy column in the answer.
    the result show "no result" exist.
    i am not sure what i am doing wrong. maybe you can point me to the problem?
    thanks
    Mirit.Hi Mirit,
    What is the table that you created hierarchy on?
    Which column in the hierarchy you pulled into your reports to see the No Result message?
    Please query the table and see if has data.
    Thanks,
    G. SK

  • Hierarchy Table - Parent/Child Value Pairs w/o Node Name

    Hi,
      Has any body worked with below senario to create a Hierarchy table through Import Manager. If so how did you do it? I followed and sucessfull with some senario's by refering the blog "MDM Import Manager: handling multiple formats of source data for hierarchy" by pandey but not with this one. This scenair is actually from help.sap.com
    Parent           Category
               Printers
    Printers      Laser
    Printers      Inkjet
    Inkjet           B&W
    Inkjet           Color
    Printers      Dot Matrix
    Dot Matrix      300 DPI
    Dot Matrix      600 DPI
    Dot Matrix      1200 DPI
    Edited by: SDN POWERED on Jun 7, 2009 8:59 PM

    Hi SDN Powered,
    For Hierarchy Table - Parent/Child Value Pairs w/o Node Name just do as follows:
    1) In the Source Hierarchy tree, select the Parent and Child field nodes which you want to use to build hierarchy.
    2) Right-click on one of the nodes and choose Create Hierarchy Field from the context menu, or choose Source > Create Hierarchy Field from the main menu.
    3) MDM opens the Create Hierarchy Field dialog box. This dialog box contains 4 feilds, viz Hierarchy Field Name, Parent Field, Child Field, and Node Name Field. In the Hierarchy Field Name, type the name for the new field.In the Parent Field, Child Field. For Parent/Child Value Pairs w/o Node Name , set the Node Name Field to None.
    4) Click OK to close the Create Hierarchy Field dialog box. The MDM Import Manager creates Hierarchy using the values you have provided.
    I hope I am able to solve your problem.
    Thanks & Regards
    Dilmit Chadha

  • Database-Table parent-child design

    Hi all,
    Which (forum) does this master-detail table design question belongs to or appropriate to post to?
    I have 3 basic entities> servers, databases, and apps
    example:
    servers=server1,server2,server3,etc
    database=PROD1,DEV1,TEST1,etc
    apps=GL,FA,AP,AR,INV,HR,etc
    In every server there are many database type (dev,prod,test,prod1, prod2,etc)
    In every apps there are many database type too (dev,prod,test,prod1, prod2,etc)
    So databases are children of both servers and apps?
    To which parents does this "children" database legally belong?
    Thanks

    Hi;
    Which (forum) does this master-detail table design question belongs to or appropriate to post to?
    I have 3 basic entities> servers, databases, and apps
    example:
    servers=server1,server2,server3,etc
    database=PROD1,DEV1,TEST1,etc
    apps=GL,FA,AP,AR,INV,HR,etcFrom your post i got you have EBS. What is your EBS version? By the way its more effecient to close your thread here as answered and move your issue to Forum Home » E-Business Suite » EBS General Discussion
    In every server there are many database type (dev,prod,test,prod1, prod2,etc)It possible, i mean on same server you could have EBS's database like dev,prod and also can have oracle database which is not belong any EBS system like sid ORCL
    In every apps there are many database type too (dev,prod,test,prod1, prod2,etc)I belive this is wrong, One EBS has one Database but it doesnt mean that database need extra data from other source which is using ETL etc. So your EBS db always parent and get data from child, and also that main db can update information which is exist on child
    You could have one PROD and can clone it as CLON so those 2 instance have actualy same data and same proporties, we cant say those dbs has parent-child relation. But we can say CLON ebs produced by PROD instance
    Regard
    Helios

  • Trigger & Mutating Tables (Parent-Child relationship, Referencing Constraint related)

    Dear Sir,
    Wish you a very Happy New Year !!!
    I am facing a problem related to Database Trigger.
    Sir, I have two tables Cust and Sick.
    Cust is having the following fields :
    SDF_CUST_BRCD NOT NULL NUMBER(5)
    CUST_CUSTID NOT NULL VARCHAR2(6)
    UCD_CUST_SEGMENTCODE NOT NULL VARCHAR2(7)
    CUST_FIRSTBORROWER NOT NULL VARCHAR2(30)
    UCD_CUST_CONSTORGCODE NOT NULL VARCHAR2(7)
    VLGC_CUST_VILLAGECODE VARCHAR2(4)
    CUST_PAN VARCHAR2(20)
    UCD_CUST_STAFFCODE VARCHAR2(7)
    CUST_RESIDENTSTATFLAG VARCHAR2(1)
    CUST_BKGSINCEDATE DATE
    UCD_CUST_SICKUNITCODE VARCHAR2(7)
    Cust's Primary Key is the combination of Brcd, CustId
    And Sick Table Structure is as under :
    PRDT_SICK_REPORTDATE NOT NULL DATE
    CUST_SICK_BRCD NOT NULL NUMBER(5)
    CUST_SICK_CUSTID NOT NULL VARCHAR2(6)
    UCD_SICK_REASONCODE NOT NULL VARCHAR2(7)
    SICK_SINCEDATE NOT NULL DATE
    SICK_LOSSMAKINGDATE DATE
    SICK_ACCMLOSSAMT NUMBER(16,2)
    UCD_SICK_VIABILITYCODE NOT NULL VARCHAR2(7)
    UCD_BIFR_STATUS_CODE VARCHAR2(7)
    SICK_BIFRDATE DATE
    SICK_REHABSANCDATE DATE
    CUST_SICK_SICKUNITCODE VARCHAR2(7)
    Sick's Primary Key is the combination of ReportDate, BrCD, Custid
    Sick's (Brcd and Custid) referencing to Cust (BrCd, CustId).
    I want to insert/update into the sick table corrponding to Cust
    Insertion/Updation.
    I have written a trigger on Cust which is working fine provided
    that foreign key constraint
    is diabled. As soon as constraint is enabled the trigger is
    giving error
    ORA-04091: table CIS.CUST is mutating, trigger/function may not
    see it
    Sir, It is also working fine if the record is already exist in
    Sick table.
    Is is not working in 2 cases :
    1. While entering a new record into the Cust with
    SICKUNIT_CODE='SW00001'
    2. If we are changing the SickUnit_Code in Cust and correponding
    record doesn't exist in Sick.
    Please write me the solution.
    Thanking you
    yours sincerely
    Rajesh Kumar Jain
    Trigger Text is
    create or replace trigger tr_cust_sick
    after insert or update on Cust for each row
    declare
    Fn_Return boolean;
    Tr_Exception Exception;
    begin
    Fn_Return := Fn_cust_sick
    (:new.UCD_CUST_SICKUNITCODE,:new.SDF_CUST_BRCD,:new.CUST_CUSTID,I
    NSERTING,UPDATING,DELETING);
    If Not Fn_Return then
    Raise Tr_Exception;
    End if;
    exception
    when Tr_Exception then
    Dbms_output.put_line('Tr_Exception ' ||Sqlerrm);
    When others then
    Dbms_output.put_line(Sqlerrm);
    end;
    Function Text is :
    $$$$$$$$$
    create or replace function fn_cust_sick
    (SickUnitCode_in In Cust.Ucd_Cust_SickunitCode%Type,Brcd_in In
    Sdf.Sdf_Brcd%Type,Custid_in In Cust.Cust_Custid%
    Type,Inserting_in In Boolean ,Updating_in In Boolean,Deleting_in
    In Boolean)
    return boolean is
    ddate date default '01-Jul-1955';
    repdate ppar.ppar_reportdate%type default '31-Mar-2001';
    viabcode sick.ucd_sick_viabilitycode%type default 'VI00000';
    ReasonCD sick.ucd_sick_reasoncode%type default 'SK00000';
    Ret_Flag Boolean := False;
    begin
    if Updating_in then
    begin
    update sick
    set CUST_SICK_SICKUNITCODE = SickUnitCode_in
    where prdt_sick_reportdate = repdate and
    cust_sick_brcd = Brcd_in and
    Cust_Sick_CustId = Custid_in;
         Ret_Flag := True;
    if sql%notfound then
    if To_Number(Substr(SickUnitCode_in,3)) > 0 then
    insert into sick
    (PRDT_SICK_REPORTDATE,
    CUST_SICK_BRCD,
    CUST_SICK_CUSTID,
    UCD_SICK_REASONCODE,
    SICK_SINCEDATE,
    UCD_SICK_VIABILITYCODE,
    CUST_SICK_SICKUNITCODE,
              SUBO_SICK_SICKBORRCODE)
    values
    (repdate,
    Brcd_in,
    Custid_in,
    reasoncd,
    ddate,
    viabcode,
    SickUnitCode_in,
              'SB00001');
    Ret_Flag := True;
         Return(Ret_Flag);
         end if;
    end if;
    exception
    when others then
    dbms_output.put_line('Exception Update '|| Sqlerrm);
    return(Ret_Flag);
    end;
    elsif Inserting_in then
    begin
    if To_Number(Substr(SickUnitCode_in,3)) > 0 then
    insert into sick
    (PRDT_SICK_REPORTDATE,
    CUST_SICK_BRCD,
    CUST_SICK_CUSTID,
    UCD_SICK_REASONCODE,
    SICK_SINCEDATE,
    UCD_SICK_VIABILITYCODE,
    CUST_SICK_SICKUNITCODE,
              SUBO_SICK_SICKBORRCODE)
    values
    (repdate,
    Brcd_in,
    Custid_in,
    reasoncd,
    ddate,
    viabcode,
    SickUnitCode_in,
              'SB00001');
    Ret_Flag := True;
    end if;
         Return(Ret_Flag);
    exception
    when others then
    dbms_output.put_line('Exception Insert '|| Sqlerrm);
    return(Ret_Flag);
    end;
    end if;
    return(Ret_Flag);
    exception
    when Others then
    dbms_output.put_line('Main Exception '|| Sqlerrm);
    return(Ret_Flag);
    end;
    $$$$$$$$$$$

    Hi,
    double click the Application Module to open the AM editor. Select the data Model category. On the right hand side you see what is selected for use in an application, on the left hand side is what you have available as View Object. To create T1-->T2-->T3, you
    - Select T1 and move it to the right
    - Select T2 under T1 on the left and move it to the right under T1
    - Select T3 under T2 on the left and move it under T2 in T1 on the right
    Frank

  • OBIEE Parent-Child Dimension with multiple hierarchies

    Is it possible to have in a parent-child dimension multiple hierarchies? I want to have the same botom childs to aggregate to different parrents. example.
    Account Dimension
    HR1-total
    HR1-parrent1
    CHILD1
    HR1-parrent2
    CHILD2
    HR2-total
    HR2-parrent1
    CHILD1
    CHILD2
    Thanks in advance.

    No, it is not possible to have multiple hiearchies in a PC logical dimension.
    The concept of the Parent-Child (PC) hierarchy is completely different from the level-based hierarchy. Specifically the PC hierarchy expects a predefined / architected table with corresponding PC column/value structuring with or without attributes.
    Short story even shorter it is not possible.
    Longer...
    In the RPD the BMM actually prevents you from adding a new logical level, child level, or parent level when you have selected that the logical dimension be a parent child logical dimension with Parent-Child hierarchy.
    On another note...
    Have you tried architecting/building your PC source table so that it represents the roll-up and bottom child-levels like you are seeking? That is, that same member in the child column more than once having a separate parent value. That should be doable.
    That was a great question, please award points if this answered your question or it was helpful.
    Cheers,
    Christian
    http://www.artofbi.com

  • Dynamic Security in a denormalized Parent-Child dimension Table

    Hi guys, I need your priceless help again:
    I have a parent child relationship in a table with a fixed depth, let´s say Region-->Area-->Country
    I denormalized the table to have something like this
    Then, to implement dynamic security, I think in a bridge table with the userId
    and the CountryId, then with a measure group and a measure which count the combination of user/country I can proof the security using the non empty function.
    My question is how can I also set security for the levels above the leaf members, let´s say, I want to assign an user to the Area level or Region Level. I don't know exactly which key could I include in the bridge table.
    I may want to keep the id´s of the original table in the different levels.
    Any comment will be appreciated.
    Kind Regards,

    Hi Paul,
    According to your description, you want to apply dynamic security on parent-child hierarchy. Right?
    In Analysis Services, when a dimension contains a parent-child hierarchy, we can't set up security directly on the key attribute. Because it will not appear on the dropdown list of Dimension Data Security in Role editor.
    In this scenario, we need to filter on key attribute and not the parent-child hierarchy. Then use Linkmember() to find the equivalent members on the parent-child hierarchy. Please refer to the expression below based on a employee dimension with parent-child
    hierarchy.
    Generate(
     NonEmpty(
      [Employee].[Employee].[Employee].Members,
       [Measures].[Employee Count],
       StrToMember('[User].[User].[' + UserName() + ']')
                 LinkMember(
                     [Employee].[Employee].CurrentMember,
                     [Employee].[Employees]
    Also I suggest an excellent book:
    Expert Cube Development with Microsoft SQL Server 2008 Analysis Services. It talks about this scenario in chap 9.
    Reference:
    SSAS
    Dynamic security - Bridge table (factless) between User dimension and Parent-Child (PC) dimension
    If you have any question, please feel free to ask.
    Best Regards,
    Simon Hou
    TechNet Community Support

  • Error with Parent-Child Hierarchies in BIEE11.1.1.5

    Hi ,
    I am using BIEE11.1.1.5, I have created a Logical Dimensions with Parent-Child Hierarchies,
    In answer,I draged the Hierarchies named 'H5 Sales Rep', then view the results,
    It has error,error message as follows:
    Odbc driver returned an error (SQLExecDirectW).
    Error Details
    Error Codes: OPR4ONWY:U9IM8TAC:OI2DL65P
    State: HY000. Code: 10058. [NQODBC] [SQL_STATE: HY000] [nQSError: 10058] A general error has occurred. [nQSError: 43113] Message returned from OBIS. [nQSError: 43119] Query Failed: [nQSError: 22056] To use hierarchical functions, you need to associate a Closure Table with Logical Table Source 'LTS1 Sales Rep'. (HY000)
    SQL Issued: SELECT 0 s_0, "Sample Sales"."Sales Rep"."Sales Rep Name" s_1, CASE WHEN ISLEAF("Sample Sales"."Sales Rep"."H5 Sales Rep") THEN 1 ELSE 0 END s_2, IDOF("Sample Sales"."Sales Rep"."H5 Sales Rep") s_3, PARENT("Sample Sales"."Sales Rep"."H5 Sales Rep") s_4 FROM "Sample Sales" WHERE ISROOT("Sample Sales"."Sales Rep"."H5 Sales Rep")
    anyone know why???
    Thank you!

    Hi Leo,
    Did you configure closure table? http://www.rittmanmead.com/2010/11/oracle-bi-ee-11g-parent-child-hierarchies-multiple-modeling-methods/
    Also make sure to perform the hierarchy changes in offline mode.
    Regards,
    Dpka

  • Parent Child Tables in OBIEE

    Hi,
    I have three tables to be added in OBIEE Admin Tool
    1. Request Master (Req_ID is PK)
    2. Complaints (Req_ID is PK)
    3. Compliments (Req_ID is PK)
    Table 2 and 3 are linked to table 1 in a 1:1 relationship. so basicallly, all requests have a record in the master table (Request master) and depending on the type of request, there will either be a detail record in table 2 or table 3.
    Can someone guide me as to what would be the best way to configure the relationships in the admin tool on the Physical & BMM layers.
    -Osden

    I know you said you have primary key defined already but just to make sure, can you follow these steps:
    1) Double click on dimension table
    2) go to tab 'Keys'. check if your primary key is defined there.
    3) If not, in 'Key Name', type in the key name
    4) select the primary key(column) in 'Columns'.
    5) Click OK.
    and then try to create hierarchy by following these steps:
    1) Right Click on the dimension table
    2) Create Logical Dimension -> Dimension with Parent-Child Hierarchy...
    3) Click OK (if you are OK with default values)

  • Incorrect totals from cache with CustomRollupColumn and non-parent-child dimensions

    Hello. Before I start let me apologise for my English :)
    We have a very complex cube, with 2 (actually more, but only these 2 are important) parent-child dimensions.
    One of them has CustomRollupColumn defined.
    Not long ago we have decided to make refactoring of our cube. This also included making these dimensions non-parent-child.
    All our old reports started to work much faster after that... but we have mentioned that sometimes they show incorrect totals, or no totals at all.
    We spend a lot of time trying to figure out what's wrong and finally we had found that if we clear cache before next refresh of the report - the totals are always correct!
    If we don't clear cache - we get wrong totals second time, and each next time after that. If we see wrong totals - we could clear cache and get correct totals once again.
    If we use "Real Time Olap=True;" connection string parameter - the totals are always correct because cache is not used.
    But we don't like this workaround.
    Is there any fix for this bug? Google shows that this problem exists from SQL2005, and still we have it :( Also, there is adivice to set CalculationCoverPolicy to 9 - we have tried - but it was fruitless.
    And if we revert these 2 dimensions back to parent-child - all working fine again, but as slow as it was before the refactoring :(

    Hi Bateks,
    Glad to hear that your issue had been solved by yourself, thank you for you sharing which will help other forum members who have the similar issue.
    Regards,
    Charlie Liao
    TechNet Community Support

  • How to handle parent-child dimension in OWB?????

    i have a dimension have many levels,and the amount of levels is varing,so i cannot use the wizard to define my dimension ,seems with OWB i can only define dimension with certain amount of levels.......
    my dimension data is stored with this format:
    child parent
    Los Angles US
    US WORLD
    it is called a parent-child relation ,how can i define dimension with parent-child relation witn OWB...
    Can OWB do it ?????

    i have a dimension have many levels,and the amount of levels is varing,so i cannot use the wizard to define my dimension ,seems with OWB i can only define dimension with certain amount of levels.......
    my dimension data is stored with this format:
    child parent
    Los Angles US
    US WORLD
    it is called a parent-child relation ,how can i define dimension with parent-child relation witn OWB...
    Can OWB do it ????? You must define a dimension, define the dimension levels and the hierarchy inside the dimension (a hierarchy can have as many levels as you want, parent-child relationship is a normal hierarchy concept - no rocket science here). Then you have to map the data source for the dimension levels appropriately. Please refer to the user manual, chapter 4 ("Defining dimensianal targets") for details.
    Regards:
    Igor

  • Parent-child dimensions limitations

    Hi eb
    It is very convinient to develop complex heirarchized dimensions as parent-child especialy when they retain historical
    changes in members.
    I know one reason to not using such dimensions when they contain some 200,000 members or more due to performance issues (no aggregations on parent attributes???).
    Are there any other reasons to not using parent-child heirarchies in ssas MD cubes???
    TIA!
    Rea

    Hi reapeleg,
    According to your description, you want to know weakness of using parent-child dimension. Right?
    In Analysis Services, a parent-child dimension is distinguished by fact that it contains a hierarchy based on a recursive relationship. So it can only cause some performance problem. But the main reason of using a parent-child dimension
    or not depends on the relationship between the attributes in your dimension. And there's workaround for the performance issue. Please see:
    Parent-Child Dimensions in Analysis Services – Performance Walkthrough
    Reference:
    Parent-Child Dimensions
    If you have any question, please feel free to ask.
    Simon Hou
    TechNet Community Support

  • Parent Child Hierarchy

    I am new learner for using OBIEE 11g, when I try to create the Parent_Child_Hierarchy in the repository, BI answer in the web shows the errors:
    "State: HY000. Code: 10058. [NQODBC] [SQL_STATE: HY000] [nQSError: 10058] A general error has occurred. [nQSError: 43113] Message returned from OBIS. [nQSError: 38107] *Not all four columns are defined for closure table 'Parent_Chile_Table_Closure'*. (HY000)".
    According to the help web "http://www.adivaconsulting.com/adiva-blog/item/22-obiee-11g-hierarchical-table.html", I have created the relational Parent-Child-Hierarchy table in the database that is imported into the physical layer, and finish every steps, but when I drag the hierarchy in the presentation layer into display scope, which shows the errors mentioned above.
    If you known the method for solving it,please help me and share your idea, thanks!

    Hey,
    I am also facing the same issue when i try to replicate this practice. (Create Logical Dimensions with Parent Child Hierarchies -- http://www.oracle.com/webfolder/technetwork/tutorials/obe/fmw/bi/bi11115/biadmin11g_02/biadmin11g.htm#t9s3)
    Odbc driver returned an error (SQLExecDirectW).
    Error Details
    Error Codes: OPR4ONWY:U9IM8TAC:OI2DL65P
    State: HY000. Code: 10058. [NQODBC] [SQL_STATE: HY000] [nQSError: 10058] A general error has occurred. [nQSError: 43113] Message returned from OBIS. [nQSError: 43119] Query Failed: [nQSError: 22056] To use hierarchical functions, you need to associate a Closure Table with Logical Table Source 'LTS1 Sales Rep'. (HY000)
    SQL Issued: SET VARIABLE PREFERRED_CURRENCY='USD';SELECT 0 s_0, "Y - Sample Sales"."Sales Reps"."Sales Rep Name" s_1, CASE WHEN ISLEAF("Y - Sample Sales"."Sales Reps"."H5 Sales Rep DimHier") THEN 1 ELSE 0 END s_2, IDOF("Y - Sample Sales"."Sales Reps"."H5 Sales Rep DimHier") s_3, PARENT("Y - Sample Sales"."Sales Reps"."H5 Sales Rep DimHier") s_4 FROM "Y - Sample Sales" WHERE ISROOT("Y - Sample Sales"."Sales Reps"."H5 Sales Rep DimHier")

  • How to update a parent child hierarchy in OBIEE

    Hello All
    Quick question about updating parent child hierarchy in OBIEE.
    As we know, OBIEE 11G allows us to create value based hierarchy by generating table creation script and insert script. In the typical example of employee dimension, the parent child relationship table will be created with the following 4 attributes:
    MEMBER_KEY, ANCESTOR_KEY, DISTANCE, IS_LEAF
    So, what if later in the years some of the employees got promoted, retired or transferred? The value based hierarchy is going to change because person 1 reports to manager 2 now instead of 1. Obviously, the records in employee dimension is going to be updated. When that happens, how to update the parent child relation table with the same information? Do we have to rerun the insert script? How do we keep the history of employee changes and hierarchy changes?
    Please advice
    Thank you

    I guess it will update when the structure changes,Let see the response from other gurus.
    Thanks,

  • Parent child relation in OBIEE -RPD Issue

    Hi,
    I created a star schema by taking two tables . Now i want to establish parent-child relation ship .
    Now by clicking create logical dimension ----->Dimension with parent-child hierarchy ,the member key is not found.Pls correct me where i went wrong .
    Thanks-Bhaskar

    I know you said you have primary key defined already but just to make sure, can you follow these steps:
    1) Double click on dimension table
    2) go to tab 'Keys'. check if your primary key is defined there.
    3) If not, in 'Key Name', type in the key name
    4) select the primary key(column) in 'Columns'.
    5) Click OK.
    and then try to create hierarchy by following these steps:
    1) Right Click on the dimension table
    2) Create Logical Dimension -> Dimension with Parent-Child Hierarchy...
    3) Click OK (if you are OK with default values)

Maybe you are looking for