Tuesday, September 28, 2021

ODI - Aggregate component

  • The aggregate component is a projector component which groups and combines attributes using aggregate functions, such as average, count, maximum, sum, and so on.
  • ODI will automatically select attributes without aggregation functions to be used as group-by attributes. You can override this by using the Is Group By and Manual Group By Clause properties.


To create an aggregate component:

  • Drag and drop the aggregate component from the component palette into the logical diagram.
  • Define the attributes of the aggregate if the attributes will be different from the source components. To do this, select the Attributes tab in the property inspector, and click the green plus icon to add attributes. Enter new attribute names in the Target column and assign them appropriate values. If attributes in the aggregate component will be the same as those in a source component, use attribute matching.
  • Create a connection from a source component by dragging a line from the connector port of the source to the connector port of the aggregate component.
  • The Attribute Matching dialog will be shown. If attributes in the aggregate component will be the same as those in a source component, check the Create Attributes on Target box. If necessary, map all attributes from source to target that were not mapped though attribute matching, and create transformation expressions as necessary .
  • In the property inspector, the attributes are listed in a table on the Attributes tab. Specify aggregation functions for each attribute as needed. By default all attributes not mapped using aggregation functions (such as sum, count, avg, max, min, and so on) will be used as Group By.


You can modify an aggregation expression by clicking the attribute. For example, if you want to calculate average salary per department, you might have two attributes: the first attribute called AVG_SAL, which you give the expression AVG(EMP.SAL), while the second attribute called DEPTNO has no expression. If Is Group By is set to Auto, DEPTNO will be automatically included in the GROUP BY clause of the generated code.

You can override this default by changing the property Is Group By on a given attribute from Auto to Yes or No, by double-clicking on the table cell and selecting the desired option from the drop down list.

You can set a different GROUP BY clause other than the default for the entire aggregate component. Select the General tab in the property inspector, and then set a Manual Group by Clause. For example, set the Manual Group by Clause to YEAR(customer.birthdate) to group by birthday year.

Optionally, add a HAVING clause by setting the HAVING property of the aggregate component: for example, SUM(order.amount) > 1000.






ODI - Split component

A split is a selector component that divides into two or more flows based on specified conditions.

Use case: split source table data to 4 regions target tables.

Steps:

Drag and drop a split component from the component palette into logical diagram

Connect the split component to source and target tables.



In the property inspector tab, open the split conditions tab and provide the split condition.


Provide optimization context.


Provide LKM and IKM





ODI - Use of sequence object in a surrogate key

A Surrogate key in SQL server is a unique identifier for each row in the table. This type of key is either db generated using sequence or guid or generated via another application.

Use case: we will create a sequence in target db schema and use it in the mapping.

Step1: Create a sequence in Target shema:

Create sequence TRG.SEQ_JOBS

Minvalue 1

Maxvalue 999999999

Start with 1

Increment by 1;

Step2: once map done , slect the key field which to be unique and add the squence.nextval in the expression.

TRG.SEQ_JOBS.nextval


Use optimization context in the physical tab and Use IKM and LKM as needed.

Monday, September 27, 2021

ODI - Distinct component

A distinct is a projector component that projects a subset of attributes in the flow. The values of each row have to be unique; the behavior follows the rules of the SQL DISTINCT clause.

Steps:

To select distinct rows from a source datastore:

Drag and drop a Distinct component from the component palette into the logical diagram.

Connect the preceding component to the Distinct component by dragging a line from the preceding component to the Distinct component.

The Attribute Mapping Dialog will appear: select Create Attributes On Target to create all of the attributes in the Distinct component. Alternatively, you can manually map attributes as desired using the Attributes tab in the property inspector.

The distinct component will now filter all rows that have all projected attributes matching.

You can also change the distinct name in the general section of the logical tab.


Provide IKM as IKM SQL Control Append


Choose IKM flow control as False.




Saturday, September 25, 2021

ODI - Agents

Agents:

  • ODI agent orchestrates the execution of processes created in ODI. 
  • At runtime, agents will be used to run Load Plans and Scenarios via an ODI schedule, command line call, web service call, or a third-party scheduler. 
  • Agents are accessed via http/https requests, regardless of how they are called into action.
  • These agents are multi threaded java programs that support load balancing and can be diatributed across the information system.

There are 3 types of agents are available:

JEE Agent

  • Implemented as a deployment in Weblogic Server 12c, 
  • the JEE Agent allows you to use the features of WLS, such as clustering for high availability and JDBC connection pooling.

Standalone Agent


The Standalone Agent is a lightweight Java application that is typically installed to run closest to where most of the transformations will occur. In most data warehouse setups, this is on the data warehouse server.

Standalone Colocated Agent


This type of agent is essentially a Standalone Agent that is managed via Weblogic Server. If you want to manage all of your agents via WLS, this is the way to go.

Comparatives of these 3 agents features:



Agents setups steps in ODI:

Step1: Go to the Topology and Physical architecture and right click on agents and add new agent and provide all the details like Name as OracleDIAgent1, Host, port etc.


Step2: Go to Logical Architechture and add add new agents on agents. Here you only need to mention the context and physical agents.



Friday, September 24, 2021

ODI - ETL vs ELT

 ODI 12c supports both the methods.



ETL: (Extract , Transform and load):

  • Transform in separate ETL server
  • Dedicated server
  • Reduced performance
  • High Costs
ELT(Extract, load and transform):
  • Transform in existing RDBMS
  • Leverage resources
  • Increased performances
  • Easier to manage abd lower costs

ODI - About Load plans

ODI is used to populate very large data warehouses and its common to have thousands of tables using hundreds of scenarios. The execution of these scenarios has to be organized in such that the data throughout from the sources to the target is the most efficient within the batch window. Load plans help the user to organize the execution of scenarios in a hieracrchy of sequential and parallel steps.

The leaf nodes of this hierarchy are scenarios, packages, mappings, variables, and procedures can be added to load plans for execution in the form of scenarios.

Load plans also support exception handling strategies in the event of a scenario ending in error.

Load plans can be started , stopped and restarted from a command line , from ODI studio. They can also be scheduled using the runtime agent's builtin scheduler or an external scheduler.

A load plan can be modified in prod environment and steps can be enabled and disabled accoeding to the prod needs.

Load plans appear in Design Navigator and in Operator in the load plans and scenarios accordion. The load plan runs are displayed in the load plan execution accordion in Operator Navigator.

When running or scheduling a load plan you provide the variable values, the contexts and logical agents used for this load plan execution.

Load plans can not be added to a load plan, however it is possible to add scenarios in form of a run scenarios step that starts another load plan using the OdiStartLoadPlan tool.

Different types of load plan steps:

A load plan is made of a several types of steps. Each step can contain several child steps. By default, a load plan contains an empty root serial step.

Serial step: a child steps is executed when the prevoius one is terminated.

Parallel step: child steps are started immediately in their order of priority.

Run scenario step: Launches the execution of a scenario.

Case step, when step, Else step: the combination of these steps allows conditional branching on the value of a variable.

Exception Step: defines a grouo of steps that is executed when an exccption is encountered in the associated step from the step hierarchy.


For more detailed information, click here

https://docs.oracle.com/middleware/1212/odi/ODIDG/loadplans.htm#ODIDG1349


Featured Post

11g to 12c OSB projects migration points

1. Export 11g OSB code and import in 12c Jdeveloper. Steps to import OSB project in Jdeveloper:   File⇾Import⇾Service Bus Resources⇾ Se...