2. info@rittmanmead.com www.rittmanmead.com @rittmanmead !
Edelweiss Kammermann
• Ingeniera en Computación. Especialista en BI y BPM con +18 años de experiencia en
consultoría y liderazgo de proyectos con tecnología Oracle en varios países de Latino
América.
• Co-fundadora y Vice Presidenta del Grupo de Usuarios de Oracle Uruguay (UYOUG)
• Artículos publicados de Business Intelligence en OTN en Español e Inglés
• Speaker en conferencias internacionales como Collaborate, OTN Tour LA,
OOW,
UKOUG y Rittman Mead BI Forum
• Oracle ACE
• Training Materials Specialist en Rittman Mead
Mail: edel.kammermann@rittmanmead.com
Twitter: @EdelweissK
3. info@rittmanmead.com www.rittmanmead.com @rittmanmead !
Rittman Mead
• Oracle Gold partner con oficinas en USA
(Atlanta), Europa, Australia, India y Sudáfrica
• Partner especializado en BI, líder mundial en
excelencia técnica, soluciones e innovación.
• Provee consultoría y cursos para clientes en
todas partes del mundo.
• 120+ consultores incluidos 1 Oracle ACE
Director, 3 Oracle ACEs y 1 Oracle ACE
Associate
• Consultores expertos en un amplio rango de
herramientas Oracle: OBIEE,OBIA,ODI,
Essbase, Oracle OLAP, GoldenGate, Exadata,
Exalytics, Endeca y BigData
• Blog : http://www.rittmanmead.com/blog/
• Twitter : @rittmanmead
4. info@rittmanmead.com www.rittmanmead.com @rittmanmead !
Agenda
• Qué es Oracle Data Integrator?
• Qué es Oracle GoldenGate?
• Cómo funciona la integración entre ODI y OGG?
• Beneficios de esta integración
• Pasos para integrar ambas herramientas
• Conclusiones
5. info@rittmanmead.com www.rittmanmead.com @rittmanmead !
Oracle Data Integrator
• ODI es una solución completa y unificada de transformación e integración de
datos
• Provee reusabilidad, flexibilidad y extensibilidad a través de Knowledge
Modules
(KM)
• Es parte del stack de Oracle Fusion Middleware 12c
• Independiente de la plataforma en la que se ejecuta
• Separa la lógica de la implementación física
• Basado en arquitectura ELT (Extract Load Transform) en vez de la clásica ETL
lo
cual brinda una mejor performance.
• Combina movimiento de datos, sincronización de datos, transformación de
datos,
control de calidad de datos, manejo de datos y web services.
• Soporta integración basado en batch, en tiempo real, y en web services.
6. info@rittmanmead.com www.rittmanmead.com @rittmanmead !
Componentes de ODI
• ODI Studio
• Agents - the runtime components
• Repositories
• Work Repository
• Master Repository
• Management Pack for Oracle Data Integrator
• ODI Console
7. info@rittmanmead.com www.rittmanmead.com @rittmanmead !
ODI Studio
• Es un IDE (Integrated Development Environment) que permite a
Operadores,
Desarrolladores y Administradores para acceder a los
repositorios.
• Consta de 4 navegadores que permiten realizar tareas distintas.
• Designer
• Topology
• Operator
• Security
8. info@rittmanmead.com www.rittmanmead.com @rittmanmead !
ODI Studio: Topology Navigator
• Define la Arquitectura Física y Lógica de los sistemas de
información.
• Guarda las conexiones a las bases de datos, servidores
OLAP, archivos, etc.
• Maneja alias lógicos para esas conexiones.
• Contexts (ambientes)
• Standalone y JEE agents
• Gestiona repositorios.
• Esta información es almacenada en el Master
Repository
9. info@rittmanmead.com www.rittmanmead.com @rittmanmead !
ODI Studio: Designer Navigator
• Gestiona dos tipos de objetos principales:
• Models (Modelos)
• Contiene la metadata de los objetos a través de aplicar ingeniería
reversa sobre los objetos fuente.
• Projects (Projectos)
• Usado para diseñar objetos en ODI, transformaciones y mappings.
• Define variables, secuencias, funciones, mappings y paquetes
entre otros
• Se importa y se utilizan los Knowledge Modules para chequear
integridad, carga de datos e integración de información.
• Generación de escenarios.
• Esta información es almacenada en el Work Repository
10. info@rittmanmead.com www.rittmanmead.com @rittmanmead !
ODI Studio: Operator Navigator
• Monitorea la ejecución de las objetos de ODI -mappings,
paquetes y escenarios- en las sesiones
• Se puede hacer drill hasta llegar a cada una de las
tareas de la ejecución y ver el código que se ejecuta.
• Muestra los errores, las advertencias y las métricas de
ejecución en los logs de ejecución.
• Importa y ejecuta escenarios y load plans
• Esta información es almacenada en el Work
Repository
11. info@rittmanmead.com www.rittmanmead.com @rittmanmead !
Qué es el proceso de Change Data Capture (CDC)?
• CDC es el proceso de capturar sólo los datos nuevos y modificados desde las tablas
fuente a las tablas destino.
• Realiza carga incremental
• Típico requerimiento de Data Warehouses
• Más eficiente al tener menos datos para mover y procesar.
• Opción para extraer datos en tiempo real.
12. info@rittmanmead.com www.rittmanmead.com @rittmanmead !
Cómo se implementa CDC en ODI?
• ODI implementa CDC aplicando un Journalizing Knowledge Module (JKM) a un
Modelo (Model)
• Este JKM crea la infraestructura para guardar y manejar la información de journal
• Esta infraestructura es un conjunto de tablas, vistas y triggers para capturar y
almacenar la información.y una vez consumida la info eliminar estos registros.
13. info@rittmanmead.com www.rittmanmead.com @rittmanmead !
Oracle Golden Gate
• Oracle GoldenGate 12c es una aplicación para:
• Integración de datos en tiempo real
• Replicación de datos con mínimo overhead.
• Provee soluciones para:
• Sistemas de Alta Disponiblidad
• Integración de datos en tiempo real usando Change Data Capture (CDC)
basado
en redo-logs y replicación de datos
• Recuperación de desastres (Disaster Recovery)
15. info@rittmanmead.com www.rittmanmead.com @rittmanmead !
Cómo funciona la integración de ODI y OGG?
• OGG replica los datos desde el origen a un área de staging
• OGG captura los cambios en los datos de la tabla origen, los rutea y los copia
en:
• La tabla replicada en el area de staging
• En tablas y vistas internas de ODI (J$/JV$) que utiliza para guardar la info de journal
• Replicación de datos con mínimo overhead.
• ODI detecta los registros modificados en su infrastructura de journal y mueve los datos a la
tabla destino.
16. info@rittmanmead.com www.rittmanmead.com @rittmanmead !
Beneficios de la integración entre ODI y OGG
• Muy bajo impacto en el sistema origen
• Lee los cambios directamente de los archivos de logs de la base
• No requiere actividad adicional de la base de datos como triggers.
• Mejor Performance
• Permite integración en tiempo real
• En tablas internas de ODI (J$/JV$) que utiliza para guardar la información de journal
• Replicación de datos con mínimo overhead.
• Tanto ODI como OGG soportan trabajar con variedad de base de datos
• Mayor flexibilidad para integración datos en ambientes heterogéneos.
17. info@rittmanmead.com www.rittmanmead.com @rittmanmead !
Pasos para integrar ambas herramientas
Configuraciones en Oracle GoldenGate:
1. Instalar OGG dos veces. Para los esquemas fuente y destino.
2. Configuración de la base de datos y de las variables de entorno.
3. Configurar el Jagent para cada instalación de OGG
4. Iniciar ambas instalaciones de OGG
18. info@rittmanmead.com www.rittmanmead.com @rittmanmead !
Paso 1: Instalar OGG para el esquema fuente y destino
• Necesitamos instalar GoldenGate dos veces
• La instalación origen es necesaria para capturar los datos desde el esquema
fuente.
• La instalación destino es necesaria para enviar la los datos al esquema destino.
19. info@rittmanmead.com www.rittmanmead.com @rittmanmead !
Paso 2: Configuración de la base de datos
• Como Oracle GoldenGate usa redo logs para capturar los datos que necesita replicar, tenemos que
setear las opciones de Logging en la base
• Se necesitan ejecutar estos comandos para habilitar el Supplemental Logging
• ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
• ALTER SYSTEM SWITCH LOGFILE;
• Oracle recomienda tambien setear el Forge Logging en la base:
• ALTER DATABASE FORCE LOGGING;
• Si la versión de base de datos es 11.2.0.4 hay que setear explícitamente un parámetro de
inicialización de la base para habilitar GoldenGate
• ENABLE_GOLDENGATE_REPLICATION=true
20. info@rittmanmead.com www.rittmanmead.com @rittmanmead !
Paso 2: Configuración de variables de entorno
• En Unix, se tiene que setear la variable Libray_Path para que contenga el path de las
librerías compartidas de OGG (se encuentran en el directorio de instalación)
• También se tienen que setear las variables JAVA_HOME y PATH para que apunten a
la carpeta JDK y a la carpeta JDK/BIN respectivamente
21. info@rittmanmead.com www.rittmanmead.com @rittmanmead !
Paso 3: Configuración del JAgent
• Crear el archivo de parámetros GLOBALS en el home directory de GoldenGate para
habilitar el monitoreo
• Necesario para poder trabajar con el Jagent que se usa para comunicarse
con
ODI.
22. info@rittmanmead.com www.rittmanmead.com @rittmanmead !
Paso 3: Configuración del JAgent
• Crear un Oracle Wallet para asegurar la comunicación entre ODI y OGG.
1. Seteamos la variable de ambiente JAVA_HOME para que apunte a la carpeta
JDK que está bajo el home directory de OGG
2. Correr el utilitario pw_agent_util (ubicado en el home de OGG) con la opción
–jagentonly
23. info@rittmanmead.com www.rittmanmead.com @rittmanmead !
Paso 3: Configuración del JAgent
• Modificar el archivo Config. Properties
1. Agent_type_enabled=OEM. Para
especificar que el montireo no se hace con
el OGG Monitor (OGGMON)
2. Tomar nota del jagent.rmi.port. Valor por
decto 5559. Colocar otro valor en la
segunda instalación de OGG
24. info@rittmanmead.com www.rittmanmead.com @rittmanmead !
Paso 4: Iniciar GoldenGate
• Correr el ejecutable ggsci que se encuentra en el home de OGG
1. Levantar el manager con el comando Start Manager
2. Levantar el Jagent con el comando Start jagent
25. info@rittmanmead.com www.rittmanmead.com @rittmanmead !
Pasos para integrar ambas herramientas
Configuraciones en Oracle Data Integrator:
1. Crear OGG Data Servers en ODI para los esquemas fuente y destino en el
Topology Navigator.
2. Seleccionar el OGG JKM en el modelo origen.
3. Crear los OGG Physical Schemas desde el Modelo
4. Iniciar el proceso de Journal
5. Crear un mapping para cargar los datos en la tabla final.
6. Automatizar el proceso de journal.
26. info@rittmanmead.com www.rittmanmead.com @rittmanmead !
Paso 1: Crear Data Servers en ODI
• ODI 12c se comunica con OGG a través de los OGG Jagents que se definen como
Data Servers en el Topology Navigator
• Crear un nuevo Data Server bajo la tecnología Oracle GoldenGate y llenar los
siguientes valores: host, JMI Port, Manage Port (se obtiene durante la
instalación), JMI User (root), la Password que pusimos en la Wallet y el directorio
de instalación de OGG
• Testar luego la conexión.
27. info@rittmanmead.com www.rittmanmead.com @rittmanmead !
Paso 2: Seleccionar el OGG JKM
• Tenemos que aplicar el proceso de journal al modelo (esquema) origen
1. Seleccionamos el modelo origen y en el Journalizing tab seteamos el
modo
como Consistent Set que implica que se aplica sobre un conjunto
de tablas
teniendo en cuenta las FK y el orden entre ellas.
2. Seleccionamos el JKM Oracle to Oracle Consistent (OGG online)
28. info@rittmanmead.com www.rittmanmead.com @rittmanmead !
Paso 3: Crear los Physical Schemas desde el Model
• Los procesos de Capture (Captura) y Delivery (Envío) son los Physical Schemas.
• Se pueden crear directamente desde el Topology Navigator o crearlos a partir del Model.
• Para crear el proceso de Captura de datos, apretamos el botón
Crear y seleccionamos el
Jagent (Data Server) origen y le ponemos nombre al proceso.
• Para crear el proceso de Envío de los datos seleccionamos el Data Server destino de
OGG y además seleccionamos el esquema destino del envío de los datos.
29. info@rittmanmead.com www.rittmanmead.com @rittmanmead !
Paso 3: Crear los Physical Schemas desde el Model
• Una vez creados los procesos de Captura y Envío
cambiamos el valor de la opción ONLINE comoTRUE.
• En el Topology Navigator nos quedan definidos los Physical
and Logical Schemas.
30. info@rittmanmead.com www.rittmanmead.com @rittmanmead !
Paso 3: Crear los Physical Schemas desde el Model
• Cuando se crea el proceso de Capture desde el Model, no queda seteado el Trial File
Path de destino con la instalación de destino de OGG.
• Hay que modificar el Remote Trial File Path del proceso de Capture en el Topology
Navigator.
31. info@rittmanmead.com www.rittmanmead.com @rittmanmead !
Paso 4: Iniciar el proceso de CDC
1. Una vez que el Model está configurado, tenemos que seleccionar de qué tablas queremos capturar
los datos modificados. Para eso tenemos que agregar esas tablas al proceso de CDC.
2. Determinar a que Subscriptores vamos a notificar de estos cambios.
3. Por último iniciamos el proceso de journal, para empezar a capturar los cambios en forma
automática.
1
3
2
32. info@rittmanmead.com www.rittmanmead.com @rittmanmead !
Paso 5: Crear un mapping para usar los datos de journal
1. Crear un mapping para cargar los datos de la tabla origen a la tabla final.
2. Seleccionar la opción Journalized Data Only para que sólo use los datos de journal y
realize una carga incremental
33. info@rittmanmead.com www.rittmanmead.com @rittmanmead !
Paso 6: Automatizar el proceso de journal
Cuando usamos Consistent Set como modo de journal, hay que realizar algunos pasos
extra antes y después de ejecutar el mapping que consume los datos.
Pasos previos al consumo de los datos:
• Extended Window
• Lock Subscribers
Pasos Posteriores al consumo de los datos:
• Unlock Subscribers
• Purge Journal
34. info@rittmanmead.com www.rittmanmead.com @rittmanmead !
Paso 6: Automatizar el proceso de journal
Para automatizar el proceso, creamos un paquete en ODI que haga las siguientes tareas:
• ODIWaitForLogData Step: espera por cambios en los datos de journal
• Journal Model Step: Para hacer Extend Window y Lock Subscriber
• Mapping Step: Para ejecutar el mapping
• Journal Model Step: Para hacer Unlock Subscriber y Purge Journal Data
36. info@rittmanmead.com www.rittmanmead.com @rittmanmead !
Conclusiones
• OGG es la mejor opción para usar CDC en ODI:
• Menor impacto en la base ya que OGG lee de los redo-logs y no genera actividad
extra en la base
• Mejor performance en el envío de los datos modificados, permitiendo la
integración de datos en tiempo real.
• Mayor flexibilidad en la integración de datos ya que ODI y OGG proveen soporte
para trabajar con una amplia variedad de bases de datos.