Quite often, while building the Data Integration Pipeline, Performance is a critical factor. The factors below are vital towards following the guidelines while working on ETL processing with Informatica PowerCenter.
The following items are to be considered during ETL DEV.,
Pre-Requisite Checks/Analysis
Basic Tuning Guidelines
Additional Tuning Practices
Tuning Approach
Pre-Requisite Checks/Analysis :
Before we get into subjecting an ETL Mapping against Performance Improvements, below steps to be adopted.,
Deep Dive into the Mapping to gather Basic Info.
Complexity of the Mapping (# of SRCs/TGTs, Transformations, Technical Logic)
Design of the Mapping (End-End Flow, Single/Multiple Pipelines)
Whether Best Practices followed
Verify the As-Is Metrics of the Mapping
Data Volume (SRC/TGT)
Duration of the Job Completion
Throughput
Busy Percentage of the Threads (Reader/Writer/Transformation)
Collect Performance Statistics
Ensure the ETL Server/System is not the reason for processing slowness
Are there frequent Network Connectivity issues?
Does the ETL System/Server has required H/W Capabilities?
Does the ETL Metadata DB have Enough Space?
Whether the System has Accumulated Log/Cache files blocking Server space?
DBs Slow with READ/WRITE?
After ensuring the above Pre-requisites are taken care and bottlenecks identified, if the ETL DEV is identified as the Root cause for slowness, Tuning practices can be applied on the Mappings if we expect significant improvement to meet the SLAs/Other Business benefits.
Basic Tuning Guidelines
Basic Guidelines are listed below.,
Design Perspective
Bring relevant/required fields on subsequent Transformations
Perform Incremental Extracts to limit Processing
Use Informatica CDC Drivers to process only Changed Data
Filter Data as early in the Pipelines
Limit the Data via Equi-Joins (JNR) upfront before Left-Joins (JNR) on Large Tables
DB Perspective
Build Indexes (High Volume Tables on Frequently used Joins/Predicates)
Create DB Partitions (for Large Fact Tables)
Collect STATISTICS
DB performs Faster processing (Complex Transformation Logic) than ETL
Delegation Perspective
Use PDO if DB Server has appreciable Computing Abilities
If DB Server has High Workload, push Functions Logic to Informatica Transformations
If DB has difficulty with Aggregations/Sorting, use Informatica Transformations
Space Perspective
Have a Retention period for Log/Cache files
Increase SRT/AGG/JNR Cache Size and DTM Buffer Size
Transformations/Load Perspective
Sorted Input data before LKP/AGG/JNR Transformations
JNR with Master Source having Less Records/Distinct Values
Consider BULK Load/External Loaders for Data Dump (after removing Index)
Use LKP Persistent Cache for Re-use requirements
Datatype consistency helps ETL operating with SRT/AGG/JNR
Optimize LKPs by Looking up only relevant Data (Override Filters) instead of Entire table
Avoid LKP Override Sort for Small Tables
Use UPD Strategy Transformation (only if necessary), can go for Session Level Updates
If LKP on High Volume table causes Performance issue, consider JNR Transformation
Addl. Tuning Practices
Additional Tuning Practices are listed below.,
Use Informatica Partitions (Pass Through/Key Range/Hash Key etc.) if High Data Volume
Do not use SRC and TGT as Same DB Table. Do a SRC – File TGT. Then FILE – DB TGT
Do not perform all ETL Operations in 1 Mapping. Divide ETL works with Series of Mappings
Use Concurrent Workflow Exec setting to enable parallel loads with different Params
Process ETL in multiple batches (ex. 2 times a day) to release the Table post load
If Complex ETL logic causes slowness, use FILE as TGT. Then 1:1 Load from FILE-TGT DB
Monitor Storage Space (Logs), use ETL Automation to clear files by Frequency (Mly/Qly)
Conclusion
On a high level, below are the inferences.,
Tuning need not be performed on every ETL mapping. Only those ETL jobs that are pain points to meeting Data Extraction/Loads SLAs be considered as potential candidates for further investigations and tuning.
DB Query optimization also plays a crucial role with SQL Overrides when used.
Delegate load b/w DB and ETL Servers.
Optimize ETL Design by following the Best Practices.
Monitor Storage Space and Computing Abilities.
Consider deploying Informatica Nodes on a GRID for High Availability and Load Balancing.
Leave A Comment