Total Pageviews

Tuesday, March 6, 2012

Informatica Interview

Interview Topics
  1. Architecture : http://www.tecktricks.com/informatica-powercenter-architecture/#sthash.eyCocBR0.dpbs
  2. http://www.tecktricks.com/informatica-architecture/#sthash.XFG6Uchh.dpbs
  3. Oracle Source bottleneck
  4. Find duplicates in a file using aggregator or without aggregator
    • With Aggregator
      • User Sorter to Sort data
      • User Aggregator and include all columns in group by (select sorted input for faster performance) 
    • Without Aggregator
      • At unix level use uniq in the preprocessor
      • Rank
  5. Incremental Aggregator
    1. Implementing informaticas incremental aggregation
  6. Aggregation without an aggregator
  7. SCD Type 1, 2, 3
    1. SCD 1 : Complete overwrite
      SCD 2 : Preserve all history. Add row
      SCD 3 : Preserve some history. Add additional column for old/new.
    2. SCD 1 : Replace the old values overwrite by new values
      SCD 2 : Just Creating Additional records
      SCD 3 : It's maintain just previous and recent
      In the SCD 2 again 3 Types
      1) Versioning
      2) Flag Value
      3) Effective Date Range
      Versioning :
      Here the updated dimensions inserted in to the target along with version number
      The new dimensions will be inserted into the target along with Primary key
      Flagvalue : The updated dimensions insert into the target along with 0 and new dimensions inset into the target along with 1.
      SCD Type 1, the attribute value is overwritten with the new value, obliterating the historical attribute values.For example, when the product roll-up changes for a given product, the roll-up attribute is merely updated with the current value.
      SCD Type 2, a new record with the new attributes is added to the dimension table. Historical fact table rows continue to reference the old dimension key with the old roll-up attribute; going forward, the fact table rows will reference the new surrogate key with the new roll-up thereby perfectly partitioning history.
      SCD Type 3, attributes are added to the dimension table to support two simultaneous roll-ups - perhaps the current product roll-up as well as Incremental Loading.
  8. Finding Delta
  9. Sorter / Lookup is a active/passive parser
  10. If we forget specifying group by fields in the aggregator then what will happen
  11. Order by over ride
  12. Load ordering
  13. When would bulk load fail
  14. Types of lookup cache
  15. If we specify Input Sorted but actually its not then what will happen
  16. How to identify and remove duplicates
  17. 1 trillion record in source I want to transfer that to target
  18. How to find DISTINCT records with and without the use of Aggregator
  19. PUSH DOWN Optimization
  20. Diff between Filter and Router
  21. When you have to use a Filter
  22. Loading Multiple files
  23. Using mapping parameter in Reusable Transformation
  24. Check if informatica service is running - ps -ef | grep informatica
  25. Check if informatica workflow is running - ps -ef | grep pmdtm
  26. Forward Rejected Rows in Update Strategy
    • The Update Strategy transformation contains an expression that may tag each row as insert, delete or reject.
  27. It is desired to count ALL rows that pass through the Aggregator, regardless of how they are tagged.
    Assume that the other parts of the mapping are finished and that the Update Strategy transformation property Forward Rejected Rows is set to True.
  28. How to handle Empty file/source
  29. No records loaded into target. Pre/Post SQL will still execute.
  30. Use RAISE_APPLICATION_ERROR to catch oracle error in Informatica
  31. Set Stop on Error in session to 1 to fail informatica if error occurs in oracle proc
  32. ABORT() is used to fail the workflow
  33. ERROR() is used to error and filter the records for the transformation.
  34. What is the difference between Stop, Abort and Error ?
    1. Stop command immediately kills the reading process and doesn't have any timeout period.
    2. Abort command gives a time out period of 60secs to the informatica server to finish the dtm process else it kills the dtm process.
    3. Error will just error the record and not the process
  35. When do we use dynamic cache and static cache in connected and unconnected lookup transformations ?
    1. Connected Lookup participates in the mapping (dataflow), just like any other transformation.
    2. Unconnected Lookup is used when a lookup function is used in an expression transformation in the mapping in which case the lookup does not appear in the main dataflow of the mapping.
    3. Connected Lookup can return more than one value (output port) whereas an Unconnected lookup gives only one output port.
    4. Unconnected Lookups are reusable.
    5. Connected Transformation is connected to other transformations or directly to target table in the mapping. An unconnected transformation is not connected to other transformations in the mapping. It is called within another transformation, and returns a value to that transformation.
    6. Dynamic Cache used for updation of Master Table & SCD(Slowly Changing Dimensions) Type 1.
    7. Static used for Flat file.
  36. Can we return two columns from an unconnected lookup ?
    • Yes. Concatenate two columns. However return port will be one.
  37. What are the Tracking levels in Informatica transformations? Which one is efficient and which one faster and which one is best in Informatica Power Centre 8.1/8.5 ?
    1. Tracing Level specifies the amount of data to be stored into the log files. This is a kind of explanation when a session log is created.
    2. The Tracing Level can be configured for each individual transformation.
    3. Tracing Levels are are -    
      • Normal - Tracing level is the default one in which Integration Service logs initialization and status information, errors encountered and skipped rows due to transformation row errors. Summarizes session results, but not at the level of individual rows.
      • Terse - specifies Normal + Notification of data. That is it logs the initialization information and error messages + notification of rejected data.
        Note - Terse is used to debug a Transformation/Mapping that is not behaving as it was expected.
      • Verbose Initialization In addition to normal tracing, Integration Service logs additional initialization details, names of index and data files used, and detailed transformation statistics to the Normal Level for each and every transformation.
      • Verbose Data In Addition to the Verbose Initialization, Integration Service logs each row that passes into the mapping. Also notes where the Integration Service truncates string data to fit the precision of a column and provides detailed transformation statistics.
        Allows the Integration Service to write errors to both the session log and error log when you enable row error logging.
        When you configure the tracing level to verbose data, the Integration Service writes row data for all rows in a block when it processes a transformation.
        From all above, verbose data slow downs the performance of the data load as it writes log for every row data.
  38. How many types of transformations support the sorted input option ?
    • Aggregator Tranformation, Joiner Tranformation and Lookup Tranformation support sorted input so that it will increase the session performance.
  39. How many number of sessions that u can create in a batch ?
    • Any number of sessions. But best practice is to have less number of tasks which will help especially during migration.
  40. Name 4 output files that informatica server creates during session running ?
    1. Session log
    2. Workflow log
    3. Errors log
    4. Bad file
  41. What is Update Override and What are the differences between SQL Override and Update Override ?
    1. Update Override - It is an option available in TARGET instance.
    2. By default, Target table is updated based on Primary key values.
    3. To update the Target table on non primary key values, we can generate the default Query and override the Query according to the requirement. Suppose for example, if we want to update the record in target table, when a column value = 'AAA' then, we can include this condition in Where clause of default Query.
    4. Coming to SQL Override - It is an option available in Source Qualifier and Lookup transformation where we can include joins, filters, group by and order by
    5. It is NOT possible to actually join two tables without using any condition. If we would like to join two tables, then in source qualifier transformation add all the ports from two tables (if both tables are from same database source) and write down your join condition in user defined join option or otherwise write down join condition inside the sql query option with generated sql query.
    6. OR simply use a dummy condition like 1=1.
  42. I have an aggregater in my mapping and no group by port on any column and I am passing 100 rows through aggregater, so how many rows I will get as output from aggregater ?
    • Last row only
  43. What is the diff between union, joiner and lookup ?
    1. Union - Can join two tables without common port, all columns being merged should be of the same data type.
    2. Joiner - Can join any two heterogeneous sources, but common port is necessary.
    3. Lookup - We can join two tables by using sql over-ride, apart from that we can check whether the row is already existing or not.
  44. What are the similarities/differences between ROUTER and FILTER?
    • Similarity between ROUTER and FILTER is that both transformation would be able to discard data based on some filter condition. Both are active transformations.
    • The Differences are...
      1. Using router transformation one would be able to test incoming data for multiple filter condition and if none of the condition met the incoming rows gets rerouted to DAFAULT group. Can test multiple conditions and route the data to the next transformation in a single pass thus giving better performance.
      2. Using filter transformation, one would be able to pass data to next transformation based on single filter pipeline condition. There is NO DEFAULT option of routing data that doesn't match the condition like ROUTER Transformation. Would require multiple passes to test multiple conditions and branch then them to the next transformation.
  45. What is a complex mapping ?
    • A complex mapping generally will have the following characteristics:
      1. Difficult requirement
      2. More no.of transformations
      3. Having difficult business logics
      4. May require combination of two or more methods/combinations
      5. Complex bussiness logics
      6. More than 30 unconnected lookup
  46. Flat file contains n number of records, we have to load the records in target from 51 to 100. How to do that in Informatica ?
    • Use sequence generator to get row no. for each record, then use filter giving the condition (row no. greater than 50 and less than 100)
  47. What are the limitations for using target load type Bulk in the session ?
    1. UPDATE Strategy
    2. Less number of records
    3. Target should be relational DB
    4. No constraints in the target table
  48. How DTM buffer size and buffer block size are related ?
    1. The number of buffer blocks in a session = DTM Buffer Size / Buffer Block Size. Default settings create enough buffer blocks for 83 sources and targets.
    2. If the session contains more than 83, you might need to increase DTM Buffer Size or decrease Default Buffer Block Size.
    3. (total number of sources + total number of targets) * 2] = (session buffer blocks).
    4. (session Buffer Blocks) = (.9) * (DTM Buffer Size) / (Default Buffer Block Size) * (number of partitions).
  49. Difference between a shortcut and a reusable transformation ?
    1. A shortcut is a reference (link) to an object in a shared folder, these are commonly used for sources and targets that are to be shared between different environments / or projects. A shortcut is created by assigning 'Shared' status to a folder within the Repository Manager and then dragging objects from this folder into another open folder; This provides a single point of control / reference for the object - multiple projects don't allhave import sources and targets into their local folders..
    2. A reusable transformation is usually something that is kept local to a folder, examples would be the use of a reusable sequence generator for allocating warehouse Customer Id's which would be useful if you were loading customer details from multiple source systems and allocating unique ids to each new source-key. Many mappings could use the same sequence and the sessions would all draw from the same continuous pool of sequence numbers generated..
  50. What are the types of groups in Router Transformation ?
    1. Input Group.
    2. Output Group.
  51. The designer copies property information from the input ports of the input group to create a set of output ports for each output group.
    1. User defined Group.
    2. Default group.
    3. One cannot modify or delete default groups.
  52. What are the output files that the informatica server creates during the session running ?
    1. Informatica server log: Informatica server (on UNIX) creates a log for all status and error messages (default name:pm.server.log).
    2. It also creates an error log for error messages. These files will be created in informatica home directory.
    3. Session log file: Informatica server creates session log file for each session.
      • It writes information about session into log files such as initialization process, creation of sql commands for reader and writer threads, errors encountered and load summary.
    4. The amount of detail in session log file depends on the tracing level that you set.
    5. Session detail file: This file contains load statistics for each target in mapping.
      • Session detail includes information such as table name, number of rows written or rejected.
    6. We can view this file by double clicking on the session in monitor window.
    7. Performance detail file: This file contains information known as session performance details which helps you where performance can be improved.
      • To generate this file select the performance detail option in the session property sheet.
    8. Reject file: This file contains the rows of data that the writer does not write to targets.
    9. Control file: Informatica server creates control file and a target file when you run a session that uses the external loader.
      • The control file contains the information about the target flat file such as data format and loading instructions for the external loader.
    10. Post session email: Post session email allows you to automatically communicate information about a session run to designated recipients.
    11. U can create two different messages. One if the session completed successfully the other if the session fails.
    12. Indicator file: If u use the flat file as a target, you can configure the informatica server to create indicator file.
    13. For each target row, the indicator file contains a number to indicate whether the row was marked for insert, update, delete or reject.
    14. Output file: If session writes to a target file, the informatica server creates the target file based on file properties entered in the session property sheet.
    15. Cache files: When the informatica server creates memory cache it also creates cache files.
    16. For the following circumstances informatica server creates index and data cache files.
  53. What type of repositories can be created using Informatica Repository Manager ?
    Informatica PowerCenter includes following type of repositories:
    1. Standalone Repository: A repository that functions individually and this is unrelated to any other repositories.
    2. Global Repository: This is a centralized repository in a domain. This repository can contain shared objects across the repositories in a domain. The objects are shared through global shortcuts.
    3. Local Repository: Local repository is within a domain and it’s not a global repository. Local repository can connect to a global repository using global shortcuts and can use objects in it’s shared folders.
    4. Versioned Repository: This can either be local or global repository but it allows version control for the repository. A versioned repository can store multiple copies, or versions of an object. This feature allows efficiently developing, testing and deploying metadata in the production environment.
  54. What is a code page ?
    A code page contains encoding to specify characters in a set of one or more languages. The code page is selected based on source of the data. For example if source contains Japanese text then the code page should be selected to support Japanese text.
    When a code page is chosen, the program or application for which the code page is set, refers to a specific set of data that describes the characters the application recognizes. This influences the way that application stores, receives, and sends character data.
  55. Which all databases PowerCenter Server on Windows can connect to ?
    PowerCenter Server on Windows can connect to following databases:
    1. IBM DB2
    2. Informix
    3. Microsoft Access
    4. Microsoft Excel
    5. Microsoft SQL Server
    6. Oracle
    7. Sybase
    8. Teradata
  56. Which all databases PowerCenter Server on UNIX can connect to ?
    A. PowerCenter Server on UNIX can connect to following databases :
    1. IBM DB2
    2. Informix
    3. Oracle
    4. Sybase
    5. Teradata
  57. How to execute PL/SQL script from Informatica mapping ?
    Stored Procedure (SP) transformation can be used to execute PL/SQL Scripts. In SP Transformation PL/SQL procedure name can be specified. Whenever the session is executed, the session will call the pl/sql procedure.
  58. How can you define a transformation? What are different types of transformations available in Informatica ?
    A transformation is a repository object that generates, modifies, or passes data. The Designer provides a set of transformations that perform specific functions. For example, an Aggregator transformation performs calculations on groups of data. Below are the various transformations available in Informatica :
    1. Aggregator
    2. Application Source Qualifier
    3. Custom
    4. Expression
    5. External Procedure
    6. Filter
    7. Input
    8. Joiner
    9. Lookup
    10. Normalizer
    11. Output
    12. Rank
    13. Router
    14. Sequence Generator
    15. Sorter
    16. Source Qualifier
    17. Stored Procedure
    18. Transaction Control
    19. Union
    20. Update Strategy
    21. XML Generator
    22. XML Parser
    23. XML Source Qualifier
  59. What is a source qualifier? What is meant by Query Override ?
    Source Qualifier represents the rows that the PowerCenter Server reads from a relational or flat file source when it runs a session. When a relational or a flat file source definition is added to a mapping, it is connected to a Source Qualifier transformation.
    PowerCenter Server generates a query for each Source Qualifier Transformation whenever it runs the session. The default query is SELET statement containing all the source columns. Source Qualifier has capability to override this default query by changing the default settings of the transformation properties. The list of selected ports or the order they appear in the default query should not be changed in overridden query.
  60. What is aggregator transformation ?
    The Aggregator transformation allows performing aggregate calculations, such as averages and sums. Unlike Expression Transformation, the Aggregator transformation can only be used to perform calculations on groups. The Expression transformation permits calculations on a row-by-row basis only.
    Aggregator Transformation contains group by ports that indicate how to group the data. While grouping the data, the aggregator transformation outputs the last row of each group unless otherwise specified in the transformation properties.
    Various group by functions available in Informatica are : AVG, COUNT, FIRST, LAST, MAX, MEDIAN, MIN, PERCENTILE, STDDEV, SUM, VARIANCE.
  61. What is Incremental Aggregation ?
    Whenever a session is created for a mapping Aggregate Transformation, the session option for Incremental Aggregation can be enabled. When PowerCenter performs incremental aggregation, it passes new source data through the mapping and uses historical cache data to perform new aggregation calculations incrementally.
  62. How Union Transformation is used ?
    The union transformation is a multiple input group transformation that can be used to merge data from various sources (or pipelines). This transformation works just like UNION ALL statement in SQL that is used to combine result set of two SELECT statements.
  63. Can two flat files be joined with Joiner Transformation ?
    Yes, joiner transformation can be used to join data from two flat file sources.
  64. What is a look up transformation ?
    This transformation is used to lookup data in a flat file or a relational table, view or synonym. It compares lookup transformation ports (input ports) to the source column values based on the lookup condition. Later returned values can be passed to other transformations.
  65. Can a lookup be done on Flat Files ?
    Yes.
  66. What is the difference between a connected look up and unconnected look up ?
    Connected lookup takes input values directly from other transformations in the pipeline.
    Unconnected lookup doesn’t take inputs directly from any other transformation, but it can be used in any transformation (like expression) and can be invoked as a function using: LKP expression. So, an unconnected lookup can be called multiple times in a mapping.
  67. What is a mapplet ?
    A mapplet is a reusable object that is created using mapplet designer. The mapplet contains set of transformations and it allows us to reuse that transformation logic in multiple mappings.
  68. What does reusable transformation mean ?
    Reusable transformations can be used multiple times in a mapping. The reusable transformation is stored as a metadata separate from any other mapping that uses the transformation. Whenever any changes to a reusable transformation are made, all the mappings where the transformation is used will be invalidated.
  69. What is update strategy and what are the options for update strategy ?
    Informatica processes the source data row-by-row. By default every row is marked to be inserted in the target table. If the row has to be updated/inserted based on some logic Update Strategy transformation is used. The condition can be specified in Update Strategy to mark the processed row for update or insert.
    Following options are available for update strategy:
    1. DD_INSERT : If this is used the Update Strategy flags the row for insertion. Equivalent numeric value of DD_INSERT is 0.
    2. DD_UPDATE : If this is used the Update Strategy flags the row for update. Equivalent numeric value of DD_UPDATE is 1.
    3. DD_DELETE : If this is used the Update Strategy flags the row for deletion. Equivalent numeric value of DD_DELETE is 2.
    4. DD_REJECT : If this is used the Update Strategy flags the row for rejection. Equivalent numeric value of DD_REJECT is 3.
  70. I wanted to load only particular no of records suppose i have 100 records out of which I wanted to load first 10 records to target.
    Select only 10 records in your source qualifier query.
    You can use rownum function in oracle to select 10 records.
  71. If one wants to see the time dependent master data, what table is to be referred ?
    Master file
  72. The difference between Oracle Sequence Generator and Informatica Sequence Generator ? Which is faster in performance ? Which is best to use ?
    Informatica Sequence Generator uses its server cache and generates the sequence numbers and uses it along with the load which happens at the same time remember it will use the Informatica Cache which is comparatively not that big with transformations like Lookup and others…. Advantage is very easy to create and use it when we are inserting into multiple targets! Infa seq is part and parcel of mapping(s).
    But in case of Oracle Sequence we need to maintain it separately along with tables and other objects and the main question is how will you access it every time in every mapping.
  73. What are all the new features of informatica 8.1 ?
    Power Center 8 release has “Append to Target file” feature.
    1. Java transformation is introduced.
    2. User defined functions
    3. Midstream SQL transformation has been added in 8.1.1 not in 8.1.
    4. Informatica has added a new web based administrative console.
    5. Management is centralized that means services can be started and stopped on nodes via a central web interface.
  74. Power Plug : Use for 3rd Party Connectors to SAP, Mainframe, Peoplesoft
  75. Test Plan and Validation : No of Records and Data

What is meant by active and passive transformation?

An active transformation is the one that performs any of the following actions:
1) Change the number of rows between transformation input and output. Example: Filter transformation.
2) Change the transaction boundary by defining commit or rollback points., example transaction control transformation.
3) Change the row type, example Update strategy is active because it flags the rows for insert, delete, update or reject.


On the other hand a passive transformation is the one which does not change the number of rows that pass through it. Example: Expression transformation.

  1. What are the differences between Connected and Unconnected Lookup?

    The differences are illustrated in the below table
    Connected LookupUnconnected Lookup
    Connected lookup participates in dataflow and receives input directly from the pipelineUnconnected lookup receives input values from the result of a LKP: expression in another transformation
    Connected lookup can use both dynamic and static cacheUnconnected Lookup cache can NOT be dynamic
    Connected lookup can return more than one column value ( output port )Unconnected Lookup can return only one column value i.e. output port
    Connected lookup caches all lookup columnsUnconnected lookup caches only the lookup output ports in the lookup conditions and the return port
    Supports user-defined default values (i.e. value to return when lookup conditions are not satisfied)Does not support user defined default values
Unconnected lookup wont return multiple values even from 9.x release.

You will see a check box with name "Return all values on multiple match"  while importing  look up transformation  as shown in below image.






Now double click on Lookup transformation and goto Properties tab. Here you can observe that

Lookup policy on multiple match is set to  Use All Values  and it is Read Only.




Active Lookup Transformation Restrictions:
  1. We cannot return multiple rows from an unconnected Lookup transformation
  2. We cannot enable dynamic cache for a Active Lookup transformation.
  3. Active  Lookup Transformation that returns multiple rows cannot share a cache  with a similar Passive Lookup Transformation that returns one matching  row for each input row.

You can configure a connected Lookup transformation to receive input directly from the mapping pipeline, or you can configure an unconnected Lookup transformation to receive input from the result of an expression in another transformation.

Connected Lookup

  • Receives input values directly from the pipeline.
  • Use a dynamic or static cache.
  • Cache includes the lookup source columns in the lookup condition and the lookup source columns that are output ports.
  • If there is no match for the lookup condition, the Integration Service returns the default value for all output ports. If you configure dynamic caching, the Integration Service inserts rows into the cache or leaves it unchanged. 
  • If there is a match for the lookup condition, the Integration Service returns the result of the lookup condition for all lookup/output ports. If you configure dynamic caching, the Integration Service either updates the row the in the cache or leaves the row unchanged.
  • Pass multiple output values to another transformation. Link lookup/output ports to another transformation.
  • Supports user-defined default values.

Unconnected Lookup

  • Receives input values from the result of a :LKP expression in another transformation.
  • Use a static cache.
  • Cache includes all lookup/output ports in the lookup condition and the lookup/return port. 
  • Designate one return port (R). Returns one column from each row. 
  • If there is no match for the lookup condition, the Integration Service returns NULL.
  • If there is a match for the lookup condition, the Integration Service returns the result of the lookup condition into the return port.
  • Pass one output value to another transformation. The lookup/output/return port passes the value to the transformation calling :LKP expression.
  • Does not support user-defined default values.
 http://etllabs.com/informatica/basics-of-connected-and-unconnected-lookups-in-informatica/5301/






Basics of Connected and Unconnected Lookups in Informatica


Intended audience:  Informatica professionals with 0 to 1 year of experience. Advance ETL or data warehouse professional should avoid reading this. This has a very basic description of lookups, which can build understanding for need and type for a lookup in general. Lookup is one generic term and can be learnt as exact as word says. There are two type of Informatica lookup called connected and unconnected lookups.
If you are aware of Lookup transformation, you must be surely aware that Lookup Transformation could be designed in two modes – Connected / Pipeline and Unconnected. Let’s find the differences between Connected and Unconnected Lookup transformation to effective choose the mode of Lookup transformation in Informatica.

When do you go for Un-connected Lookup?
When you require only one column from the Lookup table.
When you want to use the Lookup multiple times within the same mapping.
What are the differences Connected Vs UnConnected Lookup?
There are quite a many differences between Connected and Unconnected Lookup transformation, you can choose the best fit mode based on your requirement. Some of those differences are below -
 Connected and unconnected lookup in Informatica

How to choose the Lookup type?
The below algorithm can very well help you to choose the right type of the Lookup for your Informatica mapping code.
Connected and unconnected lookup designing

Verbose description of the above algorithm -
If number of columns to return from the Lookup table are more than, you can opt Connected Lookup Transformation.
If you are looking up your target table and there is a need of Dynamic caching – you can always opt Connected Lookup.
If you are required to return one output port and no dynamic caching is required, and you need multiple instances of the Lookup transformation then you can always go for Un-Connected Lookup transformation.
Points that can help you to tune your Lookup Transformation
Flat file
Flat file Lookups are always cached, so you do not really hesitate much in choosing the Lookup type in this case.
Partitioning the Flat file source which is used as Lookup will greatly help with respect to the performance.
Flat file Lookups are always cached, so I would not prefer Connected / Unconnected if my Lookup source is Flat File.
Relational Object
The first question that pops up is “How huge is the data?” Quite a many times you end up with huge data volumes that practically do not allows you to use the caching feature from the performance point
Partitioning in Informatica again greatly helps
In case of absence of Informatica partitions, you can very well scale the advantages of your DB partitions to improve your session performance.
Do let us know if you want us to have something added here ? and i hope it might help to build little understnaidng for informatica connected and unconnected lookups.

http://dwhlaureate.blogspot.in/2012/06/differencebetween-connected-lookup.html

Difference between Informatica Connected Lookup & Unconnected Lookup


Connected Lookup
Unconnected Lookup
Receives input values directly from the pipeline.
Receives input values from the result of a :LKP expression in another transformation
You can use a dynamic or static cache.
You can use a static cache.
Cache includes all lookup columns used in the mapping (that is, lookup table columns included in the lookup condition and lookup table columns linked as output ports to other transformations).
Cache includes all lookup/output ports in the lookup condition and the lookup/return port.
Can return multiple columns from the same row or insert into the dynamic lookup cache.
Uses one return port (R). Returns one column from each row
If there is no match for the lookup condition, the Informatica Server returns the default value for all output ports. If you configure dynamic caching, the Informatica Server inserts rows into the cache.
If there is no match for the lookup condition, the Informatica Server returns NULL.
Pass multiple output values to another transformation. Link lookup/output ports to another transformation.
Pass one output value to another transformation. The lookup/output/return port passes the value to the transformation calling: LKP expression.
 Supports user-defined default values.
Does not support user-defined default values

Unconnected LookUp in Informatica.

One of the readers posted the following question, which is another frequently asked Question in Informatica
What is the absolute necessity of Unconnected lookup, if same functinality can be achived by Connected Lookup Transformation. Please post some real time situations where we decide either to use Connected/Unconnected Lookup Tranformation.
The main advantage of using an unconnected lookup is the fact that you can use it in an expression/any other transformation like a “function” in other programming languages. The Lookup Cache is calculated only once as part of the session initialization and hence more efficient, since all subsequent look-ups will re-use the Cache.
The only constraint is that the cache has to be static, i.e the data in your look-up table shouldn’t be changing once the lookup Cache has been created. Actually, it could change, but the Cache wouldn’t be updated. So the results might be incorrect.
This narrows down the usage of Unconnected Lookup to the following scenarios.
a) When you are looking up against a Static dimension (or any table) that is rarely ever updated
b) When you are looking up against a Base Dimension that is loaded before any of the Facts are loaded
c) The logic used in the Lookup-override is required at a lot of other places.
a) When you are looking up against a Static dimension (or any table) that is rarely ever updated

The most common example for this is the Date Dimension. Usually loaded once when your Data Warehouse goes to Production and very rarely updated.What makes it even more appealing to use unconnected lookup for Date Dimension is the Date Dimension Role Playing.
Example, An online order can have Order Date, Ship Date, Cancelled Date, Recieved Date and so on and the same Date Dimension table plays multiple roles.
Without an unconnected Lookup, here’s how your mapping would look..Also note that the Lookup Is being done on the same table internally (DATE_DIM), but the cache is being calculated one for each lookup.


Using an unconnected Lookup For Date Dimension, this is how it would be transformed..

As you can see, this promotes greater reuse ,a less complex mapping and is more efficient becuase of lesser Caching.

b) When you are looking up against a Base/Conformed Dimension that is loaded before any of the Facts are loaded.
Another example (one which is not static Data) is looking up against any customer Master Data/Conformed Dimension. Your DataWarehouse can have many Confirmed Dimensions, which are loaded before any of the Fact Loads.
One such example is the Employee Dimension. You can lookup the employee key multiple times in a given mapping and this makes a great candidate for Unconnected Lookup.

c) The logic used in the Lookup-override is required at a lot of other places.

This is more of a good coding practise than an Informatica specific “tip”. If your lookup involves a lookup override and you calculate the actual fact using a formula instead of using a direct column value, it would make sense to get the result using an unconnected lookup and use it at multiple places using a :LKP expression.
One such example is when you want to Lookup Revenue based on the Status of the Order instead of a direct Lookup, and you have a look-up override like the one below.
So if your lookup data is constant during your load and you have a good case for reuse, Unconnected Lookup can be very useful, both in terms of maintainability and efficiency.

What are the different lookup cache(s)?

Informatica Lookups can be cached or un-cached (No cache). And Cached lookup can be either static or dynamic. A static cache is one which does not modify the cache once it is built and it remains same during the session run. On the other hand, A dynamic cache is refreshed during the session run by inserting or updating the records in cache based on the incoming source data. By default, Informatica cache is static cache.
A lookup cache can also be divided as persistent or non-persistent based on whether Informatica retains the cache even after the completion of session run or deletes it

Guidelines for Dynamic Cache in Informatica Lookup Transformation - See more at: http://www.tecktricks.com/guidelines-for-dynamic-cache-in-informatica-lookup-transformation/#sthash.uVxiUOiI.dpuf
http://www.tecktricks.com/guidelines-for-dynamic-cache-in-informatica-lookup-transformation/#sthash.uVxiUOiI.dpbs

As we discussed in our last tutorial on “Types of lookup cache in Informatica ” , that enabling cache can boost the  performance of  lookup transformation in Informatica mapping. We discussed different type of Lookup cache option available in the properties tab of  Lookup Transformation in Informatica . There we talked about the  dynamic cache and static cache  for lookup transformation.  In some other Informatica tutorial , we also went through the  “Difference between Static Cache and Dynamic Cache in Informatica “. In below tutorial , we will go through the some of the guidelines to be followed while enabling dynamic cache in Lookup transformation.

Dynamic Cache Lookup:

Lookup Cache boost the performance of look up by reading the data from lookup source only once and then using it for for rest of the mapping. We can enable the Cache by checking the “Lookup caching Enabled” in the Properties tab of lookup Transformation.
Cache lookup Transformation
Cache lookup Transformation
Lookup can generate a cache file which persists for the duration of the session, or even created as a permanent named cache. This means that the data required for the lookup is read from its source only once. Informatica creates an index on the lookup cache minimizing the processing time for calls to the cache.
In Dynamic Cache we can insert or update rows in the cache when we pass the rows. Normally while using Target  as the lookup source to identify if new record is already there in Target or not we use this Dynamic cache.When a new record comes and it is not present in Cache (means missing in Target as well) , then it will insert this new record in Cache as well . So the dynamic cache is synchronized with the target with each processed row.
Dynamic Cache Lookup
Example : If there are 2 or more entries of the same customer on the same day in Source systems then while loading to the target we want the Lookup Cache to be refreshed dynamically(Insert/Update) and see the latest data in Cache.
Must Read : See difference between Dynamic and Static Cache lookup in Informatica here

Guidelines for Dynamic Cache:

Below point must be considered while enabling Dynamic cache for a lookup Transformation.
  • First of all check , do we really need dynamic lookup transformation.If source is not going to be changed , then go for static cache.
  • Dynamic cache will work with connected Lookup Transformation only.
  • Dynamic cache can be a persistent or a non-persistent cache , depending upon the option you select.
  • If the dynamic cache is not persistent, the Informatica Server always rebuilds the cache from the database, even if you do not enable Recache from Database.
  • You cannot share the cache between a dynamic Lookup transformation and static Lookup transformation in the same target load order group.
  • You can only create an equality lookup condition. You cannot look up a range of data.
  • You need to associate each lookup port (that is not in the lookup condition) with an input port or a sequence ID.
  • Only connect lookup/output ports to the target table instead of input/output ports. When you do this, the Informatica Server writes the same values to the lookup cache and the target table, keeping them synchronized.
  • When you use a lookup SQL override, make sure you map the correct columns to the appropriate targets for lookup.
  • When you add a WHERE clause to the lookup SQL override, use a Filter transformation before the Lookup transformation. This ensures the Informatica Server only inserts rows in the dynamic cache and target table that match the WHERE clause. For details, see Using the WHERE Clause with a Dynamic Cache.
  • When you configure a reusable Lookup transformation to use a dynamic cache, you cannot edit the condition or disable the Dynamic Lookup Cache property in a mapping.
  • Use Update Strategy transformations after the Lookup transformation to flag the rows for insert or update for the target.
  • Use an Update Strategy transformation before the Lookup transformation to define some or all rows as update if you want to use the Update Else Insert property in the Lookup transformation.
  • Set the row type to Data Driven in the session properties.
  • Select Insert and Update as Update for the target table options in the session properties.
Hope you enjoyed the above Informatica tutorial , we have gone through some of the important guidelines to be followed while enabling dynamic lookup cache in Informatica
- See more at: http://www.tecktricks.com/guidelines-for-dynamic-cache-in-informatica-lookup-transformation/#sthash.uVxiUOiI.dpuf
 http://www.tecktricks.com/types-of-lookup-cache-in-informatica/#sthash.IJtxdiKI.dpbs

http://www.tecktricks.com/difference-between-static-cache-and-dynamic-cache-in-informatica#sthash.doQNxAJ8.dpbs

http://www.tecktricks.com/oracle-join-vs-informatica-joiner/#sthash.gBpsrrMI.dpbs

http://www.tecktricks.com/how-to-tune-joiner-transformation-in-informatica/#sthash.5LMIukU2.dpbshttp://www.tecktricks.com/difference-between-static-cache-and-dynamic-cache-in-informatica/#sthash.nI8GpPwP.dpbs

oracle join vs informatica joiner

While developing Informatica mapping, some time you get some question in you mind,whether you should use  Informatica joiner to join the two source or should we use oracle join. Looking as the informatica beginner  , it feels like we should use informatica joiner as it give pictorial view of the whole joining logic. But if we are talk in terms of performance , Oracle join is better bet than Informatica one

Whyyy??

1. Oracle join always run faster than, as compared to informatica joiner as it will directly give the joined data to the informatica as a source
2. Hint/indexes plays  a booster roll in yielding the result of oracle join.
3. We can not join more than two tables in the same informatica joiner.
- See more at: http://www.tecktricks.com/oracle-join-vs-informatica-joiner/#sthash.gBpsrrMI.dpuf


 


 








 What is the difference between Router and Filter?

Following differences can be noted,
RouterFilter
Router transformation divides the incoming records into multiple groups based on some condition. Such groups can be mutually inclusive (Different groups may contain same record) Filter transformation restricts or blocks the incoming record set based on one given condition.
Router transformation itself does not block any record. If a certain record does not match any of the routing conditions, the record is routed to default group Filter transformation does not have a default group. If one record does not match filter condition, the record is blocked
Router acts like CASE.. WHEN statement in SQL (Or Switch().. Case statement in C) Filter acts like WHERE condition is SQL.

http://www.tecktricks.com/guidelines-for-dynamic-cache-in-informatica-lookup-transformation/#sthash.uVxiUOiI.dpbs

Guidelines for Dynamic Cache in Informatica Lookup Transformation

Lookup Transformation in InformaticaAs we discussed in our last tutorial on “Types of lookup cache in Informatica ” , that enabling cache can boost the  performance of  lookup transformation in Informatica mapping. We discussed different type of Lookup cache option available in the properties tab of  Lookup Transformation in Informatica . There we talked about the  dynamic cache and static cache  for lookup transformation.  In some other Informatica tutorial , we also went through the  “Difference between Static Cache and Dynamic Cache in Informatica “. In below tutorial , we will go through the some of the guidelines to be followed while enabling dynamic cache in Lookup transformation.

Dynamic Cache Lookup:

Lookup Cache boost the performance of look up by reading the data from lookup source only once and then using it for for rest of the mapping. We can enable the Cache by checking the “Lookup caching Enabled” in the Properties tab of lookup Transformation.
Cache lookup Transformation
Cache lookup Transformation
Lookup can generate a cache file which persists for the duration of the session, or even created as a permanent named cache. This means that the data required for the lookup is read from its source only once. Informatica creates an index on the lookup cache minimizing the processing time for calls to the cache.
In Dynamic Cache we can insert or update rows in the cache when we pass the rows. Normally while using Target  as the lookup source to identify if new record is already there in Target or not we use this Dynamic cache.When a new record comes and it is not present in Cache (means missing in Target as well) , then it will insert this new record in Cache as well . So the dynamic cache is synchronized with the target with each processed row.
Dynamic Cache Lookup
Example : If there are 2 or more entries of the same customer on the same day in Source systems then while loading to the target we want the Lookup Cache to be refreshed dynamically(Insert/Update) and see the latest data in Cache.
Must Read : See difference between Dynamic and Static Cache lookup in Informatica here

Guidelines for Dynamic Cache:

Below point must be considered while enabling Dynamic cache for a lookup Transformation.
  • First of all check , do we really need dynamic lookup transformation.If source is not going to be changed , then go for static cache.
  • Dynamic cache will work with connected Lookup Transformation only.
  • Dynamic cache can be a persistent or a non-persistent cache , depending upon the option you select.
  • If the dynamic cache is not persistent, the Informatica Server always rebuilds the cache from the database, even if you do not enable Recache from Database.
  • You cannot share the cache between a dynamic Lookup transformation and static Lookup transformation in the same target load order group.
  • You can only create an equality lookup condition. You cannot look up a range of data.
  • You need to associate each lookup port (that is not in the lookup condition) with an input port or a sequence ID.
  • Only connect lookup/output ports to the target table instead of input/output ports. When you do this, the Informatica Server writes the same values to the lookup cache and the target table, keeping them synchronized.
  • When you use a lookup SQL override, make sure you map the correct columns to the appropriate targets for lookup.
  • When you add a WHERE clause to the lookup SQL override, use a Filter transformation before the Lookup transformation. This ensures the Informatica Server only inserts rows in the dynamic cache and target table that match the WHERE clause. For details, see Using the WHERE Clause with a Dynamic Cache.
  • When you configure a reusable Lookup transformation to use a dynamic cache, you cannot edit the condition or disable the Dynamic Lookup Cache property in a mapping.
  • Use Update Strategy transformations after the Lookup transformation to flag the rows for insert or update for the target.
  • Use an Update Strategy transformation before the Lookup transformation to define some or all rows as update if you want to use the Update Else Insert property in the Lookup transformation.
  • Set the row type to Data Driven in the session properties.
  • Select Insert and Update as Update for the target table options in the session properties.
- See more at: http://www.tecktricks.com/guidelines-for-dynamic-cache-in-informatica-lookup-transformation/#sthash.uVxiUOiI.dpuf

How can we update a record in target table without using Update strategy?

A target table can be updated without using 'Update Strategy'. For this, we need to define the key in the target table in Informatica level and then we need to connect the key and the field we want to update in the mapping Target. In the session level, we should set the target property as "Update as Update" and check the "Update" check-box.
Let's assume we have a target table "Customer" with fields as "Customer ID", "Customer Name" and "Customer Address". Suppose we want to update "Customer Address" without an Update Strategy. Then we have to define "Customer ID" as primary key in Informatica level and we will have to connect Customer ID and Customer Address fields in the mapping. If the session properties are set correctly as described above, then the mapping will only update the customer address field for all matching customer IDs.

Under what condition selecting Sorted Input in aggregator may fail the session?

  • If the input data is not sorted correctly, the session will fail.
  • Also if the input data is properly sorted, the session may fail if the sort order by ports and the group by ports of the aggregator are not in the same order.

Why is Sorter an Active Transformation?

This is because we can select the "distinct" option in the sorter property.
When the Sorter transformation is configured to treat output rows as distinct, it assigns all ports as part of the sort key. The Integration Service discards duplicate rows compared during the sort operation. The number of Input Rows will vary as compared with the Output rows and hence it is an Active transformation.

Is lookup an active or passive transformation?

From Informatica 9x, Lookup transformation can be configured as as "Active" transformation.
However, in the older versions of Informatica, lookup is a passive transformation

What is the difference between Static and Dynamic Lookup Cache?

We can configure a Lookup transformation to cache the underlying lookup table. In case of static or read-only lookup cache the Integration Service caches the lookup table at the beginning of the session and does not update the lookup cache while it processes the Lookup transformation.
In case of dynamic lookup cache the Integration Service dynamically inserts or updates data in the lookup cache and passes the data to the target. The dynamic cache is synchronized with the target.
In case you are wondering why do we need to make lookup cache dynamic, read this article on dynamic lookup

What is the difference between STOP and ABORT options in Workflow Monitor?

When we issue the STOP command on the executing session task, the Integration Service stops reading data from source. It continues processing, writing and committing the data to targets. If the Integration Service cannot finish processing and committing data, we can issue the abort command.
In contrast ABORT command has a timeout period of 60 seconds. If the Integration Service cannot finish processing and committing data within the timeout period, it kills the DTM process and terminates the session.

What are the new features of Informatica 9.x in developer level?

From a developer's perspective, some of the new features in Informatica 9.x are as follows:
  • Now Lookup can be configured as an active transformation - it can return multiple rows on successful match
  • Now you can write SQL override on un-cached lookup also. Previously you could do it only on cached lookup
  • You can control the size of your session log. In a real-time environment you can control the session log file size or time
  • Database deadlock resilience feature - this will ensure that your session does not immediately fail if it encounters any database deadlock, it will now retry the operation again. You can configure number of retry attempts.

How to Delete duplicate row using Informatica

Scenario 1: Duplicate rows are present in relational database

Suppose we have Duplicate records in Source System and we want to load only the unique records in the Target System eliminating the duplicate rows. What will be the approach?
Assuming that the source system is a Relational Database, to eliminate duplicate records, we can check the Distinct option of the Source Qualifier of the source table and load the target accordingly.

Scenario 2: Deleting duplicate records from flatfile


Deleting duplicate rows / selecting distinct rows for FLAT FILE sources

In the previous page we saw how to choose distinct records from Relational sources. Next we asked the question, how may we select the distinct records for Flat File sources?
Here since the source system is a Flat File you will not be able to select the distinct option in the source qualifier as it will be disabled due to flat file source table. Hence the next approach may be we use a Sorter Transformation and check the Distinct option. When we select the distinct option all the columns will the selected as keys, in ascending order by default.

Deleting Duplicate Record Using Informatica Aggregator

Other ways to handle duplicate records in source batch run is to use an Aggregator Transformation and using the Group By checkbox on the ports having duplicate occurring data. Here you can have the flexibility to select the last or the first of the duplicate column value records.
There is yet another option to ensure duplicate records are not inserted in the target. That is through Dynamic lookup cache. Using Dynamic Lookup Cache of the target table and associating the input ports with the lookup port and checking the Insert Else Update option will help to eliminate the duplicate records in source and hence loading unique records in the target. For more details check, Dynamic Lookup Cache

Loading Multiple Target Tables Based on Conditions

Scenario
Suppose we have some serial numbers in a flat file source. We want to load the serial numbers in two target files one containing the EVEN serial numbers and the other file having the ODD ones.
Answer
After the Source Qualifier place a Router Transformation. Create two Groups namely EVEN and ODD, with filter conditions as:
MOD(SERIAL_NO,2)=0 and MOD(SERIAL_NO,2)=1
... respectively. Then output the two groups into two flat file targets.

Normalizer Related Questions

Scenario 1
Suppose in our Source Table we have data as given below:
Student NameMathsLife SciencePhysical Science
Sam1007080
John7510085
Tom8010085
We want to load our Target Table as:
Student NameSubject NameMarks
SamMaths100
SamLife Science70
SamPhysical Science80
JohnMaths75
JohnLife Science100
JohnPhysical Science85
TomMaths80
TomLife Science100
TomPhysical Science85
Describe your approach.
Answer
Here to convert the Rows to Columns we have to use the Normalizer Transformation followed by an Expression Transformation to Decode the column taken into consideration. For more details on how the mapping is performed please visit Working with Normalizer
Question
Name the transformations which converts one to many rows i.e increases the i/p:o/p row count. Also what is the name of its reverse transformation.
Answer
Normalizer as well as Router Transformations are the Active transformation which can increase the number of input rows to output rows.
Aggregator Transformation performs the reverse action of Normalizer transformation.
Scenario 2
Suppose we have a source table and we want to load three target tables based on source rows such that first row moves to first target table, secord row in second target table, third row in third target table, fourth row again in first target table so on and so forth. Describe your approach.
Answer
We can clearly understand that we need a Router transformation to route or filter source data to the three target tables. Now the question is what will be the filter conditions. First of all we need an Expression Transformation where we have all the source table columns and along with that we have another i/o port say seq_num, which is gets sequence numbers for each source row from the port NextVal of a Sequence Generator start value 0 and increment by 1. Now the filter condition for the three router groups will be:
  • MOD(SEQ_NUM,3)=1 connected to 1st target table
  • MOD(SEQ_NUM,3)=2 connected to 2nd target table
  • MOD(SEQ_NUM,3)=0 connected to 3rd target table

Loading Multiple Flat Files using one mapping

Scenario
Suppose we have ten source flat files of same structure. How can we load all the files in target database in a single batch run using a single mapping.
Answer
After we create a mapping to load data in target database from flat files, next we move on to the session property of the Source Qualifier. To load a set of source files we need to create a file say final.txt containing the source falt file names, ten files in our case and set the Source filetype option as Indirect. Next point this flat file final.txt fully qualified through Source file directory and Source filename.

Aggregator Transformation Related Questions

How can we implement Aggregation operation without using an Aggregator Transformation in Informatica?
Answer
We will use the very basic concept of the Expression Transformation that at a time we can access the previous row data as well as the currently processed data in an expression transformation. What we need is simple Sorter, Expression and Filter transformation to achieve aggregation at Informatica level.
For detailed understanding visit Aggregation without Aggregator
Scenario
Suppose in our Source Table we have data as given below:
Student NameSubject NameMarks
SamMaths100
TomMaths80
SamPhysical Science80
JohnMaths75
SamLife Science70
JohnLife Science100
JohnPhysical Science85
TomLife Science100
TomPhysical Science85
We want to load our Target Table as:
Student NameMathsLife SciencePhysical Science
Sam1007080
John7510085
Tom8010085
Describe your approach.
Answer
Here our scenario is to convert many rows to one rows, and the transformation which will help us to achieve this is Aggregator.
Our Mapping will look like this:
Mapping using sorter and Aggregator
We will sort the source data based on STUDENT_NAME ascending followed by SUBJECT ascending.
Now based on STUDENT_NAME in GROUP BY clause the following output subject columns are populated as
  • MATHS: MAX(MARKS, SUBJECT=Maths)
  • LIFE_SC: MAX(MARKS, SUBJECT=Life Science)
  • PHY_SC: MAX(MARKS, SUBJECT=Physical Science)

Revisiting Source Qualifier Transformation

What is a Source Qualifier? What are the tasks we can perform using a SQ and why it is an ACTIVE transformation?
Ans. A Source Qualifier is an Active and Connected Informatica transformation that reads the rows from a relational database or flat file source.
  • We can configure the SQ to join [Both INNER as well as OUTER JOIN] data originating from the same source database.
  • We can use a source filter to reduce the number of rows the Integration Service queries.
  • We can specify a number for sorted ports and the Integration Service adds an ORDER BY clause to the default SQL query.
  • We can choose Select Distinctoption for relational databases and the Integration Service adds a SELECT DISTINCT clause to the default SQL query.
  • Also we can write Custom/Used Defined SQL query which will override the default query in the SQ by changing the default settings of the transformation properties.
  • Also we have the option to write Pre as well as Post SQL statements to be executed before and after the SQ query in the source database.
Since the transformation provides us with the property Select Distinct, when the Integration Service adds a SELECT DISTINCT clause to the default SQL query, which in turn affects the number of rows returned by the Database to the Integration Service and hence it is an Active transformation.
What happens to a mapping if we alter the datatypes between Source and its corresponding Source Qualifier?
Ans. The Source Qualifier transformation displays the transformation datatypes. The transformation datatypes determine how the source database binds data when the Integration Service reads it.
Now if we alter the datatypes in the Source Qualifier transformation or the datatypes in the source definition and Source Qualifier transformation do not match, the Designer marks the mapping as invalid when we save it.
Suppose we have used the Select Distinct and the Number Of Sorted Ports property in the SQ and then we add Custom SQL Query. Explain what will happen.
Ans. Whenever we add Custom SQL or SQL override query it overrides the User-Defined Join, Source Filter, Number of Sorted Ports, and Select Distinct settings in the Source Qualifier transformation. Hence only the user defined SQL Query will be fired in the database and all the other options will be ignored .
Describe the situations where we will use the Source Filter, Select Distinct and Number Of Sorted Ports properties of Source Qualifier transformation.
Ans. Source Filter option is used basically to reduce the number of rows the Integration Service queries so as to improve performance.
Select Distinct option is used when we want the Integration Service to select unique values from a source, filtering out unnecessary data earlier in the data flow, which might improve performance.
Number Of Sorted Ports option is used when we want the source data to be in a sorted fashion so as to use the same in some following transformations like Aggregator or Joiner, those when configured for sorted input will improve the performance.
What will happen if the SELECT list COLUMNS in the Custom override SQL Query and the OUTPUT PORTS order in SQ transformation do not match?
Ans. Mismatch or Changing the order of the list of selected columns to that of the connected transformation output ports may result is session failure.
What happens if in the Source Filter property of SQ transformation we include keyword WHERE say, WHERE CUSTOMERS.CUSTOMER_ID > 1000.
Ans. We use source filter to reduce the number of source records. If we include the string WHERE in the source filter, the Integration Service fails the session.
Describe the scenarios where we go for Joiner transformation instead of Source Qualifier transformation.
Ans. While joining Source Data of heterogeneous sources as well as to join flat files we will use the Joiner transformation. Use the Joiner transformation when we need to join the following types of sources:
  • Join data from different Relational Databases.
  • Join data from different Flat Files.
  • Join relational sources and flat files.
What is the maximum number we can use in Number Of Sorted Ports for Sybase source system.
Ans. Sybase supports a maximum of 16 columns in an ORDER BY clause. So if the source is Sybase, do not sort more than 16 columns.
Suppose we have two Source Qualifier transformations SQ1 and SQ2 connected to Target tables TGT1 and TGT2 respectively. How do you ensure TGT2 is loaded after TGT1?
Ans. If we have multiple Source Qualifier transformations connected to multiple targets, we can designate the order in which the Integration Service loads data into the targets.
In the Mapping Designer, We need to configure the Target Load Plan based on the Source Qualifier transformations in a mapping to specify the required loading order.
Target Load Plan Ordering
Suppose we have a Source Qualifier transformation that populates two target tables. How do you ensure TGT2 is loaded after TGT1?
Ans. In the Workflow Manager, we can Configure Constraint based load ordering for a session. The Integration Service orders the target load on a row-by-row basis. For every row generated by an active source, the Integration Service loads the corresponding transformed row first to the primary key table, then to the foreign key table.
Hence if we have one Source Qualifier transformation that provides data for multiple target tables having primary and foreign key relationships, we will go for Constraint based load ordering.

Revisiting Filter Transformation

Q19. What is a Filter Transformation and why it is an Active one?
Ans. A Filter transformation is an Active and Connected transformation that can filter rows in a mapping.
Only the rows that meet the Filter Condition pass through the Filter transformation to the next transformation in the pipeline. TRUE and FALSE are the implicit return values from any filter condition we set. If the filter condition evaluates to NULL, the row is assumed to be FALSE.
The numeric equivalent of FALSE is zero (0) and any non-zero value is the equivalent of TRUE.
As an ACTIVE transformation, the Filter transformation may change the number of rows passed through it. A filter condition returns TRUE or FALSE for each row that passes through the transformation, depending on whether a row meets the specified condition. Only rows that return TRUE pass through this transformation. Discarded rows do not appear in the session log or reject files.
Q20. What is the difference between Source Qualifier transformations Source Filter to Filter transformation?
Ans.
SQ Source FilterFilter Transformation
Source Qualifier transformation filters rows when read from a source. Filter transformation filters rows from within a mapping
Source Qualifier transformation can only filter rows from Relational Sources. Filter transformation filters rows coming from any type of source system in the mapping level.
Source Qualifier limits the row set extracted from a source. Filter transformation limits the row set sent to a target.
Source Qualifier reduces the number of rows used throughout the mapping and hence it provides better performance. To maximize session performance, include the Filter transformation as close to the sources in the mapping as possible to filter out unwanted data early in the flow of data from sources to targets.
The filter condition in the Source Qualifier transformation only uses standard SQL as it runs in the database. Filter Transformation can define a condition using any statement or transformation function that returns either a TRUE or FALSE value.

Revisiting Joiner Transformation

Q21. What is a Joiner Transformation and why it is an Active one?
Ans. A Joiner is an Active and Connected transformation used to join source data from the same source system or from two related heterogeneous sources residing in different locations or file systems.
The Joiner transformation joins sources with at least one matching column. The Joiner transformation uses a condition that matches one or more pairs of columns between the two sources.
The two input pipelines include a master pipeline and a detail pipeline or a master and a detail branch. The master pipeline ends at the Joiner transformation, while the detail pipeline continues to the target.
In the Joiner transformation, we must configure the transformation properties namely Join Condition, Join Type and Sorted Input option to improve Integration Service performance.
The join condition contains ports from both input sources that must match for the Integration Service to join two rows. Depending on the type of join selected, the Integration Service either adds the row to the result set or discards the row.
The Joiner transformation produces result sets based on the join type, condition, and input data sources. Hence it is an Active transformation.
Q22. State the limitations where we cannot use Joiner in the mapping pipeline.
Ans. The Joiner transformation accepts input from most transformations. However, following are the limitations:
  • Joiner transformation cannot be used when either of the input pipeline contains an Update Strategy transformation.
  • Joiner transformation cannot be used if we connect a Sequence Generator transformation directly before the Joiner transformation.
Q23. Out of the two input pipelines of a joiner, which one will you set as the master pipeline?
Ans. During a session run, the Integration Service compares each row of the master source against the detail source. The master and detail sources need to be configured for optimal performance.
To improve performance for an Unsorted Joiner transformation, use the source with fewer rows as the master source. The fewer unique rows in the master, the fewer iterations of the join comparison occur, which speeds the join process.
When the Integration Service processes an unsorted Joiner transformation, it reads all master rows before it reads the detail rows. The Integration Service blocks the detail source while it caches rows from the master source. Once the Integration Service reads and caches all master rows, it unblocks the detail source and reads the detail rows.
To improve performance for a Sorted Joiner transformation, use the source with fewer duplicate key values as the master source.
When the Integration Service processes a sorted Joiner transformation, it blocks data based on the mapping configuration and it stores fewer rows in the cache, increasing performance.
Blocking logic is possible if master and detail input to the Joiner transformation originate from different sources. Otherwise, it does not use blocking logic. Instead, it stores more rows in the cache.
Q24. What are the different types of Joins available in Joiner Transformation?
Ans. In SQL, a join is a relational operator that combines data from multiple tables into a single result set. The Joiner transformation is similar to an SQL join except that data can originate from different types of sources.
The Joiner transformation supports the following types of joins :
  • Normal
  • Master Outer
  • Detail Outer
  • Full Outer
Note: A normal or master outer join performs faster than a full outer or detail outer join.
Q25. Define the various Join Types of Joiner Transformation.
Ans.
  • In a normal join , the Integration Service discards all rows of data from the master and detail source that do not match, based on the join condition.
  • A master outer join keeps all rows of data from the detail source and the matching rows from the master source. It discards the unmatched rows from the master source.
  • A detail outer join keeps all rows of data from the master source and the matching rows from the detail source. It discards the unmatched rows from the detail source.
  • A full outer join keeps all rows of data from both the master and detail sources.
Q26. Describe the impact of number of join conditions and join order in a Joiner Transformation.
Ans. We can define one or more conditions based on equality between the specified master and detail sources. Both ports in a condition must have the same datatype.
If we need to use two ports in the join condition with non-matching datatypes we must convert the datatypes so that they match. The Designer validates datatypes in a join condition.
Additional ports in the join condition increases the time necessary to join two sources.
The order of the ports in the join condition can impact the performance of the Joiner transformation. If we use multiple ports in the join condition, the Integration Service compares the ports in the order we specified.
NOTE: Only equality operator is available in joiner join condition.
Q27. How does Joiner transformation treat NULL value matching.
Ans. The Joiner transformation does not match null values.
For example, if both EMP_ID1 and EMP_ID2 contain a row with a null value, the Integration Service does not consider them a match and does not join the two rows.
To join rows with null values, replace null input with default values in the Ports tab of the joiner, and then join on the default values.
Note: If a result set includes fields that do not contain data in either of the sources, the Joiner transformation populates the empty fields with null values. If we know that a field will return a NULL and we do not want to insert NULLs in the target, set a default value on the Ports tab for the corresponding port.
Q28. Suppose we configure Sorter transformations in the master and detail pipelines with the following sorted ports in order: ITEM_NO, ITEM_NAME, PRICE.
When we configure the join condition, what are the guidelines we need to follow to maintain the sort order? Ans. If we have sorted both the master and detail pipelines in order of the ports say ITEM_NO, ITEM_NAME and PRICE we must ensure that:
  • Use ITEM_NO in the First Join Condition.
  • If we add a Second Join Condition, we must use ITEM_NAME.
  • If we want to use PRICE as a Join Condition apart from ITEM_NO, we must also use ITEM_NAME in the Second Join Condition.
  • If we skip ITEM_NAME and join on ITEM_NO and PRICE, we will lose the input sort order and the Integration Service fails the session.
Q29. What are the transformations that cannot be placed between the sort origin and the Joiner transformation so that we do not lose the input sort order.
Ans. The best option is to place the Joiner transformation directly after the sort origin to maintain sorted data. However do not place any of the following transformations between the sort origin and the Joiner transformation:
  • Custom
  • UnsortedAggregator
  • Normalizer
  • Rank
  • Union transformation
  • XML Parser transformation
  • XML Generator transformation
  • Mapplet [if it contains any one of the above mentioned transformations]
Q30. Suppose we have the EMP table as our source. In the target we want to view those employees whose salary is greater than or equal to the average salary for their departments. Describe your mapping approach.
Ans. Our Mapping will look like this:
ahref="http://png.dwbiconcepts.com/images/tutorial/info_interview/info_interview10.png" Mapping using Joiner
To start with the mapping we need the following transformations:
After the Source qualifier of the EMP table place a Sorter Transformation . Sort based on DEPTNOport.
Next we place a Sorted Aggregator Transformation. Here we will find out the AVERAGE SALARY for each (GROUP BY) DEPTNO.
When we perform this aggregation, we lose the data for individual employees.
To maintain employee data, we must pass a branch of the pipeline to the Aggregator Transformation and pass a branch with the same sorted source data to the Joiner transformation to maintain the original data.
When we join both branches of the pipeline, we join the aggregated data with the original data.
So next we need Sorted Joiner Transformation to join the sorted aggregated data with the original data, based on DEPTNO. Here we will be taking the aggregated pipeline as the Master and original dataflow as Detail Pipeline.
After that we need a Filter Transformation to filter out the employees having salary less than average salary for their department.
Filter Condition: SAL>=AVG_SAL
Lastly we have the Target table instance.

Revisiting Sequence Generator Transformation

Q31. What is a Sequence Generator Transformation?
Ans. A Sequence Generator transformation is a Passive and Connected transformation that generates numeric values. It is used to create unique primary key values, replace missing primary keys, or cycle through a sequential range of numbers. This transformation by default contains ONLY Two OUTPUT ports namely CURRVAL and NEXTVAL. We cannot edit or delete these ports neither we cannot add ports to this unique transformation. We can create approximately two billion unique numeric values with the widest range from 1 to 2147483647.
Q32. Define the Properties available in Sequence Generator transformation in brief.
Ans.
Sequence Generator PropertiesDescription
Start Value Start value of the generated sequence that we want the Integration Service to use if we use the Cycle option. If we select Cycle, the Integration Service cycles back to this value when it reaches the end value. Default is 0.
Increment By Difference between two consecutive values from the NEXTVAL port.Default is 1.
End Value Maximum value generated by SeqGen. After reaching this value the session will fail if the sequence generator is not configured to cycle.Default is 2147483647.
Current Value Current value of the sequence. Enter the value we want the Integration Service to use as the first value in the sequence. Default is 1.
Cycle If selected, when the Integration Service reaches the configured end value for the sequence, it wraps around and starts the cycle again, beginning with the configured Start Value.
Number of Cached Values Number of sequential values the Integration Service caches at a time. Default value for a standard Sequence Generator is 0. Default value for a reusable Sequence Generator is 1,000.
Reset Restarts the sequence at the current value each time a session runs.This option is disabled for reusable Sequence Generator transformations.
Q33. Suppose we have a source table populating two target tables. We connect the NEXTVAL port of the Sequence Generator to the surrogate keys of both the target tables.
Will the Surrogate keys in both the target tables be same? If not how can we flow the same sequence values in both of them.
Ans. When we connect the NEXTVAL output port of the Sequence Generator directly to the surrogate key columns of the target tables, the Sequence number will not be the same.
A block of sequence numbers is sent to one target tables surrogate key column. The second targets receives a block of sequence numbers from the Sequence Generator transformation only after the first target table receives the block of sequence numbers.
Suppose we have 5 rows coming from the source, so the targets will have the sequence values as TGT1 (1,2,3,4,5) and TGT2 (6,7,8,9,10). [Taken into consideration Start Value 0, Current value 1 and Increment by 1.
Now suppose the requirement is like that we need to have the same surrogate keys in both the targets.
Then the easiest way to handle the situation is to put an Expression Transformation in between the Sequence Generator and the Target tables. The SeqGen will pass unique values to the expression transformation, and then the rows are routed from the expression transformation to the targets.
Sequence Generator
Q34. Suppose we have 100 records coming from the source. Now for a target column population we used a Sequence generator.
Suppose the Current Value is 0 and End Value of Sequence generator is set to 80. What will happen?
Ans. End Value is the maximum value the Sequence Generator will generate. After it reaches the End value the session fails with the following error message:
TT_11009 Sequence Generator Transformation: Overflow error.
Failing of session can be handled if the Sequence Generator is configured to Cycle through the sequence, i.e. whenever the Integration Service reaches the configured end value for the sequence, it wraps around and starts the cycle again, beginning with the configured Start Value.
Q35. What are the changes we observe when we promote a non resuable Sequence Generator to a resuable one? And what happens if we set the Number of Cached Values to 0 for a reusable transformation?
Ans. When we convert a non reusable sequence generator to resuable one we observe that the Number of Cached Values is set to 1000 by default; And the Reset property is disabled.
When we try to set the Number of Cached Values property of a Reusable Sequence Generator to 0 in the Transformation Developer we encounter the following error message:
The number of cached values must be greater than zero for reusable sequence transformation.

Revisiting Aggregator Transformation

Q36. What is an Aggregator Transformation?
Ans. An aggregator is an Active, Connected transformation which performs aggregate calculations like AVG, COUNT, FIRST, LAST, MAX, MEDIAN, MIN, PERCENTILE, STDDEV, SUM and VARIANCE.
Q37. How an Expression Transformation differs from Aggregator Transformation?
Ans. An Expression Transformation performs calculation on a row-by-row basis. An Aggregator Transformation performs calculations on groups.
Q38. Does an Informatica Transformation support only Aggregate expressions?
Ans. Apart from aggregate expressions Informatica Aggregator also supports non-aggregate expressions and conditional clauses.
Q39. How does Aggregator Transformation handle NULL values?
Ans. By default, the aggregator transformation treats null values as NULL in aggregate functions. But we can specify to treat null values in aggregate functions as NULL or zero.
Q40. What is Incremental Aggregation?
Ans. We can enable the session option, Incremental Aggregation for a session that includes an Aggregator Transformation. When the Integration Service performs incremental aggregation, it actually passes changed source data through the mapping and uses the historical cache data to perform aggregate calculations incrementally.
For reference check Implementing Informatica Incremental Aggregation
Q41. What are the performance considerations when working with Aggregator Transformation?
Ans.
  • Filter the unnecessary data before aggregating it. Place a Filter transformation in the mapping before the Aggregator transformation to reduce unnecessary aggregation.
  • Improve performance by connecting only the necessary input/output ports to subsequent transformations, thereby reducing the size of the data cache.
  • Use Sorted input which reduces the amount of data cached and improves session performance.
Q42. What differs when we choose Sorted Input for Aggregator Transformation?
Ans. Integration Service creates the index and data caches files in memory to process the Aggregator transformation. If the Integration Service requires more space as allocated for the index and data cache sizes in the transformation properties, it stores overflow values in cache files i.e. paging to disk. One way to increase session performance is to increase the index and data cache sizes in the transformation properties. But when we check Sorted Input the Integration Service uses memory to process an Aggregator transformation it does not use cache files.
Q43. Under what conditions selecting Sorted Input in aggregator will still not boost session performance?
Ans.
  • Incremental Aggregation, session option is enabled.
  • The aggregate expression contains nested aggregate functions.
  • Source data is data driven.
Q44. Under what condition selecting Sorted Input in aggregator may fail the session?
Ans.
  • If the input data is not sorted correctly, the session will fail.
  • Also if the input data is properly sorted, the session may fail if the sort order by ports and the group by ports of the aggregator are not in the same order.
Q45. Suppose we do not group by on any ports of the aggregator what will be the output.
Ans. If we do not group values, the Integration Service will return only the last row for the input rows.
Q46. What is the expected value if the column in an aggregator transform is neither a group by nor an aggregate expression?
Ans. Integration Service produces one row for each group based on the group by ports. The columns which are neither part of the key nor aggregate expression will return the corresponding value of last record of the group received. However, if we specify particularly the FIRST function, the Integration Service then returns the value of the specified first row of the group. So default is the LAST function.
Q47. Give one example for each of Conditional Aggregation, Non-Aggregate expression and Nested Aggregation.
Ans.
Use conditional clauses in the aggregate expression to reduce the number of rows used in the aggregation. The conditional clause can be any clause that evaluates to TRUE or FALSE.
SUM( SALARY, JOB = CLERK )
Use non-aggregate expressions in group by ports to modify or replace groups.
IIF( PRODUCT = Brown Bread, Bread, PRODUCT )
The expression can also include one aggregate function within another aggregate function, such as:
MAX( COUNT( PRODUCT ))

Revisiting Rank Transformation

Q48. What is a Rank Transform?
Ans. Rank is an Active Connected Informatica transformation used to select a set of top or bottom values of data.
Q49. How does a Rank Transform differ from Aggregator Transform functions MAX and MIN?
Ans. Like the Aggregator transformation, the Rank transformation lets us group information. The Rank Transform allows us to select a group of top or bottom values, not just one value as in case of Aggregator MAX, MIN functions.
Q50. What is a RANK port and RANKINDEX?
Ans. Rank port is an input/output port use to specify the column for which we want to rank the source values. By default Informatica creates an output port RANKINDEX for each Rank transformation. It stores the ranking position for each row in a group.
Q51. How can you get ranks based on different groups?
Ans. Rank transformation lets us group information. We can configure one of its input/output ports as a group by port. For each unique value in the group port, the transformation creates a group of rows falling within the rank definition (top or bottom, and a particular number in each rank).
Q52. What happens if two rank values match?
Ans. If two rank values match, they receive the same value in the rank index and the transformation skips the next value.
Q53. What are the restrictions of Rank Transformation?
Ans.
  • We can connect ports from only one transformation to the Rank transformation.
  • We can select the top or bottom rank.
  • We need to select the Number of records in each rank.
  • We can designate only one Rank port in a Rank transformation.
Q54. How does a Rank Cache works?
Ans. During a session, the Integration Service compares an input row with rows in the data cache. If the input row out-ranks a cached row, the Integration Service replaces the cached row with the input row. If we configure the Rank transformation to rank based on different groups, the Integration Service ranks incrementally for each group it finds. The Integration Service creates an index cache to stores the group information and data cache for the row data.
Q55. How does Rank transformation handle string values?
Ans. Rank transformation can return the strings at the top or the bottom of a session sort order. When the Integration Service runs in Unicode mode, it sorts character data in the session using the selected sort order associated with the Code Page of IS which may be French, German, etc. When the Integration Service runs in ASCII mode, it ignores this setting and uses a binary sort order to sort character data.

Revisiting Sorter Transformation

Q56. What is a Sorter Transformation?
Ans. Sorter Transformation is an Active, Connected Informatica transformation used to sort data in ascending or descending order according to specified sort keys. The Sorter transformation contains only input/output ports.
Q57. Why is Sorter an Active Transformation?
Ans. When the Sorter transformation is configured to treat output rows as distinct, it assigns all ports as part of the sort key. The Integration Service discards duplicate rows compared during the sort operation. The number of Input Rows will vary as compared with the Output rows and hence it is an Active transformation.
Q58. How does Sorter handle Case Sensitive sorting?
Ans. The Case Sensitive property determines whether the Integration Service considers case when sorting data. When we enable the Case Sensitive property, the Integration Service sorts uppercase characters higher than lowercase characters.
Q59. How does Sorter handle NULL values?
Ans. We can configure the way the Sorter transformation treats null values. Enable the property Null Treated Low if we want to treat null values as lower than any other value when it performs the sort operation. Disable this option if we want the Integration Service to treat null values as higher than any other value.
Q60. How does a Sorter Cache works?
Ans. The Integration Service passes all incoming data into the Sorter Cache before Sorter transformation performs the sort operation.
The Integration Service uses the Sorter Cache Size property to determine the maximum amount of memory it can allocate to perform the sort operation. If it cannot allocate enough memory, the Integration Service fails the session. For best performance, configure Sorter cache size with a value less than or equal to the amount of available physical RAM on the Integration Service machine.
If the amount of incoming data is greater than the amount of Sorter cache size, the Integration Service temporarily stores data in the Sorter transformation work directory. The Integration Service requires disk space of at least twice the amount of incoming data when storing data in the work directory.

Revisiting Union Transformation

Q61. What is a Union Transformation?
Ans. The Union transformation is an Active, Connected non-blocking multiple input group transformation use to merge data from multiple pipelines or sources into one pipeline branch. Similar to the UNION ALL SQL statement, the Union transformation does not remove duplicate rows.
Q62. What are the restrictions of Union Transformation?
Ans.
  • All input groups and the output group must have matching ports. The precision, datatype, and scale must be identical across all groups.
  • We can create multiple input groups, but only one default output group.
  • The Union transformation does not remove duplicate rows.
  • We cannot use a Sequence Generator or Update Strategy transformation upstream from a Union transformation.
  • The Union transformation does not generate transactions.

General questions

Q63. What is the difference between Static and Dynamic Lookup Cache?
Ans. We can configure a Lookup transformation to cache the corresponding lookup table. In case of static or read-only lookup cache the Integration Service caches the lookup table at the beginning of the session and does not update the lookup cache while it processes the Lookup transformation.
In case of dynamic lookup cache the Integration Service dynamically inserts or updates data in the lookup cache and passes the data to the target. The dynamic cache is synchronized with the target.
Q64. What is Persistent Lookup Cache?
Ans. Lookups are cached by default in Informatica. Lookup cache can be either non-persistent or persistent. The Integration Service saves or deletes lookup cache files after a successful session run based on whether the Lookup cache is checked as persistent or not.
Q65. What is the difference between Reusable transformation and Mapplet?
Ans. Any Informatica Transformation created in the in the Transformation Developer or a non-reusable promoted to reusable transformation from the mapping designer which can be used in multiple mappings is known as Reusable Transformation. When we add a reusable transformation to a mapping, we actually add an instance of the transformation. Since the instance of a reusable transformation is a pointer to that transformation, when we change the transformation in the Transformation Developer, its instances reflect these changes.
A Mapplet is a reusable object created in the Mapplet Designer which contains a set of transformations and lets us reuse the transformation logic in multiple mappings. A Mapplet can contain as many transformations as we need. Like a reusable transformation when we use a mapplet in a mapping, we use an instance of the mapplet and any change made to the mapplet is inherited by all instances of the mapplet.
Q66. What are the transformations that are not supported in Mapplet?
Ans. Normalizer, Cobol sources, XML sources, XML Source Qualifier transformations, Target definitions, Pre- and post- session Stored Procedures, Other Mapplets.
Q67. What are the ERROR tables present in Informatica?
Ans.
  • PMERR_DATA- Stores data and metadata about a transformation row error and its corresponding source row.
  • PMERR_MSG- Stores metadata about an error and the error message.
  • PMERR_SESS- Stores metadata about the session.
  • PMERR_TRANS- Stores metadata about the source and transformation ports, such as name and datatype, when a transformation error occurs.
Q68. What is the difference between STOP and ABORT?
Ans. When we issue the STOP command on the executing session task, the Integration Service stops reading data from source. It continues processing, writing and committing the data to targets. If the Integration Service cannot finish processing and committing data, we can issue the abort command.
In contrast ABORT command has a timeout period of 60 seconds. If the Integration Service cannot finish processing and committing data within the timeout period, it kills the DTM process and terminates the session.
Q69. Can we copy a session to new folder or new repository?
Ans. Yes we can copy session to new folder or repository provided the corresponding Mapping is already in there.
Q70. What type of join does Lookup support?
Ans. Lookup is just similar like SQL LEFT OUTER JOIN.

What can we do to improve the performance of Informatica Aggregator Transformation?

 Aggregator performance improves dramatically if records are sorted before passing to the aggregator and "sorted input" option under aggregator properties is checked. The record set should be sorted on those columns that are used in Group By operation.
It is often a good idea to sort the record set in database level (click here to see why?) e.g. inside a source qualifier transformation, unless there is a chance that already sorted records from source qualifier can again become unsorted before reaching aggregator

Informatica Performance Tuning Points :

http://www.dwbiconcepts.com/etl/14-etl-informatica/45-informatica-performance-tuning-complete-guide.html

How to Tune Performance of Informatica Aggregator Transformation

Similar to what we discussed regarding the Performance Tuning of Joiner Transformation, the basic rule for tuning aggregator is to avoid aggregator transformation altogether unless...
  • You really can not do the aggregation in the source qualifier SQL query (e.g. Flat File source)
  • Fields used for aggregation are derived inside the mapping

Tuning Aggregator Transformation

If you have to do the aggregation using Informatica aggregator, then ensure that all the columns used in the group by are sorted in the same order of group by and “Sorted Input” option is checked in the aggregator properties. Ensuring the input data is sorted is absolutely must in order to achieve better performance and we will soon know why.
Other things that need to be checked to increase aggregator performance are –
  • Check if “Case-Sensitive String Comparison” option is really required. Keeping this option checked (default) slows down the aggregator performance
  • Enough memory (RAM) is available to do the in memory aggregation. See below section for details.
  • Aggregator cache is partitioned

How to (and when to) set aggregator Data and Index cache size

As I mentioned before also, my advice is to leave the “Aggregator Data Cache Size” and “Aggregator Index Cache Size” options as Auto (default) in the transformation level and if required, set either of the followings in the session level (under “Config Object” tab) to allow Informatica allocate enough memory automatically for the transformation:
  1. Maximum Memory Allowed For Auto Memory Attributes
  2. Maximum Percentage of Total Memory Allowed For Auto Memory Attributes
However if you do have to set Data Cache/ Index Cache size yourself, please note that the value you set here is actually RAM memory requirement (and not disk space requirement) and hence, your mapping will fail if Informatica can not allocate the entire memory in RAM at the session initiation. And yes, this can happen often because you never know what other jobs are running in the server and what amount of RAM other jobs are really occupying while you run this job.
Having understood the risk, let’s now see the benefit of manually configuring the Index and Data Cache sizes. If you leave the index and data cache sizes to auto then if Informatica does not get enough memory during session run time, your job will not fail, instead Informatica will page-out the data to hard disk level. Since I/O performance of hard disk drive is 1000~ times slower than RAM, paging out to hard disk drive will have performance penalty. So by setting data and index cache size manually you can ensure that Informatica block this memory in the beginning of session run so that the cache is not paged-out to disk and the entire aggregation actually take place in RAM. Do this at your own risk.
Manually configuring index and data cache sizes can be beneficial if ensuring consistent session performance is your highest priority compared to session stability and operational steadiness. Basically you risk your operations (since it creates high chance of session failure) to obtain optimized performance.
The best way to determine the data and index cache size(s) is to check the session log of already executed session. Session log clearly shows these sizes in bytes. But this size depends on the row count. So keep some buffer (around 20% in most cases) on top of these sizes and use those values for the configuration.
Other way to determine Index and Data Cache sizes are, of course, to use the inbuilt Cache-size calculator accessible in session level.
Aggregator Cache Size Calculator
Using the Informatica Aggregator cache size calculator is a bit difficult (and lot inaccurate). The reason is to calculate cache size properly you will need to know the number of groups that the aggregator is going to process. The definition of number of groups is as below:
No. of Groups = Multiplication of cardinality values of each group by column
This means, suppose you group by store and product, and there are total 150 distinct stores and 10 distinct products, then no. of groups will be 150 X 10 = 1500.
This is inaccurate because, in most cases you can not ascertain how many distinct stores and product data will come on each load. You might have 150 stores and 10 products, but there is no guarantee that all the product will come on all the load. Hence the cache size you determine in this method is quite approximate.
You can, however, calculate the cache size in both the two methods discussed here and take the max of the values to be in safer side.

READ OUR RECOMMENDED ARTICLES

Informatica Interview Question Bank

http://www.techtiks.com/informatica/interview-questions/question-bank/

Informatica Repository / Repository Manager
Q. What type of repositories can be created using Informatica Repository Manager?
Q. What is a code page?
Q. Which all databases PowerCenter Server on Windows can connect to?
Q. Which all databases PowerCenter Server on UNIX can connect to?
Informatica Designer
Q. How to execute PL/SQL script from Informatica mapping?
Q. How can you define a transformation? What are different types of transformations available in Informatica?
Q. What is a source qualifier? What is meant by Query Override?
Q. What is aggregator transformation?
Q. What is Incremental Aggregation?
Q. How Union Transformation is used?
Q. Can two flat files be joined with Joiner Transformation?
Q. What is a look up transformation?
Q. Can a lookup be done on Flat Files?
Q. What are Connected and Unconnected Lookups?
Q. What is a mapplet?
Q. What does reusable transformation mean?
Q. What is update strategy and what are the options for update strategy?


http://www.techtiks.com/informatica/interview-questions/informatica-designer-questions/

Informatica Designer Interview Questions


Q. How to execute PL/SQL script from Informatica mapping?
A. Stored Procedure (SP) transformation can be used to execute PL/SQL Scripts. In SP Transformation PL/SQL procedure name can be specified. Whenever the session is executed, the session will call the pl/sql procedure.

Q. How can you define a transformation? What are different types of transformations available in Informatica?
A. A transformation is a repository object that generates, modifies, or passes data. The Designer provides a set of transformations that perform specific functions. For example, an Aggregator transformation performs calculations on groups of data. Below are the various transformations available in Informatica:
  • Aggregator
  • Application Source Qualifier
  • Custom
  • Expression
  • External Procedure
  • Filter
  • Input
  • Joiner
  • Lookup
  • Normalizer
  • Output
  • Rank
  • Router
  • Sequence Generator
  • Sorter
  • Source Qualifier
  • Stored Procedure
  • Transaction Control
  • Union
  • Update Strategy
  • XML Generator
  • XML Parser
  • XML Source Qualifier

Q. What is a source qualifier? What is meant by Query Override?
A. Source Qualifier represents the rows that the PowerCenter Server reads from a relational or flat file source when it runs a session. When a relational or a flat file source definition is added to a mapping, it is connected to a Source Qualifier transformation.
PowerCenter Server generates a query for each Source Qualifier Transformation whenever it runs the session. The default query is SELET statement containing all the source columns. Source Qualifier has capability to override this default query by changing the default settings of the transformation properties. The list of selected ports or the order they appear in the default query should not be changed in overridden query.

Q. What is aggregator transformation?
A. The Aggregator transformation allows performing aggregate calculations, such as averages and sums. Unlike Expression Transformation, the Aggregator transformation can only be used to perform calculations on groups. The Expression transformation permits calculations on a row-by-row basis only.
Aggregator Transformation contains group by ports that indicate how to group the data. While grouping the data, the aggregator transformation outputs the last row of each group unless otherwise specified in the transformation properties.
Various group by functions available in Informatica are : AVG, COUNT, FIRST, LAST, MAX, MEDIAN, MIN, PERCENTILE, STDDEV, SUM, VARIANCE.

Q. What is Incremental Aggregation?
A. Whenever a session is created for a mapping Aggregate Transformation, the session option for Incremental Aggregation can be enabled. When PowerCenter performs incremental aggregation, it passes new source data through the mapping and uses historical cache data to perform new aggregation calculations incrementally.

Q. How Union Transformation is used?
A. The union transformation is a multiple input group transformation that can be used to merge data from various sources (or pipelines). This transformation works just like UNION ALL statement in SQL, that is used to combine result set of two SELECT statements.

Q. Can two flat files be joined with Joiner Transformation?
A. Yes, joiner transformation can be used to join data from two flat file sources.

Q. What is a look up transformation?
A. This transformation is used to lookup data in a flat file or a relational table, view or synonym. It compares lookup transformation ports (input ports) to the source column values based on the lookup condition. Later returned values can be passed to other transformations.

Q. Can a lookup be done on Flat Files?
A. Yes.

Q. What is the difference between a connected look up and unconnected look up?
A. Connected lookup takes input values directly from other transformations in the pipeline.
Unconnected lookup doesnít take inputs directly from any other transformation, but it can be used in any transformation (like expression) and can be invoked as a function using :LKP expression. So, an unconnected lookup can be called multiple times in a mapping.

Q. What is a mapplet?
A. A mapplet is a reusable object that is created using mapplet designer. The mapplet contains set of transformations and it allows us to reuse that transformation logic in multiple mappings.

Q. What does reusable transformation mean?
A. Reusable transformations can be used multiple times in a mapping. The reusable transformation is stored as a metadata separate from any other mapping that uses the transformation. Whenever any changes to a reusable transformation are made, all the mappings where the transformation is used will be invalidated.

Q. What is update strategy and what are the options for update strategy?
A. Informatica processes the source data row-by-row. By default every row is marked to be inserted in the target table. If the row has to be updated/inserted based on some logic Update Strategy transformation is used. The condition can be specified in Update Strategy to mark the processed row for update or insert.
Following options are available for update strategy:
  • DD_INSERT : If this is used the Update Strategy flags the row for insertion. Equivalent numeric value of DD_INSERT is 0.
  • DD_UPDATE : If this is used the Update Strategy flags the row for update. Equivalent numeric value of DD_UPDATE is 1.
  • DD_DELETE : If this is used the Update Strategy flags the row for deletion. Equivalent numeric value of DD_DELETE is 2.
  • DD_REJECT : If this is used the Update Strategy flags the row for rejection. Equivalent numeric value of DD_REJECT is 3.
http://www.techtiks.com/informatica/interview-questions/informatica-repository-questions/

Informatica Repository Interview Questions

Q. What type of repositories can be created using Informatica Repository Manager?
A. Informatica PowerCenter includeds following type of repositories :
  • Standalone Repository : A repository that functions individually and this is unrelated to any other repositories.
  • Global Repository : This is a centralized repository in a domain. This repository can contain shared objects across the repositories in a domain. The objects are shared through global shortcuts.
  • Local Repository : Local repository is within a domain and itís not a global repository. Local repository can connect to a global repository using global shortcuts and can use objects in itís shared folders.
  • Versioned Repository : This can either be local or global repository but it allows version control for the repository. A versioned repository can store multiple copies, or versions of an object. This features allows to efficiently develop, test and deploy metadata in the production environment.

Q. What is a code page?
A. A code page contains encoding to specify characters in a set of one or more languages. The code page is selected based on source of the data. For example if source contains Japanese text then the code page should be selected to support Japanese text.
When a code page is chosen, the program or application for which the code page is set, refers to a specific set of data that describes the characters the application recognizes. This influences the way that application stores, receives, and sends character data.

Q. Which all databases PowerCenter Server on Windows can connect to?
A. PowerCenter Server on Windows can connect to following databases:
  • IBM DB2
  • Informix
  • Microsoft Access
  • Microsoft Excel
  • Microsoft SQL Server
  • Oracle
  • Sybase
  • Teradata

Q. Which all databases PowerCenter Server on UNIX can connect to?
A. PowerCenter Server on UNIX can connect to following databases:
  • IBM DB2
  • Informix
  • Oracle
  • Sybase
  • Teradata
ETL and Data Warehousing Performance Tuning

Query Performance
  1. General
  2. Indexing
  3. Clustering
Informatica


  1. Partitioning
  2. Cache Performance
  3. ETL performaing tune for source,target,mapping/job,session
For any production database, SQL query performance becomes an issue sooner or later.
Having long-running queries not only consumes system resources that makes the server and application run slowly, but also may lead to table locking and data corruption issues.
So, query optimization becomes an important task.

First, principles for query optimization:

I. General

1. Understand how your database is executing your query

Nowadays all databases have their own query optimizer, and offers a way for users
to understand how a query is executed. For example, which index from which table is
being used to execute the query? The first step to query optimization is understanding
what the database is doing. Different databases have different commands for this.
For example, in MySQL, one can use "EXPLAIN [SQL Query]" keyword to see the query plan.
In Oracle, one can use "EXPLAIN PLAN FOR [SQL Query]" to see the query plan.

2. Retrieve as little data as possible

The more data returned from the query, the more resources the database needs to expand
to process and store these data. So for example, if you only need to retrieve one column
from a table, do not use 'SELECT *'.

3. Store intermediate results

Sometimes logic for a query can be quite complex. Often, it is possible to achieve
the desired result through the use of subqueries, inline views, and UNION-type statements.
For those cases, the intermediate results are not stored in the database, but are
immediately used within the query. This can lead to performance issues, especially
when the intermediate results have a large number of rows.
The way to increase query performance in those cases is to store the intermediate
Below are several specific query optimization strategies.

II. Indexing

Use Index
Using an index is the first strategy one should use to speed up a query.
In fact, this strategy is so important that index optimization is also discussed.

Aggregate Table

Pre-populating tables at higher levels so less amount of data need to be parsed.

III. Clustering

Vertical Partitioning

Partition the table by columns. This strategy decreases the amount of data a SQL query
needs to process.

Horizontal Partitioning

Partition the table by data value, most often time. This strategy decreases the amount
of data a SQL query needs to process.

Denormalization

The process of denormalization combines multiple tables into a single table.
his speeds up query performance because fewer table joins are needed.

Server Tuning

Each server has its own parameters, and often tuning server parameters so that
it can fully take advantage of the hardware resources can significantly speed
up query performance.

http://its4u-afzal.blogspot.in/2009_11_01_archive.html


Top 50 Informatica Interview Questions with Answers :


http://www.dwbiconcepts.com/tutorial/24-interview-questions/11-top-50-informatica-interview-questions-with-answers.html

Links
  1. http://etltechicalexpertiseblog.blogspot.com/
  2. http://www.learndatamodeling.com/inform_quest.htm
  3. http://skyessinformatica.blogspot.com/2011/03/informatica-has-developed-feature-in.html
  4. http://www.andhrafriends.com/topic/239612-informatica-online-training-lowest-fee-with-high-course-curriculum/
  5. http://datawarehouse.ittoolbox.com/groups/technical-functional/informatica-l/difference-between-scd-load-and-incremental-load-in-informatica-4325237
  6. http://informaticatutorials-naveen.blogspot.com/2011/04/scd-type-1.html
  7. http://www.allinterview.com/showanswers/137342.html
  8. http://www.dwforum.net/data_warehousing_concepts/scd_12_129.0.html
  9. http://www.learnersparadise.com/mentors/cgi-bin/courseProfile.pl?course_id=2464
  10. http://informaticatutorials-naveen.blogspot.com/2011/04/scd-type-3.html
  11. https://community.informatica.com/message/63966
  12. http://www.techtiks.com/
  13. http://www.dwbiconcepts.com/etl/14-etl-informatica/16-dynamic-lookup-cache.html
  14. http://www.dwbiconcepts.com/
  15. http://www.dwbiconcepts.com/etl/14-etl-informatica/49-using-informatica-stored-procedure-transformation.html
  16. http://www.geekinterview.com/question_details/74303
  17. http://informatica.techtiks.com/informatica_questions.html
  18. http://informaticareference.wordpress.com/category/informatica-interview-questions/
  19. http://www.learndatamodeling.com/inform_quest.htm
  20. http://www.allinterview.com/showanswers/137342.html
  21. http://www.dwhworld.com/2010/10/informatica-interview-questions-1/
  22. http://dwhetltool.blogspot.com/2011/03/informatica-faqs-part-1.html
  23. http://dwhetltool.blogspot.com/2011/03/informatica-faqs-part-2.html 
  24. http://dwhetltool.blogspot.com/2011/03/informatica-faqs-part-3.html 
  25. http://dwhetltool.blogspot.com/2011/03/informatica-faqs-part-4.html
  26. http://dwhetltool.blogspot.com/2011/03/informatica-faqs-part-5.html
  27. http://dwhetltool.blogspot.com/2011/03/informatica-faqs-part-6.html
  28. http://dwhetltool.blogspot.com/2011/03/informatica-faqs-part-6_28.html
  29. http://dwhetltool.blogspot.com/2011/03/informatica-faqs-part-7.html
  30. http://dwhetltool.blogspot.com/2011/03/informatica-faqs-part-8.html
  31. http://dwhetltool.blogspot.com/2011/03/informatica-faqs-part-9.html
  32. http://dwhetltool.blogspot.com/2011/03/informatica-faqs-part-10.html
  33. http://www.geekinterview.com/question_details/66185
  34. http://www.geekinterview.com/question_details/44713
  35. http://www.geekinterview.com/question_details/87393
  36. http://www.geekinterview.com/question_details/84173
  37. http://www.tek-tips.com/threadminder.cfm?pid=388
  38. http://www.dwbiconcepts.com/tutorial/24-interview-questions/11-top-50-informatica-interview-questions-with-answers.html
  39. http://www.tek-tips.com/viewthread.cfm?qid=1049570
  40. http://informatica.techtiks.com/informatica_questions.html
  41. http://gogates.blogspot.in/2011/05/informatica-interview-questions.html
  42. http://www.coolinterview.com/type.asp?iType=18
  43. http://padhaku.hubpages.com/hub/Informatica-interview-Questions-with-Answers
  44. http://datawarehouse.ittoolbox.com/documents/informatica-etl-tool-interview-questions-15397
  45. http://www.gointerviews.com/50-frequently-asked-informatica-interview-questions-with-answers/
  46. http://www.gointerviews.com/50-frequently-asked-informatica-interview-questions-with-answers/
  47. http://www.itquestionbank.com/informatica-interview-questions-with-answers.html
  48. http://manthiramoorthy.blogspot.in/2011/10/informatica-interview-questions-and.html
  49. http://www.coolinterview.com/type.asp?iType=15
  50. http://tipstointerview.com/informatica/
  51. http://oracleedq.com/50-best-informatica-administrator-interview-questions-with-answers/
  52. http://oracleedq.com/50-best-informatica-administrator-interview-questions-with-answers/#

Questions : INFORMATICA COMMUNITY

These are the questions discussed on Informatica Community.
Below links will take you to Informatica Community site.
you will find lots of your answers here and lots of learning.
Share and Learn.
Please visit this page regularly to update your knowledge , Happy Learning !
































Informatica Certification Questions/Dump

Mapplet definition

Refer to the mapping illustrated below. Assume that the mapplet definition is valid and that the individual transformation expressions are valid. Select the statement that is correct.

Choose Answer

(A) The mapping will be valid as it is.

(B) The mapping is valid because the third mapplet output group, Update Changes, does not have any output ports connected to a transformation or Target definition.

(C) The mapping is invalid because you cannot concatenate two or more data flow paths together into one mapplet input group.

(D) The mapplet is invalid because the number of output ports in each output group does not match.


Input transformation in mapplet. Select the statement below that is true.

Choose Answer

(A) A mapplet that does not contain an Input transformation is always an active mapplet.

(B) A mapplet that does not contain an Input transformation is an active mapplet only if it contains at least one active transformation.

(C) A passive mapplet can be made into an active mapplet by adding one or more Joiner transformations to the mapplet.

(D) A passive mapplet can be made into an active mapplet by adding one or more Lookup transformations to the mapplet.

Output transformations in a mapplet. How many Output transformations can be placed in a mapplet? Choose Answer

(A) One

(B) One or more

(C) One or more unless there is at least one Target definition in the mapplet, in which case zero Output transformations are permitted.

(D) Any number

Homogeneous Source Definitions

How many homogeneous Source Definitions can be placed in a Mapplet? Choose Answer

(A) One

(B) One for each Source Qualifier transformation.

(C) Zero to one if the mapplet does not contain an Input or ERP Source Qualifier transformation.

(D) Unlimited

Difference between the Router and Filter transformations

A major difference between the Router and Filter transformations is that filtered rows can be captured in the Router. (T/F) Choose Answer

(A) True

(B) False

Filter transformation

A Filter transformation contains the following condition: ITEM_COST > 100.00. The value for ITEM_COST for a specific row is 35. What will happen to that row? Choose Answer

(A) It is dropped from the mapping flow.

(B) It is dropped from the mapping flow and written to the appropriate reject (bad) file.

(C) It is dropped from the mapping flow and written to the appropriate reject (bad) file if the Filter property "Forward Filtered Rows" is set to True.

(D) If the Filter property "Forward Filtered Rows" is set to True, the row is sent to downstream transformations, if any, but not written to the target table.

Router transformation that has three groups defined

Specify which statement below best describes the behavior of a Router transformation that has three groups defined.

Choose Answer

(A) The condition for each group will be evaluated for each row, and the first group that evaluates to a "true" result will pass the row out of the transformation through that group's output ports. If no group evaluates to a "true" result, the row will pass out of the transformation through the Default group output ports.

(B) The condition for each group will be evaluated for each row, and each group that evaluates to a "true" result will pass the row out of the transformation through that group's output ports. If no group evaluates to a "true" result, the row will pass out of the transformation through the Default group output ports.

(C) The condition for each group will be evaluated for each row, and the first group that evaluates to a "true" result will pass the row out of the transformation through that group's output ports. If no group evaluates to a "true" result, the row will pass out of the transformation through the Default group output ports only if those ports are connected to another transformation.

(D) The condition for each group will be evaluated for each row, and each group that evaluates to a "true" result will pass the row out of the transformation through that group's output ports. If no group evaluates to a "true" result, the row will pass out of the transformation through the Default group output ports only if those ports are connected to another transformation.

Update Strategy transformation

It is desired to run a session where every row that is processed by the session updates the target table based on the primary key value. Assume that the target table definition has a primary key, and all other session and mapping properties are left to their defaults. Select the statement below that is true.

Choose Answer

(A) The only action that is necessary is to set the Treat Source Rows As session property to Update.

(B) At least one Update Strategy transformation must be present in the mapping, and the update expression condition must be written to be true for all rows that are desired to update the target table.

(C) At least one Update Strategy transformation must be present in the mapping, and the update expression condition must be written to be true for all rows that are desired to update the target table, and the Treat Source Rows As session property must be set to Update.

(D) At least one Update Strategy transformation must be present in the mapping, and the update expression condition must be written to be true for all rows that are desired to update the target table, and the Treat Source Rows As session property must be set to Data Driven.

Expressions used in an Update Strategy

What type of expressions can be used in an Update Strategy transformation?

Choose Answer

(A) Immediate If ( IIF)

(B) Immediate If (IIF) or DECODE

(C) Immediate If (IIF), DECODE, or IF THEN ELSE

(D) Any valid non-aggregate expression that is supported by the transformation language.

Forward Rejected Rows in Update Strategy

Refer to the diagram below. The Update Strategy transformation contains an expression that may tag each row as insert, delete or reject. It is desired to count ALL rows that pass through the Aggregator, regardless of how they are tagged. Assume that the other parts of the mapping are finished and that the Update Strategy transformation property Forward Rejected Rows is set to True. Select the statement that is true.

Choose Answer

(A) The mapping will work as desired without any further changes.

(B) The mapping will work as desired only if the Aggregator transformation is moved to be upstream of the Update Strategy transformation.

(C) The mapping will work as desired only if it is redesigned to use a Router transformation in place of the Update Strategy transformation, and the row operation for each row (insert, delete, or reject) is set by an individual Update Strategy transformation for each flow, and then counted by an individual Aggregator transformation for each flow.

(D) The mapping will work as desired only if the Update Strategy transformation tags each row only as insert or delete (no rows tagged as reject). Any rows that are not desired in the target table can then be removed from the flow by adding a Filter transformation DOWNSTREAM of the Aggregator transformation, and setting the Filter condition to be logically equivalent to the condition that was used in the Update Strategy transformation to tag the rows as reject.

"Treat source rows as" session property

A user sets the "Treat source rows as" session property to "Update". What is the effect of making this selection?

Choose Answer

(A) All records processed by the session will be treated as update statements on the target table(s).

(B) All records processed by the session will be treated as update statements on the target table(s), provided that a primary key constraint exists on the corresponding target table definition(s).

(C) This selection allows the use of the Update Strategy transformation, provided that one or more Update Strategy transformations are present in the mapping run by the session.

(D) This selection allows the use of the Update Strategy transformation, provided that one or more Update Strategy transformations are present in the mapping run by the session, and provided that a primary key constraint exists on the corresponding target table definition(s).

Case-sensitive string comparison

Can the Joiner transformation perform a case-sensitive string comparison as part of the join condition?

Choose Answer

(A) Yes, always

(B) No, the comparison is never case sensitive.

(C) Yes when the Informatica server is running on the Unix operating system, no when it is running on a Windows operating system.

(D) Yes, when the database that is being used for the join supports case-sensitive string comparisons.

Full outer join

A developer is using a Joiner transformation to join two data streams (sources), and a full outer join is desired. Select the statement below that is true.

Choose Answer

(A) A Joiner transformations may perform a full outer join under all conditions.

(B) A Joiner transformation may perform a full outer join only when one or more sides of the join are from a relational database.

(C) A Joiner transformation may perform a full outer join only when all sides of the join originate from relational databases, and one or more of those databases support outer joins.

(D) A Joiner transformation may perform a full outer join only when no file sources are involved in the join (both sides are relational).

3 or more data sources connected to a Joiner

Choose Answer

(A) The mapping is valid as it is.

(B) The mapping is invalid because there is an active transformation between SQ_ITEMS and the Joiner transformation. If the Aggregator transformation was eliminated or replaced with a passive transformation, the mapping would be valid.

(C) The mapping is valid only if the SQ_ITEMS side of the join is designated as the master side in the Joiner transformation.

(D) The mapping is invalid because it is not permitted to have three or more data sources connected to a Joiner transformation under any circumstances.

Joiner

Refer to the diagram below, which shows part of a mapping. Assume that each individual transformation and transformation expression in the mapping is valid, and that the part of the mapping that is not visible (downstream of the Joiner) is valid. Select the statement that is true.

Choose Answer

(A) The mapping is valid as it is.

(B) The mapping is invalid because a Joiner transformation must be the first transformation after the Source Qualifier, and in this mapping there are two transformations between SQ_ITEMS and the Joiner transformation.

(C) The mapping will be valid only if the SQ_ITEMS side of the join is designated as the detail side in the Joiner transformation.

(D) The mapping will be valid only if the SQ_ITEMS side of the join is designated as the master side in the Joiner transformation.

Refer to the diagram below, which shows part of a mapping. Assume that each individual transformation and transformation expression is valid. Select the statement that is true.


Joiner transformations


It is desired to join together a database table, a flat file and an XML file. All three sources have a single common field called CUSTOMER_ID. What is the minimum number of Joiner transformations that are needed to join these sources?


Choose Answer


(A) One

(B) Two

(C) Three

(D) One if the flat file and the XML file are located in the same directory, two if they are located in different directories.

Set a Lookup condition

A developer is attempting to set a Lookup condition and finds that the New Condition button is disabled, making it impossible to set a condition. Assume that it is a connected Lookup. What is a possible reason for this?

Choose Answer

(A) There are no designated Lookup ports in the ports tab section.

(B) There are no designated Input ports in the ports tab section.
(C) There are no ports with compatible data types.
(D) At least one Output port has not been connected to another transformation.

Override the SQL of a non-shared, uncached Lookup transformation

It is desired to override the SQL of a non-shared, uncached Lookup transformation in order to add a WHERE clause. Select the action below that MUST be taken to allow the session to run as designed. Assume that the session has already been tested prior to the override and it is satisfactory.

Choose Answer

(A) Cache the Lookup
(B) Include an ORDER BY clause in the SQL that sorts the lookup field(s) in descending order.
(C) Generate a default query after the override SQL has been entered.
(D) Validate the override SQL on the actual database table.

Lookup transformation where cache is persistent

Select the Lookup transformation scenario below which is not supported. Assume that the Lookup cache is persistent, it is shared and named, and there is only one Lookup transformation used in the mapping or mapplet.

Choose Answer

(A) Static cacheCondition: sales_amt > sales_amt1Unconnected
(B) Static cacheCondition: sales_amt = sales_amt1 Unconnected
(C) Dynamic cacheCondition: sales_amt > sales_amt1Connected
(D) Dynamic cacheCondition: sales_amt = sales_amt1Connected

Dynamic lookup cache

Select the statement below that most accurately describes how a dynamic lookup cache is designed to function.

Choose Answer

(A) The Informatica server compares the target data to the cache data as each row is passed to the target and updates the cache as required.
(B) The Informatica server inserts rows into the cache or updates rows in the cache as it passes rows to the target.
(C) The Informatica server updates the cache as the target table data changes.
(D) The Informatica server inserts, updates or deletes rows in the cache as it passes rows to the target.

Source Type Lookup transformation

What type of data sources are supported in the Source Type Lookup transformation property?

Choose Answer
(A) Database
(B) Database and flat file
(C) Database, flat file, and COBOL file
(D) Database, flat file, COBOL file, and XML file

Unconnected Lookup transformation

What is one disadvantage of using an unconnected (sometimes called function mode) Lookup transformation?

Choose Answer

(A) If there is no match in the Lookup condition, the Informatica server returns a transformation error.
(B) A reusable unconnected Lookup can not have more than one instance in a mapping.
(C) An unconnected Lookup transformation does not support user-defined default values.
(D) An unconnected Lookup transformation does not support a static lookup cache.

NEXTVAL port of a Sequence Generator

Can the NEXTVAL port of a Sequence Generator transformation be connected to the PRIMARY KEY column of two different target table definitions in a mapping? Assume that the two definitions represent different physical tables on the database server.

Choose Answer

(A) Yes, always.
(B) Yes, but only if the two tables share a primary - foreign key (referential integrity) relationship.
(C) No, because the Sequence Generator produces unique values (within the selected range) and this would result in a unique constraint error (duplicate key values) in one or both of the tables.
(D) No, this is not allowed in the Mapping Designer.

Sequence Generator transformation

What is the difference between the NEXTVAL and the CURRVAL ports of the Sequence Generator transformation? Assume that they are both connected to the input ports of another transformation.

Choose Answer

(A) The Informatica server generates a sequence of numbers for NEXTVAL, and CURRVAL is set to NEXTVAL plus one.
(B) The Informatica server generates a sequence of numbers for NEXTVAL, and CURRVAL is set to NEXTVAL minus one.
(C) The Informatica server generates a sequence of numbers for CURVALL, and NEXTVAL is set to CURRVAL plus one.
(D) The Informatica server generates a sequence of numbers for CURVALL, and NEXTVAL is set to CURRVAL plus the integer value set for the "Increment By" Sequence Generator property.

Active transformations

Why is the sorter transformation considered an active transformation?

Choose Answer

(A) When the Case Sensitive property is set to true (checked), rows that do not meet the case criteria in the sort may be discarded.
(B) When more than one sort key is selected, nested sorts may result in a single input row being outputted more than one time within multiple sort sequences.
(C) When the Distinct Output Rows property is set to true (checked), duplicate rows are discarded.
(D) When the sort direction properties are not the same for all sort keys (not all ascending or all descending), a single input row may be outputted more than one time.

Sort a very large data set

When using the sorter transformation to sort a very large data set, additional RAM resources may be required to accommodate the data. Which machine would provide this RAM?

Choose Answer

(A) The Informatica server machine.
(B) The source database server machine.
(C) The target database server machine.
(D) The source database server machine when reading from a relational source, or the target database server machine when reading from a flat file, COBOL or XML source.

Sorter transformation

When a sorter transformation is included in a Mapping that is run in a Workflow, when does the data sort occur?

Choose Answer

(A) Before the Workflow runs.
(B) After the Workflow runs.
(C) Either before or after the Workflow runs, depending on the sorter properties.
(D) During the time the Workflow runs (Session Task run time).

Sorter transformation

Select the statement below that is true.

Choose Answer

(A) The Sorter transformation must be used immediately downstream of a Source Qualifier transformation.
(B) The Sorter transformation must be used immediately downstream of a Source Qualifier transformation that reads from a relational source.
(C) The Sorter transformation supports multiple sort levels, so any sort key can have a secondary sort associated with it.
(D) The user is allowed to modify the ORDER BY clause generated by the Sorter transformation.

Aggregator data RAM cache

By default, the Aggregator data RAM cache size is 2 Mbytes, and the index RAM cache is 1 Mbyte. What would happen if a user ran a session that required a data RAM cache of 3 Mbytes and the data cache size was left at the default?

Choose Answer

(A) The session would fail when the Aggregator begins processing data.

(B) The session would fail when the data RAM cache exceeds 2 Mbytes.

(C) The Informatica server would automatically expand the data RAM cache to accommodate the additional data (provided the RAM is available on the machine).

(D) The Informatica server would automatically page the data to a file on the local disk.

Aggregator data cache size.

An Aggregator transformation will process 50 million rows per session, and the width of each row is 3 KBytes. There are two group-by ports, MONTH and CUSTOMER. Assuming that the data set contains two years worth of data, and that there are 500 customers who are represented for each month in the data set, estimate the required data cache size.

Choose Answer

(A) 6 MBytes

(B) 12 MBytes

(C) 18 MBytes

(D) 36 MBytes

Aggregate cache

The aggregate cache always consists of

Choose Answer

(A) An index and data cache in RAM, and an index and data file on the local disk.
(B) An index and data cache in RAM, and an index and data cache on the local disk if the RAM caches cannot contain all of the intermediate results in the data set.
(C) An index and data cache in RAM, and an index and data file on the local disk if the file names and directory (or Server Variable) have been specified as an Aggregator property.
(D) An index and data cache in RAM, and an index and data file on the local disk if the Incremental Aggregation property has been set to true when the session runs.

Sorted Input in Aggregator transformation

An Aggregator transformation has two group-by ports: CUSTOMER_ID and ORDER_DATE, in that order. The Sorted Input property is set to true. The Order By clause in the SQL for the Source Qualifier contains this syntax: ORDER BY CUSTOMER_ID, ORDER_DATE, MANF_ID. Assuming that the sort order on the database server matches the sort order of the session and everything else is valid, what would happen when this session started?

Choose Answer

(A) The session would run normally.

(B) The session would fail, because the columns in the ORDER BY clause in the SQL do not exactly match the group-by ports in the Aggregator transformation.

(C) The session would fail, because when the Sorted Input property is set to true, no more than one group-by port is allowed.

(D) The session would run, but sorted data would not be used because the columns in the ORDER BY clause in the SQL does not exactly match the group-by ports in the Aggregator transformation, and this may adversely affect performance.

Aggregator transformation variable port

What type of expressions can be used in an Aggregator transformation variable port?

Choose Answer

(A) Aggregate or non-aggregate expressions, provided they are not used together in a single variable port.

(B) Aggregate and non-aggregate expressions, together in the same variable port.

(C) Aggregate, non-aggregate and conditional expressions, together in the same variable port, provided that the variable port is also made a "group-by" port.

(D) Non-aggregate and conditional expressions only.

Aggregator transformation

What type of expressions can be used in an Aggregator transformation output port?

Choose Answer

(A) Aggregate or non-aggregate expressions, provided they are not used together in a single output port.

(B) Aggregate and non-aggregate expressions, together in the same output port.

(C) Aggregate, non-aggregate and conditional expressions, together in the same output port.

(D) Aggregate only.

Outer join

Can a Source Qualifier be used to perform an outer join when joining two database tables?

Choose Answer

(A) Yes, but it requires that the user modify the join SQL by hand.

(B) Yes, but it requires that the user select left or right outer join as the Source Qualifier Join Type property.

(C) No, because this may produce null values in ports and the Source Qualifier does not support default values.

(D) No, this function is not supported by the Source Qualifier- a Joiner transformation would need to be used.

Join two relational sources

A user desires to join two relational sources with a single Source Qualifier. The sources and the Source Qualifier have been correctly imported into the mapping. Next, she must establish a primary / foreign key relationship between two ports in the source definitions. Assuming that the relationship does not currently exist on the database server, what are the required steps to do this?

Choose Answer

(A) Use the Source Analyzer to establish the primary / foreign key relationship and save the repository.

(B) Use the Source Analyzer to establish the primary / foreign key relationship, save the repository, and run the appropriate SQL statement on the database tables to create the actual primary / foreign key relationship.

(C) Use the Source Analyzer to establish the primary / foreign key relationship, open the SQL Editor in the Source Qualifier and generate the join statement, modify the join statement if required, and save the repository.

(D) Use the Source Analyzer to establish the primary / foreign key relationship, regenerate the Source Qualifier SQL using the SQL Editor, press the Okay button, and save the repository.

Data source(s)

What type of data source(s) can be read with the Source Qualifier transformation?

Choose Answer

(A) Relational databases

(B) Relational databases and flat files

(C) Relational databases, flat files and Cobol

(D) Relational databases, flat files, Cobol and certified ERP sources such a Peoplesoft and SAP/R3.

Override the default Source Qualifier join

Under what circumstances should a user override the default Source Qualifier join?

Choose Answer

(A) The datatypes of the columns used in the join condition do not match.

(B) The Source Qualifier is being used to join two tables located on different database servers (a heterogeneous join).

(C) The Source Qualifier is being used to join two or more flat files.

(D) The order of the Source Qualifier ports has been changed since the mapping was first saved.

Generate a default query

A user finds that she is unable to generate a default query in the Source Qualifier SQL Editor. What is a possible reason for that?

Choose Answer

(A) The datatypes in the Source Qualifier do not match the corresponding datatypes in the source definition(s) for each field and port.

(B) The Source Qualifier does not have one or more ports connected to another transformation or target in the mapping.

(C) The Source Qualifier property "Allow default query" is unchecked (set to false).

(D) The Source Qualifier is not connected to the source database.

Alter the datatypes in the Source Qualifier

Under what circumstances is it desirable to alter the datatypes in the Source Qualifier?

Choose Answer

(A) When the precision required by the mapping is less than the precision of the data stored in the table or flat file being read by the Source Qualifier.

(B) When the precision required by the mapping is greater than the precision of the data stored in the table or flat file being read by the Source Qualifier.

(C) To alter the way the source database binds data when it is imported into the mapping.

(D) Never. The datatypes in the Source Qualifier and the corresponding source(s) must match.

Informatica expression reserved word

Can a port in an Expression transformation be given the name DISTINCT ?

Choose Answer

(A) Yes

(B) No, because DISTINCT is an ANSI SQL reserved word.

(C) No, because DISTINCT is an Informatica expression reserved word.

(D) No, because DISTINCT is both an ANSI SQL and an Informatica expression reserved word.

Informatica Test functions

The following are valid Informatica Test functions:

Choose Answer

(A) ISNULL, IS_DATE, IS_NUMBER, IS_SPACES

(B) ISNOTNULL, ISDATE, ISHERE

(C) IS NULL, ISANUMBER, ISADATE, ISADECIMAL

(D) NO_DOUBT, IS_LIVE, ISILDOR, ISENGARD

Interpreting Expression

A user enters the following expression into an Expression transformation:( PRICE - COST ) QUANTITY. The Expression transformation is part of a mapping with a relational database source definition. Assuming that the expression is valid, when the mapping runs as part of a session, how will the Informatica server treat the above expression?

Choose Answer

(A) It will interpret the expression directly.

(B) It will embed the expression into the designated source code file for the session and then compile it so that it can be executed.

(C) It will include the statement in the SQL select statement that will be submitted to the source database.

(D) It will embed the expression into the primary session stored procedure script that will be executed on either the source database or another database that was specified by the user.

LTRIM

For a row where the value of the port LAST_NAME is equal to the string 'Damato' what would be the return value of the expression LTRIM ( LAST_NAME, 'A' )?

Choose Answer

(A) Dmato

(B) Dmto

(C) amato

(D) Damato

Mapping Validity

Which situation would always cause a mapping to be invalid?

Choose Answer

(A) A target definition with no data flowing into it

(B) Two ports with different data types connected together

(C) Two active transformations connected to the same transformation

(D) A Source Qualifier with port names that do not match a field name in the corresponding Source definition.

Data types

A developer wishes to connect two ports that have different data types. Is this allowed?

Choose Answer

(A) Yes, always

(B) Yes, provided that the data types are compatible. The Informatica server will automatically convert the original type to match the destination type.

(C) Yes, provided that the data types are compatible, and the developer writes a valid conversion function to convert the original type to match the destination type.

(D) No, never.

Working with Expressions

A transformation has the following ports: Port_1: String, Input port; Port_2: String, Input port; Port_3: String, Output port. Which of the expressions shown below would be valid? Assume that it is associated with Port_3 and that the string ENDSTRING is not a parameter or mapping variable.

Choose Answer

(A) Port_1 Port_2 'ENDSTRING'

(B) Port_1 Port_2 "ENDSTRING"

(C) Port_1 Port_2 ENDSTRING

(D) CONCAT(Port_1, CONCAT(Port_2, "ENDSTRING"))

Posted by ghostrider30 at 12:16 PM 0 comments

Transformation expressions

A transformation has the following ports: Port_1: Decimal, Input port; Port_2: Decimal, Input port; Port_3: String, Input port; Port_4: Decimal, Output port; Port_5: Decimal, Output port. Which of the expressions shown below would be invalid? Assume it is associated with Port_4.

Choose Answer

(A) IIF ( Port_1 > 5, Port_2 10, Port_2 15 )

(B) IIF ( Port_1 > 5, Port_1 10 )

(C)

IIF ( Port_5 > 7, Port_5 10, Port_5 15 )

(D)

IIF ( Port_2 > 8, Port_2 10, Port_2 15 )

Session Task

Whether or not a Session Task can be considered to have heterogeneous targets is determined by

Choose Answer

(A)

The Mapping properties alone.

(B)

The Session Task properties alone.

(C)

Either the Mapping properties or the Session Task properties.

(D)

Either the Mapping properties or the Workflow properties.

Editing Target definition

Under what circumstances can a Target definition be edited from the Mapping Designer, within the mapping where that Target definition is being used?

Choose Answer

(A)

When the Target definition is not shared (not a shortcut).

(B)

When the Target definition is not shared (not a shortcut) and when the user has write permission on the folder where the mapping is stored.

(C)

Always

(D)

Neve

Target definitions

What types of Target definitions are supported in a mapping?

Choose Answer

(A)

Relational

(B)

Relational and XML

(C)

Relational, XML and flat file

(D)

Relational, XML, flat file and COBOL

Flat File Wizard

A developer has used the Flat File Wizard to create a fixed-width flat file source definition. This source definition is used in several mappings. The next day, she discovers that the actual flat file that will be accessed by the Informatica server will be comma delimited. What action, if any, should be taken?

Choose Answer

(A)

No action need be taken provided the new file format is valid.

(B)

Edit the Source definition properties to make them correct and save the changes to the repository.

(C)

Launch the Flat File Wizard using the Source definition and edit the properties to make them correct. Save the changes to the repository.

(D)

Delete the Source definition, save the repository, re-import it using the Flat File Wizard and define the properties to make them correct. Add the new Source definition to the affected mappings and save the changes to the repository.

Posted by ghostrider30 at 12:14 PM 0 comments

Primary and foreign key relationship

Can a developer manually define a primary and foreign key relationship between two columns in two different relational Source definitions?

Choose Answer

(A)

Yes, always.

(B)

Yes, provided that the data types and precision matches between the two columns.

(C)

Yes, provided that the data types and precision matches between the two columns and the relationship exists on the physical database tables when the session runs.

(D)

Yes, provided that the data types and precision matches between the two columns. The relationship can be set between the Source definitions regardless of whether the relationship exists on the physical database tables, but if the relationship does not exist in the database, the session may fail if referential integrity is faulty.

Tasks on a port level

Which tasks can be performed on a port level (using one specific port)?

Choose Answer

(A)

Enter expressions, define port variables, override default values

(B)

Enter expressions, define port and Mapping variables, override default values

(C)

Define local and Mapping variables, define parameters, override default values

(D)

Enter expressions, define port and Mapping variables, define parameters

Posted by ghostrider30 at 12:14 PM 0 comments

Supported transformation ports

What types of transformation ports are supported?

Choose Answer

(A)

Input, Output, Variable

(B)

Input, Output, Input / Output, Variable

(C)

Input, Output, Variable, Aggregate

(D)

Input, Output, Input / Output, Variable, Parameter

link a port

A user is attempting to link a port on the left to another port in a different transformation on the right. The Designer will not establish the connector link (blue arrow). What are the possible reasons for this?

Choose Answer

(A)

Link columns mode not set, or left port not an output port

(B)

Link columns mode not set, or left port not an output port, or data type mismatch

(C)

Link columns mode not set, or left port not an input port, or right port not an output port, or data type mismatch

(D)

Link columns mode not set, or left port not an output port, or right port not an input port, or data type mismatch

Copy a Source Definition from a shared folder to a non-shared folder

A user desires to copy a Source Definition from a shared folder to a non-shared folder. Assuming that the user has write permission on the non-shared folder, what must be done in order for this operation to work as intended?

Choose Answer

(A)

The Source Analyzer must be active and the non-shared folder must be open.

(B)

The Source Analyzer must be active, the non-shared folder must be open, and the user must hold down the Ctrl key while dragging.

(C)

The Source Analyzer must be active and the shared folder must be open.

(D)

The Source Analyzer must be active, the shared folder must be open, and the user must hold down the Ctrl key while dragging.

Designer option cannot be set locally

Specify which Designer option cannot be set locally (differently for each client machine).

Choose Answer

(A)

Whether to display column names or business names for all Source Qualifiers

(B)

Whether to import primary keys when importing a target definition

(C)

Whether to import data type lengths and precisions for Source Definitions

(D)

Whether to display targets grouped by database in the Navigator Window

Posted by ghostrider30 at 12:12 PM 0 comments

"Find" search tool

The Designer includes a "Find" search tool as part of the standard toolbar. What can it be used to find?

Choose Answer

(A)

Column or port names in any transformation, source or target definition

(B)

Column or port names in any transformation, source or target definition, and strings in any of the output windows

(C)

Column or port names in any transformation, source or target definition, strings in any of the output windows, and expressions in any transformation

(D)

Column or port names in any transformation, source or target definition, strings in any of the output windows, expressions in any transformation, and descriptive text

Mapplet definition

Refer to the mapping illustrated below. Assume that the mapplet definition is valid and that the individual transformation expressions are valid. Select the statement that is correct.

Choose Answer

(A)

The mapping will be valid as it is.

(B)

The mapping is valid because the third mapplet output group, Update Changes, does not have any output ports connected to a transformation or Target definition.

(C)

The mapping is invalid because you cannot concatenate two or more data flow paths together into one mapplet input group.

(D)

The mapplet is invalid because the number of output ports in each output group does not match.

Input transformation in mapplet

Select the statement below that is true.

Choose Answer

(A)

A mapplet that does not contain an Input transformation is always an active mapplet.

(B)

A mapplet that does not contain an Input transformation is an active mapplet only if it contains at least one active transformation.

(C)

A passive mapplet can be made into an active mapplet by adding one or more Joiner transformations to the mapplet.

(D)

A passive mapplet can be made into an active mapplet by adding one or more Lookup transformations to the mapplet.

Output transformations in a mapplet

How many Output transformations can be placed in a mapplet?

Choose Answer

(A)

One

(B)

One or more

(C)

One or more unless there is at least one Target definition in the mapplet, in which case zero Output transformations are permitted.

(D)

Any number

Homogeneous Source Definitions

How many homogeneous Source Definitions can be placed in a Mapplet?

Choose Answer

(A)

One

(B)

One for each Source Qualifier transformation.

(C)

Zero to one if the mapplet does not contain an Input or ERP Source Qualifier transformation.

(D)

Unlimited

Difference between the Router and Filter transformations

A major difference between the Router and Filter transformations is that filtered rows can be captured in the Router. (T/F)

Choose Answer

(A)

True

(B)

False

Filter transformation

A Filter transformation contains the following condition: ITEM_COST > 100.00. The value for ITEM_COST for a specific row is 35. What will happen to that row?

Choose Answer

(A)

It is dropped from the mapping flow.

(B)

It is dropped from the mapping flow and written to the appropriate reject (bad) file.

(C)

It is dropped from the mapping flow and written to the appropriate reject (bad) file if the Filter property "Forward Filtered Rows" is set to True.

(D)

If the Filter property "Forward Filtered Rows" is set to True, the row is sent to downstream transformations, if any, but not written to the target table.

Router transformation that has three groups defined

Specify which statement below best describes the behavior of a Router transformation that has three groups defined.

Choose Answer

(A)

The condition for each group will be evaluated for each row, and the first group that evaluates to a "true" result will pass the row out of the transformation through that group's output ports. If no group evaluates to a "true" result, the row will pass out of the transformation through the Default group output ports.

(B)

The condition for each group will be evaluated for each row, and each group that evaluates to a "true" result will pass the row out of the transformation through that group's output ports. If no group evaluates to a "true" result, the row will pass out of the transformation through the Default group output ports.

(C)

The condition for each group will be evaluated for each row, and the first group that evaluates to a "true" result will pass the row out of the transformation through that group's output ports. If no group evaluates to a "true" result, the row will pass out of the transformation through the Default group output ports only if those ports are connected to another transformation.

(D)

The condition for each group will be evaluated for each row, and each group that evaluates to a "true" result will pass the row out of the transformation through that group's output ports. If no group evaluates to a "true" result, the row will pass out of the transformation through the Default group output ports only if those ports are connected to another transformation.

Update Strategy transformation

It is desired to run a session where every row that is processed by the session updates the target table based on the primary key value. Assume that the target table definition has a primary key, and all other session and mapping properties are left to their defaults. Select the statement below that is true.

Choose Answer

(A)

The only action that is necessary is to set the Treat Source Rows As session property to Update.

(B)

At least one Update Strategy transformation must be present in the mapping, and the update expression condition must be written to be true for all rows that are desired to update the target table.

(C)

At least one Update Strategy transformation must be present in the mapping, and the update expression condition must be written to be true for all rows that are desired to update the target table, and the Treat Source Rows As session property must be set to Update.

(D)

At least one Update Strategy transformation must be present in the mapping, and the update expression condition must be written to be true for all rows that are desired to update the target table, and the Treat Source Rows As session property must be set to Data Driven.

Expressions used in an Update Strategy

What type of expressions can be used in an Update Strategy transformation?

Choose Answer

(A)

Immediate If ( IIF)

(B)

Immediate If (IIF) or DECODE

(C)

Immediate If (IIF), DECODE, or IF THEN ELSE

(D)

Any valid non-aggregate expression that is supported by the transformation language.

Forward Rejected Rows in Update Strategy

Refer to the diagram below. The Update Strategy transformation contains an expression that may tag each row as insert, delete or reject. It is desired to count ALL rows that pass through the Aggregator, regardless of how they are tagged. Assume that the other parts of the mapping are finished and that the Update Strategy transformation property Forward Rejected Rows is set to True. Select the statement that is true.

Choose Answer

(A)

The mapping will work as desired without any further changes.

(B)

The mapping will work as desired only if the Aggregator transformation is moved to be upstream of the Update Strategy transformation.

(C)

The mapping will work as desired only if it is redesigned to use a Router transformation in place of the Update Strategy transformation, and the row operation for each row (insert, delete, or reject) is set by an individual Update Strategy transformation for each flow, and then counted by an individual Aggregator transformation for each flow.

(D)

The mapping will work as desired only if the Update Strategy transformation tags each row only as insert or delete (no rows tagged as reject). Any rows that are not desired in the target table can then be removed from the flow by adding a Filter transformation DOWNSTREAM of the Aggregator transformation, and setting the Filter condition to be logically equivalent to the condition that was used in the Update Strategy transformation to tag the rows as reject.

"Treat source rows as" session property

A user sets the "Treat source rows as" session property to "Update". What is the effect of making this selection?

Choose Answer

(A)

All records processed by the session will be treated as update statements on the target table(s).

(B)

All records processed by the session will be treated as update statements on the target table(s), provided that a primary key constraint exists on the corresponding target table definition(s).

(C)

This selection allows the use of the Update Strategy transformation, provided that one or more Update Strategy transformations are present in the mapping run by the session.

(D)

This selection allows the use of the Update Strategy transformation, provided that one or more Update Strategy transformations are present in the mapping run by the session, and provided that a primary key constraint exists on the corresponding target table definition(s).

Case-sensitive string comparison

Can the Joiner transformation perform a case-sensitive string comparison as part of the join condition?

Choose Answer

(A)

Yes, always

(B)

No, the comparison is never case sensitive.

(C)

Yes when the Informatica server is running on the Unix operating system, no when it is running on a Windows operating system.

(D)

Yes, when the database that is being used for the join supports case-sensitive string comparisons.

Full outer join

A developer is using a Joiner transformation to join two data streams (sources), and a full outer join is desired. Select the statement below that is true.

Choose Answer

(A)

A Joiner transformations may perform a full outer join under all conditions.

(B)

A Joiner transformation may perform a full outer join only when one or more sides of the join are from a relational database.

(C)

A Joiner transformation may perform a full outer join only when all sides of the join originate from relational databases, and one or more of those databases support outer joins.

(D)

A Joiner transformation may perform a full outer join only when no file sources are involved in the join (both sides are relational).

3 or more data sources connected to a Joiner

Choose Answer

(A)

The mapping is valid as it is.

(B)

The mapping is invalid because there is an active transformation between SQ_ITEMS and the Joiner transformation. If the Aggregator transformation was eliminated or replaced with a passive transformation, the mapping would be valid.

(C)

The mapping is valid only if the SQ_ITEMS side of the join is designated as the master side in the Joiner transformation.

(D)

The mapping is invalid because it is not permitted to have three or more data sources connected to a Joiner transformation under any circumstances.

Joiner

Refer to the diagram below, which shows part of a mapping. Assume that each individual transformation and transformation expression in the mapping is valid, and that the part of the mapping that is not visible (downstream of the Joiner) is valid. Select the statement that is true.

Choose Answer

(A)

The mapping is valid as it is.

(B)

The mapping is invalid because a Joiner transformation must be the first transformation after the Source Qualifier, and in this mapping there are two transformations between SQ_ITEMS and the Joiner transformation.

(C)

The mapping will be valid only if the SQ_ITEMS side of the join is designated as the detail side in the Joiner transformation.

(D)

The mapping will be valid only if the SQ_ITEMS side of the join is designated as the master side in the Joiner transformation.

Refer to the diagram below, which shows part of a mapping. Assume that each individual transformation and transformation expression is valid. Select the statement that is true.

Joiner transformations

It is desired to join together a database table, a flat file and an XML file. All three sources have a single common field called CUSTOMER_ID. What is the minimum number of Joiner transformations that are needed to join these sources?

Choose Answer

(A)

One

(B)

Two

(C)

Three

(D)

One if the flat file and the XML file are located in the same directory, two if they are located in different directories.

Set a Lookup condition

A developer is attempting to set a Lookup condition and finds that the New Condition button is disabled, making it impossible to set a condition. Assume that it is a connected Lookup. What is a possible reason for this?

Choose Answer

(A)

There are no designated Lookup ports in the ports tab section.

(B)

There are no designated Input ports in the ports tab section.

(C)

There are no ports with compatible data types.

(D)

At least one Output port has not been connected to another transformation.

Override the SQL of a non-shared, uncached Lookup transformation

It is desired to override the SQL of a non-shared, uncached Lookup transformation in order to add a WHERE clause. Select the action below that MUST be taken to allow the session to run as designed. Assume that the session has already been tested prior to the override and it is satisfactory.

Choose Answer

(A)

Cache the Lookup

(B)

Include an ORDER BY clause in the SQL that sorts the lookup field(s) in descending order.

(C)

Generate a default query after the override SQL has been entered.

(D)

Validate the override SQL on the actual database table.

Lookup transformation where cache is persistent

Select the Lookup transformation scenario below which is not supported. Assume that the Lookup cache is persistent, it is shared and named, and there is only one Lookup transformation used in the mapping or mapplet.

Choose Answer

(A)

Static cacheCondition: sales_amt > sales_amt1Unconnected

(B)

Static cacheCondition: sales_amt = sales_amt1 Unconnected

(C)

Dynamic cacheCondition: sales_amt > sales_amt1Connected

(D)

Dynamic cacheCondition: sales_amt = sales_amt1Connected

Dynamic lookup cache

Select the statement below that most accurately describes how a dynamic lookup cache is designed to function.

Choose Answer

(A)

The Informatica server compares the target data to the cache data as each row is passed to the target and updates the cache as required.

(B)

The Informatica server inserts rows into the cache or updates rows in the cache as it passes rows to the target.

(C)

The Informatica server updates the cache as the target table data changes.

(D)

The Informatica server inserts, updates or deletes rows in the cache as it passes rows to the target.

Source Type Lookup transformation

What type of data sources are supported in the Source Type Lookup transformation property?

Choose Answer

(A)

Database

(B)

Database and flat file

(C)

Database, flat file, and COBOL file

(D)

Database, flat file, COBOL file, and XML file

Unconnected Lookup transformation

What is one disadvantage of using an unconnected (sometimes called function mode) Lookup transformation?

Choose Answer

(A)

If there is no match in the Lookup condition, the Informatica server returns a transformation error.

(B)

A reusable unconnected Lookup can not have more than one instance in a mapping.

(C)

An unconnected Lookup transformation does not support user-defined default values.

(D)

An unconnected Lookup transformation does not support a static lookup cache.

Posted by ghostrider30 at 12:26 PM 1 comments

NEXTVAL port of a Sequence Generator

Can the NEXTVAL port of a Sequence Generator transformation be connected to the PRIMARY KEY column of two different target table definitions in a mapping? Assume that the two definitions represent different physical tables on the database server.

Choose Answer

(A)

Yes, always.

(B)

Yes, but only if the two tables share a primary - foreign key (referential integrity) relationship.

(C)

No, because the Sequence Generator produces unique values (within the selected range) and this would result in a unique constraint error (duplicate key values) in one or both of the tables.

(D)

No, this is not allowed in the Mapping Designer.

Sequence Generator transformation

What is the difference between the NEXTVAL and the CURRVAL ports of the Sequence Generator transformation? Assume that they are both connected to the input ports of another transformation.

Choose Answer

(A)

The Informatica server generates a sequence of numbers for NEXTVAL, and CURRVAL is set to NEXTVAL plus one.

(B)

The Informatica server generates a sequence of numbers for NEXTVAL, and CURRVAL is set to NEXTVAL minus one.

(C)

The Informatica server generates a sequence of numbers for CURVALL, and NEXTVAL is set to CURRVAL plus one.

(D)

The Informatica server generates a sequence of numbers for CURVALL, and NEXTVAL is set to CURRVAL plus the integer value set for the "Increment By" Sequence Generator property.

Active transformations

Why is the sorter transformation considered an active transformation?

Choose Answer

(A)

When the Case Sensitive property is set to true (checked), rows that do not meet the case criteria in the sort may be discarded.

(B)

When more than one sort key is selected, nested sorts may result in a single input row being outputted more than one time within multiple sort sequences.

(C)

When the Distinct Output Rows property is set to true (checked), duplicate rows are discarded.

(D)

When the sort direction properties are not the same for all sort keys (not all ascending or all descending), a single input row may be outputted more than one time.

Sort a very large data set

When using the sorter transformation to sort a very large data set, additional RAM resources may be required to accommodate the data. Which machine would provide this RAM?

Choose Answer

(A)

The Informatica server machine.

(B)

The source database server machine.

(C)

The target database server machine.

(D)

The source database server machine when reading from a relational source, or the target database server machine when reading from a flat file, COBOL or XML source.

Posted by ghostrider30 at 12:25 PM 1 comments

Sorter transformation

When a sorter transformation is included in a Mapping that is run in a Workflow, when does the data sort occur?

Choose Answer

(A)

Before the Workflow runs.

(B)

After the Workflow runs.

(C)

Either before or after the Workflow runs, depending on the sorter properties.

(D)

During the time the Workflow runs (Session Task run time).

Sorter transformation

Select the statement below that is true.

Choose Answer

(A)

The Sorter transformation must be used immediately downstream of a Source Qualifier transformation.

(B)

The Sorter transformation must be used immediately downstream of a Source Qualifier transformation that reads from a relational source.

(C)

The Sorter transformation supports multiple sort levels, so any sort key can have a secondary sort associated with it.

(D)

The user is allowed to modify the ORDER BY clause generated by the Sorter transformation.

Aggregator data RAM cache

By default, the Aggregator data RAM cache size is 2 Mbytes, and the index RAM cache is 1 Mbyte. What would happen if a user ran a session that required a data RAM cache of 3 Mbytes and the data cache size was left at the default?

Choose Answer

(A)

The session would fail when the Aggregator begins processing data.

(B)

The session would fail when the data RAM cache exceeds 2 Mbytes.

(C)

The Informatica server would automatically expand the data RAM cache to accommodate the additional data (provided the RAM is available on the machine).

(D)

The Informatica server would automatically page the data to a file on the local disk.

Aggregator data cache size.

An Aggregator transformation will process 50 million rows per session, and the width of each row is 3 KBytes. There are two group-by ports, MONTH and CUSTOMER. Assuming that the data set contains two years worth of data, and that there are 500 customers who are represented for each month in the data set, estimate the required data cache size.

Choose Answer

(A)

6 MBytes

(B)

12 MBytes

(C)

18 MBytes

(D)

36 MBytes

Aggregate cache

The aggregate cache always consists of

Choose Answer

(A)

An index and data cache in RAM, and an index and data file on the local disk.

(B)

An index and data cache in RAM, and an index and data cache on the local disk if the RAM caches cannot contain all of the intermediate results in the data set.

(C)

An index and data cache in RAM, and an index and data file on the local disk if the file names and directory (or Server Variable) have been specified as an Aggregator property.

(D)

An index and data cache in RAM, and an index and data file on the local disk if the Incremental Aggregation property has been set to true when the session runs.

Sorted Input in Aggregator transformation

An Aggregator transformation has two group-by ports: CUSTOMER_ID and ORDER_DATE, in that order. The Sorted Input property is set to true. The Order By clause in the SQL for the Source Qualifier contains this syntax: ORDER BY CUSTOMER_ID, ORDER_DATE, MANF_ID. Assuming that the sort order on the database server matches the sort order of the session and everything else is valid, what would happen when this session started?

Choose Answer

(A)

The session would run normally.

(B)

The session would fail, because the columns in the ORDER BY clause in the SQL do not exactly match the group-by ports in the Aggregator transformation.

(C)

The session would fail, because when the Sorted Input property is set to true, no more than one group-by port is allowed.

(D)

The session would run, but sorted data would not be used because the columns in the ORDER BY clause in the SQL does not exactly match the group-by ports in the Aggregator transformation, and this may adversely affect performance.

Posted by ghostrider30 at 12:22 PM 0 comments

Aggregator transformation variable port

What type of expressions can be used in an Aggregator transformation variable port?

Choose Answer

(A)

Aggregate or non-aggregate expressions, provided they are not used together in a single variable port.

(B)

Aggregate and non-aggregate expressions, together in the same variable port.

(C)

Aggregate, non-aggregate and conditional expressions, together in the same variable port, provided that the variable port is also made a "group-by" port.

(D)

Non-aggregate and conditional expressions only.

Aggregator transformation

What type of expressions can be used in an Aggregator transformation output port?

Choose Answer

(A)

Aggregate or non-aggregate expressions, provided they are not used together in a single output port.

(B)

Aggregate and non-aggregate expressions, together in the same output port.

(C)

Aggregate, non-aggregate and conditional expressions, together in the same output port.

(D)

Aggregate only.

Outer join

Can a Source Qualifier be used to perform an outer join when joining two database tables?

Choose Answer

(A)

Yes, but it requires that the user modify the join SQL by hand.

(B)

Yes, but it requires that the user select left or right outer join as the Source Qualifier Join Type property.

(C)

No, because this may produce null values in ports and the Source Qualifier does not support default values.

(D)

No, this function is not supported by the Source Qualifier- a Joiner transformation would need to be used.

Join two relational sources

A user desires to join two relational sources with a single Source Qualifier. The sources and the Source Qualifier have been correctly imported into the mapping. Next, she must establish a primary / foreign key relationship between two ports in the source definitions. Assuming that the relationship does not currently exist on the database server, what are the required steps to do this?

Choose Answer

(A)

Use the Source Analyzer to establish the primary / foreign key relationship and save the repository.

(B)

Use the Source Analyzer to establish the primary / foreign key relationship, save the repository, and run the appropriate SQL statement on the database tables to create the actual primary / foreign key relationship.

(C)

Use the Source Analyzer to establish the primary / foreign key relationship, open the SQL Editor in the Source Qualifier and generate the join statement, modify the join statement if required, and save the repository.

(D)

Use the Source Analyzer to establish the primary / foreign key relationship, regenerate the Source Qualifier SQL using the SQL Editor, press the Okay button, and save the repository.

Data source(s)

What type of data source(s) can be read with the Source Qualifier transformation?

Choose Answer

(A)

Relational databases

(B)

Relational databases and flat files

(C)

Relational databases, flat files and Cobol

(D)

Relational databases, flat files, Cobol and certified ERP sources such a Peoplesoft and SAP/R3.

Override the default Source Qualifier join

Under what circumstances should a user override the default Source Qualifier join?

Choose Answer

(A)

The datatypes of the columns used in the join condition do not match.

(B)

The Source Qualifier is being used to join two tables located on different database servers (a heterogeneous join).

(C)

The Source Qualifier is being used to join two or more flat files.

(D)

The order of the Source Qualifier ports has been changed since the mapping was first saved.

Generate a default query

A user finds that she is unable to generate a default query in the Source Qualifier SQL Editor. What is a possible reason for that?

Choose Answer

(A)

The datatypes in the Source Qualifier do not match the corresponding datatypes in the source definition(s) for each field and port.

(B)

The Source Qualifier does not have one or more ports connected to another transformation or target in the mapping.

(C)

The Source Qualifier property "Allow default query" is unchecked (set to false).

(D)

The Source Qualifier is not connected to the source database.

Posted by ghostrider30 at 12:20 PM 0 comments

Alter the datatypes in the Source Qualifier

Under what circumstances is it desirable to alter the datatypes in the Source Qualifier?

Choose Answer

(A)

When the precision required by the mapping is less than the precision of the data stored in the table or flat file being read by the Source Qualifier.

(B)

When the precision required by the mapping is greater than the precision of the data stored in the table or flat file being read by the Source Qualifier.

(C)

To alter the way the source database binds data when it is imported into the mapping.

(D)

Never. The datatypes in the Source Qualifier and the corresponding source(s) must match.

Informatica expression reserved word

Can a port in an Expression transformation be given the name DISTINCT ?

Choose Answer

(A)

Yes

(B)

No, because DISTINCT is an ANSI SQL reserved word.

(C)

No, because DISTINCT is an Informatica expression reserved word.

(D)

No, because DISTINCT is both an ANSI SQL and an Informatica expression reserved word.

Informatica Test functions

The following are valid Informatica Test functions:

Choose Answer

(A)

ISNULL, IS_DATE, IS_NUMBER, IS_SPACES

(B)

ISNOTNULL, ISDATE, ISHERE

(C)

IS NULL, ISANUMBER, ISADATE, ISADECIMAL

(D)

NO_DOUBT, IS_LIVE, ISILDOR, ISENGARD

Interpreting expression

A user enters the following expression into an Expression transformation:( PRICE - COST ) QUANTITY. The Expression transformation is part of a mapping with a relational database source definition. Assuming that the expression is valid, when the mapping runs as part of a session, how will the Informatica server treat the above expression?

Choose Answer

(A)

It will interpret the expression directly.

(B)

It will embed the expression into the designated source code file for the session and then compile it so that it can be executed.

(C)

It will include the statement in the SQL select statement that will be submitted to the source database.

(D)

It will embed the expression into the primary session stored procedure script that will be executed on either the source database or another database that was specified by the user.

LTRIM

For a row where the value of the port LAST_NAME is equal to the string 'Damato' what would be the return value of the expression LTRIM ( LAST_NAME, 'A' )?

Choose Answer

(A)

Dmato

(B)

Dmto

(C)

amato

(D)

Damato

Mapping validity

Which situation would always cause a mapping to be invalid?

Choose Answer

(A)

A target definition with no data flowing into it

(B)

Two ports with different data types connected together

(C)

Two active transformations connected to the same transformation

(D)

A Source Qualifier with port names that do not match a field name in the corresponding Source definition.

Data types

A developer wishes to connect two ports that have different data types. Is this allowed?

Choose Answer

(A)

Yes, always

(B)

Yes, provided that the data types are compatible. The Informatica server will automatically convert the original type to match the destination type.

(C)

Yes, provided that the data types are compatible, and the developer writes a valid conversion function to convert the original type to match the destination type.

(D)

No, never.

Working with Expressions

A transformation has the following ports: Port_1: String, Input port; Port_2: String, Input port; Port_3: String, Output port. Which of the expressions shown below would be valid? Assume that it is associated with Port_3 and that the string ENDSTRING is not a parameter or mapping variable.

Choose Answer

(A)

Port_1 Port_2 'ENDSTRING'

(B)

Port_1 Port_2 "ENDSTRING"

(C)

Port_1 Port_2 ENDSTRING

(D)

CONCAT(Port_1, CONCAT(Port_2, "ENDSTRING"))

Posted by ghostrider30 at 12:16 PM 0 comments

Transformation expressions

A transformation has the following ports: Port_1: Decimal, Input port; Port_2: Decimal, Input port; Port_3: String, Input port; Port_4: Decimal, Output port; Port_5: Decimal, Output port. Which of the expressions shown below would be invalid? Assume it is associated with Port_4.

Choose Answer

(A)

IIF ( Port_1 > 5, Port_2 10, Port_2 15 )

(B)

IIF ( Port_1 > 5, Port_1 10 )

(C)

IIF ( Port_5 > 7, Port_5 10, Port_5 15 )

(D)

IIF ( Port_2 > 8, Port_2 10, Port_2 15 )

Posted by ghostrider30 at 12:16 PM 0 comments

Session Task

Whether or not a Session Task can be considered to have heterogeneous targets is determined by

Choose Answer

(A)

The Mapping properties alone.

(B)

The Session Task properties alone.

(C)

Either the Mapping properties or the Session Task properties.

(D)

Either the Mapping properties or the Workflow properties.

Posted by ghostrider30 at 12:15 PM 0 comments

Editing Target definition

Under what circumstances can a Target definition be edited from the Mapping Designer, within the mapping where that Target definition is being used?

Choose Answer

(A)

When the Target definition is not shared (not a shortcut).

(B)

When the Target definition is not shared (not a shortcut) and when the user has write permission on the folder where the mapping is stored.

(C)

Always

(D)

Neve

Posted by ghostrider30 at 12:15 PM 0 comments

Target definitions

What types of Target definitions are supported in a mapping?

Choose Answer

(A)

Relational

(B)

Relational and XML

(C)

Relational, XML and flat file

(D)

Relational, XML, flat file and COBOL

Posted by ghostrider30 at 12:15 PM 0 comments

Flat File Wizard

A developer has used the Flat File Wizard to create a fixed-width flat file source definition. This source definition is used in several mappings. The next day, she discovers that the actual flat file that will be accessed by the Informatica server will be comma delimited. What action, if any, should be taken?

Choose Answer

(A)

No action need be taken provided the new file format is valid.

(B)

Edit the Source definition properties to make them correct and save the changes to the repository.

(C)

Launch the Flat File Wizard using the Source definition and edit the properties to make them correct. Save the changes to the repository.

(D)

Delete the Source definition, save the repository, re-import it using the Flat File Wizard and define the properties to make them correct. Add the new Source definition to the affected mappings and save the changes to the repository.

Posted by ghostrider30 at 12:14 PM 0 comments

Primary and foreign key relationship

Can a developer manually define a primary and foreign key relationship between two columns in two different relational Source definitions?

Choose Answer

(A)

Yes, always.

(B)

Yes, provided that the data types and precision matches between the two columns.

(C)

Yes, provided that the data types and precision matches between the two columns and the relationship exists on the physical database tables when the session runs.

(D)

Yes, provided that the data types and precision matches between the two columns. The relationship can be set between the Source definitions regardless of whether the relationship exists on the physical database tables, but if the relationship does not exist in the database, the session may fail if referential integrity is faulty.

Tasks on a port level

Which tasks can be performed on a port level (using one specific port)?

Choose Answer

(A)

Enter expressions, define port variables, override default values

(B)

Enter expressions, define port and Mapping variables, override default values

(C)

Define local and Mapping variables, define parameters, override default values

(D)

Enter expressions, define port and Mapping variables, define parameters

Posted by ghostrider30 at 12:14 PM 0 comments

Supported transformation ports

What types of transformation ports are supported?

Choose Answer

(A)

Input, Output, Variable

(B)

Input, Output, Input / Output, Variable

(C)

Input, Output, Variable, Aggregate

(D)

Input, Output, Input / Output, Variable, Parameter

link a port

A user is attempting to link a port on the left to another port in a different transformation on the right. The Designer will not establish the connector link (blue arrow). What are the possible reasons for this?

Choose Answer

(A)

Link columns mode not set, or left port not an output port

(B)

Link columns mode not set, or left port not an output port, or data type mismatch

(C)

Link columns mode not set, or left port not an input port, or right port not an output port, or data type mismatch

(D)

Link columns mode not set, or left port not an output port, or right port not an input port, or data type mismatch

Copy a Source Definition from a shared folder to a non-shared folder

A user desires to copy a Source Definition from a shared folder to a non-shared folder. Assuming that the user has write permission on the non-shared folder, what must be done in order for this operation to work as intended?

Choose Answer

(A)

The Source Analyzer must be active and the non-shared folder must be open.

(B)

The Source Analyzer must be active, the non-shared folder must be open, and the user must hold down the Ctrl key while dragging.

(C)

The Source Analyzer must be active and the shared folder must be open.

(D)

The Source Analyzer must be active, the shared folder must be open, and the user must hold down the Ctrl key while dragging.

Designer option cannot be set locally

Specify which Designer option cannot be set locally (differently for each client machine).

Choose Answer

(A)

Whether to display column names or business names for all Source Qualifiers

(B)

Whether to import primary keys when importing a target definition

(C)

Whether to import data type lengths and precisions for Source Definitions

(D)

Whether to display targets grouped by database in the Navigator Window

"Find" search tool

The Designer includes a "Find" search tool as part of the standard toolbar. What can it be used to find?

Choose Answer

(A)

Column or port names in any transformation, source or target definition

(B)

Column or port names in any transformation, source or target definition, and strings in any of the output windows

(C)

Column or port names in any transformation, source or target definition, strings in any of the output windows, and expressions in any transformation

(D)

Column or port names in any transformation, source or target definition, strings in any of the output windows, expressions in any transformation, and descriptive text

Mapplet definition

Refer to the mapping illustrated below. Assume that the mapplet definition is valid and that the individual transformation expressions are valid. Select the statement that is correct.

Choose Answer

(A)

The mapping will be valid as it is.

(B)

The mapping is valid because the third mapplet output group, Update Changes, does not have any output ports connected to a transformation or Target definition.

(C)

The mapping is invalid because you cannot concatenate two or more data flow paths together into one mapplet input group.

(D)

The mapplet is invalid because the number of output ports in each output group does not match.

Input transformation in mapplet

Select the statement below that is true.

Choose Answer

(A)

A mapplet that does not contain an Input transformation is always an active mapplet.

(B)

A mapplet that does not contain an Input transformation is an active mapplet only if it contains at least one active transformation.

(C)

A passive mapplet can be made into an active mapplet by adding one or more Joiner transformations to the mapplet.

(D)

A passive mapplet can be made into an active mapplet by adding one or more Lookup transformations to the mapplet.

Output transformations in a mapplet

How many Output transformations can be placed in a mapplet?

Choose Answer

(A)

One

(B)

One or more

(C)

One or more unless there is at least one Target definition in the mapplet, in which case zero Output transformations are permitted.

(D)

Any number

Homogeneous Source Definitions

How many homogeneous Source Definitions can be placed in a Mapplet?

Choose Answer

(A)

One

(B)

One for each Source Qualifier transformation.

(C)

Zero to one if the mapplet does not contain an Input or ERP Source Qualifier transformation.

(D)

Unlimited

Difference between the Router and Filter transformations

A major difference between the Router and Filter transformations is that filtered rows can be captured in the Router. (T/F)

Choose Answer

(A)

True

(B)

False

Filter transformation

A Filter transformation contains the following condition: ITEM_COST > 100.00. The value for ITEM_COST for a specific row is 35. What will happen to that row?

Choose Answer

(A)

It is dropped from the mapping flow.

(B)

It is dropped from the mapping flow and written to the appropriate reject (bad) file.

(C)

It is dropped from the mapping flow and written to the appropriate reject (bad) file if the Filter property "Forward Filtered Rows" is set to True.

(D)

If the Filter property "Forward Filtered Rows" is set to True, the row is sent to downstream transformations, if any, but not written to the target table.

Router transformation that has three groups defined

Specify which statement below best describes the behavior of a Router transformation that has three groups defined.

Choose Answer

(A)

The condition for each group will be evaluated for each row, and the first group that evaluates to a "true" result will pass the row out of the transformation through that group's output ports. If no group evaluates to a "true" result, the row will pass out of the transformation through the Default group output ports.

(B)

The condition for each group will be evaluated for each row, and each group that evaluates to a "true" result will pass the row out of the transformation through that group's output ports. If no group evaluates to a "true" result, the row will pass out of the transformation through the Default group output ports.

(C)

The condition for each group will be evaluated for each row, and the first group that evaluates to a "true" result will pass the row out of the transformation through that group's output ports. If no group evaluates to a "true" result, the row will pass out of the transformation through the Default group output ports only if those ports are connected to another transformation.

(D)

The condition for each group will be evaluated for each row, and each group that evaluates to a "true" result will pass the row out of the transformation through that group's output ports. If no group evaluates to a "true" result, the row will pass out of the transformation through the Default group output ports only if those ports are connected to another transformation.

Update Strategy transformation

It is desired to run a session where every row that is processed by the session updates the target table based on the primary key value. Assume that the target table definition has a primary key, and all other session and mapping properties are left to their defaults. Select the statement below that is true.

Choose Answer

(A)

The only action that is necessary is to set the Treat Source Rows As session property to Update.

(B)

At least one Update Strategy transformation must be present in the mapping, and the update expression condition must be written to be true for all rows that are desired to update the target table.

(C)

At least one Update Strategy transformation must be present in the mapping, and the update expression condition must be written to be true for all rows that are desired to update the target table, and the Treat Source Rows As session property must be set to Update.

(D)

At least one Update Strategy transformation must be present in the mapping, and the update expression condition must be written to be true for all rows that are desired to update the target table, and the Treat Source Rows As session property must be set to Data Driven.

Expressions used in an Update Strategy

What type of expressions can be used in an Update Strategy transformation?

Choose Answer

(A)

Immediate If ( IIF)

(B)

Immediate If (IIF) or DECODE

(C)

Immediate If (IIF), DECODE, or IF THEN ELSE

(D)

Any valid non-aggregate expression that is supported by the transformation language.

Forward Rejected Rows in Update Strategy

Refer to the diagram below. The Update Strategy transformation contains an expression that may tag each row as insert, delete or reject. It is desired to count ALL rows that pass through the Aggregator, regardless of how they are tagged. Assume that the other parts of the mapping are finished and that the Update Strategy transformation property Forward Rejected Rows is set to True. Select the statement that is true.

Choose Answer

(A)

The mapping will work as desired without any further changes.

(B)

The mapping will work as desired only if the Aggregator transformation is moved to be upstream of the Update Strategy transformation.

(C)

The mapping will work as desired only if it is redesigned to use a Router transformation in place of the Update Strategy transformation, and the row operation for each row (insert, delete, or reject) is set by an individual Update Strategy transformation for each flow, and then counted by an individual Aggregator transformation for each flow.

(D)

The mapping will work as desired only if the Update Strategy transformation tags each row only as insert or delete (no rows tagged as reject). Any rows that are not desired in the target table can then be removed from the flow by adding a Filter transformation DOWNSTREAM of the Aggregator transformation, and setting the Filter condition to be logically equivalent to the condition that was used in the Update Strategy transformation to tag the rows as reject.

"Treat source rows as" session property

A user sets the "Treat source rows as" session property to "Update". What is the effect of making this selection?

Choose Answer

(A)

All records processed by the session will be treated as update statements on the target table(s).

(B)

All records processed by the session will be treated as update statements on the target table(s), provided that a primary key constraint exists on the corresponding target table definition(s).

(C)

This selection allows the use of the Update Strategy transformation, provided that one or more Update Strategy transformations are present in the mapping run by the session.

(D)

This selection allows the use of the Update Strategy transformation, provided that one or more Update Strategy transformations are present in the mapping run by the session, and provided that a primary key constraint exists on the corresponding target table definition(s).

Case-sensitive string comparison

Can the Joiner transformation perform a case-sensitive string comparison as part of the join condition?

Choose Answer

(A)

Yes, always

(B)

No, the comparison is never case sensitive.

(C)

Yes when the Informatica server is running on the Unix operating system, no when it is running on a Windows operating system.

(D)

Yes, when the database that is being used for the join supports case-sensitive string comparisons.

Full outer join

A developer is using a Joiner transformation to join two data streams (sources), and a full outer join is desired. Select the statement below that is true.

Choose Answer

(A)

A Joiner transformations may perform a full outer join under all conditions.

(B)

A Joiner transformation may perform a full outer join only when one or more sides of the join are from a relational database.

(C)

A Joiner transformation may perform a full outer join only when all sides of the join originate from relational databases, and one or more of those databases support outer joins.

(D)

A Joiner transformation may perform a full outer join only when no file sources are involved in the join (both sides are relational).

3 or more data sources connected to a Joiner

Choose Answer

(A)

The mapping is valid as it is.

(B)

The mapping is invalid because there is an active transformation between SQ_ITEMS and the Joiner transformation. If the Aggregator transformation was eliminated or replaced with a passive transformation, the mapping would be valid.

(C)

The mapping is valid only if the SQ_ITEMS side of the join is designated as the master side in the Joiner transformation.

(D)

The mapping is invalid because it is not permitted to have three or more data sources connected to a Joiner transformation under any circumstances.

Joiner

Refer to the diagram below, which shows part of a mapping. Assume that each individual transformation and transformation expression in the mapping is valid, and that the part of the mapping that is not visible (downstream of the Joiner) is valid. Select the statement that is true.

Choose Answer

(A)

The mapping is valid as it is.

(B)

The mapping is invalid because a Joiner transformation must be the first transformation after the Source Qualifier, and in this mapping there are two transformations between SQ_ITEMS and the Joiner transformation.

(C)

The mapping will be valid only if the SQ_ITEMS side of the join is designated as the detail side in the Joiner transformation.

(D)

The mapping will be valid only if the SQ_ITEMS side of the join is designated as the master side in the Joiner transformation.

Refer to the diagram below, which shows part of a mapping. Assume that each individual transformation and transformation expression is valid. Select the statement that is true.

Joiner transformations

It is desired to join together a database table, a flat file and an XML file. All three sources have a single common field called CUSTOMER_ID. What is the minimum number of Joiner transformations that are needed to join these sources?

Choose Answer

(A)

One

(B)

Two

(C)

Three

(D)

One if the flat file and the XML file are located in the same directory, two if they are located in different directories.

Set a Lookup condition

A developer is attempting to set a Lookup condition and finds that the New Condition button is disabled, making it impossible to set a condition. Assume that it is a connected Lookup. What is a possible reason for this?

Choose Answer

(A)

There are no designated Lookup ports in the ports tab section.

(B)

There are no designated Input ports in the ports tab section.

(C)

There are no ports with compatible data types.

(D)

At least one Output port has not been connected to another transformation.

Override the SQL of a non-shared, uncached Lookup transformation

It is desired to override the SQL of a non-shared, uncached Lookup transformation in order to add a WHERE clause. Select the action below that MUST be taken to allow the session to run as designed. Assume that the session has already been tested prior to the override and it is satisfactory.

Choose Answer

(A)

Cache the Lookup

(B)

Include an ORDER BY clause in the SQL that sorts the lookup field(s) in descending order.

(C)

Generate a default query after the override SQL has been entered.

(D)

Validate the override SQL on the actual database table.

Lookup transformation where cache is persistent

Select the Lookup transformation scenario below which is not supported. Assume that the Lookup cache is persistent, it is shared and named, and there is only one Lookup transformation used in the mapping or mapplet.

Choose Answer

(A)

Static cacheCondition: sales_amt > sales_amt1Unconnected

(B)

Static cacheCondition: sales_amt = sales_amt1 Unconnected

(C)

Dynamic cacheCondition: sales_amt > sales_amt1Connected

(D)

Dynamic cacheCondition: sales_amt = sales_amt1Connected

Dynamic lookup cache

Select the statement below that most accurately describes how a dynamic lookup cache is designed to function.

Choose Answer

(A)

The Informatica server compares the target data to the cache data as each row is passed to the target and updates the cache as required.

(B)

The Informatica server inserts rows into the cache or updates rows in the cache as it passes rows to the target.

(C)

The Informatica server updates the cache as the target table data changes.

(D)

The Informatica server inserts, updates or deletes rows in the cache as it passes rows to the target.

Source Type Lookup transformation

What type of data sources are supported in the Source Type Lookup transformation property?

Choose Answer

(A)

Database

(B)

Database and flat file

(C)

Database, flat file, and COBOL file

(D)

Database, flat file, COBOL file, and XML file

Unconnected Lookup transformation

What is one disadvantage of using an unconnected (sometimes called function mode) Lookup transformation?

Choose Answer

(A)

If there is no match in the Lookup condition, the Informatica server returns a transformation error.

(B)

A reusable unconnected Lookup can not have more than one instance in a mapping.

(C)

An unconnected Lookup transformation does not support user-defined default values.

(D)

An unconnected Lookup transformation does not support a static lookup cache.

NEXTVAL port of a Sequence Generator

Can the NEXTVAL port of a Sequence Generator transformation be connected to the PRIMARY KEY column of two different target table definitions in a mapping? Assume that the two definitions represent different physical tables on the database server.

Choose Answer

(A)

Yes, always.

(B)

Yes, but only if the two tables share a primary - foreign key (referential integrity) relationship.

(C)

No, because the Sequence Generator produces unique values (within the selected range) and this would result in a unique constraint error (duplicate key values) in one or both of the tables.

(D)

No, this is not allowed in the Mapping Designer.

Sequence Generator transformation

What is the difference between the NEXTVAL and the CURRVAL ports of the Sequence Generator transformation? Assume that they are both connected to the input ports of another transformation.

Choose Answer

(A)

The Informatica server generates a sequence of numbers for NEXTVAL, and CURRVAL is set to NEXTVAL plus one.

(B)

The Informatica server generates a sequence of numbers for NEXTVAL, and CURRVAL is set to NEXTVAL minus one.

(C)

The Informatica server generates a sequence of numbers for CURVALL, and NEXTVAL is set to CURRVAL plus one.

(D)

The Informatica server generates a sequence of numbers for CURVALL, and NEXTVAL is set to CURRVAL plus the integer value set for the "Increment By" Sequence Generator property.

Active transformations

Why is the sorter transformation considered an active transformation?

Choose Answer

(A)

When the Case Sensitive property is set to true (checked), rows that do not meet the case criteria in the sort may be discarded.

(B)

When more than one sort key is selected, nested sorts may result in a single input row being outputted more than one time within multiple sort sequences.

(C)

When the Distinct Output Rows property is set to true (checked), duplicate rows are discarded.

(D)

When the sort direction properties are not the same for all sort keys (not all ascending or all descending), a single input row may be outputted more than one time.

Sort a very large data set

When using the sorter transformation to sort a very large data set, additional RAM resources may be required to accommodate the data. Which machine would provide this RAM?

Choose Answer

(A)

The Informatica server machine.

(B)

The source database server machine.

(C)

The target database server machine.

(D)

The source database server machine when reading from a relational source, or the target database server machine when reading from a flat file, COBOL or XML source.

Posted by ghostrider30 at 12:25 PM 1 comments

Sorter transformation

When a sorter transformation is included in a Mapping that is run in a Workflow, when does the data sort occur?

Choose Answer

(A)

Before the Workflow runs.

(B)

After the Workflow runs.

(C)

Either before or after the Workflow runs, depending on the sorter properties.

(D)

During the time the Workflow runs (Session Task run time).

Sorter transformation

Select the statement below that is true.

Choose Answer

(A)

The Sorter transformation must be used immediately downstream of a Source Qualifier transformation.

(B)

The Sorter transformation must be used immediately downstream of a Source Qualifier transformation that reads from a relational source.

(C)

The Sorter transformation supports multiple sort levels, so any sort key can have a secondary sort associated with it.

(D)

The user is allowed to modify the ORDER BY clause generated by the Sorter transformation.

Posted by ghostrider30 at 12:24 PM 1 comments

Aggregator data RAM cache

By default, the Aggregator data RAM cache size is 2 Mbytes, and the index RAM cache is 1 Mbyte. What would happen if a user ran a session that required a data RAM cache of 3 Mbytes and the data cache size was left at the default?

Choose Answer

(A)

The session would fail when the Aggregator begins processing data.

(B)

The session would fail when the data RAM cache exceeds 2 Mbytes.

(C)

The Informatica server would automatically expand the data RAM cache to accommodate the additional data (provided the RAM is available on the machine).

(D)

The Informatica server would automatically page the data to a file on the local disk.

Aggregator data cache size.

An Aggregator transformation will process 50 million rows per session, and the width of each row is 3 KBytes. There are two group-by ports, MONTH and CUSTOMER. Assuming that the data set contains two years worth of data, and that there are 500 customers who are represented for each month in the data set, estimate the required data cache size.

Choose Answer

(A)

6 MBytes

(B)

12 MBytes

(C)

18 MBytes

(D)

36 MBytes

Aggregate cache

The aggregate cache always consists of

Choose Answer

(A)

An index and data cache in RAM, and an index and data file on the local disk.

(B)

An index and data cache in RAM, and an index and data cache on the local disk if the RAM caches cannot contain all of the intermediate results in the data set.

(C)

An index and data cache in RAM, and an index and data file on the local disk if the file names and directory (or Server Variable) have been specified as an Aggregator property.

(D)

An index and data cache in RAM, and an index and data file on the local disk if the Incremental Aggregation property has been set to true when the session runs.

Posted by ghostrider30 at 12:23 PM 0 comments

Sorted Input in Aggregator transformation

An Aggregator transformation has two group-by ports: CUSTOMER_ID and ORDER_DATE, in that order. The Sorted Input property is set to true. The Order By clause in the SQL for the Source Qualifier contains this syntax: ORDER BY CUSTOMER_ID, ORDER_DATE, MANF_ID. Assuming that the sort order on the database server matches the sort order of the session and everything else is valid, what would happen when this session started?

Choose Answer

(A)

The session would run normally.

(B)

The session would fail, because the columns in the ORDER BY clause in the SQL do not exactly match the group-by ports in the Aggregator transformation.

(C)

The session would fail, because when the Sorted Input property is set to true, no more than one group-by port is allowed.

(D)

The session would run, but sorted data would not be used because the columns in the ORDER BY clause in the SQL does not exactly match the group-by ports in the Aggregator transformation, and this may adversely affect performance.

Aggregator transformation variable port

What type of expressions can be used in an Aggregator transformation variable port?

Choose Answer

(A)

Aggregate or non-aggregate expressions, provided they are not used together in a single variable port.

(B)

Aggregate and non-aggregate expressions, together in the same variable port.

(C)

Aggregate, non-aggregate and conditional expressions, together in the same variable port, provided that the variable port is also made a "group-by" port.

(D)

Non-aggregate and conditional expressions only.

Aggregator transformation

What type of expressions can be used in an Aggregator transformation output port?

Choose Answer

(A)

Aggregate or non-aggregate expressions, provided they are not used together in a single output port.

(B)

Aggregate and non-aggregate expressions, together in the same output port.

(C)

Aggregate, non-aggregate and conditional expressions, together in the same output port.

(D)

Aggregate only.

Outer join

Can a Source Qualifier be used to perform an outer join when joining two database tables?

Choose Answer

(A)

Yes, but it requires that the user modify the join SQL by hand.

(B)

Yes, but it requires that the user select left or right outer join as the Source Qualifier Join Type property.

(C)

No, because this may produce null values in ports and the Source Qualifier does not support default values.

(D)

No, this function is not supported by the Source Qualifier- a Joiner transformation would need to be used.

Join two relational sources

A user desires to join two relational sources with a single Source Qualifier. The sources and the Source Qualifier have been correctly imported into the mapping. Next, she must establish a primary / foreign key relationship between two ports in the source definitions. Assuming that the relationship does not currently exist on the database server, what are the required steps to do this?

Choose Answer

(A)

Use the Source Analyzer to establish the primary / foreign key relationship and save the repository.

(B)

Use the Source Analyzer to establish the primary / foreign key relationship, save the repository, and run the appropriate SQL statement on the database tables to create the actual primary / foreign key relationship.

(C)

Use the Source Analyzer to establish the primary / foreign key relationship, open the SQL Editor in the Source Qualifier and generate the join statement, modify the join statement if required, and save the repository.

(D)

Use the Source Analyzer to establish the primary / foreign key relationship, regenerate the Source Qualifier SQL using the SQL Editor, press the Okay button, and save the repository.

Data source(s)

What type of data source(s) can be read with the Source Qualifier transformation?

Choose Answer

(A)

Relational databases

(B)

Relational databases and flat files

(C)

Relational databases, flat files and Cobol

(D)

Relational databases, flat files, Cobol and certified ERP sources such a Peoplesoft and SAP/R3.

Override the default Source Qualifier join

Under what circumstances should a user override the default Source Qualifier join?

Choose Answer

(A)

The datatypes of the columns used in the join condition do not match.

(B)

The Source Qualifier is being used to join two tables located on different database servers (a heterogeneous join).

(C)

The Source Qualifier is being used to join two or more flat files.

(D)

The order of the Source Qualifier ports has been changed since the mapping was first saved.

Generate a default query

A user finds that she is unable to generate a default query in the Source Qualifier SQL Editor. What is a possible reason for that?

Choose Answer

(A)

The datatypes in the Source Qualifier do not match the corresponding datatypes in the source definition(s) for each field and port.

(B)

The Source Qualifier does not have one or more ports connected to another transformation or target in the mapping.

(C)

The Source Qualifier property "Allow default query" is unchecked (set to false).

(D)

The Source Qualifier is not connected to the source database.

Alter the datatypes in the Source Qualifier

Under what circumstances is it desirable to alter the datatypes in the Source Qualifier?

Choose Answer

(A)

When the precision required by the mapping is less than the precision of the data stored in the table or flat file being read by the Source Qualifier.

(B)

When the precision required by the mapping is greater than the precision of the data stored in the table or flat file being read by the Source Qualifier.

(C)

To alter the way the source database binds data when it is imported into the mapping.

(D)

Never. The datatypes in the Source Qualifier and the corresponding source(s) must match.

Informatica expression reserved word

Can a port in an Expression transformation be given the name DISTINCT ?

Choose Answer

(A)

Yes

(B)

No, because DISTINCT is an ANSI SQL reserved word.

(C)

No, because DISTINCT is an Informatica expression reserved word.

(D)

No, because DISTINCT is both an ANSI SQL and an Informatica expression reserved word.

Informatica Test functions

The following are valid Informatica Test functions:

Choose Answer

(A)

ISNULL, IS_DATE, IS_NUMBER, IS_SPACES

(B)

ISNOTNULL, ISDATE, ISHERE

(C)

IS NULL, ISANUMBER, ISADATE, ISADECIMAL

(D)

NO_DOUBT, IS_LIVE, ISILDOR, ISENGARD

Interpreting expression

A user enters the following expression into an Expression transformation:( PRICE - COST ) QUANTITY. The Expression transformation is part of a mapping with a relational database source definition. Assuming that the expression is valid, when the mapping runs as part of a session, how will the Informatica server treat the above expression?

Choose Answer

(A)

It will interpret the expression directly.

(B)

It will embed the expression into the designated source code file for the session and then compile it so that it can be executed.

(C)

It will include the statement in the SQL select statement that will be submitted to the source database.

(D)

It will embed the expression into the primary session stored procedure script that will be executed on either the source database or another database that was specified by the user.

Posted by ghostrider30 at 12:18 PM 0 comments

LTRIM

For a row where the value of the port LAST_NAME is equal to the string 'Damato' what would be the return value of the expression LTRIM ( LAST_NAME, 'A' )?

Choose Answer

(A)

Dmato

(B)

Dmto

(C)

amato

(D)

Damato

Mapping validity

Which situation would always cause a mapping to be invalid?

Choose Answer

(A)

A target definition with no data flowing into it

(B)

Two ports with different data types connected together

(C)

Two active transformations connected to the same transformation

(D)

A Source Qualifier with port names that do not match a field name in the corresponding Source definition.

Data types

A developer wishes to connect two ports that have different data types. Is this allowed?

Choose Answer

(A)

Yes, always

(B)

Yes, provided that the data types are compatible. The Informatica server will automatically convert the original type to match the destination type.

(C)

Yes, provided that the data types are compatible, and the developer writes a valid conversion function to convert the original type to match the destination type.

(D)

No, never.

Working with Expressions

A transformation has the following ports: Port_1: String, Input port; Port_2: String, Input port; Port_3: String, Output port. Which of the expressions shown below would be valid? Assume that it is associated with Port_3 and that the string ENDSTRING is not a parameter or mapping variable.

Choose Answer

(A)

Port_1 Port_2 'ENDSTRING'

(B)

Port_1 Port_2 "ENDSTRING"

(C)

Port_1 Port_2 ENDSTRING

(D)

CONCAT(Port_1, CONCAT(Port_2, "ENDSTRING"))

Transformation expressions

A transformation has the following ports: Port_1: Decimal, Input port; Port_2: Decimal, Input port; Port_3: String, Input port; Port_4: Decimal, Output port; Port_5: Decimal, Output port. Which of the expressions shown below would be invalid? Assume it is associated with Port_4.

Choose Answer

(A)

IIF ( Port_1 > 5, Port_2 10, Port_2 15 )

(B)

IIF ( Port_1 > 5, Port_1 10 )

(C)

IIF ( Port_5 > 7, Port_5 10, Port_5 15 )

(D)

IIF ( Port_2 > 8, Port_2 10, Port_2 15 )

Session Task

Whether or not a Session Task can be considered to have heterogeneous targets is determined by

Choose Answer

(A)

The Mapping properties alone.

(B)

The Session Task properties alone.

(C)

Either the Mapping properties or the Session Task properties.

(D)

Either the Mapping properties or the Workflow properties.

Editing Target definition

Under what circumstances can a Target definition be edited from the Mapping Designer, within the mapping where that Target definition is being used?

Choose Answer

(A)

When the Target definition is not shared (not a shortcut).

(B)

When the Target definition is not shared (not a shortcut) and when the user has write permission on the folder where the mapping is stored.

(C)

Always

(D)

Neve

Posted by ghostrider30 at 12:15 PM 0 comments

Target definitions

What types of Target definitions are supported in a mapping?

Choose Answer

(A)

Relational

(B)

Relational and XML

(C)

Relational, XML and flat file

(D)

Relational, XML, flat file and COBOL

Flat File Wizard

A developer has used the Flat File Wizard to create a fixed-width flat file source definition. This source definition is used in several mappings. The next day, she discovers that the actual flat file that will be accessed by the Informatica server will be comma delimited. What action, if any, should be taken?

Choose Answer

(A)

No action need be taken provided the new file format is valid.

(B)

Edit the Source definition properties to make them correct and save the changes to the repository.

(C)

Launch the Flat File Wizard using the Source definition and edit the properties to make them correct. Save the changes to the repository.

(D)

Delete the Source definition, save the repository, re-import it using the Flat File Wizard and define the properties to make them correct. Add the new Source definition to the affected mappings and save the changes to the repository.

Primary and foreign key relationship

Can a developer manually define a primary and foreign key relationship between two columns in two different relational Source definitions?

Choose Answer

(A)

Yes, always.

(B)

Yes, provided that the data types and precision matches between the two columns.

(C)

Yes, provided that the data types and precision matches between the two columns and the relationship exists on the physical database tables when the session runs.

(D)

Yes, provided that the data types and precision matches between the two columns. The relationship can be set between the Source definitions regardless of whether the relationship exists on the physical database tables, but if the relationship does not exist in the database, the session may fail if referential integrity is faulty.

Tasks on a port level

Which tasks can be performed on a port level (using one specific port)?

Choose Answer

(A)

Enter expressions, define port variables, override default values

(B)

Enter expressions, define port and Mapping variables, override default values

(C)

Define local and Mapping variables, define parameters, override default values

(D)

Enter expressions, define port and Mapping variables, define parameters

Supported transformation ports

What types of transformation ports are supported?

Choose Answer

(A)

Input, Output, Variable

(B)

Input, Output, Input / Output, Variable

(C)

Input, Output, Variable, Aggregate

(D)

Input, Output, Input / Output, Variable, Parameter link a port

A user is attempting to link a port on the left to another port in a different transformation on the right. The Designer will not establish the connector link (blue arrow). What are the possible reasons for this?

Choose Answer

(A)

Link columns mode not set, or left port not an output port

(B)

Link columns mode not set, or left port not an output port, or data type mismatch

(C)

Link columns mode not set, or left port not an input port, or right port not an output port, or data type mismatch

(D)

Link columns mode not set, or left port not an output port, or right port not an input port, or data type mismatch

Copy a Source Definition from a shared folder to a non-shared folder

A user desires to copy a Source Definition from a shared folder to a non-shared folder. Assuming that the user has write permission on the non-shared folder, what must be done in order for this operation to work as intended?

Choose Answer

(A)

The Source Analyzer must be active and the non-shared folder must be open.

(B)

The Source Analyzer must be active, the non-shared folder must be open, and the user must hold down the Ctrl key while dragging.

(C)

The Source Analyzer must be active and the shared folder must be open.

(D)

The Source Analyzer must be active, the shared folder must be open, and the user must hold down the Ctrl key while dragging.

Designer option cannot be set locally

Specify which Designer option cannot be set locally (differently for each client machine).

Choose Answer

(A)

Whether to display column names or business names for all Source Qualifiers

(B)

Whether to import primary keys when importing a target definition

(C)

Whether to import data type lengths and precisions for Source Definitions

(D)

Whether to display targets grouped by database in the Navigator Window

"Find" search tool

The Designer includes a "Find" search tool as part of the standard toolbar. What can it be used to find?

Choose Answer

(A)

Column or port names in any transformation, source or target definition

(B)

Column or port names in any transformation, source or target definition, and strings in any of the output windows

(C)

Column or port names in any transformation, source or target definition, strings in any of the output windows, and expressions in any transformation

(D)

Column or port names in any transformation, source or target definition, strings in any of the output windows, expressions in any transformation, and descriptive textLabels: Informatica, Informatica Designer Certification Questions

posted by Afzal @ 8:05 AM

2 Comments:

At November 4, 2011 11:36 PM , harish said...

i need answers for this

At December 20, 2011 11:49 AM , balaji.komera said...

i need answers for these

http://its4u-afzal.blogspot.in/2009/11/informatica-designer-certification.html

Select the statement that is true.

Choose Answer

(A)

The mapping will work as desired without any further changes.

(B)

The mapping will work as desired only if the Aggregator transformation is moved to be upstream of the Update Strategy transformation.

(C)

The mapping will work as desired only if it is redesigned to use a Router transformation in place of the

Update Strategy transformation, and the row operation for each row (insert, delete, or reject) is set by an individual Update Strategy transformation for each flow, and then counted by an individual Aggregator transformation for each flow.

(D)

The mapping will work as desired only if the Update Strategy transformation tags each row only as insert or delete (no rows tagged as reject).

Any rows that are not desired in the target table can then be removed from the flow by adding a Filter transformation DOWNSTREAM of the Aggregator transformation, and setting the Filter condition to be logically equivalent to the condition that was used in the Update Strategy transformation to tag the rows as reject.

1. Difference between the Router and Filter transformations

A major difference between the Router and Filter transformations is that filtered rows can be captured in the Router. (T/F)

Choose Answer

(A)

True

(B)

False

Router transformation that has three groups defined

Specify which statement below best describes the behavior of a Router transformation that has three groups defined.

Choose Answer

(A)

The condition for each group will be evaluated for each row, and the first group that evaluates to a "true"

result will pass the row out of the transformation through that group's output ports.

If no group evaluates to a "true"

result, the row will pass out of the transformation through the Default group output ports.

(B)

The condition for each group will be evaluated for each row, and each group that evaluates to a "true"

result will pass the row out of the transformation through that group's output ports.

If no group evaluates to a "true"

result, the row will pass out of the transformation through the Default group output ports.

(C)

The condition for each group will be evaluated for each row, and the first group that evaluates to a "true"

result will pass the row out of the transformation through that group's output ports.

If no group evaluates to a "true"

result, the row will pass out of the transformation through the Default group output ports only

if those ports are connected to another transformation.

(D)

The condition for each group will be evaluated for each row, and each group that evaluates to a "true"

result will pass the row out of the transformation through that group's output ports.

If no group evaluates to a "true"

result, the row will pass out of the transformation through the Default group output ports

only if those ports are connected to another transformation.

1. Update Strategy transformation

It is desired to run a session where every row that is processed by the session updates

the target table based on the primary key value.

Assume that the target table definition has a primary key, and all other session

and mapping properties are left to their defaults.

Select the statement below that is true.

Choose Answer

(A)

The only action that is necessary is to set the Treat Source Rows As session property to Update.

(B)

At least one Update Strategy transformation must be present in the mapping,

and the update expression condition must be written to be true

for all rows that are desired to update the target table.

(C)

At least one Update Strategy transformation must be present in the mapping,

and the update expression condition must be written to be true

for all rows that are desired to update the target table, and the Treat Source Rows As

session property must be set to Update.

(D)

At least one Update Strategy transformation must be present in the mapping,

and the update expression condition must be written to be true

for all rows that are desired to update the target table, and the Treat Source Rows As

session property must be set to Data Driven.

Expressions used in an Update Strategy

What type of expressions can be used in an Update Strategy transformation?

Choose Answer

(A)

Immediate If ( IIF)

(B)

Immediate If (IIF) or DECODE

(C)

Immediate If (IIF), DECODE, or IF THEN ELSE

(D)

Any valid non-aggregate expression that is supported by the transformation language.

Forward Rejected Rows in Update Strategy

Refer to the diagram below. The Update Strategy transformation contains

an expression that may tag each row as insert, delete or reject.

It is desired to count ALL rows that pass through the Aggregator, regardless of how they are tagged.

Assume that the other parts of the mapping are finished and that the

Update Strategy transformation property

Forward Rejected Rows is set to True. Select the statement that is true.

Choose Answer

(A)

The mapping will work as desired without any further changes.

(B)

The mapping will work as desired only if the Aggregator transformation is moved to be upstream of the

Update Strategy transformation.

(C)

The mapping will work as desired only if it is redesigned to use a Router transformation in place of the

Update Strategy transformation,

and the row operation for each row (insert, delete, or reject) is set by an individual

Update Strategy transformation for each flow,

and then counted by an individual Aggregator transformation for each flow.

(D)

The mapping will work as desired only if the Update Strategy transformation tags

each row only as insert or delete (no rows tagged as reject).

Any rows that are not desired in the target table can then be removed from the flow by

adding a Filter transformation DOWNSTREAM of the Aggregator transformation,

and setting the Filter condition to be logically equivalent to the condition that was used in the

Update Strategy transformation to tag the rows as reject.

Treat source rows as session property

A user sets the "Treat source rows as" session property to "Update".

What is the effect of making this selection?

Choose Answer

(A)

All records processed by the session will be treated as update statements on the target table(s).

(B)

All records processed by the session will be treated as update statements on the target table(s),

provided that a primary key constraint

exists on the corresponding target table definition(s).

(C)

This selection allows the use of the Update Strategy transformation, provided that

one or more Update Strategy transformations are present in the mapping run by the session.

(D)

This selection allows the use of the Update Strategy transformation, provided that

one or more Update Strategy transformations are present in the mapping run by the session,

and provided that a primary key constraint

exists on the corresponding target table definition(s).

Lookup transformation where cache is persistent

Select the Lookup transformation scenario below which is not supported.

Assume that the Lookup cache is persistent,

it is shared and named, and there is only one Lookup transformation used in the mapping or mapplet.

Choose Answer

(A)

Static cacheCondition: sales_amt > sales_amt1Unconnected

(B)

Static cacheCondition: sales_amt = sales_amt1 Unconnected

(C)

Dynamic cacheCondition: sales_amt > sales_amt1Connected

(D)

Dynamic cacheCondition: sales_amt = sales_amt1Connected

Dynamic lookup cache

Select the statement below that most accurately describes how a dynamic lookup cache is designed to function.

Choose Answer

(A)

The Informatica server compares the target data to the cache data as each row is passed to the target

and updates the cache as required.

(B)

The Informatica server inserts rows into the cache or updates rows in the cache as it passes rows to the target.

(C)

The Informatica server updates the cache as the target table data changes.

(D)

The Informatica server inserts, updates or deletes rows in the cache as it passes rows to the target.

Unconnected Lookup transformation

What is one disadvantage of using an unconnected (sometimes called function mode) Lookup transformation?

Choose Answer

(A)

If there is no match in the Lookup condition, the Informatica server returns a transformation error.

(B)

A reusable unconnected Lookup can not have more than one instance in a mapping.

(C)

An unconnected Lookup transformation does not support user-defined default values.

(D)

An unconnected Lookup transformation does not support a static lookup cache.

Sort a very large data set

When using the sorter transformation to sort a very large data set,

additional RAM resources may be required to accommodate the data.

Which machine would provide this RAM?

Choose Answer

(A)

The Informatica server machine.

(B)

The source database server machine.

(C)

The target database server machine.

(D)

The source database server machine when reading from a relational source,

or the target database server machine

when reading from a flat file, COBOL or XML source.

Q1. Which of the following statements will enable users to query a table EMPLOYEE of user USER1 without the need to qualify the same ?

A. Create synonym Employee

B. Create public synonym Employee for User1.Employee

C. Create public synonym Employee for User1

D. Create Employee public synonym for User1.Employee

ANSWER: B

Q2. Which of the following statements will you use to add some columns to an already created view?

A. Change view

B. Insert into view

C. Create or replace view

D. Modify view

ANSWER: C

Q3. An Index would be most useful in which of the following cases ?

a. The indexed column is declared as NOT NULL

b. The indexed columns are used in the FROM clause

c. The indexed columns are part of an expression

d. The indexed column contains a wide range of values

ANSWER: D

Q4. Can you change a ‘not deferrable constraint’ from initially immediate to initially deferred?

A. Yes

B. No

C. Possible only with primary key constraint

D. Possible only with foreign key constraint

ANSWER: B

Q5.What does the command Drop Table with Purge option do ?

A. Deletes the table but does not free the space
B. Deletes a table and removes it from recycle bin too freeing the space. You can however roll this back
C. Deletes a table and removes it from recycle bin too freeing the space. You cannot roll this back
D. Gives an error

ANSWER: C

AGGREGATOR

What will be the result if you do not specify any aggregate column in an aggregator?

Ans : Last record will be loaded

What will be the result if you select all the src cols for aggregation in an aggregator ?

And : It will work as distinct


http://satishkingdom.itgo.com/rich_text.html


Informatica Question and Answers 
what is rank transformation?where can we use this ...


Rank transformation is used to find the status.ex if we have one sales table and in this if we find more employees selling the same product and we are in need to find the first 5 0r 10 employee who is selling more products.we can go for rank transformation.
 
Where is the cache stored in informatica?


cache stored in informatica is in informatica server.
 If you want to create indexes after the load process which transformation you choose?stored  procedure transformation In a joiner transformation, you should specify the source with fewer rows as the master source. Why? In joiner transformation Inforrmatica server reads all the records from master source builds index and data caches based on master table rows after building the caches the joiner transformation reads records from the detail source and perform joins What happens if you try to create a shortcut to a non-shared folder? It only creates a copy of it. 
What is Transaction?


 A transaction can be defined as DML operation.
means it can be insertion, modification or deletion of data performed by users/ analysts/applicators
 Can any body write a session parameter file which will change the source and targets for every session i.e different source and targets for each session run. You are supposed to define a parameter file. And then in the Parameter file, you can define two parameters, one for source and one for target.
Give like this for example:
$Src_file = c:\program files\informatica\server\bin\abc_source.txt
$tgt_file = c:\targets\abc_targets.txt
Then go and define the parameter file:
[folder_name.WF:workflow_name.ST:s_session_name]
$Src_file =c:\program files\informatica\server\bin\abc_source.txt
$tgt_file = c:\targets\abc_targets.txt

If its a relational db, you can even give an overridden sql at the session level...as a parameter. Make sure the sql is in a single line.
Informatica Live Interview Questions here are some of the interview questions i could not answer, any body can help giving answers for others also.
thanks in advance.

Explain grouped cross tab?
Explain reference cursor
What are parallel query's and query hints
What is meta data and system catalog
What is factless fact schema
What is confirmed dimension
Which kind of index is preferred in DWH
Why do we use DSS database for OLAP tools

confirmed dimension ==  one  dimension  that  shares with  two fact table
factless   means, fact table  without   measures  only  contains  foreign  keys-two  types  of  factless  table, one  is  event  tracking   and  other  is   coverage  table
Bit map indexes preferred in the data ware housing
Metadate  is  data  about  data,  here  every  thing  is  stored  example-mapping, sessions, privileges  other  data, in informatica we  can  see  the  Metadate  in    the   repository.
System  catalog  that  we   used  in  the   cognos, that   also  contains   data, tables, privileges, predefined   filter  etc,  using  this   catalog  we   generate  reports
group  cross  tab  is   a  type   of   report  in  cognos, where  we   have  to assign 3  measures  for  getting   the   result
What is meant by Junk Attribute in Informatica?


Junk Dimension A Dimension is called junk dimension if it contains attribute which are rarely changed ormodified. example In Banking Domain , we can fetch four attributes accounting to a junk dimensions like from the Overall_Transaction_master table tput flag tcmp flag del flag advance flag all these attributes can be a part of a junk dimensions.
  Can anyone explain about incremental aggregation with an example? When you use aggregator transformation to aggregate it creates index and data caches to store the data 1.Of group by columns 2. Of aggregate columns
the incremental aggregation is used when we have historical data in place which will be used in aggregation incremental aggregation uses the cache which contains the historical data and for each group by column value already present in cache it add the data value to its corresponding data cache value and outputs the row in case of a incoming value having no match in index cache the new values for group by and output ports are inserted into the cache .
Difference between Rank and Dense Rank?


Rank:
1
2<--2nd br="" position="">2<--3rd br="" position="">4
5

Same Rank is assigned to same totals/numbers. Rank is followed by the Position. Golf game usually Ranks this way. This is usually a Gold Ranking.
Dense Rank:
1
2<--2nd br="" position="">2<--3rd br="" position="">3
4

Same ranks are assigned to same totals/numbers/names. The next rank follows the serial number.
 About Informatica Power center 7:
1) I want to know which mapping properties can be overridden on a Session Task level.
2)Know what types of permissions are needed to run and schedule Work flows.
1) I want to Know which mapping properties can be overridden on a Session Task level?
You can override any properties other than the source and targets. Make sure the source and targets exist in your db if it is a relational db. If it is a flat file, you can override its properties. You can override sql if its a relational db, session log, DTM buffer size, cache sizes etc.

2) Know what types of permissions are needed to run and schedule Work flows
You need execute permissions on the folder to run/schedule a workflow. You may have read and write. But u need execute permissions as well.
Can any one explain real time complain mappings or complex transformations in Informatica.
Especially in Sales Domain.
Most complex logic we use is denormalization. We don’t have any Denormalizer transformation in Informatica. So we will have to use an aggregator followed by an expression. Apart from this, we use most of the complex in expression transformation involving lot of nested IIF and Decode statements...another one is the union transformation and joiner.
How do you create a mapping using multiple lookup transformation? Use unconnected lookup if same lookup repeats multiple times.
In the source, if we also have duplicate records and we have 2 targets, T1- for unique values and T2- only for duplicate values. How do we pass the unique values to T1 and duplicate values to T2 from the source to these 2 different targets in a single mapping? Soln1: source--->sq--->exp-->sorter (with enable select distinct check box) --->t1
                            --->aggregator (with enabling group by and write count function) --->t2
If u wants only duplicates to t2 u can follow this sequence
                             --->agg (with enable group by write this code decode(count(col),1,1,0))--->Filter(condition is 0)--->t2.
Soln2: take two source instances and in first one embedded distinct in the source qualifier and connect it to the target t1.
 and just write a query in the second source instance to fetch the duplicate records and connect it to the target t2.
<< if u use aggregator as suggested by my friend u will get duplicate as well as distinct records in the second target >>
Soln3: Use a sorter transformation. Sort on key fields by which u want to find the duplicates. then use an expression transformation.
Example:
Example:
field1-->
field2-->

SORTER:
field1 --ascending/descending
field2 --ascending/descending

Expression:
--> field1
--> field2

<--> v_field1_curr = field1
<--> v_field2_curr = field2
v_dup_flag = IIF(v_field1_curr = v_field1_prev, true, false)
o_dup_flag = IIF(v_dup_flag = true, 'Duplicate', 'Not Duplicate'

<--> v_field1_prev = v_field1_curr
<--> v_field2_prev = v_field2_curr

Use a Router transformation and put o_dup_flag = 'Duplicate' in T2 and 'Not Duplicate' in T1.
Informatica evaluates row by row. So as we sort, all the rows come in order and it will evaluate based on the previous and current rows.
What are the enhancements made to Informatica 7.1.1 version when compared to 6.2.2 version?
In 7+ versions
- We can lookup a flat file - Union and custom transformation- There is propagate option i.e., if we change any data type of a field, all the linked columns will reflect that change- We can write to XML target.- We can use up to 64 partitions What is the difference between Power Centre and Power Mart?

What is the procedure for creating Independent Data Marts from Informatica 7.1?
Power Centre have Multiple Repositories,where as Power mart have single repository(desktop repository)Power Centre again linked to global repositor to share between users
Power centerPowermart
No. of repositoryn No.n No.
aplicabilityhigh end WHlow&mid range WH
global repositorysupported not supported
local repositorysupportedsupported
ERP supportavailablenot available
What is lookup transformation and update strategy transformation and explain with an example. Look up transformation is used to lookup the data in a relational table, view, Synonym and Flat file.
The informatica server queries the lookup table based on the lookup ports used in the transformation.
It compares the lookup transformation port values to lookup table column values based on the lookup condition
By using lookup we can get related value, Perform a calculation and Update SCD.
Two types of lookups
Connected
Unconnected
Update strategy transformation
This is used to control how the rows are flagged for insert, update, delete or reject.
To define a flagging of rows in a session it can be insert, Delete, Update or Data driven.
In Update we have three options
Update as Update
Update as insert
Update else insert
What is the logic will you implement to load the data in to one fact able from 'n' number of dimension tables. To load data into one fact table from more than one dimension tables. Firstly you need to create a fact table and dimension tables. Later load data into individual dimensions by using sources and transformations (aggregator, sequence generator, lookup) in mapping designer then to the fact table connect the surrogate to the foreign key and the columns from dimensions to the fact.
After loading the data into the dimension tables we will load the data into the fact tables    ... the reason for this is that the dimension tables contain the data related to the fact table.
To load the data from dimension table to fact table is simple ..
assume  (dimension table as  source tables) and  fact table as target. that all.....
Can i use a session Bulk loading option that time can i make a recovery to the session? If the session is configured to use in bulk mode it will not write recovery information to recovery tables. So Bulk loading will not perform the recovery as required.
No, why because in bulk load u won’t create redo log file, when u normal load we create redo log file, but in bulk load session performance increases.
 
How do you configure mapping in informatica


You should configure the mapping with the least number of transformations and expressions to do the most amount of work possible. You should minimize the amount of data moved by deleting unnecessary links between transformations.
For transformations that use data cache (such as Aggregator, Joiner, Rank, and Lookup transformations), limit connected input/output or output ports. Limiting the number of connected input/output or output ports reduces the amount of data the transformations store in the data cache.
You can also perform the following tasks to optimize the mapping:
  • Configure single-pass reading.
  • Optimize datatype conversions.
  • Eliminate transformation errors.
  • Optimize transformations.
  • Optimize expressions. You should configure the mapping with the least number of transformations and expressions to do the most amount of work possible. You should minimize the amount of data moved by deleting unnecessary links between transformations.
For transformations that use data cache (such as Aggregator, Joiner, Rank, and Lookup transformations), limit connected input/output or output ports. Limiting the number of connected input/output or output ports reduces the amount of data the transformations store in the data cache.
You can also perform the following tasks to optimize the mapping:
  •  
    • Configure single-pass reading.
    • Optimize datatype conversions.
    • Eliminate transformation errors.
    • Optimize transformations.
    • Optimize expressions.
  What is difference between dimension table and fact table
and what are different dimension tables and fact tables
In the fact table contain measurable data and fewer columns and many rows,
It's contain primary key
Different types of fact tables:
Additive, non additive, semi additive
In the dimensions table contain textual description of data and also contain many columns, less rows
Its contain primary key
What are Work let and what use of work let and in which situation we can use it Worklet is a set of tasks. If a certain set of task has to be reused in many workflows then we use work lets. To execute a Work let, it has to be placed inside a workflow.
The use of work let in a workflow is similar to the use of mapplet in a mapping.
What are mapping parameters and variables in which situation we can use it If we need to change certain attributes of a mapping after every time the session is run, it will be very difficult to edit the mapping and then change the attribute. So we use mapping parameters and variables and define the values in a parameter file. Then we could edit the parameter file to change the attribute values. This makes the process simple.
Mapping parameter values remain constant. If we need to change the parameter values then we need to edit the parameter file.
But value of mapping variables can be changed by using variable function. If we need to increment the attribute value by 1 after every session run then we can use mapping variables
In a mapping parameter we need to manually edit the attribute value in the parameter file after every session run.
explain use of update strategy transformation


Maintain the history data and maintain the most recent changes data.
what is meant by complex mapping,


Complex mapping means involved in more logic and more business rules.Actually in my project complex mapping isIn my bank project, I involved in construct a 1 data ware houseMany customer is there in my bank project, They r  after taking loans relocated in to another place that time i feel to difficult maintain both previous and current addressesin the sense i am using scd2This is an simple example of complex mapping
I have an requirement where in the columns names in a table (Table A) should appear in rows of target table (Table B) i.e. converting columns to rows. Is it possible through Informatica? If so, how? if data in tables as follows
Table A
Key-1 char(3);
table A values
_______
1
2
3


Table B
bkey-a char(3);
bcode  char(1);
table b values
1 T
1 A
1 G
2 A
2 T
2 L
3 A

and output required is as
1, T, A
2, A, T, L
3, A

the SQL query in source qualifier should be
select key_1,
          max(decode( bcode, 'T', bcode, null )) t_code,
             max(decode( bcode, 'A', bcode, null )) a_code,
          max(decode( bcode, 'L', bcode, null )) l_code
    from a, b
    where a.key_1 = b.bkey_a
    group by key_1
   /

If a session fails after loading of 10,000 records in to the target How can u load the records from 10001 th record when u run the session next time in informatica 6.1? Simple solution, Nothing by using performance recovery option
Can we run a group of sessions without using workflow manager ya Its Possible using pmcmd Command with out using the workflow Manager run the group of session.
what is the difference between stop and abort


The Power Center Server handles the abort command for the Session task like the stop command, except it has a timeout period of 60 seconds. If the Power Center Server cannot finish processing and committing data within the timeout period, it kills the DTM process and terminates the session.  stop: _______If the session u want to stop is a part of batch you must stop the batch,
if the batch is part of nested batch, Stop the outer most bacth\
Abort:----
You can issue the abort command , it is similar to stop command except it has 60 second time out .
If the server cannot finish processing and committing data with in 60 sec
 What is difference between lookup cache and uncached lookup?

Can i run the mapping with out starting the informatica server?
The difference between cache and uncached lookup is when you configure the lookup transformation cache lookup it stores all the lookup table data in the cache when the first input record enter into the lookup transformation, in cache lookup the select statement executes only once and compares the values of the input record with the values in the cache but in uncached lookup the select statement executes for each input record entering into the lookup transformation and it has to connect to database each time entering the new record
I want to prepare a questionnaire. The details about it are as follows: -

1. Identify a large company/organization that is a prime candidate for DWH project. (For example Telecommunication, an insurance company, banks, may be the prime candidate for this)

2. Give at least four reasons for the selecting the organization.

3. Prepare a questionnaire consisting of at least 15 non-trivial questions to collect requirements/information about the organization. This information is required to build data warehouse.

Can you please tell me what should be those 15 questions to ask from a company, say a telecom company?
First of all meet your sponsors and make a BRD (business requirement document) about their expectation from this data warehouse (main aim comes from them).For example they need customer billing process. Now go to business management team they can ask for metrics out of billing process for their use. Now management people monthly usage, billing metrics, sales organization, rate plan to perform sales rep and channel performance analysis and rate plan analysis. So your dimension tables can be Customer (customer id, name, city, state etc) Sales rep sales rep number, name, idsalesorg: sales ord idBill dimension: Bill #,Bill date, Numberrate plan:rate plan codeAnd Fact table can be:Billing details(bill #,customer id, minutes used, call details etc)you can follow star and snow flake schema in this case. Depend upon the granularity of your data.
Can i start and stop single session in concurrent batch? Just right click on the particular session and going to recovery option
or
by using event wait and event rise
What is Micro Strategy? Why is it used for? Can any one explain in detail about it? Micro strategy is again an BI tool which is a HOLAP... u can create 2 dimensional report and also cubes in here.......basically a reporting tool. It has a full range of reporting on web also in windows.
What is difference b/w Informatica 7.1 and Abinitio There is a lot of difference between Inforrmatica an Abinitio
In Ab Initio we r using 3 parllalisim
but Informatica using 1 parllalisim
In Ab Initio no scheduling option we can scheduled manully or pl/sql script
but informatica contains 4 scheduling options
Ab Inition contains co-operating system
but informatica is not
Ramp time is very quickly in Ab Initio campare than Informatica
Ab Initio is userfriendly than Informatica
 
What is mystery dimension?


Also known as Junk Dimensions
Making sense of the rogue fields in your fact table..
 What is cost based and rule based approaches and the difference Cost based and rule based approaches are the optimization techniques which are used in related to databases, where we need to optimize a SQL query.
Basically Oracle provides Two types of Optimizers (indeed 3 but we use only these two techniques. bcz the third has some disadvantages.)
When ever you process any SQL query in Oracle, what oracle engine internally does is, it reads the query and decides which will the best possible way for executing the query. So in this process, Oracle follows these optimization techniques.
1. cost based Optimizer (CBO): If a SQL query can be executed in 2 different ways ( like may have path 1 and path2 for same query),then What CBO does is, it basically calculates the cost of each path and the analyses for which path the cost of execution is less and then executes that path so that it can optimize the query execution.
2. Rule base optimizer(RBO): this basically follows the rules which are needed for executing a query. So depending on the number of rules which are to be applied, the optimzer runs the query.
Use:
If the table you are trying to query is already analysed, then oracle will go with CBO.
If the table is not analysed , the Oracle follows RBO. 
For the first time, if table is not analysed, Oracle will go with full table scan.
what are partition points? Partition points mark the thread boundaries in a source pipeline and divide
the pipeline into stages.
How to append the records in flat file (Informatica) ? Where as in Data stage we have the options
i) overwrite the existing file
ii) Append existing file
This is not there in Informatica v 7. But heard that it’s included in the latest version 8.0 where u can append to a flat file. Its about to be shipping in the market.
If u had to split the source level key going into two separate tables. One as surrogate and other as primary. Since informatica does not gurantee keys are loaded properly(order!) into those tables. What are the different ways you could handle this type of situation? foreign key
what is the best way to show metadata(number of rows at source, target and each transformation level, error related data) in a report format When your workflow gets completed go to workflow monitor right click the session .then go to transformation statistics there we can see number of rows in source and target. if we go for session properties we can see errors related to data
You can select these details from the repository table.  you can use the view REP_SESS_LOG to get these data
Two relational tables are connected to SQ transformation, what are the possible errors it will be thrown? We can connect two relational tables in one sq Transformation. No errors will be perform
With out using Updatestrategy and sessons options, how we can do the update our target table? Soln1: You can use this by using "update override" in target properties
Soln2: In session properties, There is an option
insert
update
insert as update
update as update
like that
by using this we will easily solve
Soln3: By default all the rows in the session is set as insert flag ,you can change it in the session general properties -- Treate source rows as :update
so, all the incoming rows will be set with update flag. now you can update the rows in the target table
  Could anyone please tell me what are the steps required for type2 dimension/version data mapping. how can we implement it Go to mapping designer in it go for mapping select wizard in it go for slowly changing dimension 
Here u will find a new window their u need to give the mapping name source table target table and type of slowly changing dimension then if select finish slowly changing dimension 2 mapping is created
go to ware designer and generate the table then validate the mapping in mapping designer save it to repository run the session in workflow manager
later update the source table and re run again u will find the difference in target table
How to import oracle sequence into Informatica. Create one procedure and declare the sequence inside the procedure,finally call the procedure in informatica with the help of stored procedure transformation
What is data merging, data cleansing, sampling? Cleansing:---TO identify and remove the retundacy and inconsistency
sampling: just smaple the data throug send the data from source to target
What is IQD file?


IQD file is nothing but Impromptu Query Definition, This file is mainly used in Cognos Impromptu tool after creating a imr ( report) we save the imr as IQD file which is used while creating a cube in power play transformer.In data source type we select Impromptu Query Definetion.
Differences between Normalizer and  Normalizer transformation. Normalizer: It is a transormation mainly using for cobol sources,
it's change the rows into coloums and columns into rows
Normalization:To remove the retundancy and inconsitecy
How do I import VSAM files from source to target. Do I need a special plugin In mapping Designer we have direct option to import files from VSAM Navigation : Sources => Import from file => file from COBOL
What is the procedure or steps implementing versioning if you are already in version7.X. Any gotcha\'s or precautions.. For version control in ETL layer using informatica, first of all after doing anything in your designer mode or workflow manager, do the following steps.....
1> First save the changes or new implementations.
2>Then from navigator window, right click on the specific object you are currently in. There will be a pop up window. In that window at the lower end side, you will find versioning->Check In. A window will be opened. Leave the information you have done  like "modified this mapping" etc. Then click ok button.
can anyone explain error handling in informatica with examples so that it will be easy to explain the same in the interview. go to the session log file there we will find the information regarding to the
session initiation process,
errors encountered.
load summary.
so by seeing the errors encountered during the session running, we can resolve the errors.
If you have four lookup tables in the workflow How do you troubleshoot to improve performance? There r many ways to improve the mapping which has multiple lookups.
1) We can create an index for the lookup table if we have permissions(staging area).
2) Divide the lookup mapping into two  (a) dedicate one for insert means: source - target,, these r new rows only the new rows will come to mapping and the process will be fast . (b) Dedicate the second one to update : source=target,, these r existing rows only the rows which exists allready will come into the mapping.
3)we can increase the chache size of the lookup
If you are workflow is running slow in informatica. Where do you start trouble shooting and what are the steps you follow? If you are workflow is running slow in informatica. Where do you start trouble shooting and what are the steps you follow? SOLN1: when the work flow is running slowly you have to find out the bottlenecks
in this order
target
source
mapping
session
system
SOLN2: work flow may be slow due to different reasons one is alpha characters in decimal data check it out this and due to insufficient length of strings check with the SQL override
How do you handle decimal places while importing a flatfile into informatica? while importing the flat file, the flat file wizard helps in configuring the properties of the file so that select the numeric column and just enter the precision value and the scale. Precision includes the scale for examples if the number is 98888.654, enter precision as 8 and scale as 3 and width as 10 for fixed width flat file
In a sequential Batch how can we stop single session? we have a task called wait event using that we can stop.
we start using raise event.
why dimenstion tables are denormalized in nature ?...


Because in Data warehousing historical data should be maintained, to maintain historical data means suppose one employee details like where previously he worked, and now where he is working, all details should be maintain in one table, if u maintain primary key it won't allow the duplicate records with same employee id. so to maintain historical data we are all going for concept data warehousing by using surrogate keys we can achieve the historical data(using oracle sequence for critical column). so all the dimensions are marinating historical data, they are de normalized, because of duplicate entry means not exactly duplicate record with same employee number another record is maintaining in the table
Can we use aggregator/active transformation after update strategy transformation? We can use, but the update flag will not be remain. But we can use passive transformation
Can any one comment on

significance of oracle 9i in informatica when compared to oracle 8 or 8i.

i mean how is oracle 9i advantageous when compared to oracle 8 or 8i when used in informatica
it's  very easy
Actually oracle 8i not allowed user defined data types
But 9i allows
and then blob, lob allow only 9i not 8i
and  more over list partinition is there in 9i only
in the concept of mapping parameters and variables, the variable value will be saved to the repository after the completion of the session and the next time when u run the session, the server takes the saved variable value in the repository and starts assigning the next value of the saved value. for example i ran a session and in the end it stored a value of 50 to the repository.next time when i run the session, it should start with the value of 70. not with the value of 51.

how to do this.
SOLN1: u can do onething after running the mapping,, in workflow manager
              start-------->session.
 right clickon the session  u will get a menu, in that go for persistant values, there u will find the last value stored in the repository regarding to mapping variable. then remove it and put ur desired one, run the session... i hope ur task will be done
SOLN2: it takes value of 51 but u can override the saved variable in the repository by defining the value in the parameter file.if there is a parameter file for the mapping variable it uses the value in the parameter file not the value+1 in the repositoryfor example assign the value of the mapping variable as 70.in othere words higher preference is given to the value in the parameter file
how to use mapping parameters and what is their use Mapping parameters and variables make the use of mappings more flexible and also it avoids creating of multiple mappings. it helps in adding incremental data mapping parameters and variables has to create in the mapping designer by choosing the menu option as Mapping ----> parameters and variables and the enter the name for the variable or parameter but it has to be preceded by $$. and choose type as parameter/variable, data type once defined the variable/parameter is in the any expression for example in SQ transformation in the source filter properties tab. just enter filter condition and finally create a parameter file to assign the value for the variable / parameter and configure the session properties. however the final step is optional. if their parameter is not present it uses the initial value which is assigned at the time of creating the variable
How to delete duplicate rows in flat files source is any option in informatica Use a sorter transformation , in that u will have a "distinct" option make use of it .
What is the use of incremental aggregation? Explain me in brief with an example. Its a session option when the informatica server performs incremental aggregation it passes new source data through the mapping and uses historical cache data to perform new aggregation calculations incrementally for performance we will use it.
What is the procedure to load the fact table.Give in detail? SOLN1: we use the 2 wizards (i.e) the getting started wizard and slowly changing dimension wizard to load the fact and dimension tables,by using these 2 wizards we can create different types of mappings according to the business requirements and load into the star schemas(fact and dimension tables).
SOLN2: first dimenstion tables need to be loaded, then according to the specifications the fact tables should be loaded. Don’t think that fact table’s r different in case of loading; it is general mapping as we do for other tables. specifications will play important role for loading the fact.
How to lookup the data on multiple tabels. if u want to lookup data on multiple tables at a time u can do one thing join the tables which u want then lookup that joined table. informatica provieds lookup on joined tables
How to retrieve the records from a rejected file. explane with syntax or example SOLN1: there is one utility called "reject Loader" where we can find out the reject records and able to refine and reload the rejected records..
SOLN2: During the execution of workflow all the rejected rows will be stored in bad files (where your informatica server get installed C:\Program Files\Inforrmatica Power Center 7.1\Server) These bad files can be imported as flat a file in source then thro' direct mapping we can load these files in desired format.
How does the server recognise the source and target databases? By using ODBC connection.if it is relational.if is flat file FTP connection..see we can make sure with connection in the properties of session both sources & targets
What are variable ports and list two situations when they can be used? We have mainly three ports Inport, Outport, Variable port. Inport represents data is flowing into transformation. Outport is used when data is mapped to next transformation. Variable port is used when we mathematical calculations are required.
you can also use as for example consider price and quantity  and total as a variable  we can make a sum on the total_amt by giving
sum (total_amt)
variable port is used to break the complex expression into simpler
and also it is used to store intermediate values
What is difference between IIF and DECODE function...


You can use nested IIF statements to test multiple conditions. The following example tests for various conditions and returns 0 if sales is zero or negative:
IIF( SALES > 0, IIF( SALES < 50, SALARY1, IIF( SALES < 100, SALARY2, IIF( SALES < 200, SALARY3, BONUS))), 0 )
You can use DECODE instead of IIF in many cases. DECODE may improve readability. The following shows how you can use DECODE instead of IIF :
   SALES > 0 and SALES < 50, SALARY1,
   SALES > 49 AND SALES < 100, SALARY2,
   SALES > 99 AND SALES < 200, SALARY3,
   SALES > 199, BONUS)
in Dimensional modeling fact table is normalized or denormalized?in case of star schema and incase of snow flake schema? No concept of normailzation in the case of star schema but in the case of snow flack schema dimension table must be normalized.
Star schema--De-Normalized dimensions
Snow Flake Schema-- Normalized dimensions
which is better among connected lookup and unconnected lookup transformations in informatica or any other ETL tool? When you compared both basically connected lookup will return more values and unconnected returns one value conn lookup is in the same pipeline of source and it will accept dynamic caching. Unconn lookup don't have that facility but in some special cases we can use Unconnected. if o/p of one lookup is going as i/p of another lookup this unconnected lookups are favorable
I think the better one is connected look up. beacaz we can use dynamic cache with it ,, also connected loop up can send multiple columns in a single row, where as unconnected is concerned it has a single return port.(in case of  etl informatica is concerned)
What is the limit to the number of sources and targets you can have in a mapping As per my knowledge there is no such restriction to use this number of sources or targets inside a mapping.
Question is " if you make N number of tables to participate at a time in processing what is the position of your database. I organization point of view it is never encouraged to use N number of tables at a time, It reduces database and informatica server performance"
The restriction is only on the database side. how many concurrent threads r u allowed to run on the db server?
which objects are required by the debugger to create a valid debug session? Initially the session should be valid session.
Source, target, lookups, expressions should be available min 1 break point should be available for debugger to debug your session.
Informatica server Object is must.
what is the procedure to write the query to list the highest salary of three employees? SELECT sal
FROM (SELECT sal FROM my_table ORDER BY sal DESC)
WHERE ROWNUM < 4;

since this is informatica.. you might as well use the Rank transformation.  check out the help file on how to use it.
We are using Update Strategy Transformation in mapping how can we know whether insert or update or reject or delete option has been selected during running of sessions in Informatica. In Designer while creating Update Strategy Transformation uncheck "forward to next transformation". If any rejected rows are there automatically it will be updated to the session log file.
Update or insert files are known by checking the target file or table only.
Suppose session is configured with commit interval of 10,000 rows and source has 50,000 rows. Explain the commit points for Source based commit and Target based commit. Assume appropriate value wherever required. Source based commit will commit the data into target based on commit interval so for every 10,000 rows it will commit into target.
Target based commit will commit the data into target based on buffer size of the target. i.e., it commits the data into target when ever the buffer fills Let us assume that the buffer size is 6,000. So for every 6,000 rows it commits the data.
How do we estimate the number of partitions that a mapping really requires? Is it dependent on the machine configuration? It depends upon the informatica version we r using suppose if we r using informatica 6 it supports only 32 partitions where as informatica 7 supports 64 partitions
Can Informatica be used as a Cleansing Tool? If yes give example of transformations that can implement a data cleansing routine. Yes, we can use Informatica for cleansing data some time we use stages to cleansing the data. It depends upon performance again else we can use expression to cleansing data.
For example a field X has some values and other with Null values and assigned to target field where target field is not null column, inside an expression we can assign space or some constant value to avoid session failure.
The input data is in one format and target is in another format, we can change the format in expression.
We can assign some default values to the target to represent complete set of data in the target.
How do you decide whether you need it do aggregations at database level or at Informatica level? It depends upon our requirement only If you have good processing database you can create aggregation table or view at database level else its better to use informatica. Here I am explaining why we need to use informatica.
what ever it may be informatica is a third party tool, so it will take more time to process aggregation compared to the database, but in Informatica  an option we  called "Incremental aggregation" which will help you to update the current values with current  values +new values. No necessary to process entire values again and again unless this can be done if nobody deleted that cache files. If that happened total aggregation we need to execute on informatica also.
In database we don't have Incremental aggregation facility.
Identifying bottlenecks in various components of Informatica and resolving them. The best way to find out bottlenecks is writing to flat file and see where the bottle neck is .
How to join two tables without using the Joiner Transformation SOLN1:   It possible to join the two or more tables by using source qualifier. But provided the tables should have relationship.
             When u drag n drop the table u will getting the source qualifier for each table. Delete all the source qualifiers. Add a common source qualifier for all. Right click on the source qualifier u will find EDIT click on it. Click on the properties tab, u will find sql query in that u can write ur sqls
SOLN2: joiner transformation is used to join n (n>1) tables from same or different databases, but source qualifier transformation is used to join only n tables from same database
SOLN3: use Source Qualifier transformation to join tables on the SAME database.  Under its properties tab, you can specify the user-defined join. Any select statement you can run on a database.. you can do also in Source Qualifier. 
Note: you can only join 2 tables with Joiner Transformation but you can join two tables from different databases. 
In a filter expression we want to compare one date field with a db2 system field CURRENT DATE.
Our Syntax: datefield = CURRENT DATE (we didn't define it by ports, its a system field ), but this is not valid (PMParser: Missing Operator)..
Can someone help us.
the db2 date format is  "yyyymmdd"  where as sysdate in oracle will give "dd-mm-yy" so conversion of db2 date formate to local database date formate is compulsary. other wise u will get that type of error
Use Sysdate or use to_date for the current date
what does the expression n filter transformations do in Informatica Slowly growing target wizard? EXPESSION transformation detects and flags the rows from source.
Filter transformation filters the rows that are not flagged and passes the flagged rows to the Update strategy transformation
how to create the staging area in your database


A Staging area in a DW is used as a temporary space to hold all the records from the source system. So more or less it should be exact replica of the source systems except for the laod startegy where we use truncate and reload options.
So create using the same layout as in your source tables or using the Generate SQL option in the Warehouse Designer tab.
whats the diff between Informatica powercenter server, repositoryserver and repository? Power center server contains the scheduled runs at which time data should load from source to target
Repository contains all the definitions of the mappings done in designer.

What are the Differences between Informatica Power Center versions 6.2 and 7.1, also between Versions 6.2 and 5.1? The main difference between informatica 5.1 and 6.1 is that in 6.1 they introduce a new thing called repository server and in place of server manager(5.1), they introduce workflow manager and workflow monitor.
In ver 7x u have the option of looking up (lookup) on a flat file.
U can write to XML target.
Versioning
LDAP authentication
Support of 64 bit architectures
Differences between Informatica 6.2 and Informatica 7.0 Features in 7.1 are :
1. Union and custom transformation
2. Lookup on flat file
3. Grid servers working on different operating systems can coexist on same server
4. We can use pmcmdrep
5.  We can export independent and dependent rep objects
6. We ca move mapping in any web application
7. Version controlling
8. Data profilling
What is the difference between connected and unconnected stored procedures.
Run a stored procedure before or after your session.
Unconnected
Run a stored procedure once during your mapping, such as pre- or post-session.
Unconnected
Run a stored procedure every time a row passes through the Stored Procedure transformation.
Connected or Unconnected
Run a stored procedure based on data that passes through the mapping, such as when a specific port does not contain a null value.
Unconnected
Pass parameters to the stored procedure and receive a single output parameter.
Connected or Unconnected
Pass parameters to the stored procedure and receive multiple output parameters.
Note: To get multiple output parameters from an unconnected Stored Procedure transformation, you must create variables for each output parameter. For details, see Calling a Stored Procedure From an Expression.
Connected or Unconnected
Run nested stored procedures.
Unconnected
Call multiple times within a mapping.
Unconnected
Discuss which is better among incremental load, Normal Load and Bulk load If the database supports bulk load option from Inforrmatica then using BULK LOAD for intial loading the tables is recommended.
Depending upon the requirment we should choose between Normal and incremental loading strategies
If supported by the database  bulk load can do the loading faster than normal load.(incremental load concept is differnt dont merge with bulk load, mormal load)
Compare Data Warehousing Top-Down approach with Bottom-up approach in top down approch: first we have to build dataware house then we will build data marts. which will need more crossfunctional skills and timetaking process also costly.
in bottom up approach: first we will build data marts then data warehuse. the data mart that is first build will remain as a proff of concept for the others. less time as compared to above and less cost.
What is the difference between summary filter and detail filter summary filter can be applied on a group of rows that contain a common value where as detail filters can be applied on each and every rec of the data base.
what are the difference between view and materialized view? Materialized views are schema objects that can be used to summarize, precompute, replicate, and distribute data. E.g. to construct a data warehouse.
A materialized view provides indirect access to table data by storing the results of a query in a separate schema object. Unlike an ordinary view, which does not take up any storage space or contain any data
can we modify the data in flat file?


Just open the text file with notepad, change what ever you want (but datatype should be the same)
 how to get the first 100 rows from the flat file into the target? SOLN1: task ----->(link)   session (workflow manager)
double click on link and type $$source sucsess rows(parameter in session variables) = 100
it should automatically stops session.
SOLN2: 1. Use test download option if you want to use it for testing.
2. Put counter/sequence generator in mapping and perform it.
can we lookup a table from a source qualifer transformation-unconnected lookup No. we can't do.
I will explain you why.
1) Unless you assign the output of the source qualifier to another transformation or to target no way it will include the feild in the query.
2) source qualifier don't have any variables feilds to utalize as expression.
what is a junk dimension


A "junk" dimension is a collection of random transactional codes, flags and/or text attributes that are unrelated to any particular dimension. The junk dimension is simply a structure that provides a convenient place to store the junk attributes. A good example would be a trade fact in a company that brokers equity trades.
What is the difference between Narmal load and Bul...


Normal Load: Normal load will write information to the database log file so that if any recorvery is needed it is will be helpful. when the source file is a text file and loading data to a table,in such cases we should you normal load only, else the session will be failed.Bulk Mode: Bulk load will not write information to the database log file so that if any recorvery is needed we can't do any thing in such cases. compartivly Bulk load is pretty faster than normal load.
At the max how many tranformations can be us in a mapping? There is no such limitation to use this number of transformations. But in performance point of view using too many transformations will reduce the session performance. 
My idea is "if needed more tranformations to use in a mapping its better to go for some stored procedure."  
 
Waht are main advantages and purpose of using Normalizer Transformation in Informatica?


Narmalizer Transformation is used mainly with COBOL sources where most of the time data is stored in de-normalized format. Also, Normalizer transformation can be used to create multiple rows from a single row of data 
How do u convert rows to columns in Normalizer? could you explain us?? Normally, its used to convert columns to rows but for converting rows to columns, we need an aggregator and expression and little effort is needed for coding. Denormalization is not possible with a Normalizer transformation.
Discuss the advantages & Disadvantages of star & snowflake schema? In a star schema every dimension will have a primary key.
In a star schema, a dimension table will not have any parent table.
Whereas in a snow flake schema, a dimension table will have one or more parent tables.
Hierarchies for the dimensions are stored in the dimensional table itself in star schema.
Whereas hierachies are broken into separate tables in snow flake schema. These hierachies helps to drill down the data from topmost hierachies to the lowermost hierarchies.

star schema consists of single fact table surrounded by some dimensional table.In snowflake schema the dimension tables are connected with some subdimension table.
In starflake  dimensional ables r denormalized,in snowflake dimension tables r normalized.
star schema is used for report generation ,snowflake schema is used for cube.
The advantage of snowflake schema is that the normalized tables r easier to maintain.it also saves the storage space.
The disadvantage of snowflake schema is that it reduces the effectiveness of navigation across the tables due to large no of joins between them.
what is a time dimension? give an example.


Time dimension is one of important in Datawarehouse. Whenever u genetated the report , that time u access all data from thro time dimension.

eg. employee time dimension

Fields : Date key, full date, day of wek, day , month,quarter,fiscal year
What r the connected or unconnected transforamations? Connected transformation is a part of your data flow in the pipeline while unconnected Transformation is not.
much like calling a program by name and by reference.
use unconnected transforms when you wanna call the same transform many times in a single mapping
An unconnected transformation cant be connected to another transformation. but it can be called inside another transformation.
uncondition transformation are directly connected and can/used in as many as other transformations. If you are using a transformation several times, use unconditional. You get better performance.
How can U create or import flat file definition in to the warehouse designer?  U can create flat file definition in warehouse designer.in the warehouse designer,u can create new target: select the type as flat file. save it and u can enter various columns for that created target by editing its properties.Once the target is created, save it. u can import it from the mapping designer.
U can not create or import flat file defintion in to warehouse designer directly.Instead U must analyze the file in source analyzer,then drag it into the warehouse designer.When U drag the flat file source defintion into warehouse desginer workspace,the warehouse designer creates a relational target defintion not a file defintion.If u want to load to a file,configure the session to write to a flat file.When the informatica server runs the session,it creates and loads the flatfile.
What r the tasks that Loadmanger process will do? Manages the session and batch scheduling: Whe u start the informatica server the load maneger launches and queries the repository for a list of sessions configured to run on the informatica server.When u configure the session the loadmanager maintains list of list of sessions and session start times.When u sart a session loadmanger fetches the session information from the repository to perform the validations and verifications prior to starting DTM process.

Locking and reading the session: When the informatica server starts a session lodamaager locks the session from the repository.Locking prevents U starting the session again and again.

Reading the parameter file: If the session uses a parameter files,loadmanager reads the parameter file and verifies that the session level parematers are declared in the file

Verifies permission and privelleges: When the sesson starts load manger checks whether or not the user have privelleges to run the session.

Creating log files: Loadmanger creates logfile contains the status of session.

How do you transfert the data from data warehouse to flatfile? You can write a mapping with the flat file as a target using a DUMMY_CONNECTION. A flat file target is built by pulling a source into target space using Warehouse Designer tool.
Diff between informatica repositry server & informatica server Informatica Repository Server:It's manages connections to the repository from client application.
Informatica Server:It's extracts the source data,performs the data transformation,and loads the transformed data into the target

Router transformation


A Router transformation is similar to a Filter transformation because both transformations allow you to use a condition to test data. A Filter transformation tests data for one condition and drops the rows of data that do not meet the condition. However, a Router transformation tests data for one or more conditions and gives you the option to route rows of data that do not meet any of the conditions to a default output group.
What are 2 modes of data movement in Informatica Server?The data movement mode depends on whether Informatica Server should process single byte or multi-byte character data. This mode selection can affect the enforcement of code page relationships and code page validation in the Informatica Client and Server.
a) Unicode - IS allows 2 bytes for each character and uses additional byte for each non-ascii character (such as Japanese characters)
b) ASCII - IS holds all data in a single byte
The IS data movement mode can be changed in the Informatica Server configuration parameters. This comes into effect once you restart the Informatica Server.
How to read rejected data or bad data from bad file and reload it to target? correction the rejected data and send to target relational tables using loadorder utility. Find out the rejected data by using column indicatior and row indicator.
Explain the informatica Architecture in detail Informatica server connects source data and target data using native
odbc drivers
again it connect to the repository for running sessions and retriveing metadata information
source------>informatica server--------->target
                                       |
                                       |
                                REPOSITORY      repository←Repository→Repository ser.adm. control                      server                           ¢Ã• source←informatica server→target  -------------¢Ã•             ¢Ã•                 ¢Ã•designer      w.f.manager        w.f.monitor
how can we partition a session in Informatica?


The Informatica® PowerCenter® Partitioning option optimizes parallel processing on multiprocessor hardware by providing a thread-based architecture and built-in data partitioning.
GUI-based tools reduce the development effort necessary to create data partitions and streamline ongoing troubleshooting and performance tuning tasks, while ensuring data integrity throughout the execution process. As the amount of data within an organization expands and real-time demand for information grows, the PowerCenter Partitioning option
enables hardware and applications to provide outstanding performance and jointly scale to handle large volumes of data and users.
 What is Load Manager?
While running a Workflow,the PowerCenter Server uses the Load Manager process and the Data Transformation Manager Process (DTM) to run the workflow and carry out workflow tasks.When the PowerCenter Server runs a workflow, the Load Manager performs the following tasks:

1. Locks the workflow and reads workflow properties.
2. Reads the parameter file and expands workflow variables.
3. Creates the workflow log file.
4. Runs workflow tasks.
5. Distributes sessions to worker servers.
6. Starts the DTM to run sessions.
7. Runs sessions from master servers.
8. Sends post-session email if the DTM terminates abnormally.

When the PowerCenter Server runs a session, the DTM performs the following tasks:
1. Fetches session and mapping metadata from the repository.
2. Creates and expands session variables.
3. Creates the session log file.
4. Validates session code pages if data code page validation is enabled. Checks query
conversions if data code page validation is disabled.
5. Verifies connection object permissions.
6. Runs pre-session shell commands.
7. Runs pre-session stored procedures and SQL.
8. Creates and runs mapping, reader, writer, and transformation threads to extract,transform, and load data.
9. Runs post-session stored procedures and SQL.
10. Runs post-session shell commands.
11. Sends post-session email.
What is Data cleansing..?


    The process of finding and removing or correcting data that is incorrect, out-of-date, redundant, incomplete, or formatted incorrectly.
        This is nothing but polising of data. For example of one of the sub system store the Gender as M and F. The other may store it as MALE and FEMALE. So we need to polish this data, clean it before it is add to Datawarehouse. Other typical example can be Addresses. The all sub systesms maintinns the customer address can be different. We might need a address cleansing to tool to have the customers addresses in clean and neat form.
To provide support for Mainframes source data,which files r used as a source definitions?COBOL Copy-book filesWhere should U place the flat file to import the flat file defintion to the designer? There is no such restrication to place the source file. In performance point of view its better to place the file in server local src folder. if you need path please check the server properties availble at workflow manager.
It doesn't mean we should not place in any other folder, if we place in server src folder by default src will be selected at time session creation
How many ways you can update a relational source defintion and what r they?Two ways
1. Edit the definition
2. Reimport the definition
Which transformation should u need while using the cobol sources as source defintions?Normalizer transformaiton which is used to normalize the data.Since cobol sources r oftenly consists of Denormailzed data.
What is the maplet?


For Ex:Suppose we have several fact tables that require a series of dimension keys.Then we can create a mapplet which contains a series of Lkp transformations to find each dimension key and use it in each fact table mapping instead of creating the same Lkp logic in each mapping. 
what is a transforamation?It is a repostitory object that generates,modifies or passes data.A transformation is repository object that pass data to the next stage(i.e to the next transformation or target) with/with out modifying the dataWhat r the active and passive transforamtions?An active transforamtion can change the number of rows that pass through it.A passive transformation does not change the number of rows that pass through it. Transformations can be active or passive. An active transformation can change the number of rows that pass through it, such as a Filter transformation that removes rows that do not meet the filter condition.
A passive transformation does not change the number of rows that pass through it, such as an Expression transformation that performs a calculation on data and passes all rows through the transformation.
What r the reusable transforamtions?Reusable transformations can be used in multiple mappings.When u need to incorporate this transformation into maping,U add an instance of it to maping.Later if U change the definition of the transformation ,all instances of it inherit the changes.Since the instance of reusable transforamation is a pointer to that transforamtion,U can change the transforamation in the transformation developer,its instances automatically reflect these changes.This feature can save U great deal of work.What r the methods for creating reusable transforamtions?Two methods
1.Design it in the transformation developer.
2.Promote a standard transformation from the mapping designer.After U add a transformation to the mapping , U can promote it to the status of reusable transformation.
Once U promote a standard transformation to reusable status,U can demote it to a standard transformation at any time.
If u change the properties of a reusable transformation in mapping,U can revert it to the original reusable transformation properties by clicking the revert button.
What r the unsupported repository objects for a mapplet?COBOL source definition
Joiner transformations
Normalizer transformations
Non reusable sequence generator transformations.
Pre or post session stored procedures
Target defintions
Power mart 3.5 style Look Up functions
XML source definitions
IBM MQ source definitions
·  Source definitions. Definitions of database objects (tables, views, synonyms) or files that provide source data. ·  Target definitions. Definitions of database objects or files that contain the target data. ·  Multi-dimensional metadata. Target definitions that are configured as cubes and dimensions. ·  Mappings. A set of source and target definitions along with transformations containing business logic that you build into the transformation. These are the instructions that the Informatica Server uses to transform and move data. ·  Reusable transformations. Transformations that you can use in multiple mappings. ·  Mapplets. A set of transformations that you can use in multiple mappings. ·  Sessions and workflows. Sessions and workflows store information about how and when the Informatica Server moves data. A workflow is a set of instructions that describes how and when to run tasks related to extracting, transforming, and loading data. A session is a type of task that you can put in a workflow. Each session corresponds to a single mapping.What r the mapping paramaters and maping variables?Maping parameter represents a constant value that U can define before running a session.A mapping parameter retains the same value throughout the entire session.
When u use the maping parameter ,U declare and use the parameter in a maping or maplet.Then define the value of parameter in a parameter file for the session.
Unlike a mapping parameter,a maping variable represents a value that can change throughout the session.The informatica server saves the value of maping variable to the repository at the end of session run and uses that value next time U run the session.
Can U use the maping parameters or variables created in one maping into another maping?NO.
We can use mapping parameters or variables in any transformation of the same maping or mapplet in which U have created maping parameters or variables.
Can u use the maping parameters or variables created in one maping into any other reusable transformation?Yes.Because reusable tranformation is not contained with any maplet or maping.
How can U improve session performance in aggregator transformation?


use sorted input:
1. use a sorter before the aggregator
2. donot forget to check the option on the aggregator that tell the aggregator that the input is sorted on the same keys as group by.
the key order is also very important
What is aggregate cache in aggregator transforamtion?The aggregator stores data in the aggregate cache until it completes aggregate calculations.When u run a session that uses an aggregator transformation,the informatica server creates index and data caches in memory to process the transformation.If the informatica server requires more space,it stores overflow values in cache files. When you run a workflow that uses an Aggregator transformation, the Informatica Server creates index and data caches in memory to process the transformation. If the Informatica Server requires more space, it stores overflow values in cache files.
What r the diffrence between joiner transformation and source qualifier transformation?U can join hetrogenious data sources in joiner transformation which we can not achieve in source qualifier transformation.
U need matching keys to join two relational sources in source qualifier transformation.Where as u doesn’t need matching keys to join two sources.
Two relational sources should come from same datasource in sourcequalifier.U can join relatinal sources which r coming from diffrent sources also.
In which condtions we can not use joiner transformation(Limitaions of joiner transformation)?Both pipelines begin with the same original data source.
Both input pipelines originate from the same Source Qualifier transformation.
Both input pipelines originate from the same Normalizer transformation.
Both input pipelines originate from the same Joiner transformation.
Either input pipelines contains an Update Strategy transformation.
Either input pipelines contains a connected or unconnected Sequence Generator transformation.
what r the settiings that u use to cofigure the joiner transformation?·  Master and detail source ·  Type of join ·  Condition of the join
the Joiner transformation supports the following join types, which you set in the Properties tab:
  • Normal (Default)
  • Master Outer
  • Detail Outer
  • Full Outer
What r the join types in joiner transformation?


Normal (Default) -- only matching rows from both master and detail
Master outer -- all detail rows and only matching rows from master
Detail outer -- all master rows and only matching rows from detail
Full outer  -- all rows from both master and detail ( matching or non matching)
follw this
  1. In the Mapping Designer, choose Transformation-Create. Select the Joiner transformation. Enter a name, click OK.
The naming convention for Joiner transformations is JNR_TransformationName. Enter a description for the transformation. This description appears in the Repository Manager, making it easier for you or others to understand or remember what the transformation does. The Designer creates the Joiner transformation. Keep in mind that you cannot use a Sequence Generator or Update Strategy transformation as a source to a Joiner transformation.
  1. Drag all the desired input/output ports from the first source into the Joiner transformation.
The Designer creates input/output ports for the source fields in the Joiner as detail fields by default. You can edit this property later.
  1. Select and drag all the desired input/output ports from the second source into the Joiner transformation.
The Designer configures the second set of source fields and master fields by default.
  1. Double-click the title bar of the Joiner transformation to open the Edit Transformations dialog box.
  1. Select the Ports tab.
  1. Click any box in the M column to switch the master/detail relationship for the sources. Change the master/detail relationship if necessary by selecting the master source in the M column.
Tip: Designating the source with fewer unique records as master increases performance during a join.
  1. Add default values for specific ports as necessary.
Certain ports are likely to contain NULL values, since the fields in one of the sources may be empty. You can specify a default value if the target database does not handle NULLs.
  1. Select the Condition tab and set the condition.
  1. Click the Add button to add a condition. You can add multiple conditions. The master and detail ports must have matching datatypes. The Joiner transformation only supports equivalent (=) joins:
 10. Select the Properties tab and enter any additional settings for the transformations.
  1. Click OK.
  1. Choose Repository-Save to save changes to the mapping.
What r the joiner caches?When a Joiner transformation occurs in a session, the Informatica Server reads all the records from the master source and builds index and data caches based on the master rows.
After building the caches, the Joiner transformation reads records from the detail source and perform joins
what is the look up transformation?Use lookup transformation in u’r mapping to lookup data in a relational table,view,synonym.
Informatica server queries the look up table based on the lookup ports in the transformation.It compares the lookup transformation port values to lookup table column values based on the look up condition.
Why use the lookup transformation ?To perform the following tasks.
Get a related value. For example, if your source table includes employee ID, but you want to include the employee name in your target table to make your summary data easier to read.
Perform a calculation. Many normalized tables include values used in a calculation, such as gross sales per invoice or sales tax, but not the calculated value (such as net sales).
Update slowly changing dimension tables. You can use a Lookup transformation to determine whether records already exist in the target.

What r the types of lookup?


  1. Connected lookup
  2. Unconnected lookup
  1. Persistent cache
  2. Re-cache from database
  3. Static cache
  4. Dynamic cache
  5. Shared cache
Differences between connected and unconnected lookup?


Connected lookup
Unconnected lookup
Receives input values diectly from the pipe line.Receives input values from the result of a  lkp expression in a another transformation.
U can use a dynamic or static cache U can use a static cache.
Cache includes all lookup columns used in the mapingCache includes all lookup out put ports in the lookup condition and the lookup/return port.
Support user defined default valuesDoes not support user defiend default values
What is meant by lookup caches?The informatica server builds a cache in memory when it processes the first row af a data in a cached look up transformation.It allocates memory for the cache based on the amount u configure in the transformation or session properties.The informatica server stores condition values in the index cache and output values in the data cache.What r the types of lookup caches?Persistent cache: U can save the lookup cache files and reuse them the next time the informatica server processes a lookup transformation configured to use the cache.

Recache from database: If the persistent cache is not synchronized with he lookup table, U can configure the lookup transformation to rebuild the lookup cache.

Static cache: U can configure a static or readonly cache for only lookup table.By default informatica server creates a static cache.It caches the lookup table and lookup values in the cache for each row that comes into the transformation.when the lookup condition is true,the informatica server does not update the cache while it prosesses the lookup transformation.

Dynamic cache: If u want to cache the target table and insert new rows into cache and the target,u can create a look up transformation to use dynamic cache.The informatica server dynamically inerts data to the target table.

Shared cache: U can share the lookup cache between multiple transactions. U can share unnamed cache between transformations in the same maping.
Difference between static cache and dynamic cache
Static cache
Dynamic cache
U can not insert or update the cacheU can insert rows into the cache as u pass to the target
The informatica server returns a value from the lookup table or cache when the condition is true. When the condition is not true, informatica server returns the default value for connected transformations and null for unconnected transformations.The informatica server inserts rows into cache when the condition is false. This indicates that the row is not in the cache or target table. U can pass these rows to the target table
Which transformation should we use to normalize the COBOL and relational sources?Normalizer Transformation.
When U drag the COBOL source in to the mapping Designer workspace,the normalizer transformation automatically appears,creating input and output ports for every column in the source.
How the informatica server sorts the string values in Ranktransformation?When the informatica server runs in the ASCII data movement mode it sorts session data using Binary sortorder.If U configure the seeion to use a binary sort order,the informatica server caluculates the binary value of each string and returns the specified number of rows with the higest binary values for the string.What r the rank caches?During the session ,the informatica server compares an inout row with rows in the datacache.If the input row out-ranks a stored row,the informatica server replaces the stored row with the input row.The informatica server stores group information in an index cache and row data in a data cache.What is the Rankindex in Ranktransformation?The Designer automatically creates a RANKINDEX port for each Rank transformation. The Informatica Server uses the Rank Index port to store the ranking position for each record in a group. For example, if you create a Rank transformation that ranks the top 5 salespersons for each quarter, the rank index numbers the salespeople from 1 to 5:What is the Router transformation?A Router transformation is similar to a Filter transformation because both transformations allow you to use a condition to test data. However, a Filter transformation tests data for one condition and drops the rows of data that do not meet the condition. A Router transformation tests data for one or more conditions and gives you the option to route rows of data that do not meet any of the conditions to a default output group.
If you need to test the same input data based on multiple conditions, use a Router Transformation in a mapping instead of creating multiple Filter transformations to perform the same task.
What r the types of groups in Router transformation?Input group Output group

The designer copies property information from the input ports of the input group to create a set of output ports for each output group.
Two types of output groups
User defined groups
Default group
U can not modify or delete default groups.
Why we use stored procedure transformation?
A Stored Procedure transformation is an important tool for populating and maintaining databases. Database administrators create stored procedures to automate time-consuming tasks that are too complicated for standard SQL statements
What r the types of data that passes between informatica server and stored procedure?3 types of data
Input/Out put parameters
Return Values
Status code.
What is the status code?Status code provides error handling for the informatica server during the session.The stored procedure issues a status code that notifies whether or not stored procedure completed sucessfully.This value can not seen by the user.It only used by the informatica server to determine whether to continue running the session or stop.
What is source qualifier transformation? What r the tasks that source qualifier performs?


When you add a relational or a flat file source definition to a mapping, you need to connect it to a Source Qualifier transformation. The Source Qualifier represents the rows that the Informatica Server reads when it executes a session.
·  Join data originating from the same source database. You can join two or more tables with primary-foreign key relationships by linking the sources to one Source Qualifier. ·  Filter records when the Informatica Server reads source data. If you include a filter condition, the Informatica Server adds a WHERE clause to the default query. ·  Specify an outer join rather than the default inner join. If you include a user-defined join, the Informatica Server replaces the join information specified by the metadata in the SQL query. ·  Specify sorted ports. If you specify a number for sorted ports, the Informatica Server adds an ORDER BY clause to the default SQL query. ·  Select only distinct values from the source. If you choose Select Distinct, the Informatica Server adds a SELECT DISTINCT statement to the default SQL query. ·  Create a custom query to issue a special SELECT statement for the Informatica Server to read source data. For example, you might use a custom query to perform aggregate calculations or execute a stored procedure.
What is the target load order?U specify the target loadorder based on source qualifiers in a maping.If u have the multiple
source qualifiers connected to the multiple targets,U can designatethe order in which informatica
server loads data into the targets.
A target load order group is the collection of source qualifiers, transformations, and targets linked together in a mapping.
What is the default join that source qualifier provides?Inner equi join.
The Joiner transformation supports the following join types, which you set in the Properties tab:
  • Normal (Default)
  • Master Outer
  • Detail Outer
  • Full Outer
What r the basic needs to join two sources in a source qualifier?Two sources should have primary and Foreign key relation ships.
Two sources should have matching data types.

what is update strategy transformation ?


The model you choose constitutes your update strategy, how to handle changes to existing rows. In PowerCenter and PowerMart, you set your update strategy at two different levels:
  • Within a session. When you configure a session, you can instruct the Informatica Server to either treat all rows in the same way (for example, treat all rows as inserts), or use instructions coded into the session mapping to flag rows for different database operations.
  • Within a mapping. Within a mapping, you use the Update Strategy transformation to flag rows for insert, delete, update, or reject.
Describe two levels in which update strategy transformation sets?Within a session. When you configure a session, you can instruct the Informatica Server to either treat all records in the same way (for example, treat all records as inserts), or use instructions coded into the session mapping to flag records for different database operations.

Within a mapping. Within a mapping, you use the Update Strategy transformation to flag records for insert, delete, update, or reject.
What is the default source option for update stratgey transformation?Data driven.What is Datadriven?The informatica server follows instructions coded into update strategy transformations with in the session maping determine how to flag records for insert, update, delete or reject. If u do not choose data driven option setting,the informatica server ignores all update strategy transformations in the mapping.What r the options in the target session of update strategy transsformatioin?Insert
Delete
Update
Update as update
Update as insert
Update esle insert
Truncate table
Update as Insert:
This option specified all the update records from source to be flagged as inserts in the target. In other words, instead of updating the records in the target they are inserted as new records.
Update else Insert:
This option enables informatica to flag the records either for update if they are old or insert, if they are new records from source.
What r the types of maping wizards that r to be provided in Informatica?Simple Pass through Slowly Growing Target Slowly Changing the Dimension Type1
Most recent values
 Type2Full History
Version
Flag
Date
Type3
Current and one previous
What r the types of maping in Getting Started Wizard?Simple Pass through maping :
Loads a static fact or dimension table by inserting all rows. Use this mapping when you want to drop all existing data from your table before loading new data.

Slowly Growing target :
Loads a slowly growing fact or dimension table by inserting new rows. Use this mapping to load new data when existing data does not require updates.
What r the mapings that we use for slowly changing dimension table? Type1: Rows containing changes to existing dimensions are updated in the target by overwriting the existing dimension. In the Type 1 Dimension mapping, all rows contain current dimension data.
Use the Type 1 Dimension mapping to update a slowly changing dimension table when you do not need to keep any previous versions of dimensions in the table.

Type 2: The Type 2 Dimension Data mapping inserts both new and changed dimensions into the target. Changes are tracked in the target table by versioning the primary key and creating a version number for each dimension in the table.
Use the Type 2 Dimension/Version Data mapping to update a slowly changing dimension table when you want to keep a full history of dimension data in the table. Version numbers and versioned primary keys track the order of changes to each dimension.

Type 3: The Type 3 Dimension mapping filters source rows based on user-defined comparisons and inserts only those found to be new dimensions to the target. Rows containing changes to existing dimensions are updated in the target. When updating an existing dimension, the Informatica Server saves existing data in different columns of the same row and replaces the existing data with the updates
What r the different types of Type2 dimension maping?Type2 Dimension/Version Data Maping: In this maping the updated dimension in the source will gets inserted in target along with a new version number.And newly added dimension
in source will inserted into target with a primary key.

Type2 Dimension/Flag current Maping: This maping is also used for slowly changing dimensions.In addition it creates a flag value for changed or new dimension.
Flag indiactes the dimension is new or newlyupdated.Recent dimensions will gets saved with cuurent flag value 1. And updated dimensions r saved with the value 0.

Type2 Dimension/Effective Date Range Maping: This is also one flavour of Type2 maping used for slowly changing dimensions.This maping also inserts both new and changed dimensions in to the target.And changes r tracked by the effective date range for each version of each dimension.
How can u recognise whether or not the newly added rows in the source r gets insert in the target ?In the Type2 maping we have three options to recognise the newly added rows
Version number
Flagvalue
Effective date Range
What r two types of processes that informatica runs the session?Load manager Process: Starts the session, creates the DTM process, and sends post-session email when the session completes.
The DTM process. Creates threads to initialize the session, read, write, and transform data, and handle pre- and post-session operations.
What r the new features of the server manager in the informatica 5.0?U can use command line arguments for a session or batch.This allows U to change the values of session parameters,and mapping parameters and maping variables.

Parallel data processing: This feature is available for powercenter only.If we use the informatica server on a SMP system,U can use multiple CPU’s to process a session concurently.

Process session data using threads: Informatica server runs the session in two processes.Explained in previous question.
Can u generate reports in Informatcia?
It is a ETL tool, you could not make reports from here, but you can generate metadata report, that is not going to be used for business analysis
What is metadata reporter?It is a web based application that enables you to run reports againist repository metadata.
With a meta data reporter,u can access information about U’r repository with out having knowledge of sql,transformation language or underlying tables in the repository.
Define maping and sessions?Maping: It is a set of source and target definitions linked by transformation objects that define the rules for transformation.
Session : It is a set of instructions that describe how and when to move data from source to targets.
Which tool U use to create and manage sessions and batches and to monitor and stop the informatica server?Informatica server manager.what is polling?It displays the updated information about the session in the monitor window. The monitor window displays the status of each session when U poll the informatica server.While importing the relational source defintion from database,what are the meta data of source U import?Source name
Database location
Column names
Datatypes
Key constraints
 What r the designer tools for creating tranformations?Mapping designer
Tansformation developer
Mapplet designer
How many ways u create ports?Two ways
1.Drag the port from another transforamtion
2.Click the add buttion on the ports tab.
Why we use partitioning the session in informatica?Partitioning achieves the session performance by reducing the time period of reading the source and loading the data into target. Performance can be improved by processing data in parallel in a single session by creating multiple partitions of the pipeline.
Informatica server can achieve high performance by partitioning the pipleline and performing the extract , transformation, and load for each partition in parallel. 
To achieve the session partition what r the necessary tasks u have to do?Configure the session to partition source data.

Install the informatica server on a machine with multiple CPU’s.
How the informatica server increases the session performance through partitioning the source?For a relational sources informatica server creates multiple connections for each parttion of a single source and extracts seperate range of data for each connection.Informatica server reads multiple partitions of a single source concurently.Similarly for loading also informatica server creates multiple connections to the target and loads partitions of data concurently.

For XML and file sources,informatica server reads multiple files concurently.For loading the data informatica server creates a seperate file for each partition(of a source file).U can choose to merge the targets.
Why u use repository connectivity?When u edit,schedule the sesion each time,informatica server directly communicates the repository to check whether or not the session and users r valid.All the metadata of sessions and mappings will be stored in repository.  What is DTM process?After the loadmanger performs validations for session,it creates the DTM process.DTM is to create and manage the threads that carry out the session tasks.I creates the master thread.Master thread creates and manges all the other threads.What r the different threads in DTM process?Master thread: Creates and manages all other threads

Maping thread: One maping thread will be creates for each session.Fectchs session and maping information.

Pre and post session threads: This will be created to perform pre and post session operations.

Reader thread: One thread will be created for each partition of a source.It reads data from source.

Writer thread: It will be created to load data to the target.

Transformation thread: It will be created to tranform data.
What r the data movement modes in informatcia?Datamovement modes determines how informatcia server handles the charector data.U choose the datamovement in the informatica server configuration settings.Two types of datamovement modes avialable in informatica.

ASCII mode
Uni code mode.
What r the out put files that the informatica server creates during the session running?Informatica server log: Informatica server(on unix) creates a log for all status and error messages(default name: pm.server.log).It also creates an error log for error messages.These files will be created in informatica home directory.

Session log file: Informatica server creates session log file for each session.It writes information about session into log files such as initialization process,creation of sql commands for reader and writer threads,errors encountered and load summary.The amount of detail in session log file depends on the tracing level that u set.

Session detail file: This file contains load statistics for each targets in mapping.Session detail include information such as table name,number of rows written or rejected.U can view this file by double clicking on the session in monitor window

Performance detail file: This file contains information known as session performance details which helps U where performance can be improved.To genarate this file select the performance detail option in the session property sheet.

Reject file: This file contains the rows of data that the writer does notwrite to targets.

Control file: Informatica server creates control file and a target file when U run a session that uses the external loader.The control file contains the information about the target flat file such as data format and loading instructios for the external loader.

Post session email: Post session email allows U to automatically communicate information about a session run to designated recipents.U can create two different messages.One if the session completed sucessfully the other if the session fails.

Indicator file: If u use the flat file as a target,U can configure the informatica server to create indicator file.For each target row,the indicator file contains a number to indicate whether the row was marked for insert,update,delete or reject.

output file: If session writes to a target file,the informatica server creates the target file based on file prpoerties entered in the session property sheet.

Cache files: When the informatica server creates memory cache it also creates cache files.For the following circumstances informatica server creates index and datacache files.

Aggreagtor transformation
Joiner transformation
Rank transformation
Lookup transformation
In which circumstances that informatica server creates Reject files?When it encounters the DD_Reject in update strategy transformation.
Violates database constraint
Filed in the rows was truncated or overflowed.
Can u copy the session to a different folder or repository?Yes. By using copy session wizard u can copy a session in a different folder or repository.But that
target folder or repository should consists of mapping of that session.
If target folder or repository is not having the maping of copying session ,
u should have to copy that maping first before u copy the session
In addition, you can copy the workflow from the Repository manager. This will automatically copy the mapping, associated source,targets and session to the target folder.What is batch and describe about types of batches?Grouping of session is known as batch.Batches r two types
Sequential: Runs sessions one after the other
Concurrent: Runs session at same time.

If u have sessions with source-target dependencies u have to go for sequential batch to start the
sessions one after another.If u have several independent sessions u can use concurrent batches.
Whch runs all the sessions at the same time.
 How many number of sessions that u can create in a batch?Any number of sessions.When the informatica server marks that a batch is failed?If one of session is configured to "run if previous completes" and that previous session failsWhat is a command that used to run a batch?pmcmd is used to start a batch.What r the different options used to configure the sequential batches?Two options

Run the session only if previous session completes sucessfully. Always runs the session.
In a sequential batch can u run the session if previous session fails?Yes.By setting the option always runs the session.Can u start a batches with in a batch?U can not. If u want to start batch that resides in a batch,create a new independent batch and copy the necessary sessions into the new batch.Can u start a session inside a batch idividually?We can start our required session only in case of sequential batch.in case of concurrent batch
we cant do like this.
How can u stop a batch?By using server manager or pmcmd.What r the session parameters?Session parameters r like maping parameters,represent values U might want to change between
sessions such as database connections or source files.

Server manager also allows U to create userdefined session parameters.Following r user defined
session parameters.
Database connections
Source file names: use this parameter when u want to change the name or location of
session source file between session runs
Target file name : Use this parameter when u want to change the name or location of
session target file between session runs.
Reject file name : Use this parameter when u want to change the name or location of
session reject files between session runs.
What is parameter file?Parameter file is to define the values for parameters and variables used in a session.A parameter
file is a file created by text editor such as word pad or notepad.
U can define the following values in parameter file
Maping parameters
Maping variables
session parameters

For Windows command prompt users, the parameter file name cannot have beginning or trailing spaces. If the name includes spaces, enclose the file name in double quotes:
-paramfile ”$PMRootDir\my file.txt”
Note: When you write a pmcmd command that includes a parameter file located on another machine, use the backslash (\) with the dollar sign ($). This ensures that the machine where the variable is defined expands the server variable.
pmcmd startworkflow -uv USERNAME -pv PASSWORD -s SALES:6258 -f east -w wSalesAvg -paramfile '$PMRootDir/myfile.txt'
How can u access the remote source into U’r session?Relational source: To acess relational source which is situated in a remote place ,u need to
configure database connection to the datasource.

FileSource : To access the remote source file U must configure the FTP connection to the
host machine before u create the session.

Hetrogenous : When U’r maping contains more than one source type,the server manager creates
a hetrogenous session that displays source options for all types.
What is difference between partioning of relatonal target and partitioning of file targets?If u parttion a session with a relational target informatica server creates multiple connections
to the target database to write target data concurently.If u partition a session with a file target
the informatica server creates one target file for each partition.U can configure session properties
to merge these target files
what r the transformations that restricts the partitioning of sessions?Advanced External procedure tranformation and External procedure transformation: This
transformation contains a check box on the properties tab to allow partitioning.

Aggregator Transformation: If u use sorted ports u can not parttion the assosiated source

Joiner Transformation : U can not partition the master source for a joiner transformation

Normalizer Transformation

XML targets.
Performance tuning in Informatica?The goal of performance tuning is optimize session performance so sessions run during the available load window for the Informatica Server.Increase the session performance by following.

The performance of the Informatica Server is related to network connections. Data generally moves across a network at less than 1 MB per second, whereas a local disk moves data five to twenty times faster. Thus network connections ofteny affect on session performance.So aviod netwrok connections.

Flat files: If u’r flat files stored on a machine other than the informatca server, move those files to the machine that consists of informatica server.
Relational datasources: Minimize the connections to sources ,targets and informatica server to
improve session performance.Moving target database into server system may improve session
performance.
Staging areas: If u use staging areas u force informatica server to perform multiple datapasses.
Removing of staging areas may improve session performance.

U can run the multiple informatica servers againist the same repository.Distibuting the session load to multiple informatica servers may improve session performance.

Run the informatica server in ASCII datamovement mode improves the session performance.Because ASCII datamovement mode stores a character value in one byte.Unicode mode takes 2 bytes to store a character.

If a session joins multiple source tables in one Source Qualifier, optimizing the query may improve performance. Also, single table select statements with an ORDER BY or GROUP BY clause may benefit from optimization such as adding indexes.

We can improve the session performance by configuring the network packet size,which allows
data to cross the network at one time.To do this go to server manger ,choose server configure database connections.

If u r target consists key constraints and indexes u slow the loading of data.To improve the session performance in this case drop constraints and indexes before u run the session and rebuild them after completion of session.

Running a parallel sessions by using concurrent batches will also reduce the time of loading the
data.So concurent batches may also increase the session performance.

Partittionig the session improves the session performance by creating multiple connections to sources and targets and loads data in paralel pipe lines.

In some cases if a session contains a aggregator transformation ,u can use incremental aggregation to improve session performance.

Aviod transformation errors to improve the session performance.

If the sessioin containd lookup transformation u can improve the session performance by enabling the look up cache.

If U’r session contains filter transformation ,create that filter transformation nearer to the sources
or u can use filter condition in source qualifier.

Aggreagator,Rank and joiner transformation may oftenly decrease the session performance .Because they must group data before processing it.To improve session performance in this case use sorted ports option.
What is difference between maplet and reusable transformation?Maplet consists of set of transformations that is reusable.A reusable transformation is a
single transformation that can be reusable.

If u create a variables or parameters in maplet that can not be used in another maping or maplet.Unlike the variables that r created in a reusable transformation can be usefull in any other maping or maplet.

We can not include source definitions in reusable transformations.But we can add sources to a maplet.

Whole transformation logic will be hided in case of maplet.But it is transparent in case of reusable transformation.

We cant use COBOL source qualifier,joiner,normalizer transformations in maplet.Where as we can make them as a reusable transformations.
Define informatica repository?The Informatica repository is a relational database that stores information, or metadata, used by the Informatica Server and Client tools. Metadata can include information such as mappings describing how to transform source data, sessions indicating when you want the Informatica Server to perform the transformations, and connect strings for sources and targets.

The repository also stores administrative information such as usernames and passwords, permissions and privileges, and product version.

Use repository manager to create the repository.The Repository Manager connects to the repository database and runs the code needed to create the repository tables.Thsea tables
stores metadata in specific format the informatica server,client tools use.
What r the types of metadata that stores in repository?Following r the types of metadata that stores in the repository

Database connections
Global objects
Mappings
Mapplets
Multidimensional metadata
Reusable transformations
Sessions and batches
Short cuts
Source definitions
Target defintions
Transformations
·  Source definitions. Definitions of database objects (tables, views, synonyms) or files that provide source data. ·  Target definitions. Definitions of database objects or files that contain the target data. ·  Multi-dimensional metadata. Target definitions that are configured as cubes and dimensions. ·  Mappings. A set of source and target definitions along with transformations containing business logic that you build into the transformation. These are the instructions that the Informatica Server uses to transform and move data. ·  Reusable transformations. Transformations that you can use in multiple mappings. ·  Mapplets. A set of transformations that you can use in multiple mappings. ·  Sessions and workflows. Sessions and workflows store information about how and when the Informatica Server moves data. A workflow is a set of instructions that describes how and when to run tasks related to extracting, transforming, and loading data. A session is a type of task that you can put in a workflow. Each session corresponds to a single mappingWhat is power center repository?The PowerCenter repository allows you to share metadata across repositories to create a data mart domain. In a data mart domain, you can create a single global repository to store metadata used across an enterprise, and a number of local repositories to share the global metadata as needed.·  Standalone repository. A repository that functions individually, unrelated and unconnected to other repositories. ·  Global repository. (PowerCenter only.) The centralized repository in a domain, a group of connected repositories. Each domain can contain one global repository. The global repository can contain common objects to be shared throughout the domain through global shortcuts. ·  Local repository. (PowerCenter only.) A repository within a domain that is not the global repository. Each local repository in the domain can connect to the global repository and use objects in its shared folders.How can u work with remote database in informatica?did u work directly by using remote connections?To work with remote datasource u need to connect it with remote connections.But it is not
preferable to work with that remote source directly by using remote connections .Instead u bring that source into U r local machine where informatica server resides.If u work directly with remote source the session performance will decreases by passing less amount of data across the network in a particular time.

You can work with remote,
 
But you have to
 
Configure FTP
Connection details
IP address
User authentication
 what is incremantal aggregation?When using incremental aggregation, you apply captured changes in the source to aggregate calculations in a session. If the source changes only incrementally and you can capture changes, you can configure the session to process only those changes. This allows the Informatica Server to update your target incrementally, rather than forcing it to process the entire source and recalculate the same calculations each time you run the session.What r the scheduling options to run a sesion?U can shedule a session to run at a given time or intervel,or u can manually run the session.

Different options of scheduling

Run only on demand: server runs the session only when user starts session explicitly
Run once: Informatica server runs the session only once at a specified date and time.
Run every: Informatica server runs the session at regular intervels as u configured.
Customized repeat: Informatica server runs the session at the dats and times secified in the repeat dialog box.
What is tracing level and what r the types of tracing level?Tracing level represents the amount of information that informatcia server writes in a log file.
Types of tracing level
Normal
Verbose
Verbose init
Verbose data
What is difference between stored procedure transformation and external procedure transformation?In case of storedprocedure transformation procedure will be compiled and executed in a relational data source.U need data base connection to import the stored procedure in to u’r maping.Where as in external procedure transformation procedure or function will be executed out side of data source.Ie u need to make it as a DLL to access in u r maping.No need to have data base connection in case of external procedure transformation.Explain about Recovering sessions?If you stop a session or if an error causes a session to stop, refer to the session and error logs to determine the cause of failure. Correct the errors, and then complete the session. The method you use to complete the session depends on the properties of the mapping, session, and Informatica Server configuration.
Use one of the following methods to complete the session:
· Run the session again if the Informatica Server has not issued a commit.
· Truncate the target tables and run the session again if the session is not recoverable.
· Consider performing recovery if the Informatica Server has issued at least one commit.
  If a session fails after loading of 10,000 records in to the target.How can u load the records from 10001 th record when u run the session next time?As explained above informatcia server has 3 methods to recovering the sessions.Use performing recovery to load the records from where the session fails.Explain about perform recovery?When the Informatica Server starts a recovery session, it reads the OPB_SRVR_RECOVERY table and notes the row ID of the last row committed to the target database. The Informatica Server then reads all sources again and starts processing from the next row ID. For example, if the Informatica Server commits 10,000 rows before the session fails, when you run recovery, the Informatica Server bypasses the rows up to 10,000 and starts loading with row 10,001.
By default, Perform Recovery is disabled in the Informatica Server setup. You must enable Recovery in the Informatica Server setup before you run a session so the Informatica Server can create and/or write entries in the OPB_SRVR_RECOVERY table.
How to recover the standalone session?A standalone session is a session that is not nested in a batch. If a standalone session fails, you can run recovery using a menu command or pmcmd. These options are not available for batched sessions.

To recover sessions using the menu:
1. In the Server Manager, highlight the session you want to recover.
2. Select Server Requests-Stop from the menu.
3. With the failed session highlighted, select Server Requests-Start Session in Recovery Mode from the menu.

To recover sessions using pmcmd:
1.From the command line, stop the session.
2. From the command line, start recovery.
How can u recover the session in sequential batches?If you configure a session in a sequential batch to stop on failure, you can run recovery starting with the failed session. The Informatica Server completes the session and then runs the rest of the batch. Use the Perform Recovery session property

To recover sessions in sequential batches configured to stop on failure:

1.In the Server Manager, open the session property sheet.
2.On the Log Files tab, select Perform Recovery, and click OK.
3.Run the session.
4.After the batch completes, open the session property sheet.
5.Clear Perform Recovery, and click OK.

If you do not clear Perform Recovery, the next time you run the session, the Informatica Server attempts to recover the previous session.
If you do not configure a session in a sequential batch to stop on failure, and the remaining sessions in the batch complete, recover the failed session as a standalone session.
 How to recover sessions in concurrent batches?If multiple sessions in a concurrent batch fail, you might want to truncate all targets and run the batch again. However, if a session in a concurrent batch fails and the rest of the sessions complete successfully, you can recover the session as a standalone session.
To recover a session in a concurrent batch:
1.Copy the failed session using Operations-Copy Session.
2.Drag the copied session outside the batch to be a standalone session.
3.Follow the steps to recover a standalone session.
4.Delete the standalone copy.
How can u complete unrcoverable sessions?Under certain circumstances, when a session does not complete, you need to truncate the target tables and run the session from the beginning. Run the session from the beginning when the Informatica Server cannot run recovery or when running recovery might result in inconsistent data.What r the circumstances that infromatica server results an unreciverable session?The source qualifier transformation does not use sorted ports.
If u change the partition information after the initial session fails.
Perform recovery is disabled in the informatica server configuration.
If the sources or targets changes after initial session fails.
If the maping consists of sequence generator or normalizer transformation.
If a concuurent batche contains multiple failed sessions.
If i done any modifications for my table in back end does it reflect in informatca warehouse or maping desginer or source analyzer?NO. Informatica is not at all concern with back end data base.It displays u all the information
that is to be stored in repository.If want to reflect back end changes to informatica screens,
again u have to import from back end to informatica by valid connection.And u have to replace the existing files with imported files.
After draging the ports of three sources(sql server,oracle,informix) to a single source qualifier, can u map these three ports directly to target?NO.Unless and until u join those three ports in source qualifier u cannot map them directly if u drag three hetrogenous sources and populated to target without any join means you are entertaining Carteisn product. If you don't use join means not only diffrent sources but homegeous sources are show same error.
If you are not interested to use joins at source qualifier level u can add some joins sepratly.
What are Target Types on the Server?Target Types are File, Relational, XML and ERP What are Target Options on the Servers?Target Options for File Target type are FTP File, Loader and MQ. There are no target options for ERP target type
Target Options for Relational are Insert, Update (as Update), Update (as Insert), Update (else Insert), Delete, and Truncate Table
How do you identify existing rows of data in the target table using lookup transformation? Can identify existing rows of data using unconnected lookup transformation.
You  can use a Connected Lookup with dynamic cache on the target
What are Aggregate transformation? Aggregator transform is much like the Group by clause in traditional SQL.
this particular transform is a connected/active transform which can take the incoming data form the mapping pipeline and group them based on the group by ports specified and can calculated aggregate funtions like ( avg, sum, count, stddev....e.tc) for each of those groups.
From a performanace perspective if your mapping has an AGGREGATOR transform use filters and sorters very early in the pipeline if there is any need for them.
What are various types of Aggregation? Various types of aggregation are SUM, AVG, COUNT, MAX, MIN, FIRST, LAST, MEDIAN, PERCENTILE, STDDEV, and VARIANCE.
What is Code Page Compatibility?Compatibility between code pages is used for accurate data movement when the Informatica Sever runs in the Unicode data movement mode. If the code pages are identical, then there will not be any data loss. One code page can be a subset or superset of another. For accurate data movement, the target code page must be a superset of the source code page. Superset - A code page is a superset of another code page when it contains the character encoded in the other code page, it also contains additional characters not contained in the other code page.
Subset - A code page is a subset of another code page when all characters in the code page are encoded in the other code page.
What is Code Page used for? Code Page is used to identify characters that might be in different languages. If you are importing Japanese data into mapping, u must select the Japanese code page of source data.
 what is a source qualifier? It is a transformation which represents the data Informatica server reads from source.
The Source Qualifier represents the rows that the Informatica Server reads when it executes a session. It represents all data queried from the source.
What are Dimensions and various types of Dimensions?
set of level properties that describe a specific aspect of a business, used for analyzing the factual measures of one or more cubes, which use that dimension. Egs. Geography, time, customer and product.
 What is Data Transformation Manager?After the load manager performs validations for the session, it creates the DTM process. The DTM process is the second process associated with the session run. The primary purpose of the DTM process is to create and manage threads that carry out the session tasks.
· The DTM allocates process memory for the session and divide it into buffers. This is also known as buffer memory. It creates the main thread, which is called the master thread. The master thread creates and manages all other threads.
· If we partition a session, the DTM creates a set of threads for each partition to allow concurrent processing.. When Informatica server writes messages to the session log it includes thread type and thread ID. Following are the types of threads that DTM creates:
Master thread - Main thread of the DTM process. Creates and manages all other threads.Mapping thread - One Thread to Each Session. Fetches Session and Mapping Information.Pre and Post Session Thread-One Thread each to Perform Pre and Post Session Operations.reader thread-One Thread for Each Partition for Each Source Pipeline.WRITER THREAD-One Thread for Each Partition if target exist in the source pipeline write to the target.tRANSFORMATION THREAD - One or More Transformation Thread For Each Partition.
What is Session and Batches?Session - A Session Is A set of instructions that tells the Informatica Server How And When To Move Data From Sources To Targets. After creating the session, we can use either the server manager or the command line program pmcmd to start or stop the session.Batches - It Provides A Way to Group Sessions For Either Serial Or Parallel Execution By The Informatica Server. There Are Two Types Of Batches :
Sequential - Run Session One after the Other.concurrent - Run Session At The Same Time.
Why we use lookup transformations?Lookup Transformations can access data from relational tables that are not sources in mapping. With Lookup transformation, we can accomplish the following tasks:
Get a related value-Get the Employee Name from Employee table based on the Employee IDPerform Calculation.
Update slowly changing dimension tables - We can use unconnected lookup transformation to determine whether the records already exist in the target or not.
             
        ETL Questions and Answers
what is the metadata extension?


Informatica allows end users and partners to extend the metadata stored in the repository by associating information with individual objects in the repository. For example, when you create a mapping, you can store your contact information with the mapping. You associate information with repository metadata using metadata extensions.
Informatica Client applications can contain the following types of metadata extensions:
  • Vendor-defined. Third-party application vendors create vendor-defined metadata extensions. You can view and change the values of vendor-defined metadata extensions, but you cannot create, delete, or redefine them.
  • User-defined. You create user-defined metadata extensions using PowerCenter/PowerMart. You can create, edit, delete, and view user-defined metadata extensions. You can also change the values of user-defined extensions.
what is ODS (operation data source) ANS1: ODS - Operational Data Store.
ODS Comes between staging area & Data Warehouse. The data is ODS will be at the low level of granularity.
Once data was poopulated in ODS aggregated data will be loaded into into EDW through ODS.
ANS2: An updatable set of integrated operational data used for enterprise- wide tactical decision making.Contains live data, not snapshots,and has minimal history retained
can we lookup a table from source qualifier transformation. ie. unconnected lookup You cannot lookup from a source qualifier directly. However, you can override the SQL in the source qualifier to join with the lookup table to perform the lookup.
What are the different Lookup methods used in Informatica? In the lookup transormation mainly 2 types
1)connected 2)unconnected lookup
Connected lookup: 1)It recive the value directly from pipeline
                           2)it iwill use both dynamic and static
                            3)it return multiple value
                             4)it support userdefined value
Unconnected lookup:it recives the value :lkp expression
                            2)it will be use only dynamic
                            3)it return only single value
                             4)it does not support user defined values  
What are parameter files ? Where do we use them? Parameter file is any text file where u can define a value for the parameter defined in the informatica session, this parameter file can be referenced in the session properties,When the informatica sessions runs the values for the parameter is fetched from the specified file. For eg : $$ABC is defined in the infomatica mapping and the value for this variable is defined in the file called abc.txt as
[foldername_session_name]
ABC='hello world"

In the session properties u can give in the parameter file name field abc.txt

What is a mapping, session, worklet, workflow, mapplet? Mapping - represents the flow and transformation of data from source to taraget.
Mapplet - a group of transformations that can be called within a mapping.
Session - a task associated with a mapping to define the connections and other configurations for that mapping.
Workflow - controls the execution of tasks such as commands, emails and sessions.
Worklet - a workflow that can be called within a workflow.

Session - a task associated with a mapping to define the connections and other configurations for that mapping. Workflow - controls the execution of tasks such as commands, emails and sessions.  Worklet - a workflow that can be called within a workflow. Mapping - represents the flow and transformation of data from source to taraget.

Mapplet - a group of transformations that can be called within a mapping.
 
What is the difference between Power Center & Power Mart? Power Mart is designed for:

Low range of warehouses
only for local repositories
mainly desktop environment.

Power mart is designed for:

High-end warehouses
Global as well as local repositories
ERP support.

Can Informatica load heterogeneous targets from heterogeneous sources? yes! it loads from heterogeneous sources..
What are the various tools? - Name a few The various ETL tools are as follows.

Informatica
Datastage
Business Objects Data Integrator
Abinitio,

OLAp tools are as follows.

Cognos
Business Objects 

What are snapshots? What are materialized views & where do we use them? What is a materialized view log? Materialized view is a view in wich data is also stored in some temp table.i.e if we will go with the View concept in DB in that we only store query and once we call View it extract data from DB.But In materialized View data is stored in some temp tables.
What is partitioning? What are the types of partitioning? Partitioning is a part of physical data warehouse design that is carried out to improve performance and simplify stored-data management. Partitioning is done to break up a large table into smaller, independently-manageable components because it:
1. reduces work involved with addition of new data.
2. reduces work involved with purging of old data.

Two types of partitioning are:
1. Horizontal partitioning.
2. Vertical partitioning (reduces efficiency in the context of a data warehouse).

What is Full load & Incremental or Refresh load? Full Load is the entire data dump load taking place the very first time.
Gradually to synchronize the target data with source data, there are further 2 techniques:-
Refresh load - Where the existing data is truncated and reloaded completely.
Incremental - Where delta or difference between target and source data is dumped at regular intervals. Timestamp for previous delta load has to be maintained.

  
What are the modules in Power Mart?


1. Power Mart Designer
2. Server
3. Server Manager
4. Repository
5. Repository Manager
What is a staging area? Do we need it? What is the purpose of a staging area? Staging area is place where you hold temporary tables on data warehouse server. Staging tables are connected to work area or fact tables. We basically need staging area to hold the data , and perform data cleansing and merging , before loading the data into warehouse
A staging area is like a large table with data separated from their sources to be loaded into a data warehouse in the required format. If we attempt to load data directly from OLTP, it might mess up the OLTP because of format changes between a warehouse and OLTP. Keeping the OLTP data intact is very important for both the OLTP and the warehouse.
Staging area is a temp schema used to
1. Do Flat mapping i.e dumping all the OLTP data in to it without applying any business rules pushing data into staging will take less time because there is no business rules or transformation applied on it.

2. Used for data cleansing and validation using First Logic.

How to determine what records to extract? Data modeler will provide the ETL developer, the tables that are to be extracted from various sources.
When addressing a table some dimension key must reflect the need for a record to get extracted. Mostly it will be from time dimension (e.g. date >= 1st of current mth) or a transaction flag (e.g. Order Invoiced Stat). Foolproof would be adding an archive flag to record which gets reset when record changes
What are the various transformation available?


Aggregator Transformation
Expression Transformation
Filter Transformation
Joiner Transformation
Lookup Transformation
Normalizer Transformation
Rank Transformation
Router Transformation
Sequence Generator Transformation
Stored Procedure Transformation
Sorter Transformation
Update Strategy Transformation
XML Source Qualifier Transformation
Advanced External Procedure Transformation
External Transformation  
 
What is a three tier data warehouse?


Three tier data warehouse contains three tier such as bottom tier, middle tier and top tier.
Bottom tier deals with retrieving related data’s or information from various information repositories by using SQL.
Middle tier contains two types of servers.
1. ROLAP server
2. MOLAP server
Top tier deals with presentation or visualization of the results .
 The 3 tiers are:
1. Data tier - bottom tier - consists of the database
2. Application tier - middle tier - consists of the analytical server
3. Presentation tier - tier that interacts with the end-user 
 
Do we need an ETL tool? When do we go for the tools in the market?


ETL Tools are meant to extract, transform and load the data into Data Warehouse for decision making. Before the evolution of ETL Tools, the above mentioned ETL process was done manually by using SQL code created by programmers. This task was tedious and cumbersome in many cases since it involved many resources, complex coding and more work hours. On top of it, maintaining the code placed a great challenge among the programmers.

These difficulties are eliminated by ETL Tools since they are very powerful and they offer many advantages in all stages of ETL process starting from extraction, data cleansing, data profiling, transformation, debugging and loading into data warehouse when compared to the old method.
 
  1. Normally ETL Tool stands for Extraction Transformation Loader
 
  1. This helps you to extract the data from different ODS/Database,
 
  1. If you have a requirement like this you need to get the ETL tools, else you no need any ETL
 
How can we use mapping variables in Informatica? Where do we use them?




After creating a variable, we can use it in any expression in a mapping or a mapplet. Als they can be used in source qualifier filter, user defined joins or extract overrides and in expression editor of reusable transformations.
Their values can change automatically between sessions.
 
What are the various methods of getting incremental records or delta records from the source systems


getting incremental records from source systems to target can be done
by using incremental aggregation transformation
Techniques of Error Handling - Ignore , Rejecting bad records to a flat file , loading the records and reviewing them (default values) Rejection of records either at the database due to constraint key violation or the informatica server when writing data into target table These rejected records we can find in the bad file folder where a reject file will be created for a session. we can check why a record has been rejected and this bad file contains first column a row indicator and second column a column indicator.
These row indicators or of four types
D-valid data,
O-overflowed data,
N-null data,
T- Truncated data,
And depending on these indicators we can changes to load data successfully to target. 

Can we use procedural logic inside Inforrmatica  If yes how  if now how can we use external procedural logic in Inforrmatica? We can use External Procedure Transformation to use external procedures. Both COM and Inforrmatica Procedures are supported using External procedure Transformation
Can we override a native sql query within Informatica? Where do we do it? How do we do it? we can override a sql query in the sql override property of a source qualifier
What is latest version of Power Center / Power Mart? Power Center 7.1
How do we call shell scripts from Inforrmatica?


You can use a Command task to call the shell scripts, in the following ways:
1. Standalone Command task. You can use a Command task anywhere in the workflow or worklet to run shell commands.
2. Pre- and post-session shell command. You can call a Command task as the pre- or post-session shell command for a Session task. For more information about specifying pre-session and post-session shell commands
 
What is Informatica Metadata and where is it stored?


Informatica Metadata contains all the information about the source tables, target tables, the transformations, so that it will be useful and easy to perform transformations during the ETL process.

The Informatica Metadata is stored in Informatica repository 
What are active transformation / Passive transformations? An active transformation can change the number of rows as output after a transformation, while a passive transformation does not change the number of rows and passes through the same number of rows that was given to it as input.
Transformations can be active or passive. An active transformation can change the number of rows that pass through it, such as a Filter transformation that removes rows that do not meet the filter condition. A passive transformation does not change the number of rows that pass through it, such as an Expression transformation that performs a calculation on data and passes all rows through the transformation
Active transformations 
Advanced External Procedure
Aggregator
Application Source Qualifier
Filter
Joiner
Normalizer
Rank
Router
Update Strategy
 Passive transformation 
Expression
External Procedure
Maplet- Input
Lookup
Sequence generator
XML Source Qualifier
Maplet - Output
  
When do we Analyze the tables? How do we do it?


When the data in the data warehouse changes frequently we need to analyze the tables. Analyze tables will compute/update the table statistics, that will help to boost the performance of your SQL.
 
Compare ETL & Manual development?


There are pros and cons of both tool based ETL and hand-coded ETL. Tool based ETL provides maintainability, ease of development and graphical view of the flow. It also reduces the learning curve on the team.
Handcoded ETL is good when there is minimal transformational logic involved. It is also good when the sources and targets are in the same environment. However, depending on the skill level of the team, this can extend the overall development time.
Primary Key Materialized ViewsThe following statement creates the primary-key materialized view on the table emp located on a remote database.SQL>    CREATE MATERIALIZED VIEW mv_emp_pk        REFRESH FAST START WITH SYSDATE         NEXT  SYSDATE + 1/48        WITH PRIMARY KEY         AS SELECT * FROM emp@remote_db; Materialized view created.Note: When you create a materialized view using the FAST option you will need to create a view log on the master tables(s) as shown below:SQL> CREATE MATERIALIZED VIEW LOG ON emp;Materialized view log created.Rowid Materialized ViewsThe following statement creates the row id materialized view on table emp located on a remote database:SQL>    CREATE MATERIALIZED VIEW mv_emp_rowid         REFRESH WITH ROWID         AS SELECT * FROM emp@remote_db;  Materialized view log created.Sub query Materialized ViewsThe following statement creates a sub query materialized view based on the emp and dept tables located on the remote database:SQL> CREATE MATERIALIZED VIEW  mv_empdeptAS SELECT * FROM emp@remote_db eWHERE EXISTS     (SELECT * FROM dept@remote_db d     WHERE e.dept_no = d.dept_no) 
REFRESH CLAUSE[refresh [fast|complete|force]        [on demand | commit]        [start with date] [next date]        [with {primary key|rowid}]]The refresh option specifies:
  1. The refresh method used by Oracle to refresh data in materialized view
  2. Whether the view is primary key based or row-id based
  3. The time and interval at which the view is to be refreshed
Refresh Method - FAST ClauseThe FAST refreshes use the materialized view logs (as seen above) to send the rows that have changed from master tables to the materialized view.You should create a materialized view log for the master tables if you specify the REFRESH FAST clause. SQL> CREATE MATERIALIZED VIEW LOG ON emp; Materialized view log created.Materialized views are not eligible for fast refresh if the defined subquery contains an analytic function.Refresh Method - COMPLETE ClauseThe complete refresh re-creates the entire materialized view. If you request a complete refresh, Oracle performs a complete refresh even if a fast refresh is possible.Refresh Method - FORCE ClauseWhen you specify a FORCE clause, Oracle will perform a fast refresh if one is possible or a complete refresh otherwise. If you do not specify a refresh method (FAST, COMPLETE, or FORCE), FORCE is the default.PRIMARY KEY and ROWID ClauseWITH PRIMARY KEY is used to create a primary key materialized view i.e. the materialized view is based on the primary key of the master table instead of ROWID (for ROWID clause). PRIMARY KEY is the default option. To use the PRIMARY KEY clause you should have defined PRIMARY KEY on the master table or else you should use ROWID based materialized views.Primary key materialized views allow materialized view master tables to be reorganized without affecting the eligibility of the materialized view for fast refresh. Rowid materialized views should have a single master table and cannot contain any of the following:
  • Distinct or aggregate functions
  • GROUP BY Subqueries , Joins & Set operations
Timing the refresh 
The START WITH clause tells the database when to perform the first replication from the master table to the local base table. It should evaluate to a future point in time. The NEXT clause specifies the interval between refreshesSQL>    CREATE MATERIALIZED VIEW mv_emp_pk        REFRESH FAST         START WITH SYSDATE         NEXT  SYSDATE + 2        WITH PRIMARY KEY         AS SELECT * FROM emp@remote_db; Materialized view created.In the above example, the first copy of the materialized view is made at SYSDATE and the interval at which the refresh has to be performed is every two days.

No comments:

Post a Comment