Op het internet wordt veel geschreven over Oracle Data Integrator, kortweg ODI. ODI wordt vaak in relatie gebracht met Data Warehousing, waarbij het product wordt neergezet als ETL-tool. Daarmee doet men het product tekort. In deze blog krijgt u inzicht in situaties waarin u ODI kunt inzetten. Wat zijn de concepten en ideeën achter ODI en wat zijn de voordelen? Oracle heeft ODI gepositioneerd als Fusion Middleware naast de SOA-Suite. Hoe werken deze producten samen en hoe vullen ze elkaar aan?
Zoals de naam al doet vermoeden is de belangrijkste functionaliteit van ODI het integreren van gegevens uit verschillende informatiesystemen. Daarbij maakt ODI gebruik van de volgende principes:
- E-LT architectuur
In tegenstelling tot de ETL architectuur, waarbij een aparte server wordt ingezet voor de transformatie van de gegevens, gebruikt ODI de kracht en capaciteit van het RDBMS om de gegevens te integreren en transformeren. Vanwege het ontbreken van een aparte ETL-server hoeven de gegevens ook minder vaak over het netwerk getransporteerd te worden, wat de performance ten goede komt. Deze architectuur vereenvoudigt het beheer, met als resultaat een verlaging van de kosten. - ODI biedt een open structuur en is gebaseerd op standaarden waardoor een naadloze integratie met verschillende soorten gegevensbronnen en informatiesystemen mogelijk is. ODI maakt gebruikt van Knowledge Modules. Dit zijn templates gebaseerd op een bepaalde technologie (gegevensbron of informatiesysteem) die door ODI gebruikt worden om de code te genereren die nodig is voor de E-LT-processen. Deze Knowledge Modules kunnen naar eigen inzicht worden aangepast en uitgebreid. Er zijn bijvoorbeeld Knowledge Modules voor het ontsluiten van databases als Oracle, SQL Server en IBM DB2, maar ook voor ander formaten als Excel, tekst- en XML-bestanden en services en applicaties als de Oracle E-Business Suite en SAP ERP.
- Declarative Design
Bij conventionele ETL-systemen moet de ontwikkelaar elke stap van het proces ontwerpen. De ontwikkelaar moet zich bezig houden met de vraag hoe een stap in het ETL-proces gedefinieerd moet worden. Declarative Design is een methode die zich concentreert op wat er gedaan moet worden. Hoe de techniek een stap afhandelt, wordt geregeld door de eerder genoemde Knowledge Modules. - Data-based, event-based en service-based
Dat ODI data-based is behoeft geen uitleg. ODI biedt echter ook integratie met SOA door het aanbieden van Data Services voor het benaderen van gegevens en Transformation Services voor het uitvoeren van ETL-processen. Daarnaast kun je vanuit ODI Web Services aanroepen en daarmee een Web Service onderdeel maken van je ETL-proces. Tenslotte zorgt de beschikbaarheid van Knowledge Modules voor bijvoorbeeld JMS Queues en Oracle Advanced Queues alsmede de mogelijkheden van Change Data Capture (al dan niet in combinatie met Oracle GoldenGate) dat ODI event-based dataverwerking ondersteunt.
Op basis van deze principes is ODI inzetbaar in de volgende situaties:
- Bij het uitwisselen van grote hoeveelheden gegevens, waarbij een goede performance een vereiste is
- Bij het uitwisselen van gegevens tussen heterogene systemen
- Bij het vullen van Data Warehouses, Data Marts, OLAP Cubes en Operational Data Stores
- Bij real-time data warehousing door gebruik te maken van intelligente methoden voor het afvangen van wijzigingen op de brongegevens zoals Change Data Capture (eventueel in combinatie met de mogelijkheden van real-time Change Data Capture van Oracle GoldenGate).
- Bij het inzichtelijk maken van Data Lineage (waar komen de gegevens vandaan, waar gaan ze heen, welke transformatie is toegepast)
- Bij het integreren met SOA. Vanuit ODI aanroepen van Services voor Data Integratie. Het aanbieden van Data Services en Tranformation Services vanuit ODI, zodat deze Services in een SOA-omgeving geïmplementeerd kunnen worden.
- Bij het bewaken van de kwaliteit van gegevens (accuraat, betrouwbaar, relevant, consistent en tijdig)
- Als hulpmiddel bij het uitvoeren van Master Data Management (MDM)
- Bij het migreren van gegevens (bijvoorbeeld bij versiewijzigingen van software of bij het inzetten van een ander RDBMS)
- Bij het synchroniseren van gegevens (bijvoorbeeld bij het ‘schaduwdraaien’, bij het gelijktrekken van test- en ontwikkelomgevingen met de productie-omgeving) of bij het ontwikkelen van een nieuw informatiesysteem