8 Analyzing Metadata Dependencies

The Metadata Dependency Manager enables you to detect and resolve the impact of the changes made to the object definitions or the metadata in the Warehouse Builder repository.

This section contains the following topics:

Introduction to the Metadata Dependency Manager

The Metadata Dependency Manager generates lineage and impact diagrams for any data object. A lineage diagram traces the process flows for an object back to the data source and displays all objects along that path. An impact diagram identifies all the objects that are derived from selected object.

This type of information can help you in many circumstances. For example, you can use these diagrams to:

  • Comply with government regulations or other audits that require tracking of financial data.

  • Modify the system design because of changes in the source data.

  • Modify the system design because of new requirements for reporting and analysis.

  • Assess the impact of design changes in a pluggable map that is used throughout a project.

The Dependency Manager enables you to plan your project by previewing the impact of the changes or future changes. If you are planning to introduce changes to your source systems, you can use the Dependency Manager to gauge the impact of that change on your warehouse design. Or, if the change has already been introduced, then you can plan the time required to update your ETL design and rebuild your data warehouse.

For specific information about these components, choose Topic from the Help menu.

Figure 8-1 Metadata Dependency Manager

Screen capture of the Metadata Dependency Manager.
Description of "Figure 8-1 Metadata Dependency Manager"

Usage Scenario

Source databases often undergo changes even after a data warehouse has been designed and built. These changes imply a corresponding change, or impact, in your Warehouse Builder design or metadata. Warehouse Builder enables you to reimport the modified source definitions into the repository. However, your original warehouse design may no longer remain valid with the re-imported definitions, and you may need to make changes to the design and fix the inconsistencies.

You need to first find out how the warehouse design is affected by the changes in source and then determine all the design objects that are dependent upon the sources must synchronize the metadata so that all the affected design objects are updated to reflect the changes in the source. After this process is complete, you can redeploy the updated design to rebuild your data warehouse and synchronize the data.

In this scenario, a company retrieves all its statistical reports from a flat file named CUSTOMERS. Over a period of time, the file definition needs to be changed to generate reports on additional parameters. The statistical analysis database has also recently migrated from Oracle 9i to Oracle Database 10g.

The designers at this company first need to synchronize the modified metadata definitions for this file in the design repository with all the design objects and mappings that are based on its data. The CUSTOMERS flat file is part of multiple mappings in the ETL design, and any changes to its definitions invalidate all them. Manually tracking all the areas impacted by the CUSTOMERS flat file and updating the definitions is a process prone to errors.

The Dependency Manager enables them to identify all of the objects that are affected by this change to the data source. They can be sure that each related design object is updated so that the ETL designs remain valid. After finishing this process, they can redeploy the affected tables and the updated ETL design objects to their data warehouse.

What are Lineage and Impact Analysis Diagrams?

Lineage and Impact Analysis (LIA) diagrams show the relationships among objects managed by Warehouse Builder. These relationships are constructed by mappings and process flows. The lineage diagram for a particular object shows its source objects, and the impact diagram shows its targets.

Lineage and impact are mirror images of each other.  If Object A is part of the lineage diagram of Object B, then Object B is part of the impact diagram of Object A. When you read a diagram from left to right, you are seeing impact. When you read it from right to left, you are seeing lineage.

For example, you might have a mapping that extracts data from a file and loads it into a table by way of an external table. This is the relationship:

flat_file > external_table > table

Figure 8-2 Lineage Analysis Diagram for ADDRESS_EXT_TABLE

Screen capture of a lineage analysis diagram
Description of "Figure 8-2 Lineage Analysis Diagram for ADDRESS_EXT_TABLE"

Figure 8-3 Impact Analysis Diagram for ADDRESS_EXT_TABLE

Screen capture of an impact analysis diagram
Description of "Figure 8-3 Impact Analysis Diagram for ADDRESS_EXT_TABLE"

Figure 8-4 Lineage and Impact Analysis Diagram

Screen capture of a lineage and impact analysis diagram.
Description of "Figure 8-4 Lineage and Impact Analysis Diagram"

Generating an LIA Diagram

You can generate an LIA diagram from the Project Explorer in the Design Center or by first opening the Metadata Dependency Manager.

To generate a diagram from the Design Center:

  1. Expand the Project Explorer until you see the object that you want to analyze.

  2. Right-click the object and choose Lineage or Impact from the popup menu.

    The Metadata Dependency Manager will open with the diagram.

The Lineage and Impact commands are also available from the View menu.

To generate a diagram from the Metadata Dependency Manager:

  1. From the Design Center Tools menu, choose Metadata Dependency Manager.

    The Metadata Dependency Manager is displayed.

  2. Expand the DM Context Tree until you see the object that you want to analyze.

  3. Right-click the object and choose Show Lineage or Show Impact from the popup menu.

    The diagram will be displayed on the canvas.

Modifying the Display of an LIA Diagram

Your initial selection of an object and a diagram type simply determine the initial starting point and the direction that the diagram branches from that object. You can modify an LIA diagram in the following ways:

  • Drag-and-drop another object onto the diagram.

  • Click the plus (+) and minus (-) signs next to an object icon to expand or collapse a branch of the diagram.

  • Use the grouping tool to collapse a section of the diagram into a single icon, as described in "Using Groups in an LIA Diagram".

  • Double-click an object to display its attributes, as described in "Displaying an Object's Attributes".

Using Groups in an LIA Diagram

Groups enable you to organize the objects in a complex diagram so that they are easier to locate and edit. By reducing the number of objects in a diagram, you can more easily focus on the objects currently of interest.

To create a group:

  1. Select a group of objects by dragging and dropping a box around them.

  2. Click the Group Selected Objects tool.

    The Group Selected Data Objects dialog box is displayed.

  3. Enter a name for the group.

    The selected objects are collapsed into a single folder icon.

To display the individual objects in a group, double-click the folder icon. You can work on these objects in the same way as ungrouped objects.

To ungroup the objects, select the group and click the Ungroup Selected Object tool.

Displaying an Object's Attributes

To expand an icon, double-click it. To reduce it to an icon, click the down arrow in the upper right corner.

To generate an LIA diagram for an attribute:

  1. Generate an LIA diagram for an object.

  2. Double-click the icons to display their attributes.

  3. Right-click an attribute and select Show Lineage or Show Impact.

    The attributes along the lineage or impact path for the selected attribute are highlighted in a different color.

You may use this detailed information for auditing or when planning to propagate changes.

Figure 8-5 Expanded Icons in an LIA Diagram

Screen capture of LIA diagram with expanded icons
Description of "Figure 8-5 Expanded Icons in an LIA Diagram"

Modifying Objects in the Dependency Manager

The LIA diagrams identify all of the objects that may be invalidated by a change to one or more objects. With this knowledge, you can examine the affected objects and modify them as necessary.

You can make these changes within the Dependency Manager, using either of these methods:

  • Object Editor: Provides extensive editing capabilities by opening the standard editor for the object.

  • Propagate Changes tool: Provides basic editing capabilities such as changing the name, data type, or precision for a single column or attribute.

To open the object editor:

Right-click the object icon in a diagram, and choose Open Editor from the popup menu.

To use the Propagate Changes tool:

  1. Double-click the object icon in a diagram.

    The icon will expand to show its attributes.

  2. Right-click the attribute that you want to change, and choose Propagate Change from the popup menu.

    The Propagate Change dialog box is displayed.

  3. Make your changes to the attributes in the New Value column and select the Propagate box.

  4. Click OK.