Informatica metadata repository stores and maintains information about all the objects in Informatica. Among other things, they contain details of connection information, users, folders, mappings, sources, targets etc. These information can be accessed through SQL query and are highly valuable for various troubleshooting and maintenance activities. We present here a few examples of type of tasks you may perform using repository metadata.
Search for Truncate Table Option
Suppose you want to find out on which of your sessions, truncate target table option is set on. Instead of manually opening each task and checking if the truncate table option is on, you may use the below query:
select task_name, 'Truncate Target Table' ATTR, decode(attr_value,1,'Yes','No') Value from OPB_EXTN_ATTR OEA, REP_ALL_TASKS RAT where OEA.SESSION_ID=rat.TASK_ID and attr_id=9
Find Mappings where SQL Override is used
Below query will give you count of mapping instance where SQL Override has been used. The count is presented folder by folder.
WITH detail AS (SELECT c.subject_area, c.mapping_name, d.instance_name source_qualifier_name, CASE WHEN a.attr_value IS NOT NULL THEN 1 ELSE 0 END as OVR_OK FROM rep_all_mappings c, opb_widget_inst d, opb_widget_attr a WHERE c.mapping_id = d.mapping_id AND c.mapping_version_number = d.version_number AND d.widget_type = 3 AND d.widget_id = a.widget_id AND a.widget_type = d.widget_type AND a.attr_id = 1 ) SELECT subject_area, 'SQ_OVERIDE' STATUS, COUNT (DISTINCT mapping_name) NO_OF_Mapping, COUNT (DISTINCT (mapping_name || source_qualifier_name)) NO_OF_SQ_IN_MAPPING, COUNT (DISTINCT (source_qualifier_name)) NO_OF_DISTINCT_SQ FROM detail WHERE OVR_OK =1 GROUP BY subject_area UNION SELECT subject_area, 'SQ_NON_OVERIDE', COUNT (DISTINCT mapping_name) nb_mapping, COUNT (DISTINCT (mapping_name || source_qualifier_name)) nb_map_inst, COUNT (DISTINCT (source_qualifier_name)) nb_inst FROM detail WHERE OVR_OK =0 GROUP BY subject_area
Find Tracing Levels for Informatica Sessions
Sessions can have different tracing levels (Terse to Verbose). Often in Development environment we test our mappings with verbose tracing levels and then forget to reduce the level while promoting to Production environments. This creates issues like abnormal "SessLogs" growth, slower mapping performance etc.
This query will give tracing information along with session names so that you can quickly identify unintended tracing levels without opening each sessions manually.
select task_name, decode (attr_value, 0,'None', 1,'Terse', 2,'Normal', 3,'Verbose Initialisation', 4,'Verbose Data','') Tracing_Level from REP_SESS_CONFIG_PARM CFG, opb_task TSK WHERE CFG.SESSION_ID=TSK.TASK_ID and tsk.TASK_TYPE=68 and attr_id=204 and attr_type=6
Find name of all stored procedure used in stored procedure transformation
This query is helpful when you require to know name of all stored procedure being used ininformatica stored procedure transformation
select attr_value from OPB_WIDGET_ATTR where widget_type=6 and attr_id=1
Find who modified (saved) a mapping last time
This information is available under mapping properties. But the below query lists down this information for all the mappings in one place.
SELECT
substr(rpl.event_time,7,4) || substr(rpl.event_time,6,1) ||
substr(rpl.event_time,1,5) || ' ' substr(rpl.event_time,12,11) "EventTimestamp" ,
usr.user_name "Username",
DECODE(rpl.object_type_id,21,s21.subj_name,('('rpl.object_type_id')')) "Folder",
obt.object_type_name "Type",
DECODE(rpl.object_type_id,21,map.mapping_name,('('rpl.object_type_id')')) "Object"
FROM
opb_reposit_log rpl,
opb_object_type obt,
opb_subject fld,
opb_mapping map,
opb_users usr,
opb_subject s21
WHERE
obt.object_type_name = 'Mapping'
AND rpl.object_type_id = obt.object_type_id
AND rpl.object_id = map.mapping_id(+)
AND rpl.object_id = fld.subj_id(+)
AND rpl.event_uid = usr.user_id
AND map.subject_id = s21.subj_id(+)
ORDER BY
1 DESCFind Lookup Information from Repository
This query will give information about lookup transformations like lookup name,Tablename ,Mapping name etc.
Select distinct wid.WIDGET_ID, all_map.mapping_name, wid.INSTANCE_NAME Lkp_name, Decode(widat.attr_id,2,widat.attr_value) Table_name, decode (widat.attr_id,6,widat.attr_value) src_tgt FROM rep_all_mappings ALL_MAP, rep_widget_inst wid, OPB_WIDGET_ATTR widat where all_map.mapping_id=wid.mapping_id and wid.WIDGET_ID=widat.WIDGET_ID and wid.WIDGET_TYPE=11 and widat.WIDGET_TYPE=11 and widat.ATTR_ID in (2,6)
Find all Invalid workflows from Metadata repository
This query will list of all invalid workflows under the given subject area (folder)
select opb_subject.subj_name, opb_task.task_name from opb_task, opb_subject where task_type = 71 and is_valid = 0 and opb_subject.subj_id = opb_task.subject_id and UPPER(opb_subject.SUBJ_NAME) like UPPER('YOUR_FOLDER_NAME')
Generate a list of failed sessions from the repository
Here is a query that will display list of failed / aborted / terminated sessions from each of the folders in the repository
SELECT RSL.SUBJECT_AREA AS FOLDER, RW.WORKFLOW_NAME AS WORKFLOW, RSL.SESSION_NAME AS SESSION_NAME, DECODE(RSL.RUN_STATUS_CODE, 3,'FAILED', 4,'STOPPED', 5,'ABORTED', 15,'TERMINATED','UNKNOWN') AS STATUS, RSL.FIRST_ERROR_CODE AS FIRST_ERROR, RSL.FIRST_ERROR_MSG AS ERROR_MSG, RSL.ACTUAL_START AS START_TIME, RSL.SESSION_TIMESTAMP AS END_TIME FROM REP_SESS_LOG RSL, REP_WORKFLOWS RW WHERE RSL.RUN_STATUS_CODE IN (3,4,5,14,15) AND RW.WORKFLOW_ID = RSL.WORKFLOW_ID AND RW.SUBJECT_ID = RSL.SUBJECT_ID AND RSL.SUBJECT_AREA ='CDW_FDR2_SERVICEQUALITY' ORDER BY RSL.SESSION_TIMESTAMP DESC
Nice!! super information keep update Informatica Online Training Hyderabad
ReplyDelete