Informatica Essentials 8.6-1

  • Upload
    jonjon

  • View
    221

  • Download
    0

Embed Size (px)

Citation preview

  • 7/28/2019 Informatica Essentials 8.6-1

    1/144

    Important Concepts in Informatica8.6

    Debugger

    To debug a mapping, you configure and run the Debugger from within the Mapping Designer. The Debugger uses ession to run the mapping on the Integration Service. When you run the Debugger, it pauses at breakpoints and youan view and edit transformation output data.

    You might want to run the Debugger in the following situations:

    Before you run a session. After you save a mapping, you can run some initial tests with a debug session bef

    you create and configure a session in the Workflow Manager. After you run a session. If a session fails or if you receive unexpected results in the target, you can run the

    Debugger against the session. You might also want to run the Debugger against a session if you want to debuthe mapping using the configured session properties.

    Debugger Session Types:

    You can select three different debugger session types when you configure the Debugger. The Debugger runs aworkflow for each session type. You can choose from the following Debugger session types when you configure theDebugger:

    Use an existing non-reusable session. The Debugger uses existing source, target, and session configuration

    properties. When you run the Debugger, the Integration Service runs the non-reusable session and the existinworkflow. The Debugger does not suspend on error.

    Use an existing reusable session. The Debugger uses existing source, target, and session configuration

    properties. When you run the Debugger, the Integration Service runs a debug instance of the reusable sessionAnd creates and runs a debug workflow for the session.

    Create a debug session instance. You can configure source, target, and session configuration propertiesthrough the Debugger Wizard. When you run the Debugger, the Integration Service runs a debug instance ofdebug workflow and creates and runs a debug workflow for the session.

    http://informaticatutorials-naveen.blogspot.com/2011/04/debugger.htmlhttp://informaticatutorials-naveen.blogspot.com/2011/04/debugger.htmlhttp://informaticatutorials-naveen.blogspot.com/2011/04/debugger.html
  • 7/28/2019 Informatica Essentials 8.6-1

    2/144

    Debug Process

    To debug a mapping, complete the following steps:

    . Create breakpoints. Create breakpoints in a mapping where you want the Integration Service to evaluate data anrror conditions.

    2. Configure the Debugger. Use the Debugger Wizard to configure the Debugger for the mapping. Select the sessio

    ype the Integration Service uses when it runs the Debugger. When you create a debug session, you configure a subsof session properties within the Debugger Wizard, such as source and target location. You can also choose to load odiscard target data.

    . Run the Debugger. Run the Debugger from within the Mapping Designer. When you run the Debugger, theDesigner connects to the Integration Service. The Integration Service initializes the Debugger and runs the debugginession and workflow. The Integration Service reads the breakpoints and pauses the Debugger

    when the breakpoints evaluate to true.

    4. Monitor the Debugger. While you run the Debugger, you can monitor the target data, transformation and mapploutput data, the debug log, and the session log. When you run the Debugger, the Designer displays the followingwindows:

    Debug log. View messages from the Debugger.

    Target window. View target data.

    Instance window. View transformation data.

    http://lh4.ggpht.com/_MbhSjEtmzI8/Ta7oibIUa_I/AAAAAAAAAQ0/IdyRtML56g4/s1600-h/clip_image002%5B4%5D.jpg
  • 7/28/2019 Informatica Essentials 8.6-1

    3/144

    5. Modify data and breakpoints. When the Debugger pauses, you can modify data and see the effect onransformations, mapplets, and targets as the data moves through the pipeline. You can also modify breakpointnformation.

    The Designer saves mapping breakpoint and Debugger information in the workspace files. You can copy breakpoinnformation and the Debugger configuration to another mapping. If you want to run the Debugger from another Pow

    Center Client machine, you can copy the breakpoint information and the Debugger configuration to the other PowerCenter Client machine.

    Running the Debugger:

    When you complete the Debugger Wizard, the Integration Service starts the session and initializes the Debugger. Afnitialization, the Debugger moves in and out of running and paused states based on breakpoints and commands that

    you issue from the Mapping Designer. The Debugger can be in one of the following states:

    Initializing. The Designer connects to the Integration Service.

    Running. The Integration Service processes the data.

    Paused. The Integration Service encounters a break and pauses the Debugger.

    Note: To enable multiple users to debug the same mapping at the same time, each user must configure different portnumbers in the Tools > Options > Debug tab.

    The Debugger does not use the high availability functionality.

    http://lh5.ggpht.com/_MbhSjEtmzI8/Ta7okNhaSII/AAAAAAAAAQ8/SKVTuZ2DHhs/s1600-h/clip_image004%5B4%5D.jpg
  • 7/28/2019 Informatica Essentials 8.6-1

    4/144

    http://lh4.ggpht.com/_MbhSjEtmzI8/Ta7olm2rfAI/AAAAAAAAARE/6rYJwMTD8vg/s1600-h/clip_image006%5B4%5D.jpg
  • 7/28/2019 Informatica Essentials 8.6-1

    5/144

    Monitoring the Debugger :

    When you run the Debugger, you can monitor the following information:

    Session status. Monitor the status of the session.

    Data movement. Monitor data as it moves through transformations.

    Breakpoints. Monitor data that meets breakpoint conditions.

    Target data. Monitor target data on a row-by-row basis.

    The Mapping Designer displays windows and debug indicators that help you monitor the session:

    Debug indicators. Debug indicators on transformations help you follow breakpoints and data flow.

    Instance window. When the Debugger pauses, you can view transformation data and row information in the

    Instance window. Target window. View target data for each target in the mapping.

    Output window. The Integration Service writes messages to the following tabs in the Output window:

    Debugger tab. The debug log displays in the Debugger tab.

    Session Log tab. The session log displays in the Session Log tab.

    Notifications tab. Displays messages from the Repository Service.

    http://lh3.ggpht.com/_MbhSjEtmzI8/Ta7onCu4W2I/AAAAAAAAARM/ZD3wEY0N84I/s1600-h/clip_image008%5B4%5D.jpg
  • 7/28/2019 Informatica Essentials 8.6-1

    6/144

    While you monitor the Debugger, you might want to change the transformation output data to see the effect onubsequent transformations or targets in the data flow. You might also want to edit or add more breakpoint informato monitor the session more closely.

    Restrictions

    You cannot change data for the following output ports: Normalizer transformation. Generated Keys and Generated Column ID ports.

    Rank transformation. RANKINDEX port.

    Router transformation. All output ports.

    Sequence Generator transformation. CURRVAL and NEXTVAL ports.

    Lookup transformation.NewLookupRow port for a Lookup transformation configured to use a dynamic

    cache. Custom transformation. Ports in output groups other than the current output group.

    Java transformation. Ports in output groups other than the current output group.

    Additionally, you cannot change data associated with the following:

    Mapplets that are not selected for debugging

    Input or input/output ports

    Output ports when the Debugger pauses on an error breakpoint

    MAPPING PARAMETERS & VARIABLES

    http://informaticatutorials-naveen.blogspot.com/2011/04/mapping-parameters-variables.htmlhttp://informaticatutorials-naveen.blogspot.com/2011/04/mapping-parameters-variables.html
  • 7/28/2019 Informatica Essentials 8.6-1

    7/144

    Mapping parameters and variables represent values in mappings and mapplets.

    When we use a mapping parameter or variable in a mapping, first we declare the mapping parameter or variable for n each mapplet or mapping. Then, we define a value for the mapping parameter or variable before we run the sessio

    MAPPING PARAMETERS A mapping parameter represents a constant value that we can define before running a session.

    A mapping parameter retains the same value throughout the entire session.

    Example: When we want to extract records of a particular month during ETL process, we will create a MappingParameter of data type and use it in query to compare it with the timestamp field in SQL override.

    After we create a parameter, it appears in the Expression Editor.

    We can then use the parameter in any expression in the mapplet or mapping.

    We can also use parameters in a source qualifier filter, user-defined join, or extract override, and in the

    Expression Editor of reusable transformations.

    MAPPING VARIABLES

    Unlike mapping parameters, mapping variables are values that can change between sessions.

    The Integration Service saves the latest value of a mapping variable to the repository at the end of each

    successful session. We can override a saved value with the parameter file.

    We can also clear all saved values for the session in the Workflow Manager.

    We might use a mapping variable to perform an incremental read of the source. For example, we have a source tableontaining time stamped transactions and we want to evaluate the transactions on a daily basis. Instead of manuallyntering a session override to filter source data each time we run the session, we can create a mapping variable, $

    $IncludeDateTime. In the source qualifier, create a filter to read only rows whose transaction date equals $$IncludeDateTime, such as:

    TIMESTAMP = $$IncludeDateTime

    n the mapping, use a variable function to set the variable value to increment one day each time the session runs. If wet the initial value of $$IncludeDateTime to 8/1/2004, the first time the Integration Service runs the session, it read

    only rows dated 8/1/2004. During the session, the Integration Service sets $$IncludeDateTime to 8/2/2004. It saves8/2/2004 to the repository at the end of the session. The next time it runs the session, it reads only rows from Augus2004.

    Used in following transformations:

    Expression

    Filter

    Router

    Update Strategy

    nitial and Default Value:

  • 7/28/2019 Informatica Essentials 8.6-1

    8/144

    When we declare a mapping parameter or variable in a mapping or a mapplet, we can enter an initial value. When thntegration Service needs an initial value, and we did not declare an initial value for the parameter or variable, thentegration Service uses a default value based on the data type of the parameter or variable.

    Data ->Default Value

    Numeric ->0String ->Empty String

    Date time ->1/1/1

    Variable Values: Start value and current value of a mapping variable

    Start Value:

    The start value is the value of the variable at the start of the session. The Integration Service looks for the start valuehe following order:

    1. Value in parameter file

    2. Value saved in the repository3. Initial value4. Default value

    Current Value:

    The current value is the value of the variable as the session progresses. When a session starts, the current value of avariable is the same as the start value. The final current value for a variable is saved to the repository at the end of auccessful session. When a session fails to complete, the Integration Service does not update the value of the variablhe repository.

    Note: If a variable function is not used to calculate the current value of a mapping variable, the start value of the

    variable is saved to the repository.Variable Data type and Aggregation Type When we declare a mapping variable in a mapping, we need to configureData type and aggregation type for the variable. The IS uses the aggregate type of a Mapping variable to determine tfinal current value of the mapping variable.

    Aggregation types are:

    Count: Integer and small integer data types are valid only.

    Max: All transformation data types except binary data type are valid.

    Min: All transformation data types except binary data type are valid.

    Variable Functions

    Variable functions determine how the Integration Service calculates the current value of a mapping variable in apipeline.

    SetMaxVariable: Sets the variable to the maximum value of a group of values. It ignores rows marked for update,delete, or reject. Aggregation type set to Max.

    SetMinVariable: Sets the variable to the minimum value of a group of values. It ignores rows marked for update,delete, or reject. Aggregation type set to Min.

  • 7/28/2019 Informatica Essentials 8.6-1

    9/144

    SetCountVariable: Increments the variable value by one. It adds one to the variable value when a row is marked fonsertion, and subtracts one when the row is Marked for deletion. It ignores rows marked for update or reject.

    Aggregation type set to Count.

    SetVariable: Sets the variable to the configured value. At the end of a session, it compares the final current value ohe variable to the start value of the variable. Based on the aggregate type of the variable, it saves a final value to the

    epository.

    Creating Mapping Parameters and Variables

    1. Open the folder where we want to create parameter or variable.2. In the Mapping Designer, click Mappings > Parameters and Variables. -or- In the Mapplet Designer, click

    Mapplet > Parameters and Variables.3. Click the add button.4. Enter name. Do not remove $$ from name.5. Select Type and Data type. Select Aggregation type for mapping variables.6. Give Initial Value. Click ok.

    Example: Use of Mapping of Mapping Parameters and Variables

    EMP will be source table.

    Create a target table MP_MV_EXAMPLE having columns: EMPNO, ENAME, DEPTNO, TOTAL_SAL,

    MAX_VAR, MIN_VAR, COUNT_VAR and SET_VAR. TOTAL_SAL = SAL+ COMM + $$BONUS (Bonus is mapping parameter that changes every month)

    SET_VAR: We will be added one month to the HIREDATE of every employee.

    Create shortcuts as necessary.

    Creating Mapping

    1. Open folder where we want to create the mapping.

    2. Click Tools -> Mapping Designer.3. Click Mapping-> Create-> Give name. Ex: m_mp_mv_example4. Drag EMP and target table.5. Transformation -> Create -> Select Expression for list -> Create > Done.6. Drag EMPNO, ENAME, HIREDATE, SAL, COMM and DEPTNO to Expression.7. Create Parameter $$Bonus and Give initial value as 200.8. Create variable $$var_max of MAX aggregation type and initial value 1500.9. Create variable $$var_min of MIN aggregation type and initial value 1500.10. Create variable $$var_count of COUNT aggregation type and initial value 0. COUNT is visible when dataty

    is INT or SMALLINT.11. Create variable $$var_set of MAX aggregation type.

  • 7/28/2019 Informatica Essentials 8.6-1

    10/144

    2. Create 5 output ports out_ TOTAL_SAL, out_MAX_VAR, out_MIN_VAR,

    out_COUNT_VAR and out_SET_VAR.

    3. Open expression editor for TOTAL_SAL. Do the same as we did earlier for SAL+ COMM. To add $$BONUS tt, select variable tab and select the parameter from mapping parameter. SAL + COMM + $$Bonus

    4. Open Expression editor for out_max_var.

    5. Select the variable function SETMAXVARIABLE from left side pane. Select

    $$var_max from variable tab and SAL from ports tab as shown below.SETMAXVARIABLE($$var_max,SAL)

    http://lh4.ggpht.com/_MbhSjEtmzI8/TanPj1ojBzI/AAAAAAAAAKc/Ax30JuzIg_k/s1600-h/clip_image002%5B5%5D%5B5%5D.jpghttp://lh5.ggpht.com/_MbhSjEtmzI8/TanPiiullAI/AAAAAAAAAKU/XuXxE96uQ3w/s1600-h/clip_image002%5B4%5D.jpg
  • 7/28/2019 Informatica Essentials 8.6-1

    11/144

    7. Open Expression editor for out_min_var and write the following expression:

    SETMINVARIABLE($$var_min,SAL). Validate the expression.

    8. Open Expression editor for out_count_var and write the following expression:

    SETCOUNTVARIABLE($$var_count). Validate the expression.

    9. Open Expression editor for out_set_var and write the following expression:

    SETVARIABLE($$var_set,ADD_TO_DATE(HIREDATE,'MM',1)). Validate.

    20. Click OK. Expression Transformation below:

    21. Link all ports from expression to target and Validate Mapping and Save it.

    22. See mapping picture on next page.

    http://lh5.ggpht.com/_MbhSjEtmzI8/TanPmTHarpI/AAAAAAAAAKs/v8KbA4YEybI/s1600-h/clip_image002%5B9%5D%5B3%5D.jpghttp://lh5.ggpht.com/_MbhSjEtmzI8/TanPlLeDhbI/AAAAAAAAAKk/UjP54OqM8gU/s1600-h/clip_image002%5B7%5D%5B6%5D.jpg
  • 7/28/2019 Informatica Essentials 8.6-1

    12/144

    PARAMETER FILE

    A parameter file is a list of parameters and associated values for a workflow, worklet, or session.

    Parameter files provide flexibility to change these variables each time we run a workflow or session.

    We can create multiple parameter files and change the file we use for a session or workflow. We can create a

    parameter file using a text editor such as WordPad or Notepad. Enter the parameter file name and directory in the workflow or session properties.

    A parameter file contains the following types of parameters and variables:

    Workflow variable: References values and records information in a workflow.

    Worklet variable: References values and records information in a worklet. Use predefined worklet variable

    a parent workflow, but we cannot use workflow variables from the parent workflow in a worklet. Session parameter: Defines a value that can change from session to session, such as a database connection

    file name. Mapping parameter and Mapping variable

    USING A PARAMETER FILE

    Parameter files contain several sections preceded by a heading. The heading identifies the Integration Service,ntegration Service process, workflow, worklet, or session to which we want to assign parameters or variables.

    Make session and workflow.

    Give connection information for source and target table.

    Run workflow and see result.

    Sample Parameter File for Our example:

    http://lh3.ggpht.com/_MbhSjEtmzI8/TanPn4VWRRI/AAAAAAAAAK0/7IupO_6CP7A/s1600-h/clip_image002%5B11%5D%5B6%5D.jpg
  • 7/28/2019 Informatica Essentials 8.6-1

    13/144

    n the parameter file, folder and session names are case sensitive.

    Create a text file in notepad with name Para_File.txt

    Practice.ST:s_m_MP_MV_Example]

    $$Bonus=1000

    $$var_max=500

    $$var_min=1200

    $$var_count=0

    CONFIGURING PARAMTER FILE

    We can specify the parameter file name and directory in the workflow or session properties.

    To enter a parameter file in the workflow properties:

    . Open a Workflow in the Workflow Manager.

    2. Click Workflows > Edit.

    . Click the Properties tab.

    4. Enter the parameter directory and name in the Parameter Filename field.

    5. Click OK.

    To enter a parameter file in the session properties:

    . Open a session in the Workflow Manager.

    2. Click the Properties tab and open the General Options settings.

    . Enter the parameter directory and name in the Parameter Filename field.

    4. Example: D:\Files\Para_File.txt or $PMSourceFileDir\Para_File.txt

    5. Click OK.

    SCHEDULERS

    http://informaticatutorials-naveen.blogspot.com/2011/04/schedulers.htmlhttp://informaticatutorials-naveen.blogspot.com/2011/04/schedulers.html
  • 7/28/2019 Informatica Essentials 8.6-1

    14/144

    We can schedule a workflow to run continuously, repeat at a given time or interval, or we can manually start aworkflow. The Integration Service runs a scheduled workflow as configured.

    By default, the workflow runs on demand. We can change the schedule settings by editing the scheduler. If we chanchedule settings, the Integration Service reschedules the workflow according to the new settings.

    A scheduler is a repository object that contains a set of schedule settings.

    Scheduler can be non-reusable or reusable.

    The Workflow Manager marks a workflow invalid if we delete the scheduler associated with the workflow.

    If we choose a different Integration Service for the workflow or restart the Integration Service, it reschedules

    workflows. If we delete a folder, the Integration Service removes workflows from the schedule.

    The Integration Service does not run the workflow if:

    The prior workflow run fails.

    We remove the workflow from the schedule

    The Integration Service is running in safe mode

    Creating a Reusable Scheduler

    For each folder, the Workflow Manager lets us create reusable schedulers so we can reuse the same set of

    scheduling settings for workflows in the folder. Use a reusable scheduler so we do not need to configure the same set of scheduling settings in each workflow

    When we delete a reusable scheduler, all workflows that use the deleted scheduler becomes invalid. To make

    the workflows valid, we must edit them and replace the missing scheduler.

    Steps:

    1. Open the folder where we want to create the scheduler.

    2. In the Workflow Designer, click Workflows > Schedulers.3. Click Add to add a new scheduler.4. In the General tab, enter a name for the scheduler.5. Configure the scheduler settings in the Scheduler tab.6. Click Apply and OK.

    Configuring Scheduler Settings

    Configure the Schedule tab of the scheduler to set run options, schedule options, start options, and end options for thchedule.

    There are 3 run options:

    1. Run on Demand2. Run Continuously3. Run on Server initialization

  • 7/28/2019 Informatica Essentials 8.6-1

    15/144

    . Run on Demand:

    ntegration Service runs the workflow when we start the workflow manually.

    2. Run Continuously:

    ntegration Service runs the workflow as soon as the service initializes. The Integration Service then starts the next rof the workflow as soon as it finishes the previous run.

    3. Run on Server initialization

    ntegration Service runs the workflow as soon as the service is initialized. The Integration Service then starts the nexun of the workflow according to settings in Schedule Options.

    Schedule options for Run on Server initialization:

    Run Once: To run the workflow just once.

    Run every: Run the workflow at regular intervals, as configured.

    Customized Repeat: Integration Service runs the workflow on the dates and times specified in the Repeat

    dialog box.

    Start options for Run on Server initialization:

    Start Date

    Start Time

    End options for Run on Server initialization:

    End on: IS stops scheduling the workflow in the selected date.

    End After: IS stops scheduling the workflow after the set number of

    http://lh3.ggpht.com/_MbhSjEtmzI8/TapTFIFEpvI/AAAAAAAAAM4/r2rjvbgsCeo/s1600-h/clip_image010%5B4%5D.gifhttp://lh6.ggpht.com/_MbhSjEtmzI8/TapTEFOHGmI/AAAAAAAAAMw/1oT3pFMd9AM/s1600-h/clip_image009%5B4%5D.gifhttp://lh5.ggpht.com/_MbhSjEtmzI8/TapS-jEIX6I/AAAAAAAAAMk/K7p2dXe_hc4/s1600-h/clip_image006%5B4%5D.gifhttp://lh4.ggpht.com/_MbhSjEtmzI8/TapS1wK-YTI/AAAAAAAAAMc/NEY-q_hwnio/s1600-h/clip_image005%5B4%5D.gifhttp://lh6.ggpht.com/_MbhSjEtmzI8/TapSzgk1k3I/AAAAAAAAAMU/XbAw0b43dmc/s1600-h/clip_image002%5B4%5D.jpg
  • 7/28/2019 Informatica Essentials 8.6-1

    16/144

    workflow runs.

    Forever: IS schedules the workflow as long as the workflow does not fail.

    Creating a Non-Reusable Scheduler

    1. In the Workflow Designer, open the workflow.2. Click Workflows > Edit.3. In the Scheduler tab, choose Non-reusable. Select Reusable if we want to select an existing reusable schedul

    for the workflow.4. Note: If we do not have a reusable scheduler in the folder, we must5. create one before we choose Reusable.6. Click the right side of the Scheduler field to edit scheduling settings for the non- reusable scheduler7. If we select Reusable, choose a reusable scheduler from the Scheduler8. Browser dialog box.9. Click Ok.

    Points to Ponder :

    To remove a workflow from its schedule, right-click the workflow in the Navigator window and choose

    Unscheduled Workflow. To reschedule a workflow on its original schedule, right-click the workflow in the Navigator window and

    choose Schedule Workflow.

    http://lh5.ggpht.com/_MbhSjEtmzI8/TapTJ0QzGRI/AAAAAAAAANg/0cvcbZD3Knc/s1600-h/clip_image010%5B1%5D%5B2%5D.gifhttp://lh3.ggpht.com/_MbhSjEtmzI8/TapTJMtAofI/AAAAAAAAANY/4c8v7eLad3c/s1600-h/clip_image009%5B1%5D%5B2%5D.gifhttp://lh3.ggpht.com/_MbhSjEtmzI8/TapTICYYAHI/AAAAAAAAANQ/noifIXywT38/s1600-h/clip_image006%5B1%5D%5B2%5D.gifhttp://lh6.ggpht.com/_MbhSjEtmzI8/TapTHOkLV8I/AAAAAAAAANI/jMvLPnQEaDM/s1600-h/clip_image005%5B1%5D%5B2%5D.gifhttp://lh3.ggpht.com/_MbhSjEtmzI8/TapTGAq0J7I/AAAAAAAAANA/W81bl5EQilE/s1600-h/clip_image031%5B4%5D.jpg
  • 7/28/2019 Informatica Essentials 8.6-1

    17/144

    Performance Tuning Overview

    The goal of performance tuning is to optimize session performance by eliminating performance bottlenecks. To tuneession performance, first identify a performance bottleneck, eliminate it, and then identify the next performance

  • 7/28/2019 Informatica Essentials 8.6-1

    18/144

    bottleneck until you are satisfied with the session performance. You can use the test load option to run sessions wheyou tune session performance.

    f you tune all the bottlenecks, you can further optimize session performance by increasing the number of pipelinepartitions in the session. Adding partitions can improve performance by utilizing more of the system hardware whilprocessing the session.

    Because determining the best way to improve performance can be complex, change one variable at a time, and time ession both before and after the change. If session performance does not improve, you might want to return to the

    original configuration.

    Complete the following tasks to improve session performance:

    1. Optimize the target. Enables the Integration Service to write to the targets efficiently.2. Optimize the source. Enables the Integration Service to read source data efficiently.3. Optimize the mapping. Enables the Integration Service to transform and move data efficiently.4. Optimize the transformation. Enables the Integration Service to process transformations in a mapping

    efficiently.

    5. Optimize the session. Enables the Integration Service to run the session more quickly.6. Optimize the grid deployments. Enables the Integration Service to run on a grid with optimal performance7. Optimize the Power Center components. Enables the Integration Service and Repository Service to functi

    optimally.8. Optimize the system. Enables Power Center service processes to run more quickly.

    PUSH DOWN OPTIMISATION

    You can push transformation logic to the source or target database using pushdown optimization. When you run aession configured for pushdown optimization, the Integration Service translates the transformation logic into SQL

    queries and sends the SQL queries to the database. The source or target database executes the SQL queries to proceshe transformations.

    The amount of transformation logic you can push to the database depends on the database, transformation logic, andmapping and session configuration. The Integration Service processes all transformation logic that it cannot push to database.

    Use the Pushdown Optimization Viewer to preview the SQL statements and mapping logic that the Integration Servan push to the source or target database. You can also use the Pushdown Optimization Viewer to view the messageelated to pushdown optimization.

    The following figure shows a mapping containing transformation logic that can be pushed to the source database:

    http://informaticatutorials-naveen.blogspot.com/2011/04/push-down-optimisation.htmlhttp://lh3.ggpht.com/_MbhSjEtmzI8/TarQVPhsf0I/AAAAAAAAAPg/R9K35XoYwsM/s1600-h/clip_image002%5B4%5D.gifhttp://informaticatutorials-naveen.blogspot.com/2011/04/push-down-optimisation.html
  • 7/28/2019 Informatica Essentials 8.6-1

    19/144

    This mapping contains an Expression transformation that creates an item ID based on the store number 5419 and thetem ID from the source. To push the transformation logic to the database, the Integration Service generates the

    following SQL statement:

    NSERT INTO T_ITEMS(ITEM_ID, ITEM_NAME, ITEM_DESC) SELECT CAST((CASE WHEN 5419 IS NULTHEN '' ELSE 5419 END) + '_' + (CASE WHEN ITEMS.ITEM_ID IS NULL THEN '' ELSE ITEMS.ITEM_ID EN

    AS INTEGER), ITEMS.ITEM_NAME, ITEMS.ITEM_DESC FROM ITEMS2 ITEMS

    The Integration Service generates an INSERT SELECT statement to retrieve the ID, name, and description values frhe source table, create new item IDs, and insert the values into the ITEM_ID, ITEM_NAME, and ITEM_DESColumns in the target table. It concatenates the store number 5419, an underscore, and the original ITEM ID to get th

    new item ID.

    Pushdown Optimization Types

    You can configure the following types of pushdown optimization:

    Source-side pushdown optimization. The Integration Service pushes as much transformation logic as possi

    to the source database. Target-side pushdown optimization. The Integration Service pushes as much transformation logic as possi

    to the target database. Full pushdown optimization. The Integration Service attempts to push all transformation logic to the target

    database. If the Integration Service cannot push all transformation logic to the database, it performs both souside and target-side pushdown optimization.

    Running Source-Side Pushdown Optimization Sessions

    When you run a session configured for source-side pushdown optimization, the Integration Service analyzes themapping from the source to the target or until it reaches a downstream transformation it cannot push to the sourcedatabase.

    The Integration Service generates and executes a SELECT statement based on the transformation logic for eachransformation it can push to the database. Then, it reads the results of this SQL query and processes the remainingransformations.

    Running Target-Side Pushdown Optimization Sessions

    When you run a session configured for target-side pushdown optimization, the Integration Service analyzes themapping from the target to the source or until it reaches an upstream transformation it cannot push to the targetdatabase. It generates an INSERT, DELETE, or UPDATE statement based on the transformation logic for eachransformation it can push to the target database. The Integration Service processes the transformation logic up to th

    point that it can push the transformation logic to the database. Then, it executes the generated SQL on the Targetdatabase.

    Running Full Pushdown Optimization Sessions

    To use full pushdown optimization, the source and target databases must be in the same relational databasemanagement system. When you run a session configured for full pushdown optimization, the Integration Serviceanalyzes the mapping from the source to the target or until it reaches a downstream transformation it cannot push toarget database. It generates and executes SQL statements against the source or target based on the transformation lot can push to the database.

  • 7/28/2019 Informatica Essentials 8.6-1

    20/144

    When you run a session with large quantities of data and full pushdown optimization, the database server must run aong transaction. Consider the following database performance issues when you generate a long transaction:

    A long transaction uses more database resources.

    A long transaction locks the database for longer periods of time. This reduces database concurrency and

    increases the likelihood of deadlock. A long transaction increases the likelihood of an unexpected event. To minimize database performance issue

    for long transactions, consider using source-side or target-side pushdown optimization.

    Rules and Guidelines for Functions in Pushdown Optimization

    Use the following rules and guidelines when pushing functions to a database:

    If you use ADD_TO_DATE in transformation logic to change days, hours, minutes, or seconds, you cannot

    push the function to a Teradata database. When you push LAST_DAY () to Oracle, Oracle returns the date up to the second. If the input date contains

    seconds, Oracle trims the date to the second. When you push LTRIM, RTRIM, or SOUNDEX to a database, the database treats the argument (' ') as NUL

    but the Integration Service treats the argument (' ') as spaces. An IBM DB2 database and the Integration Service produce different results for STDDEV and VARIANCE.

    IBM DB2 uses a different algorithm than other databases to calculate STDDEV and VARIANCE. When you push SYSDATE or SYSTIMESTAMP to the database, the database server returns the timestamp

    the time zone of the database server, not the Integration Service. If you push SYSTIMESTAMP to an IBM DB2 or a Sybase database, and you specify the format for

    SYSTIMESTAMP, the database ignores the format and returns the complete time stamp. You can push SYSTIMESTAMP (SS) to a Netezza database, but not SYSTIMESTAMP (MS) or

    SYSTIMESTAMP (US). When you push TO_CHAR (DATE) or TO_DATE () to Netezza, dates with sub second precision must be in

    the YYYY-MM-DD HH24: MI: SS.US format. If the format is different, the Integration Service does not puthe function to Netezza.

    PERFORMANCE TUNING OF LOOKUP TRANSFORMATIONS

    Lookup transformations are used to lookup a set of values in another table.Lookups slows down the performance.

    . To improve performance, cache the lookup tables. Informatica can cache all the lookup and reference tables; thismakes operations run very fast. (Meaning of cache is given in point 2 of this section and the procedure for determinhe optimum cache size is given at the end of this document.)

    2. Even after caching, the performance can be further improved by minimizing the size of the lookup cache. Reducenumber of cached rows by using a sql override with a restriction.

    http://informaticatutorials-naveen.blogspot.com/2011/04/performance-tuning-of-lookup.htmlhttp://informaticatutorials-naveen.blogspot.com/2011/04/performance-tuning-of-lookup.html
  • 7/28/2019 Informatica Essentials 8.6-1

    21/144

    Cache: Cache stores data in memory so that Informatica does not have to read the table each time it is referenced. Teduces the time taken by the process to a large extent. Cache is automatically generated by Informatica depending ohe marked lookup ports or by a user defined sql query.

    Example for caching by a user defined query: -

    Suppose we need to lookup records where employee_id=eno.employee_id is from the lookup table, EMPLOYEE_TABLE and eno is the

    nput that comes from the from the source table, SUPPORT_TABLE.

    We put the following sql query override in Lookup Transform

    select employee_id from EMPLOYEE_TABLE

    f there are 50,000 employee_id, then size of the lookup cache will be 50,000.

    nstead of the above query, we put the following:-

    select emp employee_id from EMPLOYEE_TABLE e, SUPPORT_TABLE s

    where e. employee_id=s.eno

    f there are 1000 eno, then the size of the lookup cache will be only 1000.But here the performance gain will happenonly if the number of records in SUPPORT_TABLE is not huge. Our concern is to make the size of the cache as lespossible.

    . In lookup tables, delete all unused columns and keep only the fields that are used in the mapping.

    4. If possible, replace lookups by joiner transformation or single source qualifier.Joiner transformation takes more tihan source qualifier transformation.

    5. If lookup transformation specifies several conditions, then place conditions that use equality operator = first in t

    onditions that appear in the conditions tab.6. In the sql override query of the lookup table, there will be an ORDER BY clause. Remove it if not needed or putfewer column names in the ORDER BY list.

    7. Do not use caching in the following cases: -

    Source is small and lookup table is large.

    If lookup is done on the primary key of the lookup table.

    8. Cache the lookup table columns definitely in the following case: -

    If lookup table is small and source is large.

    9. If lookup data is static, use persistent cache. Persistent caches help to save and reuse cache files. If several sessionn the same job use the same lookup table, then using persistent cache will help the sessions to reuse cache files. In c

    of static lookups, cache files will be built from memory cache instead of from the database, which will improve theperformance.

    0. If source is huge and lookup table is also huge, then also use persistent cache.

  • 7/28/2019 Informatica Essentials 8.6-1

    22/144

    1. If target table is the lookup table, then use dynamic cache. The Informatica server updates the lookup cache as itpasses rows to the target.

    2. Use only the lookups you want in the mapping. Too many lookups inside a mapping will slow down the session

    3. If lookup table has a lot of data, then it will take too long to cache or fit in memory. So move those fields to sour

    qualifier and then join with the main table.4. If there are several lookups with the same data set, then share the caches.

    5. If we are going to return only 1 row, then use unconnected lookup.

    6. All data are read into cache in the order the fields are listed in lookup ports. If we have an index that is evenpartially in this order, the loading of these lookups can be speeded up.

    7. If the table that we use for look up has an index (or if we have privilege to add index to the table in the databaseo), then the performance would increase both for cached and un cached lookups.

    Optimizing the Bottlenecks1. If the source is a flat file, ensure that the flat file is local to the Informatica server. If source is a relational tab

    then try not to use synonyms or aliases.2. If the source is a flat file, reduce the number of bytes (By default it is 1024 bytes per line) the Informatica re

    per line. If we do this, we can decrease the Line Sequential Buffer Length setting of the session properties.3. If possible, give a conditional query in the source qualifier so that the records are filtered off as soon as poss

    in the process.4. In the source qualifier, if the query has ORDER BY or GROUP BY, then create an index on the source table

    and order by the index field of the source table.

    PERFORMANCE TUNING OF TARGETS

    f the target is a flat file, ensure that the flat file is local to the Informatica server. If target is a relational table, then t

    not to use synonyms or aliases.1. Use bulk load whenever possible.2. Increase the commit level.3. Drop constraints and indexes of the table before loading.

    PERFORMANCE TUNING OF MAPPINGS

    Mapping helps to channel the flow of data from source to target with all the transformations in between. Mapping iskeleton of Informatica loading process.

    1. Avoid executing major sql queries from mapplets or mappings.2. Use optimized queries when we are using them.

    3. Reduce the number of transformations in the mapping. Active transformations like rank, joiner, filter,aggregator etc should be used as less as possible.

    4. Remove all the unnecessary links between the transformations from mapping.5. If a single mapping contains many targets, then dividing them into separate mappings can improve

    performance.6. If we need to use a single source more than once in a mapping, then keep only one source and source qualifi

    in the mapping. Then create different data flows as required into different targets or same target.

    http://informaticatutorials-naveen.blogspot.com/2011/04/optimizing-bottlenecks.htmlhttp://informaticatutorials-naveen.blogspot.com/2011/04/optimizing-bottlenecks.html
  • 7/28/2019 Informatica Essentials 8.6-1

    23/144

    7. If a session joins many source tables in one source qualifier, then an optimizing query will improveperformance.

    8. In the sql query that Informatica generates, ORDERBY will be present. Remove the ORDER BY clause if nneeded or at least reduce the number of column names in that list. For better performance it is best to order bthe index field of that table.

    9. Combine the mappings that use same set of source data.10. On a mapping, field with the same information should be given the same type and length throughout themapping. Otherwise time will be spent on field conversions.

    11. Instead of doing complex calculation in query, use an expression transformer and do the calculation in themapping.

    12. If data is passing through multiple staging areas, removing the staging area will increase performance.13. Stored procedures reduce performance. Try to keep the stored procedures simple in the mappings.14. Unnecessary data type conversions should be avoided since the data type conversions impact performance.15. Transformation errors result in performance degradation. Try running the mapping after removing all

    transformations. If it is taking significantly less time than with the transformations, then we have to fine-tunethe transformation.

    16. Keep database interactions as less as possible.

    PERFORMANCE TUNING OF SESSIONS

    A session specifies the location from where the data is to be taken, where the transformations are done and where thdata is to be loaded. It has various properties that help us to schedule and run the job in the way we want.

    1. Partition the session: This creates many connections to the source and target, and loads data in parallelpipelines. Each pipeline will be independent of the other. But the performance of the session will not improvthe number of records is less. Also the performance will not improve if it does updates and deletes. So sessiopartitioning should be used only if the volume of data is huge and the job is mainly insertion of data.

    2. Run the sessions in parallel rather than serial to gain time, if they are independent of each other.

    3. Drop constraints and indexes before we run session. Rebuild them after the session run completes. Droppingcan be done in pre session script and Rebuilding in post session script. But if data is too much, dropping indeand then rebuilding them etc. will be not possible. In such cases, stage all data, pre-create the index, use atransportable table space and then load into database.

    4. Use bulk loading, external loading etc. Bulk loading can be used only if the table does not have an index.5. In a session we have options to Treat rows as Data Driven, Insert, Update and Delete. If update strategies

    used, then we have to keep it as Data Driven. But when the session does only insertion of rows into targettable, it has to be kept as Insert to improve performance.

    6. Increase the database commit level (The point at which the Informatica server is set to commit data to the tartable. For e.g. commit level can be set at every every 50,000 records)

    7. By avoiding built in functions as much as possible, we can improve the performance. E.g. For concatenationthe operator || is faster than the function CONCAT (). So use operators instead of functions, where possibleThe functions like IS_SPACES (), IS_NUMBER (), IFF (), DECODE () etc. reduce the performance to a bigextent in this order. Preference should be in the opposite order.

    8. String functions like substring, ltrim, and rtrim reduce the performance. In the sources, use delimited stringscase the source flat files or use varchar data type.

    9. Manipulating high precision data types will slow down Informatica server. So disable high precision.10. Localize all source and target tables, stored procedures, views, sequences etc. Try not to connect across

    synonyms. Synonyms and aliases slow down the performance.

  • 7/28/2019 Informatica Essentials 8.6-1

    24/144

    DATABASE OPTIMISATION

    To gain the best Informatica performance, the database tables, stored procedures and queries used in Informatica shobe tuned well.

    1. If the source and target are flat files, then they should be present in the system in which the Informatica serv

    present.2. Increase the network packet size.3. 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. Thusnetwork connections often affect on session performance. So avoid network connections.

    4. Optimize target databases.

    DENTIFICATION OF BOTTLENECKS

    Performance of Informatica is dependant on the performance of its several components like database, network,ransformations, mappings, sessions etc. To tune the performance of Informatica, we have to identify the bottleneck

    first.

    Bottleneck may be present in source, target, transformations, mapping, session,database or network. It is best todentify performance issue in components in the order source, target, transformations, mapping and session. Afterdentifying the bottleneck, apply the tuning mechanisms in whichever way they are applicable to the project.

    dentify bottleneck in Source

    f source is a relational table, put a filter transformation in the mapping, just after source qualifier; make the conditioof filter to FALSE. So all records will be filtered off and none will proceed to other parts of the mapping.In originalase, without the test filter, total time taken is as follows:-

    Total Time = time taken by (source + transformations + target load)

    Now because of filter, Total Time = time taken by sourceSo if source was fine, then in the latter case, session should take less time. Still if the session takes near equal time aformer case, then there is a source bottleneck.

    dentify bottleneck in Target

    f the target is a relational table, then substitute it with a flat file and run the session. If the time taken now is very mess than the time taken for the session to load to table, then the target table is the bottleneck.

    dentify bottleneck in Transformation

    Remove the transformation from the mapping and run it. Note the time taken.Then put the transformation back and he mapping again. If the time taken now is significantly more than previous time, then the transformation is the

    bottleneck.

    But removal of transformation for testing can be a pain for the developer since that might require further changes fohe session to get into the working mode.

    So we can put filter with the FALSE condition just after the transformation and run the session. If the session run taqual time with and without this test filter,then transformation is the bottleneck.

    dentify bottleneck in sessions

  • 7/28/2019 Informatica Essentials 8.6-1

    25/144

    We can use the session log to identify whether the source, target or transformations are the performance bottleneck.Session logs contain thread summary records like the following:-

    MASTER> PETL_24018 Thread [READER_1_1_1] created for the read stage of partition pointSQ_test_all_text_data] has completed: Total Run Time =[11.703201] secs, Total Idle Time = [9.560945] secs, Bus

    Percentage =[18.304876].

    MASTER> PETL_24019 Thread [TRANSF_1_1_1_1] created for the transformation stage of partition pointSQ_test_all_text_data] has completed: Total Run Time = [11.764368] secs, Total Idle Time = [0.000000] secs, Bus

    Percentage = [100.000000].

    f busy percentage is 100, then that part is the bottleneck.

    Basically we have to rely on thread statistics to identify the cause of performance issues. Once the CollectPerformance Data option (In session Properties tab) is enabled, all the performance related information would appn the log created by the session.

    WORKING WITH TASKS Part 1

    17The Workflow Manager contains many types of tasks to help you build workflows and worklets. We can createeusable tasks in the Task Developer.

    Types of tasks:

    http://informaticatutorials-naveen.blogspot.com/2011/04/working-with-tasks-part-1.htmlhttp://informaticatutorials-naveen.blogspot.com/2011/04/working-with-tasks-part-1.html
  • 7/28/2019 Informatica Essentials 8.6-1

    26/144

    Task Type Tool where

    task can be

    created

    Reusable or

    not

    Session Task Developer Yes

    Email WorkflowDesigner

    Yes

    Command WorkletDesigner

    Yes

    Event-Raise WorkflowDesigner

    No

    Event-Wait WorkletDesigner

    No

    Timer No

    Decision No

    Assignment No

    Control No

    SESSION TASK

    A session is a set of instructions that tells the Power Center Server how and when to move data from sources

    targets. To run a session, we must first create a workflow to contain the Session task.

    We can run as many sessions in a workflow as we need. We can run the Session tasks sequentially or

    concurrently, depending on our needs. The Power Center Server creates several files and in-memory caches depending on the transformations and

    options used in the session.

    EMAIL TASK

    The Workflow Manager provides an Email task that allows us to send email during a workflow.

    Created by Administrator usually and we just drag and use it in our mapping.

    Steps:

    1. In the Task Developer or Workflow Designer, choose Tasks-Create.2. Select an Email task and enter a name for the task. Click Create.3. Click Done.4. Double-click the Email task in the workspace. The Edit Tasks dialog box appears.5. Click the Properties tab.6. Enter the fully qualified email address of the mail recipient in the Email User Name field.

  • 7/28/2019 Informatica Essentials 8.6-1

    27/144

    7. Enter the subject of the email in the Email Subject field. Or, you can leave this field blank.8. Click the Open button in the Email Text field to open the Email Editor.9. Click OK twice to save your changes.

    Example: To send an email when a session completes:

    Steps:

    1. Create a workflow wf_sample_email2. Drag any session task to workspace.3. Edit Session task and go to Components tab.4. See On Success Email Option there and configure it.5. In Type select reusable or Non-reusable.6. In Value, select the email task to be used.7. Click Apply -> Ok.8. Validate workflow and Repository -> Save

    We can also drag the email task and use as per need. We can set the option to send email on success or failure in components tab of a session task.

    COMMAND TASK

    The Command task allows us to specify one or more shell commands in UNIX or DOS commands in Windows to ruduring the workflow.

    For example, we can specify shell commands in the Command task to delete reject files, copy a file, or archive targefiles.

    Ways of using command task:

    . Standalone Command task: We can use a Command task anywhere in the workflow or worklet to run shellommands.

    2. Pre- and post-session shell command: We can call a Command task as the pre- or post-session shell command fa Session task. This is done in COMPONENTS TAB of a session. We can run it in Pre-Session Command or PostSession Success Command or Post Session Failure Command. Select the Value and Type option as we did in Emailask.

    Example: to copy a file sample.txt from D drive to E.

    Command: COPY D:\sample.txt E:\ in windows

    Steps for creating command task:

    1. In the Task Developer or Workflow Designer, choose Tasks-Create.2. Select Command Task for the task type.3. Enter a name for the Command task. Click Create. Then click done.4. Double-click the Command task. Go to commands tab.5. In the Commands tab, click the Add button to add a command.6. In the Name field, enter a name for the new command.7. In the Command field, click the Edit button to open the Command Editor.8. Enter only one command in the Command Editor.

  • 7/28/2019 Informatica Essentials 8.6-1

    28/144

    9. Click OK to close the Command Editor.10. Repeat steps 5-9 to add more commands in the task.11. Click OK.

    Steps to create the workflow using command task:

    1. Create a task using the above steps to copy a file in Task Developer.2. Open Workflow Designer. Workflow -> Create -> Give name and click ok.3. Start is displayed. Drag session say s_m_Filter_example and command task.4. Link Start to Session task and Session to Command Task.5. Double click link between Session and Command and give condition in editor as6. $S_M_FILTER_EXAMPLE.Status=SUCCEEDED7. Workflow-> Validate8. Repository > Save

    WORKING WITH EVENT TASKS

    We can define events in the workflow to specify the sequence of task execution.

    Types of Events:

    Pre-defined event: A pre-defined event is a file-watch event. This event Waits for a specified file to arrive a

    given location. User-defined event: A user-defined event is a sequence of tasks in the Workflow. We create events and then

    raise them as per need.

    Steps for creating User Defined Event:

    1. Open any workflow where we want to create an event.2. Click Workflow-> Edit -> Events tab.3. Click to Add button to add events and give the names as per need.4. Click Apply -> Ok. Validate the workflow and Save it.

    Types of Events Tasks:

    EVENT RAISE: Event-Raise task represents a user-defined event. We use this task to raise a user defined

    event.

    http://lh5.ggpht.com/_MbhSjEtmzI8/TapYGsx0vHI/AAAAAAAAAOA/1xW3RLDDbqk/s1600-h/clip_image002%5B4%5D.jpg
  • 7/28/2019 Informatica Essentials 8.6-1

    29/144

    EVENT WAIT: Event-Wait task waits for a file watcher event or user defined event to occur before execut

    the next session in the workflow.

    Example1: Use an event wait task and make sure that session s_filter_example runs when abc.txt file is present inD:\FILES folder.

    Steps for creating workflow:

    1. Workflow -> Create -> Give name wf_event_wait_file_watch -> Click ok.2. Task -> Create -> Select Event Wait. Give name. Click create and done.3. Link Start to Event Wait task.4. Drag s_filter_example to workspace and link it to event wait task.5. Right click on event wait task and click EDIT -> EVENTS tab.6. Select Pre Defined option there. In the blank space, give directory and filename to watch. Example:

    D:\FILES\abc.tct7. Workflow validate and Repository Save.

    Example 2: Raise a user defined event when session s_m_filter_example succeeds. Capture this event in event waitask and run session S_M_TOTAL_SAL_EXAMPLE

    Steps for creating workflow:

    1. Workflow -> Create -> Give name wf_event_wait_event_raise -> Click ok.2. Workflow -> Edit -> Events Tab and add events EVENT1 there.3. Drag s_m_filter_example and link it to START task.4. Click Tasks -> Create -> Select EVENT RAISE from list. Give name5. ER_Example. Click Create and then done.Link ER_Example to s_m_filter_example.6. Right click ER_Example -> EDIT -> Properties Tab -> Open Value for User Defined Event and Select

    EVENT1 from the list displayed. Apply -> OK.

    http://lh4.ggpht.com/_MbhSjEtmzI8/TapYImM7JfI/AAAAAAAAAOI/uiKyc92RSLg/s1600-h/clip_image001%5B4%5D.jpg
  • 7/28/2019 Informatica Essentials 8.6-1

    30/144

    7. Click link between ER_Example and s_m_filter_example and give the condition$S_M_FILTER_EXAMPLE.Status=SUCCEEDED

    8. Click Tasks -> Create -> Select EVENT WAIT from list. Give name EW_WAIT. Click Create and then don9. Link EW_WAIT to START task.10. Right click EW_WAIT -> EDIT-> EVENTS tab.

    11. Select User Defined there. Select the Event1 by clicking Browse Events button.12. Apply -> OK.13. Drag S_M_TOTAL_SAL_EXAMPLE and link it to EW_WAIT.14. Mapping -> Validate15. Repository -> Save.16. Run workflow and see.

    Reactions:

    You can follow any responses to this entry through the RSS 2.0feed. You can leave a response.

    WORKING WITH TASKS Part 2

    TIMER TASK

    The Timer task allows us to specify the period of time to wait before the Power Center Server runs the next task in tworkflow. The Timer task has two types of settings:

    http://informaticatutorials-naveen.blogspot.com/feeds/posts/defaulthttp://informaticatutorials-naveen.blogspot.com/feeds/posts/defaulthttp://informaticatutorials-naveen.blogspot.com/2011/04/working-with-tasks-part-1.html#respond%23respondhttp://informaticatutorials-naveen.blogspot.com/2011/04/working-with-tasks-part-2.htmlhttp://lh5.ggpht.com/_MbhSjEtmzI8/TapYJ7xnh3I/AAAAAAAAAOQ/I-EI-o-YbSw/s1600-h/clip_image001%5B5%5D%5B3%5D.jpghttp://informaticatutorials-naveen.blogspot.com/feeds/posts/defaulthttp://informaticatutorials-naveen.blogspot.com/2011/04/working-with-tasks-part-1.html#respond%23respondhttp://informaticatutorials-naveen.blogspot.com/2011/04/working-with-tasks-part-2.html
  • 7/28/2019 Informatica Essentials 8.6-1

    31/144

    Absolute time: We specify the exact date and time or we can choose a user-defined workflow variable to

    specify the exact time. The next task in workflow will run as per the date and time specified. Relative time: We instruct the Power Center Server to wait for a specified period of time after the Timer tas

    the parent workflow, or the top-level workflow starts.

    Example: Run session s_m_filter_example relative to 1 min after the timer task.Steps for creating workflow:

    1. Workflow -> Create -> Give name wf_timer_task_example -> Click ok.2. Click Tasks -> Create -> Select TIMER from list. Give name TIMER_Example. Click Create and then done3. Link TIMER_Example to START task.4. Right click TIMER_Example-> EDIT -> TIMER tab.5. Select Relative Time Option and Give 1 min and Select From start time of this task Option.6. Apply -> OK.7. Drag s_m_filter_example and link it to TIMER_Example.8. Workflow-> Validate and Repository -> Save.

    DECISION TASK

    The Decision task allows us to enter a condition that determines the execution of the workflow, similar to a l

    condition. The Decision task has a pre-defined variable called $Decision_task_name.condition that represents the resul

    the decision condition. The Power Center Server evaluates the condition in the Decision task and sets the pre-defined condition

    variable to True (1) or False (0).

    http://lh5.ggpht.com/_MbhSjEtmzI8/Tapaw3yzT1I/AAAAAAAAAOY/ozEgBWV78Vc/s1600-h/clip_image002%5B4%5D.jpg
  • 7/28/2019 Informatica Essentials 8.6-1

    32/144

    We can specify one decision condition per Decision task.

    Example: Command Task should run only if either s_m_filter_example or

    S_M_TOTAL_SAL_EXAMPLE succeeds. If any of s_m_filter_example or

    S_M_TOTAL_SAL_EXAMPLE fails then S_m_sample_mapping_EMP should run.Steps for creating workflow:

    1. Workflow -> Create -> Give name wf_decision_task_example -> Click ok.2. Drag s_m_filter_example and S_M_TOTAL_SAL_EXAMPLE to workspace and link both of them to STAR

    task.3. Click Tasks -> Create -> Select DECISION from list. Give name DECISION_Example. Click Create and th

    done. Link DECISION_Example to both s_m_filter_example and S_M_TOTAL_SAL_EXAMPLE.4. Right click DECISION_Example-> EDIT -> GENERAL tab.5. Set Treat Input Links As to OR. Default is AND. Apply and click OK.6. Now edit decision task again and go to PROPERTIES Tab. Open the Expression editor by clicking the VAL

    section of Decision Name attribute and enter the following condition: $S_M_FILTER_EXAMPLE.Status =SUCCEEDED OR $S_M_TOTAL_SAL_EXAMPLE.Status = SUCCEEDED7. Validate the condition -> Click Apply -> OK.8. Drag command task and S_m_sample_mapping_EMP task to workspace and link them to DECISION_Exam

    task.9. Double click link between S_m_sample_mapping_EMP & DECISION_Example & give the condition:

    $DECISION_Example.Condition = 0. Validate & click OK.10. Double click link between Command task and DECISION_Example and give the condition:

    $DECISION_Example.Condition = 1. Validate and click OK.11. Workflow Validate and repository Save.12. Run workflow and see the result.

    CONTROL TASK

    We can use the Control task to stop, abort, or fail the top-level workflow or the parent workflow based on an

    input link condition. A parent workflow or worklet is the workflow or worklet that contains the Control task.

    We give the condition to the link connected to Control Task.

    http://lh6.ggpht.com/_MbhSjEtmzI8/Tapa0iS5qEI/AAAAAAAAAOg/idQukEa5Y6E/s1600-h/clip_image002%5B5%5D%5B3%5D.jpg
  • 7/28/2019 Informatica Essentials 8.6-1

    33/144

    Control

    Option

    Description

    Fail Me Fails the control task.

    Fail Parent Marks the status of the WF or worklet that

    contains the

    Control task as failed.

    Stop Parent Stops the WF or worklet that contains theControl task.

    Abort Parent Aborts the WF or worklet that contains theControl task.

    Fail Top-LevelWF

    Fails the workflow that is running.

    Stop Top-LevelWF

    Stops the workflow that is running.

    Abort Top-Level WF

    Aborts the workflow that is running.

    Example: Drag any 3 sessions and if anyone fails, then Abort the top level workflow.

    Steps for creating workflow:

    1. Workflow -> Create -> Give name wf_control_task_example -> Click ok.2. Drag any 3 sessions to workspace and link all of them to START task.

    3. Click Tasks -> Create -> Select CONTROL from list. Give name cntr_task.4. Click Create and then done.5. Link all sessions to the control task cntr_task.6. Double click link between cntr_task and any session say s_m_filter_example and give the condition:

    $S_M_FILTER_EXAMPLE.Status = SUCCEEDED.7. Repeat above step for remaining 2 sessions also.8. Right click cntr_task-> EDIT -> GENERAL tab. Set Treat Input Links As to OR. Default is AND.9. Go to PROPERTIES tab of cntr_task and select the value Fail top level10. Workflow for Control Option. Click Apply and OK.11. Workflow Validate and repository Save.12. Run workflow and see the result.

  • 7/28/2019 Informatica Essentials 8.6-1

    34/144

    ASSIGNMENT TASK

    The Assignment task allows us to assign a value to a user-defined workflow variable.

    See Workflow variable topic to add user defined variables.

    To use an Assignment task in the workflow, first create and add the

    Assignment task to the workflow. Then configure the Assignment task to assign values or expressions to usedefined variables. We cannot assign values to pre-defined workflow.

    Steps to create Assignment Task:

    1. Open any workflow where we want to use Assignment task.2. Edit Workflow and add user defined variables.3. Choose Tasks-Create. Select Assignment Task for the task type.4. Enter a name for the Assignment task. Click Create. Then click Done.5. Double-click the Assignment task to open the Edit Task dialog box.6. On the Expressions tab, click Add to add an assignment.

    7. Click the Open button in the User Defined Variables field.8. Select the variable for which you want to assign a value. Click OK.9. Click the Edit button in the Expression field to open the Expression Editor.10. Enter the value or expression you want to assign.11. Repeat steps 7-10 to add more variable assignments as necessary.12. Click OK.

    SCD Type 117

    Slowly Changing Dimensions (SCDs) are dimensions that have data that changes slowly, rather than changing on aime-based, regular schedule

    For example, you may have a dimension in your database that tracks the sales records of your company's salespeopCreating sales reports seems simple enough, until a salesperson is transferred from one regional office to another. Hdo you record such a change in your sales dimension?

    You could sum or average the sales by salesperson, but if you use that to compare the performance of salesmen, thamight give misleading information. If the salesperson that was transferred used to work in a hot market where saleswere easy, and now works in a market where sales are infrequent, her totals will look much stronger than the other

    http://informaticatutorials-naveen.blogspot.com/2011/04/scd-type-1.htmlhttp://lh3.ggpht.com/_MbhSjEtmzI8/Tapa34XliNI/AAAAAAAAAOo/gndypNH7V10/s1600-h/clip_image002%5B7%5D%5B4%5D.jpghttp://informaticatutorials-naveen.blogspot.com/2011/04/scd-type-1.html
  • 7/28/2019 Informatica Essentials 8.6-1

    35/144

    alespeople in her new region, even if they are just as good. Or you could create a second salesperson record and trehe transferred person as a new sales person, but that creates problems also.

    Dealing with these issues involves SCD management methodologies:

    Type 1:

    The Type 1 methodology overwrites old data with new data, and therefore does not track historical data at all. This most appropriate when correcting certain types of data errors, such as the spelling of a name. (Assuming you won't eneed to know how it used to be misspelled in the past.)

    Here is an example of a database table that keeps supplier information:

    Supplier_KeySupplier_Code Supplier_Name Supplier_State

    123 ABC Acme Supply Co CA

    n this example, Supplier_Code is the natural keyand Supplier_Key is asurrogate key. Technically, the surrogate ks not necessary, since the table will be unique by the natural key (Supplier_Code). However, the joins will perform

    better on an integer than on a character string.

    Now imagine that this supplier moves their headquarters to Illinois. The updated table would simply overwrite thisecord:

    Supplier_KeySupplier_Code Supplier_Name Supplier_State

    123 ABC Acme Supply Co IL

    The obvious disadvantage to this method of managing SCDs is that there is no historical record kept in the datawarehouse. You can't tell if your suppliers are tending to move to the Midwest, for example. But an advantage to Ty SCDs is that they are very easy to maintain.

    Explanation with an Example:

    Source Table: (01-01-11) Target Table: (01-01-11)

    Emp no Ename Sal

    101 A 1000

    102 B 2000

    103 C 3000

    Emp no Ename Sal

    101 A 1000

    102 B 2000

    103 C 3000

    http://en.wikipedia.org/wiki/Natural_keyhttp://en.wikipedia.org/wiki/Natural_keyhttp://en.wikipedia.org/wiki/Surrogate_keyhttp://en.wikipedia.org/wiki/Surrogate_keyhttp://en.wikipedia.org/wiki/Natural_keyhttp://en.wikipedia.org/wiki/Surrogate_key
  • 7/28/2019 Informatica Essentials 8.6-1

    36/144

    The necessity of the lookup transformation is illustrated using the above source and target table.

    Source Table: (01-02-11) Target Table: (01-02-11)

    Emp no Ename Sal Empno Ename Sal

    101 A 1000 101 A 1000

    102 B 2500 102 B 2500

    103 C 3000 103 C 3000

    104 D 4000 104 D 4000

    In the second Month we have one more employee added up to the table with the Ename D and salary of the

    Employee is changed to the 2500 instead of 2000.

    Step 1: Is to import Source Table and Target table.

    Create a table by name emp_source with three columns as shown above in oracle. Import the source from the source analyzer.

    In the same way as above create two target tables with the names emp_target1, emp_target2.

    Go to the targets Menu and click on generate and execute to confirm the creation of the target tables.

    The snap shot of the connections using different kinds of transformations are shown below.

    Step 2: Design the mapping and apply the necessary transformation.

    http://lh5.ggpht.com/_MbhSjEtmzI8/TarFYsE0L6I/AAAAAAAAAOw/jrTTHo_brNk/s1600-h/clip_image002%5B4%5D.jpg
  • 7/28/2019 Informatica Essentials 8.6-1

    37/144

    Here in this transformation we are about to use four kinds of transformations namely Lookup transformation

    Expression Transformation, Filter Transformation, Update Transformation. Necessity and the usage of all thtransformations will be discussed in detail below.

    Look up Transformation: The purpose of this transformation is to determine whether to insert, Delete, Update or

    eject the rows in to target table. The first thing that we are goanna do is to create a look up transformation and connect the Empno from the

    source qualifier to the transformation. The snapshot of choosing the Target table is shown below.

    What Lookup transformation does in our mapping is it looks in to the target table (emp_table) and compares

    with the Source Qualifier and determines whether to insert, update, delete or reject rows. In the Ports tab we should add a new column and name it as empno1 and this is column for which we are gon

    connect from the Source Qualifier. The Input Port for the first column should be unchked where as the other ports like Output and lookup box

    should be checked. For the newly created column only input and output boxes should be checked.

    In the Properties tab (i) Lookup table name ->Emp_Target.

    ii)Look up Policy on Multiple Mismatch -> use First Value.

    iii) Connection Information ->Oracle.

    In the Conditions tab (i) Click on Add a new condition

    ii)Lookup Table Column should be Empno, Transformation port should be Empno1 and Operator should =.

    http://lh5.ggpht.com/_MbhSjEtmzI8/TarFaG7GX3I/AAAAAAAAAO4/Ez28BmcUdS0/s1600-h/clip_image004%5B4%5D.jpg
  • 7/28/2019 Informatica Essentials 8.6-1

    38/144

    Expression Transformation: After we are done with the Lookup Transformation we are using an expressionransformation to check whether we need to insert the records the same records or we need to update the records. Thteps to create an Expression Transformation are shown below.

    Drag all the columns from both the source and the look up transformation and drop them all on to the

    Expression transformation. Now double click on the Transformation and go to the Ports tab and create two new columns and name it as

    insert and update. Both these columns are gonna be our output data so we need to have check mark only in frof the Output check box.

    The Snap shot for the Edit transformation window is shown below.

    The condition that we want to parse through our output data are listed below.

    nput IsNull(EMPNO1)

    Output iif(Not isnull (EMPNO1) and Decode(SAL,SAL1,1,0)=0,1,0) .

    We are all done here .Click on apply and then OK.

    Filter Transformation: we are gonnahave twofilter transformations one to insert and other to update.

    Connect the Insert column from the expression transformation to the insert column in the first filter

    transformation and in the same way we are gonna connect the update column in the expression transformatioto the update column in the second filter.

    Later now connect the Empno, Ename, Sal from the expression transformation to both filter transformation.

    If there is no change in input data then filter transformation 1 forwards the complete input to update strategy

    transformation 1 and same output is gonna appear in the target table.

    http://lh3.ggpht.com/_MbhSjEtmzI8/TarFbt4m-xI/AAAAAAAAAPA/M6J69YEurP8/s1600-h/clip_image006%5B4%5D.jpg
  • 7/28/2019 Informatica Essentials 8.6-1

    39/144

    If there is any change in input data then filter transformation 2 forwards the complete input to the update

    strategy transformation 2 then it is gonna forward the updated input to the target table. Go to the Properties tab on the Edit transformation

    i) The value for the filter condition 1 is Insert.

    ii) The value for the filter condition 1 is Update.

    The Closer view of the filter Connection is shown below.

    Update Strategy Transformation: Determines whether to insert, delete, update or reject the rows.

    Drag the respective Empno, Ename and Sal from the filter transformations and drop them on the respective

    Update Strategy Transformation. Now go to the Properties tab and the value for the update strategy expression is 0 (on the 1st update

    transformation). Now go to the Properties tab and the value for the update strategy expression is 1 (on the 2nd update

    transformation). We are all set here finally connect the outputs of the update transformations to the target table.

    Step 3: Create the task and Run the work flow.

    Dont check the truncate table option.

    Change Bulk to the Normal.

    Run the work flow from task.

    Step 4: Preview the Output in the target table.

    http://lh6.ggpht.com/_MbhSjEtmzI8/TarFc1tInFI/AAAAAAAAAPI/I-xiUmCPhtc/s1600-h/clip_image008%5B4%5D.jpg
  • 7/28/2019 Informatica Essentials 8.6-1

    40/144

    Type 2

    SCD 2 (Complete):

    Let us drive the point home using a simple scenario. For eg., in the current month ie.,(01-01-2010) we are

    provided with an source table with the three columns and three rows in it like (EMpno,Ename,Sal). There is a

    new employee added and one change in the records in the month (01-02-2010). We are gonna use the SCD-2

    tyle to extract and load the records in to target table. The thing to be noticed here is if there is any update in the salary of any employee then the history of that

    employee is displayed with the current date as the start date and the previous date as the end date.

    Source Table: (01-01-11)

    http://informaticatutorials-naveen.blogspot.com/2011/04/type-2_21.htmlhttp://www.seocentro.com/cgi-bin/promotion/bookmark/bookmark.pl?u=http%3A%2F%2Finformaticatutorials-naveen.blogspot.com%2F2011%2F04%2Ftype-2_21.html&t=Complete%20reference%20to%20Informatica%3A%20Type%202&p=informaticatutorials-naveen.blogspot.comhttp://www.seocentro.com/cgi-bin/promotion/bookmark/bookmark.pl?b=stumbleupon&u=http%3A%2F%2Finformaticatutorials-naveen.blogspot.com%2F2011%2F04%2Ftype-2_21.html&t=Complete%20reference%20to%20Informatica%3A%20Type%202&p=informaticatutorials-naveen.blogspot.comhttp://www.seocentro.com/cgi-bin/promotion/bookmark/bookmark.pl?b=digg&u=http%3A%2F%2Finformaticatutorials-naveen.blogspot.com%2F2011%2F04%2Ftype-2_21.html&t=Complete%20reference%20to%20Informatica%3A%20Type%202&p=informaticatutorials-naveen.blogspot.comhttp://www.seocentro.com/cgi-bin/promotion/bookmark/bookmark.pl?b=delicious&u=http%3A%2F%2Finformaticatutorials-naveen.blogspot.com%2F2011%2F04%2Ftype-2_21.html&t=Complete%20reference%20to%20Informatica%3A%20Type%202&p=informaticatutorials-naveen.blogspot.comhttp://www.seocentro.com/cgi-bin/promotion/bookmark/bookmark.pl?b=google&u=http%3A%2F%2Finformaticatutorials-naveen.blogspot.com%2F2011%2F04%2Ftype-2_21.html&t=Complete%20reference%20to%20Informatica%3A%20Type%202&p=informaticatutorials-naveen.blogspot.comhttp://www.seocentro.com/cgi-bin/promotion/bookmark/bookmark.pl?b=twitter&u=http%3A%2F%2Finformaticatutorials-naveen.blogspot.com%2F2011%2F04%2Ftype-2_21.html&t=Complete%20reference%20to%20Informatica%3A%20Type%202&p=informaticatutorials-naveen.blogspot.comhttp://www.seocentro.com/cgi-bin/promotion/bookmark/bookmark.pl?b=facebook&u=http%3A%2F%2Finformaticatutorials-naveen.blogspot.com%2F2011%2F04%2Ftype-2_21.html&t=Complete%20reference%20to%20Informatica%3A%20Type%202&p=informaticatutorials-naveen.blogspot.comhttp://if%20%28%28navigator.appname%20%3D%3D%20%27microsoft%20internet%20explorer%27%29%20%26%26%20%28document.all%29%29%20%7Bwindow.external.addfavorite%28%27http//informaticatutorials-naveen.blogspot.com/2011/04/type-2_21.html',%20'Complete%20reference%20to%20Informatica:%20Type%202')%7D%20else%20if%20(window.sidebar)%20%7Bwindow.sidebar.addPanel('Complete%20reference%20to%20Informatica:%20Type%202',%20'http://informaticatutorials-naveen.blogspot.com/2011/04/type-2_21.html',%20'')%7D%20else%20%7Balert('Press%20CTRL-D%20(Netscape)%20or%20CTRL-T%20(Opera)%20to%20bookmark')%7D;http://lh5.ggpht.com/_MbhSjEtmzI8/TarFeYhJFeI/AAAAAAAAAPQ/vn7kX-BASes/s1600-h/clip_image010%5B4%5D.jpghttp://informaticatutorials-naveen.blogspot.com/2011/04/type-2_21.html
  • 7/28/2019 Informatica Essentials 8.6-1

    41/144

  • 7/28/2019 Informatica Essentials 8.6-1

    42/144

    Drag the Target table twice on to the mapping designer to facilitate insert or update process.

    Go to the targets Menu and click on generate and execute to confirm the creation of the target tables.

    The snap shot of the connections using different kinds of transformations are shown below.

    In The Target Table we are goanna add five columns (Skey, Version, Flag, S_date ,E_Date).

    Step 2: Design the mapping and apply the necessary transformation.

    Here in this transformation we are about to use four kinds of transformations namely Lookup transformation

    (1), Expression Transformation (3), Filter Transformation (2), Sequence Generator. Necessity and the usage all the transformations will be discussed in detail below.

    Look up Transformation: The purpose of this transformation is to Lookup on the target table and to compare the samwith the Source using the Lookup Condition.

    The first thing that we are gonna do is to create a look up transformation and connect the Empno from the

    source qualifier to the transformation. The snapshot of choosing the Target table is shown below.

    http://lh4.ggpht.com/_MbhSjEtmzI8/Ta-eD5tlIhI/AAAAAAAAAY4/7rJz10k7cUE/s1600-h/clip_image002%5B4%5D.jpg
  • 7/28/2019 Informatica Essentials 8.6-1

    43/144

    Drag the Empno column from the Source Qualifier to the Lookup Transformation.

    The Input Port for only the Empno1 should be checked.

    In the Properties tab (i) Lookup table name ->Emp_Target.

    ii)Look up Policy on Multiple Mismatch -> use Last Value.

    iii) Connection Information ->Oracle.

    In the Conditions tab (i) Click on Add a new condition

    ii)Lookup Table Column should be Empno, Transformation port should be Empno1 and Operator should =.

    Expression Transformation: After we are done with the Lookup Transformation we are using an expressionransformation to find whether the data on the source table matches with the target table. We specify the condition h

    whether to insert or to update the table. The steps to create an Expression Transformation are shown below.

    Drag all the columns from both the source and the look up transformation and drop them all on to the

    Expression transformation. Now double click on the Transformation and go to the Ports tab and create two new columns and name it as

    insert and update. Both these columns are goanna be our output data so we need to have unchecked input chebox.

    The Snap shot for the Edit transformation window is shown below.

    http://lh3.ggpht.com/_MbhSjEtmzI8/Ta-eFD3PWwI/AAAAAAAAAZA/c38rwpelqUc/s1600-h/clip_image004%5B4%5D.jpg
  • 7/28/2019 Informatica Essentials 8.6-1

    44/144

    The condition that we want to parse through our output data are listed below.

    nsert : IsNull(EmpNO1)

    Update: iif(Not isnull (Skey) and Decode(SAL,SAL1,1,0)=0,1,0) .

    We are all done here .Click on apply and then OK.

    Filter Transformation: We need two filter transformations the purpose the first filter is to filter out the records whwe are goanna insert and the next is vice versa.

    If there is no change in input data then filter transformation 1 forwards the complete input to Exp 1 and same

    output is goanna appear in the target table. If there is any change in input data then filter transformation 2 forwards the complete input to the Exp 2 then

    is gonna forward the updated input to the target table. Go to the Properties tab on the Edit transformation

    i) The value for the filter condition 1 is Insert.

    ii) The value for the filter condition 2 is Update.

    The closer view of the connections from the expression to the filter is shown below.

    http://lh3.ggpht.com/_MbhSjEtmzI8/Ta-eGZS6P-I/AAAAAAAAAZI/dvnzaKaLwyo/s1600-h/clip_image006%5B4%5D.jpg
  • 7/28/2019 Informatica Essentials 8.6-1

    45/144

    Sequence Generator: We use this to generate an incremental cycle of sequential range of number.The purpose of thn our mapping is to increment the skey in the bandwidth of 100.

    We are gonna have a sequence generator and the purpose of the sequence generator is to increment the value

    the skey in the multiples of 100 (bandwidth of 100). Connect the output of the sequence transformation to the Exp 1.

    Expression Transformation:

    http://lh4.ggpht.com/_MbhSjEtmzI8/Ta-eI-w1tMI/AAAAAAAAAZY/zRpqKAlN_JI/s1600-h/clip_image010%5B4%5D.jpghttp://lh4.ggpht.com/_MbhSjEtmzI8/Ta-eH1Cl-dI/AAAAAAAAAZQ/i95sBXFn6W4/s1600-h/clip_image008%5B4%5D.jpg
  • 7/28/2019 Informatica Essentials 8.6-1

    46/144

    Exp 1: It updates the target table with the skey values. Point to be noticed here is skey gets multiplied by 100 and anew row is generated if there is any new EMP added to the list. Else the there is no modification done on the targetable.

    Drag all the columns from the filter 1 to the Exp 1.

    Now add a new column as N_skey and the expression for it is gonna be Nextval1*100.

    We are goanna make the s-date as the o/p and the expression for it is sysdate.

    Flag is also made as output and expression parsed through it is 1.

    Version is also made as output and expression parsed through it is 1.

    Exp 2: If same employee is found with any updates in his records then Skey gets added by 1 and version changes tonext higher number,F

    Drag all the columns from the filter 2 to the Exp 2. Now add a new column as N_skey and the expression for it is gonna be Skey+1.

    Both the S_date and E_date is gonna be sysdate.

    http://lh5.ggpht.com/_MbhSjEtmzI8/Ta-eKarI6mI/AAAAAAAAAZg/0NA9_z7LJCc/s1600-h/clip_image012%5B4%5D.jpg
  • 7/28/2019 Informatica Essentials 8.6-1

    47/144

    Exp 3: If any record of in the source table gets updated then we make it only as the output.

    If change is found then we are gonna update the E_Date to S_Date.

    Update Strategy: This is place from where the update instruction is set on the target table.

    The update strategy expression is set to 1.

    Step 3: Create the task and Run the work flow.

    Dont check the truncate table option. Change Bulk to the Normal.

    Run the work flow from task.

    Create the task and run the work flow.

    http://lh6.ggpht.com/_MbhSjEtmzI8/Ta-eMsDEg5I/AAAAAAAAAZw/4__4gjCWx-A/s1600-h/clip_image016%5B4%5D.jpghttp://lh6.ggpht.com/_MbhSjEtmzI8/Ta-eLT3tXpI/AAAAAAAAAZo/W0OHfOm3vlk/s1600-h/clip_image014%5B4%5D.jpg
  • 7/28/2019 Informatica Essentials 8.6-1

    48/144

    Step 4: Preview the Output in the target table.

    http://lh6.ggpht.com/_MbhSjEtmzI8/Ta-eN9uP1mI/AAAAAAAAAZ4/5CTMRkAKW8E/s1600-h/clip_image018%5B4%5D.jpg
  • 7/28/2019 Informatica Essentials 8.6-1

    49/144

    26

    SCD Type 3:This Method has limited history preservation, and we are goanna use skey as the Primary key here.

    Source table: (01-01-2011)

    Empno Ename Sal

    101

    102

    103

    A

    B

    C

    1000

    2000

    3000

    Target Table: (01-01-2011)

    Empno Ename C-sal P-sal

    101

    102

    103

    A

    B

    C

    1000

    2000

    3000

    -

    -

    -

    Source Table: (01-02-2011)

    Empno Ename Sal

    http://lh3.ggpht.com/_MbhSjEtmzI8/Ta-eOxmoiJI/AAAAAAAAAaA/48feVJN3jiw/s1600-h/clip_image020%5B4%5D.jpg
  • 7/28/2019 Informatica Essentials 8.6-1

    50/144

    101

    102

    103

    A

    B

    C

    1000

    4566

    3000

    Target Table (01-02-2011):

    Empno Ename C-sal P-sal

    101

    102

    103

    102

    A

    B

    C

    B

    1000

    4566

    3000

    4544

    -

    Null

    -

    4566

    So hope u got what Im trying to do with the above tables:

    Step 1: Initially in the mapping designer Im goanna create a mapping as below. And in this mapping Im usingookup, expression, filter, update strategy to drive the purpose. Explanation of each and every Transformation is giv

    below.

    Step 2: here we are goanna see the purpose and usage of all the transformations that we have used in the abovemapping.

    Look up Transformation: The look Transformation looks the target table and compares the same with the sourceable. Based on the Look up condition it decides whether we need to update, insert, and delete the data from beingoaded in to the target table.

    As usually we are goanna connect Empno column from the Source Qualifier and connect it to look up

    transformation. Prior to this Look up transformation has to look at the target table. Next to this we are goanna specify the look up condition empno =empno1.

    Finally specify that connection Information (Oracle) and look up policy on multiple mismatches (use last valin the Properties tab.

    Expression Transformation:

    We are using the Expression Transformation to separate out the Insert-stuffs and Update- Stuffs logically.

    Drag all the ports from the Source Qualifier and Look up in to Expression.

    Add two Ports and Rename them as Insert, Update.

    http://lh5.ggpht.com/_MbhSjEtmzI8/TbaWFEN6MVI/AAAAAAAAAcs/oqyCneIWofw/s1600-h/clip_image002%5B3%5D.jpg
  • 7/28/2019 Informatica Essentials 8.6-1

    51/144

    These two ports are goanna be just output ports. Specify the below conditions in the Expression editor for the

    ports respectively.

    nsert: isnull(ENO1 )

    Update: iif(not isnull(ENO1) and decode(SAL,Curr_Sal,1,0)=0,1,0)

    Filter Transformation: We are goanna use two filter Transformation to filter out the data physically in to two sepaections one for insert and the other for the update process to happen.

    Filter 1:

    Drag the Insert and other three ports which came from source qualifier in to the Expression in to first filter.

    In the Properties tab specify the Filter condition as Insert.

    Filter 2:

    Drag the update and other four ports which came from Look up in to the Expression in to Second filter.

    In the Properties tab specify the Filter condition as update.

    Update Strategy: Finally we need the update strategy to insert or to update in to the target table.

    Update Strategy 1: This is intended to insert in to the target table.

    Drag all the ports except the insert from the first filter in to this.

    In the Properties tab specify the condition as the 0 or dd_insert.

    Update Strategy 2: This is intended to update in to the target table.

    Drag all the ports except the update from the second filter in to this.

    In the Properties tab specify the condition as the 1 or dd_update.

    http://lh5.ggpht.com/_MbhSjEtmzI8/TbaWLP5-LlI/AAAAAAAAAdM/LH1X7KM1EmY/s1600-h/clip_image010%5B3%5D.jpghttp://lh3.ggpht.com/_MbhSjEtmzI8/TbaWJU8PdcI/AAAAAAAAAdE/N_YJhYuj9I8/s1600-h/clip_image008%5B3%5D.jpghttp://lh5.ggpht.com/_MbhSjEtmzI8/TbaWIEHuDkI/AAAAAAAAAc8/pet05ZO08QI/s1600-h/clip_image006%5B3%5D.jpghttp://lh5.ggpht.com/_MbhSjEtmzI8/TbaWGwrbFhI/AAAAAAAAAc0/MBZ95pYnY4I/s1600-h/clip_image004%5B3%5D.jpg
  • 7/28/2019 Informatica Essentials 8.6-1

    52/144

    Finally connect both the update strategy in to two instances of the target.

    Step 3: Create a session for this mapping and Run the work flow.

    Step 4: Observe the output it would same as the second target table

    http://lh4.ggpht.com/_MbhSjEtmzI8/TbaWODLFVcI/AAAAAAAAAdc/DQR_DfVlso0/s1600-h/clip_image014%5B3%5D.jpghttp://lh5.ggpht.com/_MbhSjEtmzI8/TbaWMsBsHXI/AAAAAAAAAdU/6TDQVBvTmd4/s1600-h/clip_image012%5B3%5D.jpg
  • 7/28/2019 Informatica Essentials 8.6-1

    53/144

    ncremental Aggregation:

    When we enable the session option-> Incremental Aggregation the Integration Service performs incrementalaggregation, it passes source data through the mapping and uses historical cache data to perform aggregationalculations incrementally.

    When using incremental aggregation, you apply captured changes in the source to aggregate calculations in a sessiohe source changes incrementally and you can capture changes, you can configure the session to process those changThis allows the Integration Se