Difference between Informatica and Datastage

Difference between Informatica and Datastage



Both Datastage and Informatica are powerful ETL tools . Both tools do almost exactly the same thing in almost exactly the same way. Performance, maintainability, learning curve are all similar and comparable. Below are the few things which I would like highlight regarding both these tools.
 
Multiple Partitions
 
 
Informatica offers partitioning as dynamic partitioning which defaults a workflow not at every Stage/Object level in a mapping/job. Informatica offers other partitioning choices as well at the workflow level.
DataStage's pipeline partitioning uses multiple partitions, processed and then re-collected with DataStage. DataStage lets control a job design based on the logic of the processing instead of defaulting the whole pipeline flow to one partition type.  DataStage offers 7 different types of multi-processing partitions.
 
User Interface
Informatica offers access to the development and monitoring effort through its 4 GUIs - offered as Informatica PowerDesigner, Repository Manager, Worflow Designer, Workflow Manager. 
DataStage caters to development and monitoring its jobs through 3 GUIs - IBM DataStage Designer(for development), Job Sequence Designer(workflow design) and Director(for monitoring).
 
Version Control
Informatica offers instant version control through its repository server managed with “Repository Manager” GUI console. A mapping with work-in-progress cannot be opened until saved and checked back into the repository. Version control is done by using checkin and check out.
Version Control was offered as a component until version Ascential DataStage7.5.x. Ascential was acquired by IBM and when DataStage was integrated into IBM Information Server with DataStage at version 8.0.1, the support of version control as a component was discontinued.


Repository based flow 
Informatica, offers a step-by-step effort of creating a data integration solution. Each object created while mapping a source with a target gets saved into the repository project folder categorized by - Sources, Targets, Transformations, Mappings, Mapplets, User-defined functions, Business Components, Cubes and Dimensions. Each object created can be shared, dropped into a mapping across cross-functional development teams. Thus increasing re-usability. Projects are folder based and inter-viewable.
DataStage offers a project based integration solution, projects are not interviewable. Every project needs a role based access. The step-by-step effort in mapping a source to a target lineages into a job. For sharing objects within a job, separate objects need to be created called containers that are local/shared.
 
Data Encryption
Informatica has an offering within PowerCenter Designer as a separate transformation called “Data Masking Transformation”.
 
Data Masking or encryption needs to be done before reaching DataStage Server.
 
Variety of Transformations 
Informatica offers about 30 general transformations for processing incoming data. 
Datastage offers about 40 data transforming stages/objects. Datastage is more powerful transformation engine by using functions (Oconv and IConv) and routines. We can do almost any transformation.
 
 
Source_- Target flow
Within Informatica’s PowerCenter Designer, first a source definition needs to be created using “Source Analyzer” that imports the metadata, then a target definition is created using “Target Designer”, then a transformation using “Transformation Developer” is created, and finally maps a source-transformation-target using “Mapping Designer”.
Datastage lets drag and drop a functionality i.e a stage within in one canvas area for a pipeline source-target job. With  DataStage within the “DataStage Designer” import of both source and target metadata is needed, proceeding with variety of stages offered as database stages, transformation stages, etc.

The biggest difference between both the vendor offerings in this area is Informatica forces you to be organized through a step-by-step design process, while DataStage leaves the organization as a choice and gives you flexibility in dragging and dropping objects based on the logic flow.
 
Checking Dependencies
Informatica offers a separate edition – Advanced edition that helps with data lineage and impact analysis. We can go to separate targets and source and check all the dependencies on that.
DataStage offers through Designer by right clicking on a job to perform dependencies or impact analysis.
 
Components Used
The Informatica ETL transformations are very specific purpose, so you tend to need more boxes on the page to do the same thing. eg. A simple transform in Informatica would have a Source Table, Source Qualifier, Lookup, Router, 2 Update Strategies, and 2 Target Tables (9 boxes).
In DataStage, you would have a Table and Hashed File for the lookup, plus a Source Relational Stage, Transformation Stage, and 2 links to a target Relational Stage (5 boxes). This visual clutter in Informatica is a bit annoying.

Type of link
To link two components in Informatica, you have to link at the column level.We have to connect each and every column bw the two componenents
In DataStage, you link at the component level, and then map individual columns. This allows you to have coding templates that are all linked up - just add columns. I find this a big advantage in DS.
 
Reusability 
Informatica offers ease of re-usability through Mapplets and Worklets for re-using mappings and workflows.This really improves the performance
DataStage offers re-usability of a job through containers(local&shared). To re-use a Job Sequence(workflow), you will need to make a copy, compile and run.
Code Generation and Compilation
Informatica’s thrust is the auto-generated code. A mapping gets created by dropping a source-transformation-target that doesn’t need to be compiled.
DataStage requires to compile a job in order to run it successfully.

Heterogeneous Sources
In Informatica we can use both heterogenous source and homogenous source.
Datastage does not perform very well with heterogeneous sources. You might end up extracting data from all the sources and putting them into a hash and start your transformation
 
Slowly Changing Dimension
Informatica supports Full History, Recent Values, Current & Previous Values using SCD wizards.
DataStage supports only through Custom scripts and does not have a wizard to do this
 
 
Dynamic Lookup Cache

Informatica's marvellous Dynamic Cache Lookup has no equivalent in DS Server Edition. The same saves some effort and is very easily maintainable.

Related Posts:

10 DataStage Interview Questions and Answers - Download PDF

10 DataStage Interview Questions and Answers


1) What is Datastage ?
2) What are the differences between Datastage and Informatica
3) How do you generate Sequence number in Datastage?
4) What are the components of DataStage?
5) What is a merge in DataStage?
6) What are system variables and sequencers in DataStage
7) What is the difference between operational data stage (ODS) and data warehouse?
8) Purpose of Pivot Stage and types of containers in DataStage
9) What can we do with DataStage Director?
10) What is the difference between data warehousing and OLAP?

datastage logo png


1) What is Datastage ?


  • Design jobs for Extraction, Transformation and Loading(ETL).
  • Ideal tool data integration projects such as data warehouses, data marts and system migrations
  • import, export, create and managed metadata for use within jobs.
  • Schedule, run and monitor jobs all withinDatastge
  • Adminsters your Datastage development and execution environments.

2) What are the differences between Datastage and Informatica


  • Data stage supports parallel processing
  • Links are treated as objects in Data Stage
  • Links are port to port connectivity in Informatica
  • The implementation of Slowly Changing Dimensions is easy in Informatica which are complex in Data Stage
  • Complete error handling is not supported by informatica, which is supported Datastage.

3) How do you generate Sequence number in Datastage?


Sequence numbers can be generated in Datastage using certain routines. They are

  • KeyMgtGetNextVal
  • KeyMgtGetNextValConn

4) What are the components of DataStage?



Datastage has two components
  • Client Components – Designer, Director, Manager and Administrator
  • Server Components – Server, Repository and Plug-ins.

5) What is a merge in DataStage?



Merge in DataStage :

  • is available in both parallel an server jobs as a specific stage
  • is used for the purpose of joining two tables such as server/parallel or tables/datasets
  • is done on a key field which is mandatory in both master and update dataset

6) What are system variables and sequencers in DataStage



 System variables:

  • System variables are used to get system information
  • They are accessed by a transformer or by a routine
  • They have @ as prefix and are read only

Sequencers:

  • Sequencers allows for synchronizing the control flow of various activities in a single sequence of jobs.
  • The number of input and output triggers can be multiple

7) What is the difference between operational data stage (ODS) and data warehouse?



Data warehouse

  • It is a decision support database system for the purpose of organizational needs. 
  • It is non volatile, integrated and time variant collection of data

Operational Data Source
  • It is an integrated collection of information. 
  • It can contain 90 days of information at maximum.
  • ODS supports dynamic data.

8) Purpose of Pivot Stage and types of containers in DataStage


What is the purpose of Pivot Stage?

Pivot Stage is used to convert columns to rows

What are the types of Containers?

There are two types of containers namely, Local Container and Shared Container


9) What can we do with DataStage Director?

  • Validating
  • Scheduling
  • Executing
  • Monitoring server jobs

10) What is the difference between data warehousing and OLAP?


  • Data warehouse refers to organization and data storage from various resources
  • Data warehousing is used for data analysis. 
  • OLAP is to deal with data analysis with a software 
  • OLAP is used for managing aggregations and information partition for in-depth analysis
  • Business intelligence is performed with OLAP.




Reasoning Questions Shortcut-tricks PDF Download | Bank PO Exams | Competitive Exams

Reasoning Questions Shortcuts Tricks

Reasoning Questions Shortcut-tricks PDF Download

10 Javascript Questions And Answers For Fresher And Experienced

Javascript Questions And Answers For Fresher And Experienced

10 Javascript Questions And Answers For Fresher And Experienced


What is HTML ?

HyperText Markup Language, commonly referred to as HTML, is the standard markup language used to create web pages. Along with CSS, and JavaScript, HTML is a cornerstone technology, used by most websites to create visually engaging webpages, user interfaces for web applications, and user interfaces for many mobile applications.Web browsers can read HTML files and render them into visible or audible web pages. HTML describes the structure of a website semantically along with cues for presentation, making it a markup language, rather than a programming language.


What is javascript ?

JavaScript is a lightweight, interpreted programming language. It is designed for creating network-centric applications. It is complimentary to and integrated with Java. JavaScript is very easy to implement because it is integrated with HTML. It is open and cross-platform.



Question: How to pass multiple parameter in setTimeout function?
function myFunctionName(var1,var2){
    console.log('called after 2 sec of page load '+var1+' '+var2);
}
setTimeout(myFunctionName,2000,'value1','value2');



Question: How to enumerate the properties of js objects?
var myObject = {name1: 'Value1',name2: 'Value2'};
//console.log(myObject); //It will print all the values

for (var name in myObject) {
  //console.log(name+'=>'+myObject[name]);
  }



Question: How to measure the execution time of javascript script?
var startTime = new Date().getTime();
/*
Write here you script
*/
for(i=1;i<=500000; i++){
}
var endTime = new Date().getTime();

var time = endTime - startTime;
console.log('Execution time in Milli Seconds: ' + time);
console.log('Execution time in Seconds: ' + time/1000);



Question: How to listen (Do some changes) the window.location.hash change?
$(window).on('hashchange', function() {  
  callNewFunction(window.location.href)  
});
function callNewFunction(url){
    console.log('Hash URL is called');
}

After appling above code, whenever you add/update the hash value, callNewFunction will called automatically.

hashchange event is HTML5 feature and supported by all modern browsers and support is added in following browser.
  1. Internet Explorer 8
  2. Firefox 3.6
  3. Chrome 5
  4. Safari 5
  5. Opera 10.6



Question: How to add class in an element?
HTML Part
 

javaScript Part
var d = document.getElementById("myDivId");
d.className += " newClass";



Question: How to get the list of classes for an element?
d = document.getElementById("myDivId");
console.log(d.className);



Question: Can we compare two javaScript objects?
Yes, We can compare two javascript objects. See Following examples.
var myObject1 = {name1: 'Value1',name2: 'Value2'};
var myObject2 = {name1: 'Value111',name2: 'Value222'};
if(JSON.stringify(myObject1) === JSON.stringify(myObject2)){
 console.log("Both object are same");
}else{
console.log("Both object are different");
} 



Question: What is difference between Array(3) and Array('3') in javascript?
new Array(3), means declare the 3 elements and each have value "undefined". new Array('3'), means declare the 1 element and have value 3.
console.log(new Array(3)); // [undefined, undefined, undefined]
console.log(new Array('3')); // ["3"]



Question: How to get browser URL for all browser?
console.log(window.location.href);



Question: How to remove an element(string OR object ) from javascript Array/Object?
var myObject = {name1: 'Value1',name2: 'Value2'};
delete myObject['name1']
console.log(myObject);



Question: What does jQuery.fn mean?
jQuery.fn is just an prototype for defining the new functions.
fn is an alias to the prototype property.
For Example,
$.fn.newFunctionName = function(val){
console.log('something '+val); //something Test Value
};
$.fn.newFunctionName('Test Value');



Question: How to remove an empty elements from an Array?
var simpleArray = [1,3,,3,null,,0,,undefined,4,,6,,];
var cleanArray = simpleArray.filter(function(n){ return n != undefined }); 
console.log(cleanArray);



Question: How to add 5 days in JavaScript?
var result = new Date();
result.setDate(result.getDate() + 5);
console.log(result);


Related Courses:

Angular JS Interview Questions and Answers

HTML Interview Questions and Answers

JQuery Interview Questions and Answers