Interview Questions and Answers

Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 4

Q) 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 Implicit
cursor and Explicit cursor. Implicit cursor is using for internal processing and Explicit
cursor is using for user open for data required.

Q) 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.

Q) Describe in detail about lookup?

A group of keyed dataset is said called lookup. The datasets in lookup can be
classified into two types such as Static and Dynamic. In the case of dynamic datasets,
the lookup file would be generated in the previous phase and used in the current phase.
With respect to the data present in a particular multi/serial file, lookup can be used to
map values. Lookup file has records which can be placed in main memory. They use
transform function for retrieving records much faster than retrieving from the disk.
Whenever lookup files are huge we can partition them. When we partition the lookup
files we have to use lookup local function to directly locate the data from a partition of
the lookup file. The prerequisite is that the data and the lookup file should be
partitioned on same key.

Q) So in this case why not use joins instead of lookup?

We can use join in-memory in this case, but in some cases we may have multiple lookup
files using a reformat we can use it multiple times.
Ex : there are three lookup files with 3 keys so in this case if we want to perform join we need to
use multiple join components , instead of that we use lookup.

Q) 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.

Q) 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 transform functions which will contain business rules.
Q) What will the p-set calls?
The p-set will call the generic graph with all the parameters within it.

Q) Difference Between conditional DML and Conditional component

A conditional DML is used where you have different formats in a file, usually it is a
source file for obtaining the header detail and trailer portions of a file. We have to apply a
conditional DML with record type H, D& T (header, detail and trailer)
A conditional component is where we want to enable and disable certain components
through parameters passed. For example, if we want to perform a generic unload where we want
to sort the data based on certain condition or you do not want to sort the data, so you can enable
and disable the sort.

Q) What is the surrogate key and its usage?


Surrogate key will be used in both dimension and fact table where we have more than one
unique key for the natural business table. We create a S_KEY and that also helps in join. The
S_KEY is a numerical one and it helps in join faster.

Q) How we use S_KEY in join?


We will join with a Surrogate ID in fact table which is associated with every fact record
and that S_KEY is made of several surrogate ID’s of the dimension table. Surrogate ID can be
any ID that represents natural business ID.

Q) What is the difference between check-point and phase?


Check point:
- When a graph fails in the middle of the process, a recovery point is created, known as
Checkpoint
- The rest of the process will be continued after the checkpoint
- Data from the checkpoint is fetched and continue to execute after correction.
Phase:
- If a graph is created with phases, each phase is assigned to some part of memory one after
another.
- All the phases will run one by one
-The intermediate file will be deleted
Q) State the relation between EME, GDE and Co-operating system?
EME:
- EME stands for Enterprise Metadata Environment
- It is a repository to Ab-Initio. It holds transformations, database configuration files, metadata
and target information
GDE:
- GDE – Graphical Development Environment
- It is an end user environment. Graphs are developed in this environment
- It provides GUI for editing and executing Ab-Initio programs
Co-operative System:
- Co-operative system is the server of Ab-Initio.
- It is installed on a specific OS platform known as Native OS.
- All generated graphs in GDE are later deployed and executed in co-operative system

Q) what are the operations that support avoiding duplicate record?


Duplicate records can be avoided by using the following:
- Using Dedup sort
- Performing aggregation
- Utilizing the Rollup component

Q) State the first_defined function with an example.


- This function is similar to the function NVL() in Oracle database
- It performs the first values which are not null among other values available in the function and
assigns to the variable
Example: A set of variables, say v1,v2,v3,v4,v5,v6 are assigned with NULL.
Another variable num is assigned with value 340 (num=340)
num = first_defined(NULL, v1,v2,v3,v4,v5,v6,NUM)
The result of num is 340

Q) State the working process of decimal_strip function.


- A decimal strip takes the decimal values out of the data.
- It trims any leading zeros
- The result is a valid decimal number
Ex:
decimal_strip("-0184o") := "-184"
decimal_strip("oxyas97abc") := "97"
decimal_strip("+$78ab=-*&^*&%cdw") := "78"
decimal_strip("Honda") "0"

Q) Explain PDL with an example?


- To make a graph behave dynamically, PDL is used
- Suppose there is a need to have a dynamic field that is to be added to a predefined DML while
executing the graph
- Then a graph level parameter can be defined
- Utilize this parameter while embedding the DML in output port.
- For Example : define a parameter named myfield with a value “string(“ | “”) name;”
- Use ${mystring} at the time of embedding the dml in out port.
- Use $substitution as an interpretation option

Q) Describe the Evaluation of Parameters order?


Following is the order of evaluation:
- Host setup script will be executed first
- All Common parameters, that is, included , are evaluated
- All Sandbox parameters are evaluated
- The project script – project-start.ksh is executed
- All form parameters are evaluated
- Graph parameters are evaluated
- The Start Script of graph is executed

Q) What is the function that transfers a string into a decimal?


- Use decimal cast with the size in the transform() function, when the size of the string and
decimal is same.
- Ex: If the source field is defined as string(8).
- The destination is defined as decimal(8)
- Let us assume the field name is salary.
- The function is out.field :: (decimal(8)) in salary
- If the size of the destination field is lesser that the input then string_substring() function can be
used
- Ex : Say the destination field is decimal(5) then use…
- out.field :: (decimal(5))string_lrtrim(string_substring(in.field,1,5))
- The ‘ lrtrim ‘ function is used to remove leading and trailing spaces in the string

Q) Explain what does dependency analysis mean in Abinitio?


In Ab initio, dependency analysis is a process through which the EME examines a project
entirely and traces how data is transferred and transformed- from component-to-component,
field-by-field, within and between graphs

Q) Mention how can you connect EME to Ab-initio Server?


To connect with Ab-initio Server, there are several ways like
• Set AB_AIR_ROOT
• Login to EME web interface- http://server host:[serverport]/ab initio
• Through GDE, you can connect to EME data-store
• Through air-command

You might also like