Building dimensions that are based on surrogate keys

Hi -
I am new to AWM and have a question.
I read the docs, but I still do not understand how to build a cube using AWM.
So we have a DW with dimensions and fact tables. The dimension tables use surrogate keys.
The fact table uses the surrogate keys of the dimensions.
I want to define the time dimension in AWM.
The unique key for the dimension is the surrogate key (time_key).
In AWM I defined levels: day, month and year.
Would the hierarchy for the day level be:
time_key -> day?
Thanks,
Frank

Thankyou so much.
now when I try that here is the error that I get for that
line:
1118: Implicit coercion of a value with static type
flash.display:DisplayObject to a possibly unrelated type
flash.display:MovieClip.
I've placed a zipfile with my FLA, .as and .xml here:
http://bigfins.com/temp/test5xml.zip
The actionscript alone is below.
Thankyou again for any assistance.

Similar Messages

  • People refinement panel not showing filters that are based on the taxonomy

    Hi,
    I am just wondering if anyone have experienced the problem below or anyone has a solution:
    I have set up enterprise search center and have left the People Refinement panel as default without changing or modifying the web part.  However, the people refinement panel is only showing the "View" filter category and the other default
    categories that are based on the taxonomy  the managed data properties are not getting displayed.  Also, when I search for a specific managed property that is mapped to a user profile property that is based on the taxonomy - I did not get any result.
    The only related error I found was in the ULS log which start with below logs from the Query Processor category of SharePoint Server Search in ULS:
    "Claim http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier: [domain\username] cannot be converted into SPClaim. Argument is an invalid original issuer identifier.  Parameter name: originalIssuer"
    The screen shot below shows more of the ULS log.
    It will be helpful if any one has experience this and can advise.
    Thanks
    SO.

    Hi all,
    further info on above problem below:
    I have really look into the ULS logs further down again and discovered a more likely cause of this problem is that a query likely issued by Query Processor is returning zero (0) results at ULS log entry below:
    GetRowsReturned 0 rows   [svcproxy.cxx:523]  d:\office\source\search\native\ytrip\tripoli\bigtable\svcproxy.cxx
    More details below:
    Does anybody knows what line 523 in svcproxy.cxx mean and how to investigate further?
    thanks
    SO

  • Query time affected when using dimensions that are at a lower grain

    Hi all,
    I have a product dimension that has one hierarchy and 7 levels: All Product -> Category -> BU -> Class -> Department -> SubDept -> Item. The lowest level has about 8 million members. The Department level has about 1500 members
    Some of my Cubes are actually mapped to fact tables where the grain is at Department level. So I've ensured that in the Cube Mappings Editor, the Department Id of the fact table is mapped to the Department level of the Product Dimension, and I can actually see in the Cube's Aggmap, it is using LOAD_STATUS to limit the Product dimension to the Department level members for the aggregation.
    Querying the Cube using SQL brings back the correct result across different level combination, however the query constantly takes about 2 - 3 mins to complete.
    As a test, I've built another dimension that goes down to the Department level only, and issue the same query against the Cube. The difference is significant as the query takes roughly less than 1 second to complete, and returns exactly the same result.
    Any idea? I am using AWM 11.2.0.1.0A
    Thanks

    The stats you posted are puzzling. Usually the sum of loop and fetch time is close to the total time, but there is a big missing chunk of time in your case. It is clearly related to the calculated measures, since removing them solves the problem.
    The most common problem with calculated measures is that they can cause the cube to loop densely (i.e. all logical member combinations) instead of sparsely (i.e. only the member combinations that have data). But I don't think this is the problem in your case since the difference between rows_read and rows_returned is small
    ROWS_READ 212ROWS_RETURNED 185
    NULLTRACK_SUPPRESSED 27>
    If dense looping has happened then the rows_read is often orders of magnitude greater than rows_returned. You can see the looping strategy by running
    select value || ' : ' || details as loop from cube_operations_log where name = 'LOOP_OPTIMIZED'Here is an example of the output for a good (sparse) loop.
    LOOP
    ON : LOOP AGGMAP(PRICE_COST_CUBE_SOLVE_AGGMAP PRICE_COST_CUBE_PRT_TEMPLATE)Here is the output if I add a year to date calc to the cube.
    LOOP
    ON : LOOP UNION(AGGMAP(PRICE_COST_CUBE_SOLVE_AGGMAP PRICE_COST_CUBE_PRT_TEMPLATE
    ) AGGMAP(DENSE(TIME) PRICE_COST_CUBE_SOLVE_AGGMAP PRICE_COST_CUBE_PRT_TEMPLATE))Note that TIME is now looped densely, but the code is still trying to loop the other dimensions sparsely. Finally, here is the loop if I add a random olap dml calculation to the cube.
    LOOP
    DISABLED :There is now no optimized looping and the cube will be looped densely.
    So it may be worth checking the loop descriptor for your fast and slow cases, but my best guess at the moment is that the performance gap has something to do with your specific calculations. If I were you I would add them back one at a time to see if you can find a particular measure, or type of measure, that is causing the slowdown.

  • How to create surrogate key in dimension without unique value

    Hi, I have a dimension where there is no column with unique value. I want to add a surrogate key to replace the existing primary key which is derived from concatenating 3 columns(e.g. 'A'||'B'||'C'). I'm thinking of using sequence. But this won't allow me to link the dimension to fact table. How do I come up with surrogate key under this situation? Thanks. ~Tracy

    I'm actually trying to accomplish something similar myself.
    In my sources I've got two sorts of customers, ones that are directly reported, and ones whose information is provided with sales records (this is stored in module ODS).
    Of course identification is different, but in the datamart (module DWH) I'm sort of forced to use an equivalent way of loading (due to the way it first used to work). To accelerate lookups on dimensions, I copy the ODS surrogate key to DWH dimensions, but this does not work for the 'inbuilt' customers because they do not have a surrogate key in the ODS.
    They DO have means of unique identification, and at first I thought I could concatenate these (also 3) columns to use as identification code. Unfortunately this is VARCHAR2, where the surrogate key is (naturally) NUMBER.
    So now it looks like I'm forced to first build a table in ODS especially for these 'inbuilt' customers and assign a surrogate key (by sequence) to it, this way it conforms to how 'normal' customers are loaded into DWH.
    I guess you'll have to pull of the same trick, i.e. create a table with either only the 'translation' of D-code to a surrogate key or all information that is fed into the dimension, which then can be used as a lookup or as complete source when loading data into your datamart.
    Good luck, Patrick

  • Best approach to delete records that are not in the source table anymore.

    I have a situation where I need to remove records from dimensions that are not in the source data anymore. Right now we are not maintaing history, i.e. not using SCD but planning for the next release. If we did that it would be easy to figure the latest records. The load is nightly and records are updated and new added.
    The approach that I am considering is to join the dimension tables the the sources on keys and delete what doesn't join. However, is there perhaps some function in OWB that would allow to do this automatically on import so it can be also in place for the future?
    Thanks!

    Bear in mind that deleting dimension records becomes problematic if you have facts attached to them. Just because this record is no longer in the active set doesn't mean that it wasn't used historically, and so have foreign key constraints on it in your database. IF this is the case, a short-term solution would be to add an expiry_date field to the dimension and update the load to set this value when the record disappears rather than to delete it.
    And to do that, use the target dimension as a source table, outer join it to the actual source table on the natural key, and so your update will set expiry_date=nvl(expiry_date,sysdate) to set to sysdate if this record has not already been expired on all records where the outer join fails.
    Further consideration: what do you do if the record is re-inserted into the source table? create a new dimension key? Or remove the expiry date?
    But I will say that I am not a fan of deleting records in most circumstances. What do you do if you discover a calculation error and need to fix that and republish historical cubes? Without the historical data, you lose the ability to do things like that.

  • How to create a dimension that will reference another dimension

    Im creating a new cube without having a schema or DSV in place yet.  Starting from scratch.  In my OLTP database I have a table 'Orders' which contains various FK references to other tables, which in turn might reference two other tables.
    For example.  Orders has a FK to a table called MarketAuthority.  This is a table that contains references to two other tables Market and Authority.  
    How can setup my dimension(s) to capture this, if Im starting with no DSV or schema for a data warehouse.
    Correct me if Im wrong, but I think I just setup a new dimension called MarketAuthority and use it from the Measuregroup for the Orders.  However, how will I reference the Authority.  I assume it will be a dimension as well, but how do I relate
    MarketAuthority and Authority?
    In other words, say you had these types of tables in your OLTP system
    Orders (salesperson, account, department ...)
    OrderDetails (references order, many to 1)
    Goals (references many of the same attributes eg. salesperson as order)
    Im thinking I need 3 separate measure groups?
    Im looking over the Adventureworks 2008 SSAS example project for how its setup.

    I think im looking at this all wrong.
    Again, with the example tables above, I can still create 3 different measure groups, but they all will need to reference some of the same dimensions.  This will result in 3 different fact tables when the schema is realized I believe?
    What I think i was missing was that something like an OrderDetail table, that refers back to an Order will need references also to the same attributes as the order, at least as regard to the fact table(s).
    In other words, if Orders has a SalesPerson key, account key etc, then OrderDetails will as well, IN ADDITION TO the order id as a measure.  
    Or ... does this sound like the case for a Fact type dimension?
    https://msdn.microsoft.com/en-us/library/ms167409(v=sql.105).aspx
    Hi Shiftbit,
    As you said, it related to Degenerate dimensions which also called fact dimensions, are standard dimensions that are constructed from attribute columns in fact tables instead of from attribute columns in dimension tables.
    http://www.jamesserra.com/archive/2011/11/degenerate-dimensions/
    Regards,
    Charlie Liao
    TechNet Community Support

  • About Surrogate Key and Dimension Key on OWB 10.2

    Hi, everyone.
    I am using OWB 10.2 and I have a question about Surrogate key and Dimension Key.
    I indicated the foreign key as VARCHAR2 type in Fact Table and Dimension Key as VARCHAR2 type is operated as Primary key in Dimension Table. I made Single Level in Dimension Table.
    I know that Dimension Key stores the surrogate ID for dimension and is the primary key of the table. Also, Surrogate ID should be only NUMBER type.
    So, in this case, Surrogate ID is NUMBER type
    Dimension key should be NUMBER type to store the surrogate ID.
    But, Dimension key also should operate the primary to relate Foreign key as VARCHAR2 type.
    How I can solve this confusing condition?
    Please let me know that.
    JWS

    Hi JWS,
    From a SQL point of view it should not be a problem to join a NUMBER field to a VARCHAR2 field because during execution there will be an implicite cast for the NUMBER value to a VARCHAR2 value. See the example below.
       SELECT * FROM DUAL
       WHERE   1 = '1'From an OWB point of view it is not possible to have a Dimension with an NUMBER value Key that has a relation to a VARCHAR2 value Foreign key in a Fact table. This is caused due to the creation of a Fact table in OWB in which the Foreign keys in it are build from de Dimension tables that refer to them.
    You will loose the reference to the Dimension when changing the type of the Foreign Key.
    To resolve this issue I would advise you to use a Sequence that generates your Surrogate Key (NUMBER type) for the Dimension table and store it in the Primary Key Column (VARCHAR2 type).
    When validating the mapping you will get a warning, but when executing this should give no problems.
    Regards,
    Ilona

  • 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

  • How we use Surrogate Keys for snowflake dimension

    Hi All,
    my question is - How we use  Surrogate Keys for  snowflake dimension
    i heard from some body Surrogate Keys only work with star schema.
    please correct me if i wrong.
    Regards,
    Manish

    Hi manishcal16PPS,
    According to your description, you can only create natural key in your dimension. But it's not working when using surrogate key. Right?
    In Analysis Services, the snowflake schema of the dimensions are represented by more than one dimension table in other words its takes multiple dimension tables to define a dimension. Surrogate key are just some extra, redundant, unique key based on the
    natural key. So there's no direct relationship or some limitations between surrogate keys and snowflake schema.
    In this scenario, since there's relationship between the two dimensions, you should create natural key. For using natural key or surrogate key. Please refer to an article below:
    Surrogate Key vs. Natural Key
    For understanding star/snowflake schema, please see:
    Understanding Star and Snowflake Schemas 
    Regards,
    Simon Hou
    TechNet Community Support

  • 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.

  • Implementing surrogate keys in dimensions

    hello,
    First thing, I'm new to ODI! I am using Oracle data integrator 10.1.3.
    I have a dimension table 'Dim_Contracts' as target table. The structure is as follows:
    PK_Dim_Contract Primary key (surrogate key - to be populated from an Oracle database sequence in the target)
    Contract_ID (normal field in target - no constraints in target- to be populated from source - originally a primary key in source)
    + other dimension attributes.
    from what i have googled out and read in the forum, i cannot define 'PK_Dim_Contract' as the primary key of my dimension (target) table, to be able to update it from the oracle sequence defined - rather the 'contract_ID', which is the natural key should be the primary key. Is that correct? If yes, isn't it against dimension modelling principle?
    More to the point, my question is: How do I populate a sequence in my primary key field in the target table?
    Thanks for your help.
    Regards,
    Anju

    Hello Anju,
    Welcome in the ODI community ;).
    What I suggest you is to set the UNIQUE KEY on Contract_ID in your target. This way you will be able to use flow control and do Incremental Update Loading.
    PK_Dim_Contract (surrogate key) can be your primary key in the dabatase.
    To populate PK_Dim_Contract from an Oracle Sequence, create it first in your Oracle DB. Add a new sequence to your project (left pane), choose Natural Sequence, choose your schema and enter the name of your Oracle Sequence.
    In your interface, define the mapping of PK_Dim_Contract as
    :<ODI_SEQUENCE_NAME>_NEXTVALand execute this mapping on the target.
    Note: :<ODI_SEQUENCE_NAME>_NEXTVAL works only for SQL Statements. If you want to use the sequence somewhere else, use the following syntax :
    #<ODI_SEQUENCE_NAME>_NEXTVALHope it helps,
    Jerome

  • What are the surrogate key and row_number( )

    what are the surrogate key and row_number( ) function, and why do not we always make the row_number a primary key in the table.

    Mohannad,
    we just try to safe your efforts and to prevent common
    mistakes you can make.
    Look here.
    Your requirement is to avoid gaps in sequence.
    OK. But it means you HAVE to lock your sequence
    exclusively until you commit transaction.
    Also, it means you have to rollback sequence
    number to original value if you rollback you
    entire transaction.
    SQL> create table my_tab (id number);
    &nbsp
    Table created.
    &nbsp
    SQL> create table numer_tab (id number);
    &nbsp
    Table created.
    &nbsp
    SQL> insert into numer_tab values(0);
    &nbsp
    1 row created.
    &nbsp
    SQL>  create or replace trigger
      2   tr_no_gap
      3   before insert on my_tab
      4   for each row
      5   begin
      6    /* Let's lock sequence in exclusive mode */
      7    update numer_tab set id = id + 1
      8    returning id into :new.id;
      9   end;
    10  /
    &nbsp
    Trigger created.Now I havn't to worry about gaps:
    Fisrt session:
    SQL> insert into my_tab values(null);
    &nbsp
    1 row created.because my next session is waiting:
    SQL> insert into my_tab values(null);
    &nbspI do commit in first and second session -everything is OK:
    SQL> commit;
    &nbsp
    Commit complete.
    &nbsp
    SQL> select * from my_tab;
    &nbsp
            ID
             2
             1Now I do the same but do rollback in 1th:
    SQL> insert into my_tab values(null);
    &nbsp
    1 row created.
    &nbsp
    SQL> rollback;
    &nbsp
    Rollback complete.and commit in 2th:
    SQL> insert into my_tab values(null);
    &nbsp
    1 row created.
    &nbsp
    SQL> commit;
    &nbsp
    Commit complete.No gaps:
    SQL> select * from my_tab;
    &nbsp
            ID
             2
             3
             1Now I will not lock sequence resource due a transaction:
    SQL>  create or replace trigger
      2   tr_no_gap
      3   before insert on my_tab
      4   for each row
      5   declare
      6    pragma autonomous_transaction;
      7   begin
      8    /* Let's lock sequence in exclusive mode */
      9    update numer_tab set id = id + 1
    10    returning id into :new.id;
    11    commit;
    12   end;
    13  /
    &nbsp
    Trigger created.And I repeate my last operation.
    Both inserts execute immediately
    1th
    SQL> insert into my_tab values(null);
    &nbsp
    1 row created.2th
    SQL> insert into my_tab values(null);
    &nbsp
    1 row created.Now I rollback the first and commit the second.
    And what I see is the gap:
    SQL> select * from my_tab;
    &nbsp
            ID
             2
             3
             5
             1We are just trying to explain what you will have to
    pay the serious price of performance in the
    absence of gaps and you will have the lack
    of Oracle multithreading advantage in this case.
    I doubt your customers will happy with that.
    Rgds.

  • I need chords that are unavailable once you make a "key selection.  What would be ideal is for APPLE to allow you to use the 8 available chords for your own choice.  It is very limiting.  Especially when writing.

    I want the ability to load chords into the 8 available positions once I have chosen a KEY.  Currently Apple loads up the primary major and minor chords within that key.  However it would work much better if I had the option to replace some of their choices for my own.  In some songs I could use a 7th or not use a minor. 

    Yes, this would be VERY helpful. right now, the chord selections are limiting -- the ability to choose which chords you want in your 8 chord lineup would be very, very beneficial.
    I understand that the automated choices help the musical novices to find chords that are in the same traditional family. However, maybe the ability to override that or vary the selection would be good for both novices and more expert users.

  • Can I insert into a form build in FORMSCENTRAL, a Formula with the numerical data that are updated by a given formula, like in Excel?

    Can I insert into a form build in FORMSCENTRAL, a Formula with the numerical data that are updated by a given formula, like in Excel?

    Hello danna,
    please have a look there as a first step: http://helpx.adobe.com/acrobat-com/formscentral/topics.html  >>> Formula syntax for built-in functions  >>> http://helpx.adobe.com/acrobat-com/formscentral/help/formula-syntax-built-in-functions.htm l
    Hans-Günter

  • We are trying to transfer files from PS Elements 13 to our web builder.  We are getting a '?' in the top left hand corners of some of the image boxes. It seems that we are unable to transfer images with this ? on the image.  We have spent a long time taki

    We are trying to 'reconnect' files.  we seem incapable to do so, for some reason.  Try as we might, we aren't able to do it.  can anyone help?

    Please see other thread
    Re: We are trying to transfer files from PS Elements 13 to our web builder.  We are getting a '?' in the top left hand corners of some of the image boxes. It seems that we are unable to transfer images with this ? on the image.  We have spent a long time

Maybe you are looking for

  • Problem in FF7A after creation of FTR_CREATE an FD document

    Hello Freinds I had created an Fixed deposit document in FTR_CREATE for a company code with a BP number for a year period for Rs. 1000000/- in INR. But after saving the document i could not able to find out the details of the transaction in FF7A....

  • MSSQL connection with PHP in DW

    Hello, I know that DW 8 has a built-in connection when using php with a mysql database. However, I would like to connect to a remote Microsoft SQL Server with DW and php. Is there a way to make this connection ? Probably not built-in but maybe throug

  • How do I find completed projects from the theatre that have disappeared

    yesterday I had two movies saved in the theatre of imovie 10.  today they are gone.  Are they saved somewhere that i can't find?  I've looked thru all the projects in Imovie.  I believe this happened after the update that i installed today.

  • Copy mails from 3g to 4g

    Is there ANY way to copy ma mails, not the settings from my old ipod touch to the new one. it is really important. I've got 3 accounts and in every account there are a lot of mails, so how can i transfer them all from my old 3g to the new 4g. Thanks

  • Missing "Libraries" item in "Window" menu

    I received a CC email today telling me that I have been upgraded to be able to use libraries that enable sharing of assets across the PS CC community. "Libraries" does not appear as an option in the drop down list in "Window". It's missing. I'm using