Loading a degenerate dimension

Hi,
I have source data which is used to load both a SCD2 dimension and fact table. Since, the dimension is derived from the fact data and is not a measure we can call it as a degenerate dimension.
Ex:
Source Row -- A,B,C,D,E
Fact data - A,B,C
Degenerate dimension data - D,E
I have to load the SCD2 degenerate dimension with D,E and maintain the dimension surrogate in Fact table.
So,
Degenerate dimension - 111,D,E
Fact - 201 ,A,B,C,111
111 is the dimension surrogate
201 is the fact sequence no.
How do i identify A,B,C,D,E belong to a single row in the source data , so that i can maintain the dimension surrogate key with Fact records.
Is there a way OWB 10g R2 can handle this, or we have to join the dimension row with the source row based on D,E and get 111,A,B,C as output.
Any suggestion or document on how to load a degenerate dimension and fact would be highly appreciated ?
Thanks and Regards,
Chakri

Hi Chakri
Which version are you using? With pre 11gR2 you will probably have to load the cube using the (fact) table operator rather than the cube operator.
Cheers
David

Similar Messages

  • Error When Loading a Degenerate Dimension

    Hi,
    I have received the link > http://blogs.oracle.com/warehousebuilder/entry/owb_11gr2_degenerate_dimensions#comments
    from you to create a degenerate dimesion .
    I have create a DIM_DD_LOAN with two attribue loan_no_business with idenitifier business and a description then I deploy the table related to this dim is called DIL_DD_LOAN_TAB but I got this error
    ORA-37162: OLAP error
    XOQ-02102: cannot find object "BANK_STG.DIM_DD_LOAN"
    XOQ-02106: invalid property "Dimension" with value "BANK_STG.DIM_DD_LOAN" for object "BANK_STG.CUBE_PAID_LOAN.DIM_DD_LOAN" in XML document
    XOQ-02106: invalid property "ConsistentSolve" with value "SOLVE ( SUM OVER DIM_BANKS HIERARCHIES (STANDARD), SUM OVER DIM_BRANCHES HIERARCHIES (STANDARD), SUM OVER DIM_CUSTOMERS HIERARCHIES (STANDARD), SUM OVER DIM_REQUESTS HIERARCHIES (STANDARD), SUM OVER DIM_CURRENCIES HIERARCHIES (STANDARD), SUM OVER DIM_BONDS HIERARCHIES (STANDARD), SUM OVER DIM_COLLATERALLS HIERARCHIES (STANDARD), SUM OVER DIM_CONTRACTS HIERARCHIES (STANDARD), SUM OVER DIM_OWNERSHIPS HIERARCHIES (STANDARD), SUM OVER DIM_SEGMENTS HIERARCHIES (STANDARD), SUM OVER DIM_USAGE_CODES HIERARCHIES (STANDARD), SUM OVER DIM_LOAN_DIVISIONS HIERARCHIES (STANDARD), SUM OVER DIM_LOAN_PURPOSES HIERARCHIES (STANDARD), SUM OVER DIM_NOMINALS HIERARCHIES (STANDARD), SUM OVER DIM_LOCATIONS HIERARCHIES (STANDARD), SUM OVER DIM_DATES HIERARCHIES (STANDARD), SUM OVER DIM_DD_LOAN)" for object "BANK_STG.CUBE_PAID_LOAN" in XML document
    XOQ-02005: The Dimension "BANK_STG.DIM_DD_LOAN" referenced from object "BANK_STG.CUBE_PAID_LOAN" is not found.
    XOQ-02100: cannot parse server XML string
    ORA-06512: at "SYS.DBMS_CUBE", line 433
    ORA-06512: at "SYS.DBMS_CUBE", line 465
    ORA-06512: at "SYS.DBMS_CUBE", line 523
    ORA-06512: at "SYS.DBMS_CUBE", line 486
    ORA-06512: at "SYS.DBMS_CUBE", line 475
    ORA-06512: at "BANK_STG.OWB$XMLCLOB_TAT_BANK_STG_DW", line 513
    ORA-06512: at line 3
    can you help me??
    REgards,
    Sahar

    The degenerate dimension best practice I mention in the blog will not work for cube MVs, the cube MV will expect a dimension defined in the AW for any dimension defined in the cube. So if you followed the blog post to the word, you did not deploy the dimension so when the cube is deployed it is looking for the dimension object (which does not exist). If you did deploy it, then you would have to maintain the dimension...and it would not be degenerate.

  • Storing degenerate dimension info in an OWB 10gR2 cube

    Hi,
    I'm looking to store "degenerate dimension" information in an OWB 10gR2 cube. Typically in a DW, I'd just add a column to the fact table to hold the information. However, in OWB 10gR2, I don't see any way to add a column to a "cube" object - everything appears to either have to be a dimension surrogate key, or a measure.
    Not sure the best way to proceed. We've coded all our ETL using the standard cube objects and letting OWB do all the surrogate key lookup, etc. automagically for us, so I'd hate to be forced to go back to manually loading the fact tables. Is there an easier way?
    Thanks,
    Scott

    Hi Scott,
    The problems I've run into with dimensions and cubes are:
    Dimensions abort if there are many roles - about 4 is the limit. This is very bad for the time dimension which should have 100s of aliases. Unfortunately I can't use the Time dimension wizard because we require ISO-Weeks. My workaround is to create several Time dimensions manually and assign 4 roles to each.
    Naming - when I create several time dimensions with 4 roles each (see above), in the BI layer, the foreign keys in cubes are always named something like time_dim, time_dim_1, etc rather than named for role names. I have to manually rename them in tables and then when I deploy BI objects, manually rename them again in Discoverer Administrator.
    Redeploying just about anything is broken. Table upgrade plans are invalid (even after running the grant scripts that support recommended), Redeploying BI objects runs successfully but if you read the job output, it does nothing since the objects already exist - again, the upgrade option does nothing.
    Column ordering is random when deploying objects so I've taken to sorting alphabetically for our BI objects. Not ideal by any means.
    As for the time savings with lookups, I don't save nearly that much. Due to many composite keys in our source systems, I assign surrogate keys in our staging area. These become the "business keys" in our DW layer and consequently I end up doing lookups against the staging MAP tables - really no more or less difficult than looking up dimension keys. That is more a design choice than anything and may just be my "Kimball" habits dying hard.
    I'm encouraged to hear that you are having success. I chose to utilize the Dimensions and Cubes and so far am sticking with it. I'm hoping that there will be patches and/or point releases to OWB soon!

  • Limit rows for Degenerate dimension in SSAS 2012 Standard Edition

    Hi Experts,
    I have a fact table consisting of 4 measures and 6 descriptive fields. The Geography and Time dimension are separately palaced. I want to build SSAS cube on this schema.
    I have created the dimension from fact table itself for the descriptive fields. The scenario is that we are not loading complete fact table in SSAS. Only recent 2 years out of 10 years is brought into SSAS. But the degenerate dimension is procssesing all
    the rows from fact.   
    I want to limit the dimension processing to only recent two years of data. How will I be able to achieve this?
    Please help me out of this.
    Thanks,
    RuchikaG

    Use a view as the source for dimension. Inside that write logic to filter data from the fact for last two years.
    ie like
    WHERE dateField >= dateadd(yy,datediff,yy,0,getdate())-1,0)
    AND dateField < dateadd(yy,datediff,yy,0,getdate()) + 1 ,0)
    Then take distinct attributes from it for the dimension
    Please Mark This As Answer if it solved your issue
    Please Vote This As Helpful if it helps to solve your issue
    Visakh
    My Wiki User Page
    My MSDN Page
    My Personal Blog
    My Facebook Page

  • 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

  • Load Parent-Child dimension with attributes by rule file

    Well, I've cracked my head open while banging against this wall.
    Task is plain & simple:
    How can I load build dimension from such table, using rule file?
    Data
    ProductParent ProductChild ProductAttribute
    Balls Ball_8 Round
    I want to load both product dimension and attribute by single rule file (neither of these dimensions exists in database before load), so I do the following:
    1) Set dimension build settings, creating dimension Products (marking it P\C generated, sparse), having an attribute dimension AttributeDim
    2) Mark the fields as Parent, Child and AttributeDim of dimension Products
    After loading rule file a get three types of errors:
    a) "Base member (Balls) association level does not match base dimension association level" -- does this mean that I cannot assign attributes in P\C way?
    b) "Record #327 - Can not uniquely identify member by Balls (3335)
    Balls     Ball_8     Round" -- That's strange, I thought member should be identified by Ball_8 (and this column is unique)
    c) "\\Record #418 - Error in association transaction [Ball_8] to [Round] (3362)"
    I've read all I could find on topic from this forum, network45 board and going to start my way through metalink3, but maybe some kind soul will rescue me from drowning in information ocean?

    Hi,
    Outline is blank at the start of load and I expect dimensions Product and ProdAttribute to be added.
    Generations are unapplicable, since I can't turn this parent-child dimension (it's ragged) into generation one.
    And, by the way Integration Services manages to do this somehow, why rule files wouldn't?

  • SQL08 Need example of creating AND using a Fact (degenerate) dimension

    Can someone post a link to some examples of setting up and using a Fact (degenerate) dimension.  Ive got the SSAS 2008R2 Adventureworks DW project setup and I see a few Fact dimensions in there, but id like some descriptions to go along with this or
    something similar.
    My scenario:
    Orders - attributes include :  Order#, OrderStartDate, SalesPerson, BusinessType, MarketType
    OrderTransactions - attributes include:  OrderKey , TransactionAmount, TransactionType, TransactionDate, AccountKey
    Description:
    Its more or less the typical Order > Order Detail type scenario, with the addition of Orders have some additional attributes.
    So I want to be able to measure on for example:
    Order counts - broken down by BusinessType and MarketType , and then within a date range
    Revenue - which will be totals of transaction amounts, again grouped by BusinessType and MarketType, but also be able to drill down to see the related Order#

    Hi Shiftbit,
    According to your description, you need some examples about create and use degenerate dimensions, right?
    Degenerate dimensions, also called fact dimensions, are standard dimensions that are constructed from attribute columns in fact tables instead of from attribute columns in dimension tables. Here is document that describes how to create and use degenerate
    dimensions step by step, please refer to the links below.
    https://msdn.microsoft.com/en-us/library/ms167409(v=sql.100).aspx
    http://www.jamesserra.com/archive/2011/11/degenerate-dimensions/
    Regards,
    Charlie Liao
    TechNet Community Support

  • Reporting on Degenerate Dimension without using aggregation

    Hi Gurus,
    I have 2 fact tables F1 and F2 and a conformed dimension D. Both the fact tables contains degenerate dimensions.
    So I have created degenerated dimesnion in BMM layer DDF1 and DDF2 corresponding to F1 and F2 resp.
    I want to generate report using DDF1, DDF2 and D without using any column from F1 or F2(basically I dont need any aggregation in my reports, but more than 1 fact table is used).
    But I receive error while trying to implement this. I have created the dimensions and defined content mappings for the fact tables.
    I had followed the steps given at [http://www.rittmanmead.com/2010/01/oracle-bi-ee-10-1-3-4-1-modeling-degenerate-dimensions-fact-attributes/]
    Does this type of reporting without using aggregation possible in OBIEE?
    Thanks in advance.

    If you want it in pivot view it is not possible for ad-hoc to give it to end-users without measure columns.
    You can do this in table view for only dimension columns wihtout measures easily possible.
    If you want the look of pivot and same as results of pivot in your table view then you follow this blog
    http://gerardnico.com/wiki/dat/obiee/table_to_pivot
    UPDATE POST
    the rittman blog mentioned follow that properly every step is given correctly,according to me your doing mistake at degenerate dimensions or conformed dimensions...that is why the error is throwing on the fact column that you are using.Please setup once again each and every step correctly you will achieve it.
    Cheers,
    KK
    Edited by: Kranthi on Feb 8, 2011 3:06 AM

  • Oracle11g degenerate dimension usage

    HI,
    The context of my sales cube is as follows,
    Dimensions: product,region,time
    Degenerate dimension: order_number (which is huge list)
    Measure: amount,quantity
    Using oracle11g analytic workspace manager, I can create the dimension, measure and cube.
    Will somebody please guide me to configure order_number dimension as degenerate dimension. This would be the dimension which reside in fact with no mapping to source and no aggregates across this dimension.
    I should be able get results for queries like, " List all the order numbers for the product A under Region B and where quantity sold > 100K"
    Plz ask for any clarifications..
    Thanks in advance,
    -- Vinay

    Hi,
    Refer this link:
    http://books.google.co.in/books?id=VEGxVL2L0K0C&pg=PT62&lpg=PT62&dq=WhatisDegenerateDimensionandslowlychangingdimensionin+BW&source=bl&ots=1CyWv5TSRG&sig=07JISYkbaHUTSwmz4DH8tiH5HUE&hl=en&ei=9WYvS9fHG4-gkQWmkdCCBA&sa=X&oi=book_result&ct=result&resnum=9&ved=0CCEQ6AEwCA#v=onepage&q=What%20is%20Degenerate%20Dimension%20and%20slowly%20changing%20dimension%20in%20BW&f=false
    It gives the contents of the book SAP BW certification: a business information warehouse study guide By Catherine M. Roze.
    The contents give you an idea of all the types of dimensions like :
    Degenerate
    Partitioning
    Categorical
    Slowly changing
    Reserved
    Hope this helps.
    Thanks,
    Rahul

  • Degenerate Dimension

    While performing modeling in BMM layer I am hitting an issue.
    I have two fact tables Revenue and Charges. Both has Sales Order Number as common column (Sales Order Number) is available in both the fact tables.
    Now I want to create a report across both the fact tables.
    The approach I am taking is to first create common degenerate dimension from both the fact tables (Sales order Number column is mapped to both the fact tables.
    But when I try to create a dimension hierarchy by right clicking on degenerate dimension it throws an error saying 'AdminTool is unable to created a structure for dimension'. I believe this is because Sales Order Number is not unique in any of the fact tables.
    Desired model should be able to use Sales Order Number across both fact tables.
    Thank you,
    DP.
    Edited by: BIDeveloper on Nov 22, 2010 4:53 PM

    DP,
    As you mentioned "Sales Order Number" as degenerate dimension it is confined to a fact table (a standard definition).
    Thus dimensional hierarchy cannot be created on facts.
    Mandatory conditions for creating a dimensional hierarchy:
    1. The logical table cannot be a logical fact table.
    2. The logical table on which a dimensional hierarchy is bieng created should not have a hierarchy already created.
    mark posts promptly.
    J
    -bifacts
    http://www.obinotes.com

  • Incremental load into the Dimension table

    Hi,
    I have the problem in doing the incremental load of the dimension table.Before loading into the dimension table,i would like to check the data in the dimnesion table.
    In my dimension table i have one not null surrogate key and the other null dimension tables.The not null surrogate key, i am populating with the Sequence Generator.
    To do the incremental load i have done the following.
    I made lookup into the dimension table and looked for a key.The key from the lookup table i have passed to the expression operator.In the expression operator i have created one field and hard coded one flag based on the key from the lookup table.I passed this flag to the filter operator and rest of the fields from the source.
    By doing this i am not able to pass the new records to the dimension table.
    Can you please help me.
    I have another question also.
    How do i update one not null key in the fact table.
    Thanks
    Vinay

    Hi Mark,
    Thanks for your help to solve my problem.I thought i share more information by giving the sql.
    I am giving below the 2 sqls, i would like to achieve through OWB.
    Both the following tasks need to be accomplished after loading the fact table.
    task1:
    UPDATE fact_table c
    SET c.dimension_table_key =
    (SELECT nvl(dimension_table.dimension_table_key,0)
    FROM src_dimension_table t,
    dimension_table dimension_table
    WHERE c.ssn = t.ssn(+)
    AND c.date_src_key = to_number(t.date_src(+), '99999999')
    AND c.time_src_key = to_number(substr(t.time_src(+), 1, 4), '99999999')
    AND c.wk_src = to_number(concat(t.wk_src_year(+), concat(t.wk_src_month(+), t.wk_src_day(+))), '99999999')
    AND nvl(t.field1, 'Y') = nvl(dimension_table.field1, 'Y')
    AND nvl(t.field2, 'Y') = nvl(dimension_table.field2, 'Y')
    AND nvl(t.field3, 'Y') = nvl(dimension_table.field3, 'Y')
    AND nvl(t.field4, 'Y') = nvl(dimension_table.field4, 'Y')
    AND nvl(t.field5, 'Y') = nvl(dimension_table.field5, 'Y')
    AND nvl(t.field6, 'Y') = nvl(dimension_table.field6, 'Y')
    AND nvl(t.field7, 'Y') = nvl(dimension_table.field7, 'Y')
    AND nvl(t.field8, 'Y') = nvl(dimension_table.field8, 'Y')
    AND nvl(t.field9, 'Y') = nvl(dimension_table.field9, 'Y')
    WHERE c.dimension_table_key = 0;
    fact table in the above sql is fact_table
    dimesion table in the above sql is dimension_table
    source table for the dimension table is src_dimension_table
    dimension_table_key is a not null key in the fact table
    task2:
    update fact_table cf
    set cf.key_1 =
    (select nvl(max(p.key_1),0) from dimension_table p
         where p.field1 = cf.field1
    and p.source='YY')
    where cf.key_1 = 0;
    fact table in the above sql is fact_table
    dimesion table in the above sql is dimension_table
    key_1 is a not null key in the fact table
    Is it possible to achieve the above tasks through Oracle Warehouse builder(OWB).I created the mappings for loading the dimension table and fact table and they are working fine.But the above two queries i am not able to achieve through OWB.I would be thankful if you can help me out.
    Thanks
    Vinay

  • Load hierarchical attribute dimensions with Integration Services?

    Hi everybody,
    I need to load product dimension which is organized in a relational table like this:
    Product (parent_code, member_code, member_alias, brand, consolidation, formula)
    Every product has a brand and I need to load brand as attribute dimension. The thing is Brand is not flat but it has it's own hierarchy. For Brand I have another relational table where data is organized parent-child like this:
    Brand (brand_parent_code, brand_child_code, brand_child_alias).
    I have used in the past Integration Services but with flat attribute dimensions.
    Can I load hierarchical attribute dimensions with Integration Services? If yes, how do I do it, how do I specify the hierarchy?
    Thank you,
    Daniela

    Graham,
    This is definitely a supported feature in EIS/9.3.1/ASO. I have many models with this type of structure. How you set it up can vary. Usually my Attribute Hierarchies are not that deep, only two to three levels, maybe four in a rare case, so I don't usually use a parent child table to set up the hierarchy (I'm not saying that it won't work, it might, I haven't tried, but same steps should apply). In a typical model I will have my stock table which has a buyer field. Then in another table I will have my attribute structure which will have columns for buyer, teams, and categories.
    In EIS OLAP model, you add your attribute hierarchy table and use a join to link it to the main stock table, joining on the buyer field (you are now going from a "star" schema to a "snowflake". Go into the properties and make sure you define all the columns as "Attributes".
    Then in Metadata model, drag your categories attribute onto the outline, then drag the teams and set it as a child of categories and finally drag buyer and set as child of teams. You only set the attribute association for the buyer back to the base dimension.
    When you run your dim build it will set up your attribute dimension correctly.
    Some things to keep in mind, make sure you have a process that ensures for every stock code you have in the main table, you have a matching one in your attribute dim table.
    Sometimes, depending on how much manipulation I need to do, instead of joining the tables in EIS I will go back to relational source and create a view that joins the two tables together, then in my OLAP model, I have one table that has three attribute columns, one column for the buyer and then the other two for team and category, from that point setting up in metadata model is the same.
    Good luck, let me know if you run into trouble.

  • How to load data to dimensions and fact table is it simialr to sql server

    How to load data to dimensions and fact table in a data ware house environment, is it simialr to sql server, oracle?
    Never migrated or loaded data to datawarehouse server.
    I have an interview and am really confused if they ask anything related to the dataware house side elements.
    Coudl you please if you don't mind provide me some steps and dimension and fact table info, an example only.
    Atleast for my knowledge.
    Thank you very much for the helpful info.

    Some discussions in previous forums should help you
    http://forums.sdn.sap.com/thread.jspa?threadID=2019448
    http://forums.sdn.sap.com/thread.jspa?threadID=1908902
    In the SAP tutorial, you can see a sample example of making fact tables.
    http://help.sap.com/businessobject/product_guides/boexir32SP1/en/xi321_ds_tutorial_en.pdf
    Arun

  • Loading of time dimension

    Hi,
    I started thinking about what the best way to load the time dimension is. Until now I have loaded data for 10-15 years in advance into the dimension to be done with it. One down side to this is that when you create or view reports, you might see the year 2015 but for obvious reasons there won't be any data loaded for this year. Another thing I started thinking of the other day is how this may affect the performance and the loadtime of the cube.
    If all dimensions is set to not be sparse and you have loaded 10 years that's not yet in use, the size of the cube, from what I understand, will be unnecessarily large. This will probably also have an affect on the loadtime.
    If you set all the dimensions except for the time dimension as sparse, as AWM sets it as default, how will this affect the size of the cube?
    Anyone have any thoughts around this?
    Regards Ragnar

    Hi,
    I need to load time dimensions to have data till 2015. Moreover we have just regular time dimensions tables and no fiscal tables.
    We have updated the fiscal data file to include data till 2015 and update DAc parameter Analysis end date to 31/12/2015. Data is loaded in these tables till 2015 but the ETL is failing for analyze W_ETL_RUN_S task.(param-g table contans 256 rows inspite of just 1 record)
    I checked the OBI guide and found that parameters $$Start_date and $$End_Date needs to be set.
    I am not sure if Analysis end date in DAC-> ETL prefernces is same as $$End_Date . Also, I could not see any start date parameter. I have checked mapping parameter as well.
    It would be really great if you could tell the exact steps followed to extend the datawarehouse.

  • How to load aliases to Dimension

    Hi,
    I have a Dimension Hierarchy like this,
    Account_Dim     (Dimension)
             -------> product1 (Member)
             -------> Product2 (Member)
    I am able to load aliases for members(product1 & product2) through HspOutlineLoad.sh with csv file. But don not  know how to do the same for Dimension Name (Account_Dim).
    HspOutlineLoad with " /D " switch seems to be loading only member properties. Please help how to load aliases to Dimension name through HspOutlineLoad. Sample format of csv/or whatever would be of great help.
    Thanks
    Mamatha

    You'll have to create 3 alias tables to hold 3 aliases. You cannot have 3 aliases for a dimension with 1 alias table.
    After adding you can then load (your header will look like something similar)
    Account,Parent,Alias: Default,Alias: French,Alias: German,Alias: Italian,Data Storage,Source Plan Type,Plan Type (Plan1),Aggregation (Plan1),Plan Type (Plan2),Aggregation (Plan2),Plan Type (Plan3),Aggregation (Plan3),Plan Type (Wrkforce),Aggregation (Wrkforce),Plan Type (Capex),Aggregation (Capex)
    Regards
    Celvin
    http://www.orahyplabs.com

Maybe you are looking for

  • ***SOLVED*** Friends MSI P35 Neo has no video/post!!! Need IMMEDIATE Help!

    Ok, I have been working with computers for a LONG time.  My best friend and I built him a gaming rig.  He has a Intel Core 2 Quad 2.4ghz, a single Ati Radeon x850 Crossfire Edition, a Rosewell 550 watt power supply, and 2gb of ddr2 RAM (unknown brand

  • Camera is not clear in N-91

    Hi Can any body help me out. The images captured by N-91 camera (2 Mega pix) are not clear. How can I make them clear???

  • Extent of Coding inside Event Structure cases

    Hi all I am trying to understand the practices while using an Event Structure. I am used to developing most of my projects using an Event driven State Machine Architecture. Most times, I use Event driven-Queued State Machines. I have also used Produc

  • List - Display Name with Presence (1st column) Display User ID (2nd Column)

    I have a simple list and one column titled Member and it is set as a Person field. My goal is to also have the corresponding Member.ID (ex 9012) also available as a second column so that when a user enters a name, it will auto populate the ID column.

  • Automatic generation of wishes to bp mail ids

    Hi experts i am looking for the solution for the following scenario it is like this:- on every JAN 1 i want to send New year greetings to all my customers to there mail ids  automatically and same thing should be done with there birthdays and anniver