Mapping for "Junk dimensions"

I'm trying to implement a mapping for some columns in what Kimball calls a "Junk Dimension." There are 25 columns in the dimension with cardinality's ranging from 2 to 10. There are 100,000,000 possible values, but only around 100,000 actually exist in the data set. I'd rather just populate the table with the 100,000 rows.
Here's a refernece to Kimball's discussion of this:
http://www.kimballgroup.com/html/designtipsPDF/DesignTips2003/KimballDT48DeClutter.pdf
Is the only way to do this in OWB to use a deduplicator (DISTINCT)?
If I have 2 dimensions like this, plus the fact table, am I going to fully scan the source table 3 times, once for each of the 2 distinct queries, and once for mapping into the fact table?
Is there a more efficient solution?

With “Statuses dimension” everything is clear – it’s classic junk dimension sourced from distinct values of different status fields.
About “Bands dimension”… Have you explicitly define (somewhere) bands for every value you are expecting to classify? If so, creating this dimension is much straightforward as previous – to join source table with “band definition tables” and collect distinct combinations of every “band id” into “band junk”.
If you are going to create bands implicitly (or dynamically – by applying expression like “trunc(x,-2)” ), approach may be the same. Just take additional care to not archive “useless banding” – remember that there are recommendation in statistics regarding optimal number of bands depending on number of measures (records) and magnitude of values (from min to max value).
I would not advise you to apply this “function lookup” approach. It will perform very poor on large dataset (because SQL <-> PLSQL context switching and additional exception handling – if key not found). Better try to browse source data during stage operation, find new key combinations for junk dimensions and load them. After that use simple join / lookup to get dimension key.
Sergey

Similar Messages

  • Error While Saving Mapping For A Dimension

    I am getting The Error While Saving The mapping For a Dimension
    Any Clue?
    An error occurred creating DimensionMapGroup BROKERS.MAPGROUP1.DIMENSIONMAPGROUP : ***Error Occured in
    DELETE_MAPPING_GROUP: Analytic workspace object __XML_STARTUP_CALCMMBRS does
    not exist.
    Thanks
    Raghu

    Check the OSS note 550760 regarding the issue.

  • Defining MAPs for secured dimensions

    With regards to defining the "Member Access Profiles (MAP)" for dimension members SAP adviced the following:
    "When defining member access for secured dimensions, be sure to define access for ALL secured dimensions of the application"
    My question is:
    Do I have to do it in just one MAP or can I do it in two separate MAPs ???

    You can create Multiple MAP.
    Any user should have associate at least one MAP.
    In this way you can define access for diferent users to members from secure dimensions.
    Kind Regards
    Sorin Radulescu

  • Can I upload 1 map for multiple dimensions, where? overwrite or append maps?

    Hi When updating mappings:
    1. I first export a file from the current account and entity dimension (2 separate maps) can I make all changes into one map?  So multiple DIMNAMES:
    ACCOUNT
    ACCOUNT
    ENTITY
    ENTITY
    in the same map?  And then just upload that map to populate all dimensions?  If so, what dimension do I load it in to?  Does it not matter?
    2. Another question, if I have unmapped members and have an export file that has all of those undefined members, can I make changes into that error file, and upload it back into the mappings?  Will it overwrite the incorrect mappings?
    Thanks!

    Hi,
    I guess this is because of the limitations in the attachment modes for an analytical workspace.
    Theres in total three different modes. Read , Read/Write and read/write exclusive
    In read mode many users can attach the AW at the same time and you can only read data.
    In read/write you can modify/maintain the AW with other read users connected, but when you have the AW attached in this mode, noone else can attach it in read/write mode.
    Read/write exclusive means that you are the only user that can attach the AW. All other users trying to attach will get an error.
    What I guess the mappings try to do, is that it tries to attach the AW in read/write mode and come in conflict with each other. Therefor you can only run one mapping at a time.
    Ragnar

  • BPC Conversion File - Same External ID for different Dimensions

    Hello Experts,
    I hope you can help me.
    We are running BPC NW V10.0 SP13
    I have a Conversion File for External to Internal Mapping on the DATASRC Dimension.
    See Image 01
    I would now like to use the same 'External ID' to identify the mapping rules for two Dimensions, DATASRC and CATEGORY Member ID
    See Image 02
    The rules that determine how the External ID is mapped are subjective rather than derived from patterns present in ID.  This means I cannot use any conditional logic to determine the mapping rules. For example, I cannot assume that all IDs that start with 99Z19 will need to be mapped the same way.
    So the CATGORY Member ID needs to be hard-coded somehow.
    Although it is simple enough to copy the entire worksheet and hold the mapping for each Dimension as separate w/sheets, this duplicates the amount of ongoing maintenance and turns 80 rules into 160 (a number which will rise!)
    Is there a way of using javascript in the Formula column to identify the Internal Member ID for the CATEGORY Dimension.
    If so, how would the Transformation File reference this?
    Any help would be much appreciated

    Sorry Vadim, I was having problems uploading the actual files.
    So I have had to screenshot instead...............
    Transformation File
    Conversion File
    As you can see, the Trans file assumes the CATEGORY is fixed to one Member.
    But I want to use the External ID in the the DATASRC Conversion w/sheet and specify different CATEGORY Member IDs.

  • Degenerate and Junk dimensions

    I am new to SSAS. I want to understand degenerate and junk dimensions in detail. It would be good if you provide with practical examples please.
    Regards,
    Ramu
    Ramu Gade

    Junk Dimensions
    There are certain scenarios where you will find that the source for a fact table contains a bunch of low-cardinality attributes that don’t really relate to any of the other attributes describing these facts. Some of the more common examples are bit/character
    based “flags” or “codes” which are useful to the end users for filtering and aggregating the facts.  For example, imagine a user who wants to analyze orders from the order fact table that are flagged as “reprocessed”…they can either filter for facts with
    the reprocessed flag if they are only interested in that subset…or they can group by the “reprocessed” flag calculate things like the percent of orders that are “reprocessed”…
    Instead of building a separate dimension for each of these individual attributes, another option is to combine them and build what’s known as a Junk Dimension based on the Cartesian product of each of these attributes and they’re corresponding range of values.
    This technique does 2 important things:
    Saves Disk Space
    consider a single 4byte integer key linking to the junk dimension vs. a handful of 4byte integer keys each linking to a separate dimension.  Might not sound like a lot on a per-record basis, but once you extrapolate out over a 100mm record fact table the
    savings really adds up.
    Improves End-User Experience
    By keeping the total number of dimensions down to a manageable size it will be easier for your end-users to find the attributes they’re looking for during ad-hoc analysis. Kimball recommends <= 26 dimensions per fact table – of course there are always a
    few edge-case exceptions.
    Degenerate Dimensions
    The Degenerate Dimension is another modeling technique for attributes found in the source transaction table.  The main differences between these attributes and the ones that would fall into our Junk Dimension are as follows:
    Cardinality
    these are typically high-cardinality attributes – in some cases having a 1 to 1 relationship with the fact.  These are likely to be the business keys of the fact table such as Purchase Order Number, Work Order Number, etc.  Another potential candidate
    for the degenerate dimension is free-form comment fields.
    Use Case for End-Users
    these attributes are not going to be used for filtering/aggregating facts. Instead, these are the types of attributes that are typically going to be used in drilldown or data mining scenarios (ex. Market Basket Analysis). For example, imagine a user who is
    analyzing purchase orders in the “delayed” status. After drilling down on the delayed POs for a certain supplier in a certain time period…the next step might be to pick up the Purchase Order Number which would allow this user to trace this small subset of
    PO’s back to the source system to find out why they are “delayed”.
    Storage
    Despite the name, these attributes typically remain in the fact table. There really isn’t much point in moving them out to an actual dimension – because of the high-cardinality there’s likely to be zero space savings…in fact it would probably cost you space
    due to the additional surrogate-keys.  You’ll also likely be paying a heavy price on the join at query time.
    Analysis Services Implementation
    For Junk Dimensions, you will create a new dimension at the project-level pointing it to the table (or view) in the data warehouse that materializes the distinct combinations of values for the various junk-attributes.  After configuring the dimension at
    the SSAS project-level, it can be added to the cube(s) and linked up to the measure group(s) via regular relationships (where appropriate).
    For Degenerate Dimensions, the process is the same except you base the project-level dimension off of the fact table (or view). Once the project-level dimension is configured, it can be added to the cube(s) and linked up to the measure group(s) using “fact”-relationships
    (where appropriate).
    Please mark as Answer if this helps!
    Rajasekhar.

  • How to implement mapping for a slowly changing dimension

    Hello,
    I don't have any experience with OWB and I need some help.
    I just don't know how to create the ETL process for a slowly changing dimension.
    My scenario is that I have 2 operative systems providing customer information, a staging area and a dwh with a customer dimension with SCD type 2 (created within OWB).
    The oltp data is already transferred to the staging area. But how should the mapping for the dwh table look like? Which operators have to be used?
    I have to check whether the customer record is new or just updated. How can I check every attribute? A new record shall be loaded, an updated record shall be historized (as I configured it in the SCD type 2). I just don't know how the trigger of the SCD is activated. Do I have to try an update on the trigger attribute and then automaticalle a new record is created? But with which operator can I do this? How should the mapping look like? Or is this impossible and do I have to implement this functionality with SQL code only?
    I know how to implement this with SQL code, but my task is to implement this in OWB.
    As you see I did not understand the logic of OWB so far and I hope somebody can help me.
    Greetings,
    Joerg

    Joerg,
    Check the blog below which provides good detail and also check the OWB documentation
    http://www.rittmanmead.com/2006/09/21/working-through-some-scd-2-and-3-examples-using-owb10gr2/
    Thanks,
    Sam.

  • Export all maps (mappings for all dimensions in EXCEL)

    Hi,
    it shouldn't be an unknown issue - but unfortunately I can't find the way :-(

    Below is updated code with the following changes :
    - Adjusted SaveAs logic to prevent Excel prompts in the event the file already exists, etc. (i.e. DisplayAlerts TRUE / FALSE)
    - Added Range creation logic for each worksheet page. If I really wanted perfect code, could do this better, but it gets the job done.
    Sub ExportAllCurrDimMapsForLocationtoXLS()
    'UpStream WebLink DM Custom Script:
    'Created By:         cbeyer
    'Date Created:       11-23-11
    'Purpose:               Export all dimension maps to an Excel workbook      
    'Declare Constant
    'NOTE : This will control whether the function gets the current map in the system or whether it looks back for a specific Period
    '       FDM stores the Map for each period that was loaded... You may want to export a particular POV Period for audit purposes, etc.
    '       IF you enable this, be sure to set the POV Period before running.....
    Const boolgetPOVPeriodMap = False
    'Declare working variables
    Dim intPartitionKey
    Dim strOutputMessage
    Dim strSQL
    Dim strCategoryFreq
    Dim objPeriodKey
    Dim strOutputFileName
    Dim strOutputFilePath
    'Get the location (PartitionKey
    intPartitionKey = RES.PlngLocKey
    'Create SQL Query to get Current Map Data
    If boolgetPOVPeriodMap = False Then
         strSQL = "SELECT * FROM tDataMap where PartitionKey = " & intPartitionKey & " order by DimName ASC"
    Else
         strCategoryFreq = API.POVMgr.fCategoryFreq(API.POVMgr.PPOVCategory)
         Set objPeriodKey = API.POVMgr.fPeriodKey(API.POVMgr.PPOVPeriod, 0, strCategoryFreq)
         strSQL = "SELECT * from vDataMap where PartitionKey = " & intPartitionKey & " and PeriodKey = '" & objPeriodKey.dteDateKey & " 12:00:00 AM' order by DimName Asc"
    End If
    'Create Recordset for all Exported Entities
    Set rsMap = DW.DataAccess.farsKeySet(strSQL)
    If rsMap.EOF And rsMap.BOF Then
         'No records
         If boolgetPOVPeriodMap = False Then
              strOutputMessage = "No Mapping data was found For " & API.POVMgr.PPOVLocation & ".  If this location Is using Parent Maps, you can only export mapping data at the parent location."     
         Else
              strOutputMessage = "No Mapping data was found For " & API.POVMgr.PPOVLocation & " for period " & API.POVMgr.PPOVPeriod & ".  If this location Is using Parent Maps, you can only export mapping data at the parent location."          
         End If
    Else
         'Records Exist, process
         'Generate file name / path
         If boolgetPOVPeriodMap = False Then
              strOutputFileName = API.POVMgr.PPOVLocation & "_DimensionMaps.xls"
         Else
              strOutputFileName = API.POVMgr.PPOVLocation & "_" & objPeriodKey.strDateKey & "_DimensionMaps.xls"
         End If
         strOutputFilePath = DW.Connection.PstrDirOutbox & "\ExcelFiles\"
         'Create Excel file reference     
         'Declare Excel working variables
         Dim oExcel
         Dim oBook
         Dim oSheet 'No puns here......
         Dim oRange
         Dim intCurrentSheetOrdinal
         Dim intCurrentRowOrdinal
         Dim intCurrentColOrdinal
         'Intialize Excel
         Set oExcel = CreateObject("Excel.Application")
         Set oBook = oExcel.Workbooks.Add
         'Declare working variables
         Dim strCurrDimName
         'Initialize variables
         strCurrDimName = ""
         intCurrentSheetOrdinal = 1
         intCurrentRowOrdinal = 1
         intCurrentColOrdinal = 1
         With rsMap
              Do Until .eof
                   'Check to see if current DimName matches existing DimName.  If not, add headers
                   If rsMap.fields("DimName") <> strCurrDimName Then
                         'If the dimension name has changed to a different dimension name, show total information before starting headers
                         'If the previous dimension was not "", then we are transitioning from one range to the next.  Lets create a named range on the just
                         'finished worksheet because we can or because you may want to use this for re-uploading
                         'NOTE : The range I'm creating is more for reference as to how to implement this and I don't know if I'm making the range in a fashion that
                         'FDM will pickup for importing. 
                         'NOTE : You probably want intCurrentRowOrdinal - 1 since it is 1 row past the last row of data at this point.  If you want to clean it up,
                         'then you need to make sure RowOrdinal is not going to be less than the starting point and I didn't feel like adding the couple rows of
                         'code to do the work properly as FDM will just ignore the blank row in all likelihood.
                                                                      If strCurrDimName <> "" Then
                                Set oRange = oSheet.Range("A6:K" & intCurrentRowOrdinal)
                                oBook.Names.Add "ups"&strCurrDimName, oRange
                         End If
                         'Create worksheet reference
                           Set oSheet = oBook.Worksheets(intCurrentSheetOrdinal)                    
                          'Create default header at top of each new dimension group
                             If boolgetPOVPeriodMap = False Then
                                  oSheet.range("A1") = (API.POVMgr.PPOVLocation & " - Map Conversion")
                             Else
                                  oSheet.range("A1") = (API.POVMgr.PPOVLocation & " - Map Conversion for " & rsMap.fields("PeriodKey"))
                             End If
                             oSheet.range("A3") = "Partition: " & API.POVMgr.PPOVLocation
                             oSheet.range("A4") = "User ID: " & DW.Connection.PstrUserID
                             'NOTE: I could make an array of the field names and do a loop here; however, this is easier to read.....
                             '      probably not how I would do it from an efficiency standpoint, but since it's a limited number of fields
                             '      this will work.....
                                 oSheet.range("A5") = "PartitionKey"
                                 oSheet.range("B5") = "DimName"
                                 oSheet.range("C5") = "Source FM Account"
                                 oSheet.range("D5") = "Description"
                                 oSheet.range("E5") = "Target FM Account"
                                 oSheet.range("F5") = "WhereClauseType"
                                 oSheet.range("G5") = "WhereClauseValue"
                                 oSheet.range("H5") = "-"
                                 oSheet.range("I5") = "Sequence"
                                 oSheet.range("J5") = "DataKey"
                                 oSheet.range("K5") = "VBScript"
                             'Update variables                   
                                strCurrDimName = rsMap.fields("DimName")
                                intCurrentRowOrdinal = 6
                                intCurrentSheetOrdinal = intCurrentSheetOrdinal + 1
                                'Update worksheet name
                                oSheet.name = strCurrDimName
                   End If
                     'Write Details
                            oSheet.range("A" & intCurrentRowOrdinal) = intPartitionKey
                     oSheet.range("B" & intCurrentRowOrdinal) = rsMap.fields("DimName").Value
                     oSheet.range("C" & intCurrentRowOrdinal) = rsMap.fields("SrcKey").Value
                     oSheet.range("D" & intCurrentRowOrdinal) = rsMap.fields("SrcDesc").Value
                     oSheet.range("E" & intCurrentRowOrdinal) = rsMap.fields("TargKey").Value
                     oSheet.range("F" & intCurrentRowOrdinal) = rsMap.fields("WhereClauseType").Value
                     oSheet.range("G" & intCurrentRowOrdinal) = rsMap.fields("WhereClauseValue").Value
                     oSheet.range("H" & intCurrentRowOrdinal) = rsMap.fields("ChangeSign").Value
                     oSheet.range("I" & intCurrentRowOrdinal) = rsMap.fields("Sequence").Value
                     oSheet.range("J" & intCurrentRowOrdinal) = rsMap.fields("DataKey").Value
                     oSheet.range("K" & intCurrentRowOrdinal) = rsMap.fields("VBScript").Value
                   'Increment Counters
                   intCurrentRowOrdinal = intCurrentRowOrdinal + 1
                   'Move to the next record
                   .movenext
              Loop
         End With
         'Final Sheet Named Range addition
         'Since the loop will end and we will not execute the above logic to create the range for the previous sheet
         'the easiest (laziest) solution is to just handle the last sheet after the loop.
         'We're basically doing the same stuff we did above, just down here.
          If strCurrDimName <> "" Then
              Set oRange = oSheet.Range("A6:K" & intCurrentRowOrdinal)
               oBook.Names.Add "ups"&strCurrDimName, oRange
          End If      
         'Close / release file objects
         'Added some logic here to ensure you don't get caught up on the file replace prompt.
         oExcel.Application.DisplayAlerts = False
         oBook.SaveAs strOutputFilePath & strOutputFileName
         oExcel.Application.DisplayAlerts = True
         oExcel.Quit
         'Create output message          
         strOutputMessage = "Mapping data export for " & API.POVMgr.PPOVLocation  & " complete.  Extract file is : " & strOutputFilePath & strOutputFileName
    End If
    'Close / release data objects
    rsMap.close
    'Display output
    If LCase(API.DataWindow.Connection.PstrClientType) = "workbench" Then
              MsgBox strOutputMessage       
    Else
         'Let the user know we are done
         RES.PlngActionType = 2
         RES.PstrActionValue = strOutputMessage
    End If
    End SubEdited by: beyerch2 on Dec 14, 2011 9:43 AM

  • Error while create aggmap for concatenated dimension ???

    How can I create aggmap for concatenated dimension ??
    I created dimensions named awprod_lvl0 ,awprod_lvl1,awprod_lvl2,awprod_lvl3,awprod_lvl4 and concatenated with a dimension awproducts. Then I created a parent relation awproducts.parents and mapped into the relational tables using sql fetch procedure .Iam able to see values in the olap work sheet .When i tried to create aggmap for different aggregation , it is throwing an error??It is telling that awproducts and awpro_lvl4_id cannot appear because they share same base level dimension...
    can anyone help in resolving this problem?????

    Jithesh, could you provide the exact definitions for the aggmaps, dimensions and relations that you're using?

  • How to populate a static junk dimension made of N boolean flags

    Hi, we want to populate a junk dimension (a table with N boolean fields - 18 in our case).
    The records must contain all the possibile combinations of all the fields (with 18 integer fields whose value can be either 0 or 1, the number of possible combinations is 262144).
    I'm looking for suggestions on how to do this (with a single SQL statement or with a cursor inside a procedure, they are both fine).
    Thanks,
    Andrea

    You could use cross products/joins to achieve the result. Here is an example:
    SQL> WITH boolean_flags AS
      2  (
      3          SELECT  0 AS FLG FROM DUAL UNION ALL
      4          SELECT  1 AS FLG FROM DUAL
      5  )
      6  SELECT  A.FLG
      7  ,       B.FLG
      8  ,       C.FLG
      9  FROM    BOOLEAN_FLAGS   A
    10  ,       BOOLEAN_FLAGS   B
    11  ,       BOOLEAN_FLAGS   C
    12  /
           FLG        FLG        FLG
             0          0          0
             0          0          1
             0          1          0
             0          1          1
             1          0          0
             1          0          1
             1          1          0
             1          1          1If you need it to be more dynamic you can generate the SQL dynamically as shown below. This example would work for the number of columns ranging from 1-26 (I didn't do heavy testing):
    SQL> VAR c REFCURSOR;
    SQL>
    SQL> DECLARE
      2          numDimensions   NUMBER  := 3;
      3          sqlText         VARCHAR2(4000) :='WITH boolean_flags AS
      4                                          (
      5                                                  SELECT  0 AS FLG FROM DUAL UNION ALL
      6                                                  SELECT  1 AS FLG FROM DUAL
      7                                          )
      8                                          SELECT A.FLG ';
      9          sqlFromText     VARCHAR2(4000) :='FROM BOOLEAN_FLAGS    A';
    10  BEGIN
    11          FOR i IN 2..numDimensions
    12          LOOP
    13                  sqlText := sqlText || ', ' || CHR(64+i) || '.FLG ';
    14
    15                  sqlFromText := sqlFromText || ', BOOLEAN_FLAGS ' || CHR(64+i);
    16          END LOOP;
    17
    18          OPEN :c FOR sqlText || sqlFromText;
    19  END;
    20  /
    PL/SQL procedure successfully completed.
    SQL> PRINT C
           FLG        FLG        FLG
             0          0          0
             0          0          1
             0          1          0
             0          1          1
             1          0          0
             1          0          1
             1          1          0
             1          1          1
    8 rows selected.Edited by: Centinul on Dec 28, 2009 9:35 AM

  • How to defne user mapping for a Webservice method to acheive single sign on

    I all,
    I have created a Web service System using a url (containing full path of my wsdl )
    Now this particular wsdl(my webservice) has an <b>authenticate method</b> , which takes username and password.
    wanted to know is there any way that i can do user mapping for it .
    i.e when i create an ivew for this web service system using authenticate method , it should pick up the username and password from the user mapping. presently the ivew itself asks for username and password ?
    else can anyone tellme is there a way to do user mapping for my web service system that i have created using a wsdl url. presently it works with any junk username password, i mean the connection always succeds , may be because accessing a wsdl dosent requires any user name and password.
    thanks

    I all,
    I have created a Web service System using a url (containing full path of my wsdl )
    Now this particular wsdl(my webservice) has an <b>authenticate method</b> , which takes username and password.
    wanted to know is there any way that i can do user mapping for it .
    i.e when i create an ivew for this web service system using authenticate method , it should pick up the username and password from the user mapping. presently the ivew itself asks for username and password ?
    else can anyone tellme is there a way to do user mapping for my web service system that i have created using a wsdl url. presently it works with any junk username password, i mean the connection always succeds , may be because accessing a wsdl dosent requires any user name and password.
    thanks

  • How to define an aggregation rule for a dimension based on bridge table?

    Hello,
    I need a solution for aggregating data correctly when using a dimension based on a set of dimensione tables containing a bridge table. Please find below a description of my business case and the OBIEE model which I’ve created thus far.
    Business Case
    The company involved wants to report on the number of support cases, the different types of actions that were taken and the people involved in those actions. One support case will undergo a number of actions (called ‘handelingen’) until it is closed. For each action at least one person is involved performing a specific role, but there can also be multiple persons involved with 1 action, each performing a different role for that action. This is the N : N part of the model.
    The problem that I face is visible in the two pictures below:
    http://i84.photobucket.com/albums/k24/The_Dutchman_2006/OBIEE/sample.png
    As long as I don’t include anything from the Dimension Meelezer in my report, I get the correct number of handelingen (7). When I include the person (called ‘Meelezer’), the measuere per action is multiplied by the number of persons/roles involved with that action.
    When I changed the Aggregation rule in the report column #Handelingen to ‘Server Complex Aggregate’ I do get the correct endtotal:
    http://i84.photobucket.com/albums/k24/The_Dutchman_2006/OBIEE/sample2.png
    I believe it should be possible to define in the repository a different aggregation rule for individual dimensions, but I’ve not been able to achieve this.
    Explained below is what I have created in my Physical and Business Model & Mapping layers:
    The Physical Model is built like this:
    (This is just a small part of a much larger physical model, but I’ve only included the most relevant tables)
    http://i84.photobucket.com/albums/k24/The_Dutchman_2006/OBIEE/PhysicalDiagram-1.png
    The Fact table (ALS Feit Zaakverloop) contains FK’s for the action (FK_HANDELING, joined to ALS Dim Handeling), the date the action took place (FK_DATUM_ZAAKVERLOOP, joined to ALS Dim Datum Zaakverloop) and the uniqe group of people involved (FK_MEELEZERS, joined to ALS Groep Meelezers) and a measure column (SUM_HANDELINGEN) populated with the value ‘1’ for each row.
    The Bridge table (ALS Brug Meelezer/Reden Meelezen) contains three FK’s: FK_GR_MEELEZERS (joined to ALS Groep Meelezers), FK_MEELEZER (joined to ALS Dim Functionaris) and FK_REDEN_MEELEZEN (joined to ALS Dim Reden Meelezen).
    The Business Model
    In the business model, the four physical tables for the N:N relation have been combined into one logical dimension table.
    http://i84.photobucket.com/albums/k24/The_Dutchman_2006/OBIEE/BusinessModel-1.png
    DIM Meelezer contains one LTS in which the four physical tables have been combined:
    http://i84.photobucket.com/albums/k24/The_Dutchman_2006/OBIEE/LTS1.png
    And all the required locical columns have been created:
    http://i84.photobucket.com/albums/k24/The_Dutchman_2006/OBIEE/LTS2.png
    DIM Meelezer has also been identified as a bridge table and a Business Key has been defined on a combination of the FK’s in the bridge table and business codes of the two dimension tables.
    http://i84.photobucket.com/albums/k24/The_Dutchman_2006/OBIEE/BMDIM.png
    Next a hierachy was created for Dim Meelezer:
    http://i84.photobucket.com/albums/k24/The_Dutchman_2006/OBIEE/Hier.png
    In Feit Zaakverloop, a measurement called ‘# Handelingen’ was created using SUM_HANDELINGEN, with an aggregation rule of SUM.
    In the LTS of both the DIM Meelezer and Feit Zaakverloop, the Logical Content Levels have both been set to: LVL Detail – Meelezer.
    Please provide suggestions that will NOT require changes to the physical datamodel as they would require too much time to achieve (or at leats would not be ready before my deadline.
    Thanks!
    Edited by: The_Dutchman on Dec 13, 2011 11:43 AM

    Hmm, no replies yet...
    Am I in 'uncharted territory' with this issue?

  • Create hierarchy for a dimension in Oracle Express Administrator

    I have a lookup table called 'Location'. This lookup table has a primary key PKLOC which is made up of 2 columns, State Varchar2(20) and City Varchar2(20). This primary key obviously is a lookup for a dimension of one of my cube and the data in the primary key is hierarchical with 2 levels, namely state and city. I need to import this data into my dimension, Location, using Relational import, in the following form.
    eg. Level 1 Level 2
    MD ---- Odenton, Baltimore, Fort Meade
    VA ---- Dulles, Fair Fax
    where MD and VA will come from the column State Varchar2(20) and Odenton, Baltimore, Fort Meade
    Dulles and Fair Fax will come from the column City Varchar2(20).
    The values in my lookup table will look like this
    State City
    MD Odenton
    MD Baltimore
    MD Fort Meade
    VA Dulles
    VA Fair Fax
    how do I import it.

    You need to do this in your source table.
    The source table can look something like this
    qtr_id, qtr_name, month_id, month_name
    1 , Qtr1 , 101 , january
    1 , Qtr1 , 102 , febuary
    1 , Qtr1 , 103 , march
    2 , Qtr2 , 104 , april
    2 , Qtr2 , 105 , may
    2 , Qtr2 , 106 , june
    Then map it to the dimension, and maintain it.
    Keep in mind that the member(id) fields need to be unique. I.E january 2007 and january 2006 cannot have the same id.
    Ragnar

  • Surrogate Key and Map for Cube

    Hi
    I am new to Data Warehousing and am trying to use OWB 11g.
    I am trying to create dimensions with multiple levels. When I create more than one level it need to have surrogate as well business key for each dimension level. But I can create only one surrogate in the dimension, there is no option to create multiple surrogate keys in the same dimension. so what am I missing?
    My second question is regarding cube. Do I need to create a Mapping for a cube? if yes, should I move the data to the cube from the dimensions? and where will the measures come from? do i need to load the measures or they will be calculated automatically?
    please reply...
    regards
    Arif

    hi
    Got it, Yes that was the reason,
    The table was not properly deployed after the dimension was modified.
    Anyway, the describe of the table is as follows
    describe arif.QUESTION_DIM
    Name Null Type
    DIMENSION_KEY NOT NULL NUMBER
    IGV_ID NUMBER
    PER_ID NUMBER
    DIM_ID NUMBER
    IGO_ID NUMBER
    INQ_ID NUMBER
    ID NUMBER
    DIM_ORDEM NUMBER
    DIM_AMBITO VARCHAR2(3)
    DIM_NOME VARCHAR2(150)
    10 rows selected
    Now, I am having another problem,
    when, I deploy the Map to load the data from three different tables, it gives the following problem
    Name               Action               Status          Log
    QUESTION_MAP          Create               Warning          ORA-06550: line 297, column 25:
                                            PLS-00302: component 'ID' must be declared
    QUESTION_MAP          Create               Warning          ORA-06550: line 1153, column 11:
                                            PL/SQL: SQL Statement ignored
    QUESTION_MAP          Create               Warning          ORA-06550: line 1155, column 15:
                                            PL/SQL: ORA-00904: "QUESTION_DIM"."ID": invalid identifier
    QUESTION_MAP          Create               Warning          ORA-06550: line 1155, column 31:
                                            PLS-00302: component 'ID' must be declared
    QUESTION_MAP          Create               Warning          ORA-06550: line 233, column 1:
                                            PL/SQL: SQL Statement ignored
    QUESTION_MAP          Create               Warning          ORA-06550: line 2539, column 11:
                                            PL/SQL: SQL Statement ignored
    QUESTION_MAP          Create               Warning          ORA-06550: line 2541, column 15:
                                            PL/SQL: ORA-00904: "QUESTION_DIM"."ID": invalid identifier
    QUESTION_MAP          Create               Warning          ORA-06550: line 2541, column 31:
                                            PLS-00302: component 'ID' must be declared
    QUESTION_MAP          Create               Warning          ORA-06550: line 297, column 9:
                                            PL/SQL: ORA-00904: "QUESTION_DIM"."ID": invalid identifier
    Edited by: user643560 on Oct 22, 2008 9:38 AM

  • Expert - Generating SCD Type2 Mapping for a Table Operator - To Share

    Hi All,
    I have created an Expert which generates a SCD Type2 Mapping for a Table Operator being used as Dimension.
    Let me know how I can share this expert. This forum has helped answer many questions and I would like to contribute.
    Thanks,
    Sam.

    Hi David,
    I am trying to follow the steps as on that page. But I am stuck at step 5 - to upload the zip file. I cannot find the "Add an Attachment" link in the page toolbox.
    The steps on that page are
    1)Use the link in the "Page Toolbox" (right-hand column) to add a new page, with a title describing the expert or script.
    2)In the keywords for the page, enter "OWB USER CONTRIBUTED EXPERT".
    3)On that page, describe the expert or other script, the version of OWB it was developed for (including patch level), how to install and use it, and who to contact with any questions.
    4)Package the Expert files in a Zip file.
    5)Use the "Add an Attachment" link in the Page Toolbox to upload your Zip file as an attachment to the page for your expert. Alternatively, post a link to your own web site where the expert can be downloaded.
    Thanks,
    Sam.

Maybe you are looking for

  • How to fix lines in Illustrator

    Hi! I need some help to fix some lines on a CNN logo made in Illustrator. If any pros out there have a couple of minutes to fix the lines so that the curves are more smooth, I need it for my computer class. Its a CNN and a Coca Cola logo. I would be

  • Drop db link problem

    Hi I am trying to drop an db link and it says that the dblink does not exist . Here is the db link info select OWNER,DB_LINK from dba_db_links; OWNER DB_LINK SMART_DEPLOY RCD_D.CONTACT.CO.IN SMART_DEPLOY RCD.CONTACT.CO.IN Now i try to give the comman

  • Approve workflow step via outlook

    Good morning! I have a problem with SAP Business Workflow. I want to prepare a workflow what have steps what can be approved from outlook/e-mail. How can I achieve this? I need just only one approve and one reject button. Can I send out to a mailbox

  • Help please with saving to jpg automatically

    Hello, I have been working with photoshop a while and used to be when I clicked "save as" the ext jpg was there automatically, now it is wanting to save everything as a photoshop extention.  How do I get it to go back to saving as jpg autmatically. 

  • Help me with smart form name s pls

    Hi Experts , Pls tell me the smartform names. I shall give u the reportname. Quantity Contract Rejection letter pertaining to purchase RFQ Returns Delivery Returns (Pur Ord) Acceptance of RFQ RMA Request Value Contract Lean WM Transfer packing slip P