This documentation supports the 9.0 version of BMC Atrium Core.

To view the latest version, select the version from the Product version menu.

Performing denormalization of Common Data Model

The following topics provide instructions for denormalizing Common Data Model (CDM) classes and relationships:

Common Data Model denormalization implementation scenarios

For fresh installation scenario

If you are performing a fresh installation the classes discussed in the Regular classes converted to categorization subclasses section are available as categorization subclasses.

For upgrade  scenario

If you are performing an upgrade, you will need to run the CDM denormalization utility after the upgrade procedure is complete.

Similar to fresh install scenario, the classes discussed in the Regular classes converted to categorization subclasses  section will be available as categorization subclasses after you run the utility.

See Deploying CDM denomalization package using installer wizard  for more details

Common Data Model denormalization strategy

The following points will help you to understand the Common Data Model denormalization stratergy. When you denormalize your common data model:

  • You don't need to modify the AST Forms (Eg AST:PRODUCT), or any higher level joins in the denormalized classes.
  • You don't need to modify the APIs, filters, or webservices level integrations that exist with BMC Atrium CMDB ecosystem.
  • The maintenance window is kept to minimal and you don't need to restart the BMC Remedy AR server.
  • Denormalization is performed without changing the CDM logical hierarchy and without disturbing the CDM hierarchical object Model.
  • Denormalization is achieved by converting the Regular Classes in the class hierarchy to Categorization Sub-Class.
  • After denormalization, all attributes will still stay with the class to which they belonged earlier but, the fields corresponding to those attributes move to the immediate regular parent class.
  • During the actual CDM denormalization process, a parallel hierarchy is created where all the CDM denormalization changes are implemented successfully and then it is switched with the existing hierarchy. 
  • During denormalization, pre and post validation checks are performed which ensure script execution with better control of the process.

The following infographic provides an overview of the performing CDM denormalization.

To denormalize CDM classes and relationships

  1. Ensure that you have performed the following tasks before you begin denormalizing the Common Data Model:
    1. Create a staging server
    2. Minimum version requirements
      • BMC Remedy AR System 9.0.00
      • BMC Atrium Core 9.0.00
    3. Deploy the CDM denormalization utility.
      The CDM denormalization utility is deployed at the following location:
      <install dir>\BMC Software\AtriumCore\cmdb\utils\cdmflattening
    4. Take the database backup. This step is crucial in case of recovery.
  2. On the computer where you have installed BMC Atrium Core, run the cdm denormalization utility through UI. 
    1. The cdm denormalization utility is located at the following location:
      <install dir>\BMC Software\AtriumCore\cmdb\utils\cdmflattening\bin
    2. The Atrium UI link is available to invoke UI to run the Utility in the background.
  3. Select the Yes check box for Have you taken AR database backup? and click the Start CDM DeNormalization button.

    The CDM denormalization utility performs pre-validation tasks. Ensure the following during the pre-validation stage.

    For pre-validation checks, do the following

    1. Check the log file cdmflattening.log for any pre-validation errors.

    2. Fix the pre-validation errors.

    3. Close the Utility.
    4. Open the Denormalization utility again and run it.

    For more information on pre-validation checks see, Common Data Model denormalization pre-validation tasks.

  4. The list of the all the classes that will be denormalized is logged into the cdmflattening.log file. 
  5. The CDM denormalization process begins. At this stage, various tasks are performed to denormalize the classes. At this stage, you need to factor in the downtime that is required during the denormalization process. See, Common Data Model denormalization execution tasks.

    The maintenance window is during the interchange between original and parallel hierarchy. During this stage any query(ies) triggered on denormalized class(es) may give you undesired results. This is because the joins are changed from _(Underscore) form(s) to OBJSTR:CatClassStub thus making _(Underscore) form(s), namely BMC_Product_, BMC_LogicalSystemComponent_, BMC_Component_ orphan. The data is stored in _(Underscore) form(s) and values for related fields in regular parent form (in this case BaseElement and BaseRelationship) are blank.

    During data migration stage (which is immediately after flip of original hierarchy with parallel), data is getting moved from _(Underscore) forms to immediate regular parent forms for the fields which are moved to parents. During this period any query(ies) fired on the denormalized class(es) may give undesired results. This is because if data is not moved yet during data migration stage and query is fired for the denormalized classes then query will return blank values for the attributes.

    For all the steps prior to flip hierarchy, there is really no change for user. User can work without any issues seamlessly with NO impact to work due to denormalization process.

    Observation:
    The overall maintenance window is ~15 minutes for ~2 million CIs.
    The overall maintenance window is ~85 minutes for ~10 million CIs.

    No. of CIsMaintenance Window for
     Flip ActivityMigration Activity
    2 million10 minutes5 minutes
    10 million50 minutes35 minutes
  6. The cdm denormalization utility performs post-validation tasks. Ensure that post-validation stage is completed successfully. 
    At this stage, if any post-validation errors are reported, the utility will exit. You must fix the error and re-run the utility. When you re-run the utility, it will skip all the tasks that were completed successfully and resume from the point the error occured.
    See, Common Data Model denormalization post-validation tasks
  7. (Optional) In the cdmflattenning.log file verify if the CDM classes and relationships are denormalized and the data is migrated to the BMC_BaseElement and BMC_BaseRelationships class.
    The log file is located at the following location:
    <install dir>\BMC Software\AtriumCore\cmdb\utils\cdmflattening\log\cdmflattenning.log
  8. Refresh the BMC AR System mid tier. You need to sync the cache.
  9. Migrate the delta data. See, Migrating delta data after Common Data Model denormalization.

    Note

    After the denormalization process is complete and the data migration is confirmed, you can delete the BMC.CORE:BMC_Product_, BMC.CORE:BMC_Component_, and BMC.CORE:BMC_LogicalSystemComponent_ forms. You can use Developer Studio in base development mode to delete these forms. It does not tamper with the class manager because the forms are independent after denormalization.

    For detailed documentation on searching corresponding forms, see The main data table for a form .

Limitations

  • While running the CDM denormalization utility, if there is any custom CatSubclass below the BMC_Software abstract class with existing attributes of custom CatSubclass then those attributes will not get moved to the BaseElement class.

  • After running the CDM denormalization utility, the related field to those attributes are moved to the BaseElement class. These fields are displayed automatically only for an English locale view.
  • After running the CDM denormalization utility, the join definition for the deprecated class below the denormalized class does not get updated with form name of parent class.

Was this page helpful? Yes No Submitting... Thank you

Comments

  1. Leonard Warren

    Referencing Item 3 - Select check box that you have taken a database backup then only you will be able to click button to run CDM denormalization utility.  What button is to be clicked "Next" or "Run" or what?  Also, should re-word this sentence to read something like this, "Select the checkbox that references the database backup has been performed. This will allow you to be able to click the <name of button> button to trigger the CDM Denormalization Utility to run."

    Jan 04, 2016 08:50
    1. Mandaar Painarkar

      Leonard Warren - The step has been updated.

      Jan 20, 2016 03:33
  2. Leonard Warren

    Referencing Item 3 -

    For 9.0.00.001 pre-validation checks, do the following

    1. Check the log for any pre-validation errors.

    2. Fix the pre-validation errors.

    3. Open the Denormalization utility again and run it.

    I take it that the utility is exits if it finds any errors to fix?  If so, then this should be stated as statement 2 and move statements 2 and 3 to be labelled as 3 and 4.  If not, then why is the utility opened up again if it is already open?

    Also, is the log being referenced in the first step, the cdmflattening.log? If so, suggest putting that into the statement as well.

    Jan 04, 2016 08:53
    1. Anagha Deshpande

      Hello Leonard,

      Thanks for your feedback.

      I have updated the topic.

       

      Regards,

      Anagha

      Mar 23, 2016 04:05
  3. Leonard Warren

    Referencing Item 4 - List of the all the classes that are denormalizaed  is logged into the log file.

    Suggest rewording this sentence to read, "A list of all the classes that are to be denormalized is recorded into the cdmflattening.log file."  The process has not been triggered at this stage so the list of classes that have been denormalized has not taken place yet.  So I am ASSUMING that this is a list of those classes that WILL BE denormalized. 

    Jan 04, 2016 09:02
    1. Mandaar Painarkar

      Leonard Warren -  Will confirm with the SME and update the information. Thanks!

      Jan 06, 2016 01:24
    1. Anagha Deshpande

      Hello Leonard,

      Thanks for your suggestion.

      I have added the log file name.

       

      Regards,

      Anagha

      Mar 23, 2016 04:06
  4. Shivraj Chavan

    The columns 'Flip Activity' and 'Migration Activity' is shifted left. It should be shifted to right by adding one more blank column to the left side of it.

    Flip ActivityMigration Activity
    Feb 11, 2016 05:24
  5. Milan Franzkowski

    There is a typo in the note box about DB tables, it has to be "BMC_LogicalSystemComponent_".

     

    Also about deleting the tables - I just ran the tool on 9.1 patch 1 and the regular forms are still there and also holding data. If I delete the database tables now, it will leave an inconsistent state of the system as the forms metadata are still present.

    Is it safe to just use the Dev Studio and delete the forms or will that tamper with the class manager / CDM?

    Jul 27, 2016 03:43
    1. Anagha Deshpande

      Hello Milan,

      Thanks for your feedback. I have corrected the typo.

      Regarding deleting the tables  It is safe to use Developer Studio to delete the form. It does not tamper the class manager because the form is independent. Make sure you delete the form from base development mode.

      Regards,

      Anagha

      Jul 28, 2016 04:57
      1. Milan Franzkowski

        Hi Anagha,

        thanks for the answer. I think it would be best if you update the note then!

        As I said, deleting the database tables as it says now would leave behind the metadata for the orphaned underscore forms.

        This should also be updated in the respective 9.1 doc - https://docs.bmc.com/docs/display/public/ac91/Performing+denormalization+of+Common+Data+Model

        Aug 02, 2016 04:26
        1. Anagha Deshpande

          Hello Milan,

          I have updated the note and have also updated 9.1 documentation.

          Regards,

          Anagha

           

          Aug 02, 2016 06:00
          1. Milan Franzkowski

            Hi Anagha,

            thanks, but the typo in "BMC_LogicalSystemCompoennt_" came back (wink)

             

            And I think it is safe to say, that the information on how to delete the database tables is obsolete. I suggest this note for all versions:

            "After the denormalization process is complete and the data migration is confirmed, you can delete the forms BMC.CORE:BMC_Product_, BMC.CORE:BMC_LogicalSystemComponent_ and BMC.CORE:BMC_Component_ (note the trailing underscores). You can use Developer Studio in base development mode to delete these forms. It does not tamper with the class manager because the forms are independent after denormalization."

            Aug 02, 2016 06:09