Oracle Warehouse Builder: Información y documentación sobre OWB
Oracle Warehouse Builder: Información y documentación sobre OWB Carlos 13 Agosto, 2009 - 13:56Parece que encontrar documentación sobre Oracle Warehouse Builder en castellano es complicado, sobretodo si hablamos de manuales o documentación técnica.
Abro este tema del foro para que vayamos comentando aqui lo que encontremos entre todos.
Commit manual OWB
Commit manual OWB penyo 7 Septiembre, 2010 - 14:11Buenas tardes,
Os comento el problema que me ha surgido, en los flujos, cuando lanza algun mapeo o un procedimiento, nos surgió la duda de como realizar un rollback de los datos. Por otros foros descubrimos que lo suyo es configurar el mapeo, como commit manual, y al final del flujo si todo ha ido correcto, hacer un rollback o un commit. Pinta sencillo, hemos configurado todo así, pero parece ser que aun configurando la correspondencia como manual, hace un commit igualmente. ¿Sabeis algo al respecto de porque puede estar pasando esto?
Gracias.
Os cuento más
Os cuento más detenidamente... tengo un flujo que carga dos tablas. Tengo en ambas tablas configurado el commit manual. Y se me pueden dar los siguientes casos:
- Las dos tablas cargan mal: En cuanto una carga mal, hace rollback y pasa a la siguiente. Tambien carga mal, hace rollback y termina. Hasta aqui perfecto.
- Una tabla carga bien y la otra mal: Una tabla carga mal, por lo que hace el rollback y pasa a la siguiente. La siguiente carga bien, entonces hace commit de esta (a pesar de tenerlo configurado como manual).
Mi problema está en que no me interesa que haga commit hasta el final, en cuanto una tabla falle, quiero que haga un rollback de todo, y lo que hace es hacer rollback unicamente de la tabla que ha fallado.
- Inicie sesión para enviar comentarios
Supongo que utilizas el
Supongo que utilizas el operador 'post mapping' para hacer el commit o rollback final, no? En teoría si lo configuras como manual, y lo controlas con este operador debería actuar sobre todo lo anterior. Si ya lo haces así puede que necesitemos que intervenga alguien que se haya peleado más con estas opciones ;)
Te enlazo también sección Embedding Commit Logic into the Mapping del Manual de Usuario de OWB 10.2, por si no lo has consultado aún, siguiendo los enlaces de las diferentes opciones puede que encuentres lo que te está pasando..
- Inicie sesión para enviar comentarios
Buenos días! Eso es lo que
Buenos días! Eso es lo que tengo hecho, pero tengo el OWB 11.2 y no se porque no me lo realiza bien, he leido en el link que, se puede hacer con un SQL*PLUS, lo he intentado de diversas maneras y se queda bloqueado en el lanzamiento del SQL*PLUS. Lo he puesto tal cual viene en el link de oracle:
begin
carga_fallo.main(status);
if status!='OK'
then rollback
else carga_fallo2.main(status);
if status!='OK' then rollback;
else commit;
end if;
end if;
end;
La sintaxis es erronea con total seguridad. ¿Sabéis algo al respecto?
Gracias por la ayuda y un saludo.
- Inicie sesión para enviar comentarios
No sé si entiendo bien la
No sé si entiendo bien la lógica, pero creo que te falta el punto y coma después del rollback, y los paréntesis en la condición del IF siempre son acosejables. Prueba con esto:
begin carga_fallo.main(status); if (status!='OK') then rollback; else carga_fallo2.main(status); if (status!='OK') then rollback; else commit; end if; end if; end;
- Inicie sesión para enviar comentarios
Hola! Si, gracias Carlos, lo
Hola!
Si, gracias Carlos, lo había modificado, tal y como me lo has puesto tu ahora. Pero nada, no hay manera, creo que no interpreta bien los mapeos, no estoy seguro de que la sentencia sea "mapeo.main" y no he encontrado nada al respecto por internet.
- Inicie sesión para enviar comentarios
Creando un espacio de trabajo OWB 11g (ERROR)
Creando un espacio de trabajo OWB 11g (ERROR) jalbe_40 3 Julio, 2014 - 17:23Al momento de comprobar la conexion en la ubicacion de la base de datos ORACLE (CENTRO DE CONTROL) me arroja el sigueinte error:
resulatdo de prueba de conexion:
java.sql.SQLException:ORA-00604:error ocurred at recursive SQL level 1
ORA-01882:timezone region not found
Si alguien me puede ayudar... GRACIAS
HELP ME!!!
NOTA: Lo parametro de conexion esta bien.
Si trabajas con Windows,
Si trabajas con Windows, prueba con la solución que proponen en este blog, que es editar el Run_Service.bat para incluir la zona horaria (-Duser.timezone="+01:00", por ejemplo) entre los parámetros de la llamada al servicio del centro de control.
Y si se trata de Unix tendrías que hacer lo mismo, pero editando el run_service.sh
En ambos casos recuerda reiniciar de nuevo los servicios para que las modificaciones se hagan efectivas.
Saludos,
- Inicie sesión para enviar comentarios
Ok, amigo muchas gracias voy
Ok, amigo muchas gracias voy a intentarlo.
- Inicie sesión para enviar comentarios
Amigo tengo este caso: *
Amigo tengo este caso:
* Tabla A
* Tabla B
NOTA: La dos tablas tienen registros
Se debe insertar los registro de la Tabla A a la Tabla B pero al mismo tiempo esos registro de la Tabla A no debe estar en la tabla B ( no pueden ser repetidos)
mi pregunta es : estoy utilizando el operador KEY LOOKUP ( OWB) para la busqueda de la tabla B, y defino la condicion entres los valores unico de las tablas, pero solo me esta trayendo los codigo unico, lo demas campos no, si podria darme un ejemplo de como utilizar este componente KEY LOOKUP o que otra opcion puedo realizarlo?
gracias !!
- Inicie sesión para enviar comentarios
¿Te ha funcionado lo de
¿Te ha funcionado lo de incluir la zona horaria en el script?
¿Utilizas el asistente o lo haces directamente? Recuerdo que este asistente era casi más complicado que hacerlo directamente. Si usas el asistente, para los primeros pasos iba bien, pero los últimos mejor salte del asistente y configura los mapeos de los campos manualmente.
De todas maneras, no te serviría simplemente configurar configurar el tipo de carga de la tabla destino en modo update/insert? Si lo haces así, si el registro no existe lo inserta, y si ya existe lo actualiza, es lo más sencillo. Incluso si no quieres actualizar los registros en caso de que ya existan, si no recuerdo mal, puedes utilizar la opción CHECK/INSERT para insertar sólo los registros que no existan ya según la condición que definas, claves primarias o foráneas..
- Inicie sesión para enviar comentarios
Que tal amigo disculpe. No
Normal
0
21
false
false
false
ES-VE
X-NONE
X-NONE
MicrosoftInternetExplorer4
Que tal amigo disculpe.
No me funciono lo de incluir la zona horaria en el script Run_Service.bat me sigue dando el mismo problema.
Por otro parte sobre el caso de la inserción de registros de la Tabla A a la Table B ciertamente es un poco más complicado por el asistente. Y la otra opción del la propiedad de la tabla CHECK/INSERT es una buena alternativa, pero finalmente realice el mapeo manualmente (como usted lo menciona) con la expresión sql NOT EXISTS.
SELECT *
FROM TABLA A TA
WHERE NOT EXISTS (SELECT *
FROM TABLA B TB
WHERE TA.ID_ORIGEN=TB.ID_ORIGEN)
Solo me trae los registros de la tabla A que no existan en la tabla B.
NOTA: lo realice con el componente FILTRO de OWB.
Gracias Amigo!!
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Tabla normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin-top:0cm;
mso-para-margin-right:0cm;
mso-para-margin-bottom:10.0pt;
mso-para-margin-left:0cm;
line-height:115%;
mso-pagination:widow-orphan;
font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;}
- Inicie sesión para enviar comentarios
Vaya, entonces ya no sé que
Vaya, entonces ya no sé que te puede estar fallando, cuando lo encuentres te agradezco si lo compartes.
Al menos para filtrar los registros que ya existen en la otra tabla ya tenemos varias soluciones. Entiendo que estás aplicando el filtro justo antes del insert. No sé si en algún momento necesitas todos los registros de la tabla A, pero si haces esta misma select al principio del flujo, al definir el Source, te puede mejorar bastante el rendimiento porque en lugar de dos lanzas sólo una select, y ya no 'arrastras' los registros que no necesitas.
- Inicie sesión para enviar comentarios
Con gusto lo
Con gusto lo compartire!!
Y si tendre presente lo que comentas muchas gracias Carlos.
- Inicie sesión para enviar comentarios
Cómo hacer un DECODE en los mappings de OWB
Cómo hacer un DECODE en los mappings de OWB Carlos 10 Febrero, 2009 - 22:52Para los que estamos acostumbrados a utilizar el operador decode del SQL de Oracle sorprende bastante que no esté incluída en la sintaxis que se puede utilizar dentro del generador de expresiones de Oracle Warehouse Builder.
Pero todo tiene solución. Si para un campo se quiere seleccionar un valor en función del contenido de otro o más campos, se puede utilizar el objeto EXPRESSION, conectar en la entrada todos los campos implicados, y en la expresión del campo de salida olvidarnos del DECODE y utilizar en su lugar un CASE WHEN ..., que sí está soportado.
Por ejemplo:
CASE WHEN entrada1 = 0 THEN 'Falso'
WHEN entrada2 = 1 THEN 'Cierto'
ELSE 'Indefinido'
END
Decode en OWB
Hola, me encuentro utilizando OWB, y para resolver el problema de divisiones por cero utilizo Decode en una expresion, tal como sigue
DECODE(INGRP1.ORG2,0,NULL,INGRP1.ORG1/INGRP1.ORG2)
Saludos
- Inicie sesión para enviar comentarios
Ya se puede utilizar el DECODE?
Pues en teoría no te debería funcionar. Yo lo probé con la versión 10.2 de Warehouse Builder y la expresión daba error hasta que lo cambié por el CASE, y se que en versiones anteriores pasaba lo mismo. Puede ser que tu estés utilizando una versión superior? A lo mejor en la 11 por fin se puede utilizar el Decode..
- Inicie sesión para enviar comentarios
Decode
Hola, realmente al realizar la verificación de la expresión Decode envia error, pero si omites esta parte y ejecutas tu maping funcionará correctamente.
(yo solo soy un usuario, descubrí esto a "prueba y error" jajajaja)
Saludos
- Inicie sesión para enviar comentarios
Vaya con el validador de expresiones de OWB..
Bueno, pues gracias a tu aportación ya tenemos 2 maneras de solventar el problema, utilizar un CASE WHEN, o utilizar el DECODE y pasar del error que nos da el validador, pero asegurándonos de que la expresión esté bien escrita!
- Inicie sesión para enviar comentarios
SI funciona
Hola.. yo trabajo de OWB hace tiempo y tiene ciertas cosas o mañas. El decode SI funciona cuando utilizas una expresion aunque si clickeas en la opcion VALIDAR te da un error o warning..
En resumen tiene que usarlo sin validarlo o bien no darle importancia.. pasa lo mismo con trunc y no me acuerdo cual otra sentencia
- Inicie sesión para enviar comentarios
El error ORA-30926 en las cargas de OWB
El error ORA-30926 en las cargas de OWB Carlos 18 Febrero, 2009 - 23:09Cuando uno de nuestros mappings realiza una carga sobre una tabla en modo INSERT/UPDATE puede que nuestro proceso falle devolviendo este extraño error:
ORA-30926: no se ha podido obtener un juego de filas estable en las tablas de origen
La explicación suele ser que al final este tipo de cargas realiza una operación de MERGE, y si en la correspondencia entre los datos origen y los datos destino a un registro de la tabla destino le toca más de uno de las tablas origen el MERGE no funciona y devuelve este error. Normalmente se trata de un problema de duplicidad en los registros origen.
Para ver una explicación más extensa y las opciones para solucionarlo, consultar El error ORA-30926 como resultado de una operación Merge
Funcionamiento del schedule con mappings y flujos
Funcionamiento del schedule con mappings y flujos cfb 8 Julio, 2008 - 00:16Tengo un OWB 10.2 sobre una BD Oracle 10g y estoy intentando utilizar el scheduler para que los workflows y los mappings que he creado se lancen automáticamente por la noche.
Desde Warehouse Builder todo funciona bien, creo los módulos del scheduler y los asocio con los flujos que quiero lanzar. Hago el deploy y todo perfecto, pero después a la hora prevista no se ejecuta nada, y si lanzo el proceso manualmente sí que funciona.
He consultado la base de datos y veo que no crea ningún job ni nada por el estilo, solo un procedure que alguien debería ejecutar para que haga algo.
Veo que en versiones anteriores de OWB era bastante complicado poder planificar trabajos, pero en esta debería ser más sencillo.
Me falta algo por instalar, o esta versión también necesita ejecutar algunos scripts para que el scheduler funcione?
Creo que te puede faltar un
Creo que te puede faltar un paso y es que además del hacer el deploy hay que lanzar los trabajos planificados para que se ejecuten automáticamente.
Un saludo
- Inicie sesión para enviar comentarios
Instalación Configuración OWB
Instalación Configuración OWB Anonimo (no verificado) 19 Marzo, 2010 - 16:45Buenos dias gente!
Tengo poca experiencia en OWB y en el lugar en donde estoy no hay gente con experiencia en esta herramienta, por lo tanto recurro a uds.
Quisiera consultarles lo siguiente.
Tengo instalado el OWB sobre una bbdd1 y el esquema A, del cual es el origen de una parte de mis datos,
también tengo esquema B y C sobre la misma bbdd1.
El destino de mis etls esta en la bbdd2 esquema D.
1 esta bien esta arquitectura?
2 No logro configurar el owb para que me ponga esquema.nombre_tabla, dando el error oracle ORA-00942.
Sabrian darme algun tip para la resolucion de este problema?
Saludos,
Patricio
Gracias, problema
Gracias, problema solucionado.
- Inicie sesión para enviar comentarios
Me alegro de que lo hayas
Me alegro de que lo hayas podido solucionar.
Supongo que el problema estaba en que tenías OWB instalado en la BD de origen, en lugar de la de destino.
En mi opinión, una de las limitaciones más importantes de Oracle Warehouse Builder es que está pensado para obtener información de diferentes orígenes, pero sobre un único destino, que ha de ser la base de datos Oracle donde debería crearse el almacén de datos, y donde ha de estar instalado el runtime del Control Center.
Yo mismo me encontré este problema en mi primera instalación de OWB, y me sorprendió bastante que en este aspecto la herramienta no fuera más flexible.
Bueno, ya nos explicarás si haces cosas interesantes con OWB..
Saludos,
- Inicie sesión para enviar comentarios
Creo que esto no es asi. Se
Creo que esto no es asi.
Se pueden tener todas las bases de datos destino que quieras, siempre que se instale la parte del runtime OWB en cada base de datos "adicional" y se levante el servicio de control center service (que para eso esta)
Saludos;
- Inicie sesión para enviar comentarios
Tienes razón, en el mismo
Tienes razón, en el mismo tema del foro sobre requerimientos de targets que he enlazado en la respuesta, yo mismo comentaba que se puede hacer siempre que instales el 'runtime', y que tener que hacer esa instalación me parece una limitación importante. Los sistemas destino no tienen porqué estar 'bajo tu control', y me parece demasiado intrusivo tener que hacer esta instalación sólo para escribir sobre una base de datos Oracle.
Seguramente se me han cruzado los cables con la otra limitación importante, que es que OWB sólo puede tener como destino bases de datos Oracle, no puede cargar ni modificar datos en otras bases de datos.
Gracias por la puntualización, y espero no haberme equivocado también en la segunda afirmación ;)
- Inicie sesión para enviar comentarios
Problema con Workflow que no funciona al utilizar un mapping correcto
Problema con Workflow que no funciona al utilizar un mapping correcto Carlos 29 Enero, 2009 - 23:01Tengo un problema con OWB y OWF. Tengo un proceso de carga definido con Oracle Workflow. Este proceso se me queda 'enganchado' en un mapping y no encuentro cómo solucionarlo.
Lo extraño es que si ejecuto el flujo completo el proceso se queda parado con este mapping, pero si ejecuto todos los mappings por separado desde el mismo Control Center todo funciona correctamente.
Desde el Control Center he hecho un drop de todos los flows y he vuelto a desplegarlos con la opción Create para asegurarme de que está utilizando la última versión.
En el Centro de Control el flujo se queda en estado de ejecución, pero si lo examino obtengo el siguiente mensaje de error:
VENTAS
Description : Runtime User : OWBOWNER Started : 2009-02-03 15:20:59.0
Status
Log
INFORMATIONAL
RPE-02075: Fallo de Oracle Workflow al procesar la solicitud de ejecución para la actividad VTAS_FRAQ:MAP_STG_CARGA_VENTA. Puede que los objetos dependientes no se hayan desplegado todavía.
INFORMATIONAL
ORA-01403: No se ha encontrado ningún dato
ORA-01403: No se ha encontrado ningún dato
ORA-01403: No se ha encontrado ningún dato
INFORMATIONAL
WB_RT_WORKFLOW_UTIL_10G.
Execute_Any_Task(STG, WB_IK_20090203_152336_158645, 2693, RUN)
WB_RT_WORKFLOW_UTIL_10G.Execute_Task(STG, WB_IK_20090203_152336_158645, 2693, RUN)
Wf_Engine_Util.Function_Call(WB_RT_WORKFLOW_UTIL_10G.EXECUTE_TASK, STG, WB_IK_20090203_152336_158645, 2693, RUN)
Error
RPE-02083: Error en las actividades del proceso VENTAS. Puede que los objetos no se hayan desplegado. Puede utilizar el Monitor de Oracle Workflow para reintentar las actividades o abortar el proceso.
Alguien tiene alguna sugerencia? Lo siguiente que voy a probar es a partir el flujo en dos
Si modificas algo con Warehouse Builder borra y vuelve a crear
Ya he podido solucionarlo.
El problema lo tenía desde que había modificado un mapping. Al final, dejando ese mapping aislado en un flujo para él solito me he dado cuenta de que tenía que borrarlo del workflow y volver a seleccionarlo de la parte Available Objects del Explorer de OWB.
Moraleja: si se modifica un mapping y este aparece en un flujo de proceso, borrar el mapping del flujo y volver a seleccionarlo. Por lo que veo con Warehouse Builder lo de borrar y volver a crear es siempre la técnica más recomendable cuando se hace cualquier cambio.
De hecho he tenido que volver a aplicar esta técnica cuando he modificado el flujo que no me funcionaba. Resulta que tengo otro flujo que llama al del mapping. Pues me ha vuelto a salir el mismo error, que he solucionado borrando el icono del proceso hijo en el workflow 'padre' y volviéndolo a insertar seleccionándolo del apartado Process Flows de la pestaña Available Objects del Explorador. Cosas de OWB, será cuestión de acostumbrarse..
- Inicie sesión para enviar comentarios
Hola Carlos, Este error que
Hola Carlos,
Este error que comentas es muy típico en OWB y también sucede en ODI, el problema rádica en que cada vez que modificas un mapping, OWB no es capaz de refrescar los workflows donde ese mapping aparece y por lo tanto te toca refrescarlos a tí manualmente, ya sea elimandolo y volviendolo a generar o enviandolo a un workflow separado.
Lo peor es que no te encuentras con él problema hasta que ejecutas el workflow en cuestión y la palicación no es capaz de decirte todos los workflows que se ven afectados por el mapping que has cambiado.
Un saludo.
P.D.: Yo se de una ETL que eso no le pasa y tiene mucho mejor solucionado el tema de la reutilización de procesos, je,je,je !!!!
David Soto
- Inicie sesión para enviar comentarios
Hola David, yo también me
Hola David, yo también me alegro de verte por aquí
Déjame adivinar, la ETL que comentas se llama Powercenter? Puedes nombrarla tranquilamente, y contarnos todo lo que quieras sobre ella, lo mejor para tomar decisiones acertadas es estar bien informado..
- Inicie sesión para enviar comentarios
amigos : podrian facilitar
Subido por Anonimo (no verificado) el 21 Junio, 2007 - 16:34
amigos :
podrian facilitar un manual en español de OWB version 10.1.0.4
Gracias
Es complicado encontrar
Subido por Carlos el 23 Junio, 2007 - 14:21
En respuesta a amigos : podrian facilitar por Anonimo (no verificado)
Es complicado encontrar documentación en castellano sobre estos temas. De todas maneras, mientras esperamos a que alguien publique el manual en español, podemos consultar la Documentación oficial de Oracle sobre Warehouse Builder . Oracle publica sus documentos tanto en formato PDF como en HTML, e incluso te puedes descargar la librería completa. Es especialmente interesante el manual Oracle Warehouse Builder User's Guide Carlos Fernández Analista de sistemas
Ref: Documentacion De Oracle
Subido por Erick Castañón… (no verificado) el 24 Enero, 2008 - 13:37
Es muy necesario para mi carrera obtener toda la información posible que exista en castellano de Oracle y especialmente interesante el manual Oracle Warehouse Builder incluyendo la guia de usuario y sus ejemplos.
depurar las tablas de auditoria
Subido por carloscermelli (no verificado) el 3 Octubre, 2008 - 21:52
En respuesta a Ref: Documentacion De Oracle por Erick Castañón… (no verificado)
idem amigo ne4cesitop info de OWB en español:
necesito depurar las tablas de audit : "WB_RT_AUDIT" que crecen a lo loco en mi aplicacion, tambien si tienen a mano como configurar que no se sigan registrando tantos eventos.. helpme gracias... carloscermelli@gmail.com
OWB
Subido por gladis el 13 Agosto, 2009 - 12:09
Hola,
a mi también me gustaría obtener más información sobre esta herramienta.
si tenéis información en castellano, arquitectura, integracion con otras aplicaciones, etc agradezco que la compartáis.
Muchas gracias.
Documentación OWB en castellano
Subido por Carlos el 13 Agosto, 2009 - 13:22
En respuesta a OWB por gladis
En la web oficial de Oracle se puede encontrar algún documento en castellano. No entran demasiado en detalle, pero al menos para ver cómo se organiza OWB a nivel de arquitectura, o para ver por donde van los tiros con algunas opciones pueden servir:
Información General sobre Oracle Warehouse Builder 11g
Opción Data Quality de Oracle Warehouse Builder
Opción Empresarial ETL de Oracle Warehouse Builder
OWB
Subido por Anonimo (no verificado) el 13 Agosto, 2009 - 13:38
En respuesta a Documentación OWB en castellano por Carlos
Hola,
ya tenía conocimiento de estos documentos, pero la verdad, es que no hay mucha información técnica en ellos.
Gracias por tu ayuda.
Totalmente Carlos. Lo mismo
Subido por Alfonso (no verificado) el 13 Agosto, 2009 - 17:10
Totalmente Carlos.
Lo mismo me esta pasando ahora a mí con: IBM DB2 Warehouse V9.5, lo hay nada de tutórales en castellano.
Pero no me sorprende ya que en la versión anterior me pasó exactamente lo mismo, es más se formo un foro de DB2 (http://db2ug.byethost18.com/ ) el primero de Latinoamérica para unir/difundir/ todo lo referente a DB2.
Alfonso, he abierto un tema
Subido por Carlos el 25 Junio, 2010 - 18:30
En respuesta a Totalmente Carlos. Lo mismo por Alfonso (no verificado)
Alfonso, he abierto un tema para compartir recursos en castellano sobre DB2, seguro que tú también nos puedes aportar alguno más.
Un saludo,