1. How to get DML using Utilities in UNIX?

If your source is a cobol copybook, then we have a command in unix which generates the required in Ab Initio. here it is:


2. What is skew and skew measurement?

skew is the mesaureof data flow to each partation .

suppose i/p is comming from 4 files and size is 1 gb

1 gb= ( 100mb+200mb+300mb+5oomb)

1000mb/4= 250 mb

(100- 250 )/500= --> -150/500 == cal ur self it wil come in -ve value.

calclu for 200,500,300.

+ve value of skew is allways desriable.

skew is a indericet measure of graph.

3. What is the difference between a Scan component and a RollUp component?

Rollup is for group by and Scan is for successive total. Basically, when we need to produce summary then we use scan. Rollup is used to aggregate data.

4. What is m_dump?

m_dump command prints the data in a formatted way.

m_dump <dml> <file.dat>

5. What is the importance of EME in abinitio?

EME is a repository in Ab Inition and it used for checkin and checkout for graphs also maintains graph version.


Broadcast - Takes data from multiple inputs, combines it and sends it to all the output ports.

Eg - You have 2 incoming flows (This can be data parallelism or component parallelism) on Broadcast component, one with 10 records & other with 20 records. Then on all the outgoing flows (it can be any number of flows) will have 10 + 20 = 30 records

Replicate - It replicates the data for a particular partition and send it out to multiple out ports of the component, but maintains the partition integrity.

Eg - Your incoming flow to replicate has a data parallelism level of 2. with one partition having 10 recs & other one having 20 recs. Now suppose you have 3 output flos from replicate. Then each flow will have 2 data partitions with 10 & 20 records respectively.

7. What is local and formal parameter?

Two are graph level parameters but in local you need to initialize the value at the time of declaration where as globle no need to initialize the data it will promt at the time of running the graph for that parameter.

8. How to run the graph without GDE?

In RUN ==> Deploy >> As script , it create a .bat file at ur host directory ,and then run .bat file from Command prompt

9. What are differences between different GDE versions(1.10,1.11,1.12,1.13and 1.15)?
What are differences between different versions of Co-op?

1.10 is a non key version and rest are key versions.

There are lot of components added and revised at following versions.

10. Can anyone give me an exaple of realtime start script in the graph?

Here is a simple example to use a start script in a graph:

In start script lets give as:

export $DT=`date '+%m%d%y'`

Now this variable DT will have today's date before the graph is run.

Now somewhere in the graph transform we can use this variable as;


which provides the value from the shell.

Download Interview PDF

11. What is the syntax of m_dump command?

The genaral syntax is "m_dump metadata data [action] "

12. How Does MAXCORE works?

Maxcore is a value (it will be in Kb).Whne ever a component is executed it will take that much memeory we specified for execution

13. What is the Difference between DML Expression and XFR Expression?

The main difference b/w dml & xfr is that

DML represent format of the metadata.

XFR represent the tranform functions.which will contain business

14. I am unable to connect sever database(oracle) from GDE(db config file) local system.i set all these?

ChalapathiFirst we can check the properties in internet options and then u can check in cmd format telenet abinitio ip_add.

15. What is $mpjret? Where it is used in ab-initio?

You can use $mpjret in endscript like

if 0 -eq($mpjret)


echo "success"


mailx -s "[graphname] failed" mailid

16. What is the latest version that is available in Ab-initio?

The latest version of GDE ism1.15 AND Co>operating system is 2.14

17. What is AB_LOCAL expression where do you use it in ab-initio?

ablocal_expr is a parameter of itable component of Ab Initio.ABLOCAL() is replaced by the contents of ablocal_expr.Which we can make use in parallel unloads.There are two forms of AB_LOCAL() construct, one with no arguments and one with single argument as a table name(driving table).

The use of AB_LOCAL() construct is in Some complex SQL statements contain grammar that is not recognized by the Ab Initio parser when unloading in parallel. You can use the ABLOCAL() construct in this case to prevent the Input Table component from parsing the SQL (it will get passed through to the database). It also specifies which table to use for the parallel clause.

18. How do you convert 4-way MFS to 8-way mfs?

To convert 4 way to 8 way partition we need to change the layout in the partioning component. There will be seperate parameters for each and every type of partioning eg. AI_MFS_HOME, AI_MFS_MEDIUM_HOME, AI_MFS_WIDE_HOME etc.

The appropriate parameter need to be selected in the component layout for the type of partioning.

19. Have you used rollup component? Describe how?

If the user wants to group the records on particular field values then rollup is best way to do that. Rollup is a multi-stage transform function and it contains the following mandatory functions.
1. initialise
2. rollup
3. finalise
Also need to declare one temporary variable if you want to get counts of a particular group.

For each of the group, first it does call the initialise function once, followed by rollup function calls for each of the records in the group and finally calls the finalise function once at the end of last rollup call.

20. What are primary keys and foreign keys?

In RDBMS the relationship between the two tables is represented as Primary key and foreign key relationship.Wheras the primary key table is the parent table and foreignkey table is the child table.The criteria for both the tables is there should be a matching column.

21. What is an outer join?

An outer join is used when one wants to select all the records from a port - whether it has satisfied the join criteria or not.

22. What are Cartesian joins?

A Cartesian join will get you a Cartesian product. A Cartesian join is when you join every row of one table to every row of another table. You can also get one by joining every row of a table to every row of itself.

23. What is the purpose of having stored procedures in a database?

Main Purpose of Stored Procedure for reduse the network trafic and all sql statement executing in cursor so speed too high.

24. Why might you create a stored procedure with the with recompile option?

Recompile is useful when the tables referenced by the stored proc undergoes a lot of modification/deletion/addition of data. Due to the heavy modification activity the execute plan becomes outdated and hence the stored proc performance goes down. If we create the stored proc with recompile option, the sql server wont cache a plan for this stored proc and it will be recompiled every time it is run.

25. What is a cursor? Within a cursor, how would you update fields on the row just fetched?

The oracle engine uses work areas for internal processing in order to the execute sql statement is called cursor.There are two types of cursors like Implecit cursor and Explicit cursor.Implicit cursor is using for internal processing and Explicit cursor is using for user open for data required.

Download Interview PDF

26. How can you force the optimizer to use a particular index?

Use hints /*+ <hint> */, these acts as directives to the optimizer

27. Describe the process steps you would perform when defragmenting a data table. This table contains mission critical data?

There are several ways to do this:

1) We can move the table in the same or other tablespace and rebuild all the indexes on the table.

alter table <table_name> move <tablespace_name> this activity reclaims the defragmented space in the table

analyze table table_name compute statistics to capture the updated statistics.

2)Reorg could be done by taking a dump of the table, truncate the table and import the dump back into the table.

28. Explain the difference between the truncate and delete commands?

Truncate :
It is a DDL command, used to delete tables or clusters. Since it is a DDL command hence it is auto commit and Rollback can't be performed. It is faster than delete.

It is DML command, generally used to delete a record, clusters or tables. Rollback command can be performed , in order to retrieve the earlier deleted things. To make deleted things permanently, "commit" command should be used.

29. When running a stored procedure definition script how would you guarantee the definition could be rolled back in the event of problems?

There are quite a few factors that determines the approach such as what type of version control are used, what is the size of the change, what is the impact of the change, is it a new procedure or replacing an existing and so on.

If it is a new, then just drop the wrong one

if it is a replacement then how big is the change and what will be the possible impact, depending upon you can have the entire database backed up or just create a script for your original procedure before messing it up or you just do an ed and change the file back to original and reapply. you may rename the old procedure as old and then work on new and so on.

few issues to keep in mind are synonyms, dependancies, grants, any job calling the procedure at the time of change and so on. In nutshell, scenario can be varied and solution also can be varied.

30. How to create repository in abinitio for stand alone system(LOCAL NT)?

If you are trying to install the Ab -Initio on stand alone machine , then it is not necessary to create the repository , While installing It creates automatically for you under abinitio folder ( where you installing the Ab-Initio) If you are still not clear please ask your Question on the same portal .

31. How would you find out whether a SQL query is using the indices you expect?

Explain plan can be reviewed to check the execution plan of the query. This would guide if the expected indexes are used or not.

32. Describe how you would ensure that database object definitions (Tables, Indices, Constraints, Triggers, Users, Logins, Connection Options, and Server Options etc) are consistent and repeatable between multiple database instances (i.e.: a test and production copy of a database)?

Take an entire database backup and restore it in different instance.

Take a statistics of all valid and invalid objects and match.

Periodically refresh

33. How can i run the 2 GUI merge files?

Do you mean by merging Gui map files in WR.If so, by merging GUI map files in GUI map editor it wont create corresponding test script.without testscript you cant run a file.So it is impossible to run a file by merging 2 GUI map files.

34. Describe the elements you would review to ensure multiple scheduled batch jobs do not collide with each other?

Because every job depend upon another job for example if you first job result is successfull then another job will execute otherwise your job doesn't work.

35. What is the difference between rollup and scan?

By using rollup we cant generate cumulative summary records for that we will be using scan.

36. Describe the Grant/Revoke DDL facility and how it is implemented?

Basically,This is a part of D.B.A responsibilities GRANT means permissions for example GRANT CREATE TABLE ,CREATE VIEW AND MANY MORE .

REVOKE means cancel the grant (permissions).So,Grant or Revoke both commands depend upon D.B.A.

37. When using multiple DML statements to perform a single unit of work, is it preferable to use implicit or explicit transactions, and why?

Because implicit is using for internal processing and explicit is using for user open data requied.

38. What does dependency analysis mean in Ab Initio?

Dependency analysis will answer the questions regarding datalinage.That is where does the data come from,what applications prodeuce and depend on this data etc.

We can retrieve the maximum (surrogate key) from the existing data,the by using scan or next_in_sequence/reformat we can generate further sequence for new records.