Sunday, March 30, 2008

Checklist for Informatica Mappings

Checklist for Informatica Mappings

INTRODUCTION

This document consolidates the checklists that can be used for projects that use Informatica as a ETL tool. Following are the Checklist that are provided as a part of the Document.

Contents:

S.No

Checklist

Description

1

Code Review Checklist

Checklist for performing a Code Review Activity on Informatica mapping on 6.2 Version

2

Test Review Checklist

Checklist for performing a Test Review Activity on Informatica mapping on 6.2 Version

3

Informatica Upgrades checklist

Checklist that elaborates the various points that needs to be taken care while doing a Informatica version upgrade from 5.2.1 to 6.2.

Project Overview

Code Review Checklist for Informatica Mappings

Mapping Name:

Location of Mapping:

Developer Name: Filled Date:

Reviewer Name: Filled Date:

1.1 GENERAL

S. No.

Checklist item

Developer

(Y/N)

Reviewer

(Y/N)

Remarks

1.

Check if the data type and length of ALL the mapped fields is consistent throughout the mapping (right from the Source across all the Transformations till the Target).

2

Check that all the components used in mapping are shortcuts, pointing to actual components.

3

Informatica doesn’t define keys automatically from database to source or target definitions. Check that primary keys are defined correctly.

4

Check that tracing level is selected as ‘normal’ in all the components used in the mapping.

5

Check that relevant description is entered for all the components used in the mapping.

6

Check that the usages of all the parameters/variables in the mapping are consistent.

7

Check that there is no hard coding in the mapping, unless specified in the design document.

8

Check naming convention of all the components in the mapping per standard guidelines.

9

Check that option ‘file list’ is checked in case of sessions reading from a file having list of xml file names.

10

Check if Error Handling is taken care wherever applicable.

11

Check if the logic in the mapping is in sync with the logic mentioned in the Detailed design.

12

If any hard coding is present in the mapping, ensure that it is in the proper case.

13

Removal of ‘output port’ option of the fields, which are just used in calculations and not linked further.

14

Keep minimum number of records from the master table in case of a joiner

15

Check if the session has been run at least once and the target was populated.

1.2 SOURCE QUALIFIER

S. No.

Checklist item

Developer

(Y/N)

Reviewer

(Y/N)

Remarks

1

Check if ALL the fields mapped from the Source Qualifier are linked properly across all the transformations till the Target

2

Use the source filter and user defined join in the source qualifier unless we have some specific conditions that are present in the SQL override which cannot be incorporated in these properties.

3

Deletion of links from Source Definition to Source Qualifier, which are not used from SQ.

4

Filter the unnecessary records at the source qualifier itself, like get only active records etc.

5

Instead of coding SQL in the override query, use GENERATE SQL option wherever possible. Check if all the override queries are valid (by using VALIDATE option).

1.3 EXPRESSION

S. No.

Checklist item

Developer

(Y/N)

Reviewer

(Y/N)

Remarks

1.

Check if Default values are provided for NUMERIC fields used in arithmetic (+, -, *, /) and Logic operations.

2.

Check if Default values are provided for CHARACTER / Date fields used in logic operations (eg. String Compare)

3.

Check if Default values are provided for fields Nullable from Source & NOT Null able in the Target

4

Check that default value is provided only in expression transformations. Ports should not be defaulted in transformations like router, aggregator or update strategy.

5

Check if leading and trailing spaces are trimmed in CHAR-VARCHAR comparisons.

6

Usage of DECODE function instead of successive IIF functions.

7

Usage of Operators instead of functions (eg. || Vs CONCAT)

1.4 LOOK-UP

S. No.

Checklist item

Developer

(Y/N)

Reviewer

(Y/N)

Remarks

1

While doing lookup on a table, check that the data types of the input ports in lookup and in expression are exactly same.

2

In the session of a mapping that has lookups, ensure that we have $Source or $Target in the Lookup Information column unless the lookup is neither from the source or target database.

3

Make all the Lookups in your mappings reusable. Check if a reusable lookup exists already. If yes, reuse the same lookup or else create a new reusable lookup.

4

Check if the table names in the lookups are qualified with the schema name.

5

Check if the mapping has more than one dynamic lookup on the same table with the same lookup condition. If so, split the mapping into two & use Normalizer in one of the mappings.

6

Removal of unused ports from Lookups and Source Qualifiers.

7

Try to avoid making lookups on Nullable fields it is slower.

1.5 AGGREGATOR

S. No.

Checklist item

Developer

(Y/N)

Reviewer

(Y/N)

Remarks

1

Try to use sorted inputs for Aggregator where ever applicable.

1.6 ROUTER

S. No.

Checklist item

Developer

(Y/N)

Reviewer

(Y/N)

Remarks

1

Check if you are populating more than one target tables. If yes, use router before the update strategy.

2

Usage of Router instead of multiple filter transformations.

1.7 UNIX COMPONENTS

S. No.

Checklist item

Developer

(Y/N)

Reviewer

(Y/N)

Remarks

1

Check that all the *.dat files containing Informatica session names have a blank line at the end.

2

Check that name of the sessions in *.dat files and in script are exactly same as the actual session names

3

Check that proper commenting is done in the scripts

4

Check if the mapping has multiple targets. Unix script cannot work for multiple targets. If possible, try splitting the mapping.