Sie sind auf Seite 1von 6

ETL Mapping Specification

Mapping Name Business Requirement Information Source System Initial Rows Short Description Refresh Frequency Preprocessing Post Processing Error Strategy
Name of the ETL PowerMart mapping (m_ hrispos) Name of the Business Requirements Specification that is met by this Mapping Specification

Name of the Source Database (HRPROD) Estimated number of rows pulled from the source table

Target System Rows/Load

Name of the Target Database (HRODS) Estimated number of rows to be loaded to the target table

Description that describes the purpose of this mapping what will this session accomplish? How often will this session run? Is this a table rebuild or refresh? Is this a daily, weekly, monthly, yearly, or hourly refresh? Preprocessing can occur within a mapping or outside of the mapping before a session runs. What sessions must run before this session? Indexes to be dropped before session runs? Files to be ftpd or moved to a specific place before session can run? Post processing can occur within a mapping or outside of the mapping before a session runs. What sessions/mappings must follow this session/mapping? Indexes that need to be put in place after this session/mapping runs? Emails to be sent on success/failure? Error trapping Document error functions used in input/output port default values, input values for input/output ports. The Informatica Server skips the row when it encounters the ERROR function. It aborts the session when it encounters the ABORT function. Examples: Replace the null value with a constant value or constant expression.

Skip the null value with an ERROR function. Abort the session with the ABORT function.

You may also document what kinds of session errors cause the session to fail, as well as session errors that do not cause a session to fail. You need to know for rework or reloads. Document what errors are acceptable, not acceptable and solutions for resolving

Reload Strategy Unique Source Fields

Restart/recovery procedure if this session/mapping fails. Can this session run independent of other sessions even though it is in a batch? Must you start the batch over from the first session? Dont use this field

/var/www/apps/conversion/current/tmp/scratch13067/92082912.doc

Page

4/11/12

ETL Mapping Specification


Sources
Tables Table Name
Name of the source table

Schema/Owner
Who owns the table? (ADMIN)

Selection/Filter
Do you use the sql query section in the source qualifier to limit what you pull from the source table? Document what limits are needed here

Files File Name


Name of the source file

File Owner
Machine file resides on, path, and owner of file (Holiday, /usr/local., SISOPER)

Unique Key
Key (column or field) that makes a row in this file unique

Targets
Tables Table Name
Name of the target table

Schema Owner Insert Update as Update Update as Insert

Who owns the target table (ADMIN)

Update else insert

Delete

Truncate Table

Unique Key
Key (column or field) that makes a row in the target table unique

Filter /SQL Over ride

This can be used to override the default UPDATE statement for the target. For instance, we use this to NULL fields based on certain conditions. Include the SQL limits or conditions for the target SQL override here.

Files File Name


Name of the target file

File Owner
Machine file resides on, path, and owner of file (Holiday, /usr/local., SISOPER)

Unique Key
Key (column or field) that makes a row in this file unique

/var/www/apps/conversion/current/tmp/scratch13067/92082912.doc

Page

4/11/12

ETL Mapping Specification


Lookups
Lookup Name Table Match Condition(s) Filter/SQL Override
Name given to the lookup transformation object (LKP_tablename) Name of the lookup table

Location

Database name (SISQA)

Similar to where clause in sql statement (person.uniqueid = student.customer_uniqueid). How would you find the row that you need? Can use a sql override for multiple match conditions. ( last_effective_date is null, role_type = prospect) Document sql override statements here.

Lookup Name Table Match Condition(s) Filter/SQL Override Lookup Name Table Match Condition(s) Filter/SQL Override Location Location

/var/www/apps/conversion/current/tmp/scratch13067/92082912.doc

Page

4/11/12

ETL Mapping Specification


Process Overview
To be used as a visual representation of the mapping

Processing Description (Detail)


Describe processing logic contained in mapping, including a description of the logic for each transformation object. Example: This mapping will update the target person table with the most recently attended, official high school experience information. The source qualifier only pulls the rows where the session id = the current session id (Where ETL_HIGH_SCHOOL_EXPERIENCE.SESSION_ID = (Select max(Session_ID) From ETL_SESSION) order by last_modified_time, last_db_action). For each row pulled back from the source qualifier, the ed institution uniqueid is passed to a lookup on the high school table to get the high school code (ceeb code). In addition to the ceeb code, the uniqueid of the high school is also passed back. The first expression object sets the Hs core 40 completion flag, Hs Official Flag, Hs transcript received flag, Hs Diploma earned flag, and the Hs invalidated flag in the person table after evaluating these flags in the etl_high_school_experience table. If the flag in the etl_high_school_experience table = T, the flag in the person table is set to YES. If the flag in the etl_high_school_experience table = F, the flag in the person table is set to NO The first expression object also evaluates the last db action along with other criteria, to determine if the row in the target table should be updated or nullled. If the last db action is = I or U and the high school experience is official and most recent, the high school fields in the target table are updated. If the last db action is = X , the high school experience fields in the target table are nulled. iif(LAST_DB_ACTION = 'I' and OFFICIAL = 'T' and MOST_RECENTLY_ATTENDED = 'T', 'I', iif(LAST_DB_ACTION = 'U' and OFFICIAL = 'T' and MOST_RECENTLY_ATTENDED = 'T', 'U', iif(LAST_DB_ACTION = 'X', 'X') )) The second expression object passes the uniqueid of the high school to a lookup for each row pulled back in the source qualifier to get the long name of the high school.

The update strategy for this mapping flags all rows for update. IIF(LAST_DB_ACTION = 'I' or LAST_DB_ACTION = 'U' or LAST_DB_ACTION = 'X',DD_UPDATE,DD_REJECT) The target table sql override will determine whether the person high school experience fields get updated or nulled. The field that is used is the last db action field (this field was used/updated in the previous expression object). The logic for the sql override on the high school experience is: UPDATE PERSON SET HS_MOST_RECENTLY_ATTENDED_FLAG = decode(:TU.last_db_action,'U',:TU.HS_MOST_RECENTLY_ATTENDED_FLAG,'I',:TU.HS_MOST_RECENTLY_A TTENDED_FLAG,'X',null),

/var/www/apps/conversion/current/tmp/scratch13067/92082912.doc

Page

4/11/12

ETL Mapping Specification


HS_LONG_NAME = decode(:TU.last_db_action,'U',:TU.HS_LONG_NAME,'I',:TU.HS_LONG_NAME,'X',null), HS_CEEB_CODE = decode(:TU.last_db_action,'U',:TU.HS_CEEB_CODE ,'I',:TU.HS_CEEB_CODE ,'X',null), HS_SOURCE = decode(:TU.last_db_action,'U',:TU.HS_SOURCE ,'I',:TU.HS_SOURCE ,'X',null), HS_ED_LEVEL = decode(:TU.last_db_action,'U',:TU.HS_ED_LEVEL,'I',:TU.HS_ED_LEVEL ,'X',null), HS_AS_OF_DATE = decode(:TU.last_db_action,'U',:TU.HS_AS_OF_DATE,'I',:TU.HS_AS_OF_DATE ,'X',null), HS_END_DATE = decode(:TU.last_db_action,'U',:TU.HS_END_DATE,'I',:TU.HS_END_DATE ,'X',null), HS_GRADUATION_DATE = decode(:TU.last_db_action,'U',:TU.HS_GRADUATION_DATE,'I',:TU.HS_GRADUATION_DATE ,'X',null), HS_CUMULATIVE_GPA = decode(:TU.last_db_action,'U',:TU.HS_CUMULATIVE_GPA,'I',:TU.HS_CUMULATIVE_GPA ,'X',null), HS_CLASS_RANK = decode(:TU.last_db_action,'U',:TU.HS_CLASS_RANK,'I',:TU.HS_CLASS_RANK ,'X',null), HS_CLASS_SIZE = decode(:TU.last_db_action,'U',:TU.HS_CLASS_SIZE,'I',:TU.HS_CLASS_SIZE ,'X',null), HS_PERCENTILE_LOW = decode(:TU.last_db_action,'U',:TU.HS_PERCENTILE_LOW,'I',:TU.HS_PERCENTILE_LOW ,'X',null), HS_PERCENTILE_HIGH = decode(:TU.last_db_action,'U',:TU.HS_PERCENTILE_HIGH,'I',:TU.HS_PERCENTILE_HIGH ,'X',null), HS_DIPLOMA_TYPE = decode(:TU.last_db_action,'U',:TU.HS_DIPLOMA_TYPE,'I',:TU.HS_DIPLOMA_TYPE,'X',null), HS_CORE_40_COMPLETION_FLAG = decode(:TU.last_db_action,'U',:TU.HS_CORE_40_COMPLETION_FLAG,'I',:TU.HS_CORE_40_COMPLETION_F LAG,'X',null), HS_OFFICIAL_FLAG = decode(:TU.last_db_action,'U',:TU.HS_OFFICIAL_FLAG,'I',:TU.HS_OFFICIAL_FLAG,'X',null), HS_TRANSCRIPT_RECEIVED_FLAG = decode(:TU.last_db_action,'U',:TU.HS_TRANSCRIPT_RECEIVED_FLAG,'I',:TU.HS_TRANSCRIPT_RECEIVED_F LAG,'X',null), HS_DIPLOMA_EARNED_FLAG = decode(:TU.last_db_action,'U',:TU.HS_DIPLOMA_EARNED_FLAG,'I',:TU.HS_DIPLOMA_EARNED_FLAG,'X',nu ll), HS_INVALIDATED_FLAG = decode(:TU.last_db_action,'U',:TU.HS_INVALIDATED_FLAG,'I',:TU.HS_INVALIDATED_FLAG,'X',null), SESSION_ID =:TU.SESSION_ID, last_db_action =:TU.last_db_action, last_modified_by =:TU.last_modified_by, last_modified_time =:TU.last_modified_time WHERE UNIQUEID = :TU.UNIQUEID The session settings for the update strategy are as follows:

/var/www/apps/conversion/current/tmp/scratch13067/92082912.doc

Page

4/11/12

ETL Mapping Specification


Source To Target Field Matrix
Target Table Target Column Source Data-type Table Source Column
Datatype for this target column Name of the Source table Column in source table where you would get this data from

Data-type

Expression

Default Data Value if Issues/Quality/Comment Null s

Name of target Column in table target table

Datatype for this Decodes, aggregates, conversions, Value to Used to document Not null, value source column if statements, lookup functions use in if looked up, upper case, pk, fk, target field etccomments, issues when source field is null

/var/www/apps/conversion/current/tmp/scratch13067/92082912.doc

Page

4/11/12

Das könnte Ihnen auch gefallen