No me carga ningún dato en el almacén al ejecutar el flujo de proceso

Hola buenas, estoy siguiendo una guía de Oracle para intentar hacer el ejemplo de las Ventas en OWB 11gR1.

Ya creé todos los objetos necesarios y los desplegué, pero al ejecutar mi flujo de proceso no se me cargó ningún dato ni en las Dimensiones ni en el Cubo.

 

Una duda, yo al tener sólo un nivel en las dimensiones eliminé la jerarquía por defecto que me asignaba para evitar un error que aparecía. ¿Esto puede estar influyendo ahora a la hora de ejecutar el flujo de proceso para la carga de datos?

 

He hecho algunas capturas por si me podeis ayudar así mejor:

- Al iniciar el flujo de proceso (de forma correcta), consigo este fichero de detalles:

http://img704.imageshack.us/img704/5688/cargasindatos.jpg

- Al consultar los datos almacenados en la dimensión Dependiete:

http://img145.imageshack.us/img145/4571/nodatosdimesion.jpg

- Al consultar los datos almacenados en el cubo:

http://img716.imageshack.us/img716/9723/nodatoscubo.jpg

 

Si alguien sabe lo que me puede estar ocurriendo...

 

Muchas gracias y un saludo.

 

Una cosa que he olvidado comentar es que, para evitar que me diesen warnings al desplegar los objetos, además de asegurarme de todos los tipos de datos (y sus tamaños), he configurado las tablas externas para que trunquen los blancos de la izquierda y derecha.

 

Igual se debe a esto, no lo sé...

 

Gracias.

En respuesta a por EmilinDaSilva

Antes de nada comentarte que las advertencias de OWB te las has de tomar como algo más que advertencias. Los warnings CursorFetchMapTerminationRTV20007 puedes contarlos como errores, por eso no te carga nada.

De lo que comentas no he entendido bien lo del truncado de los blancos. Si se hace antes de que se lance este proceso no debería afectar para nada, pero si es algo dinámico como un trigger o algo similar sí que podría tener algo que ver, en ese caso tendrás que explicarnos algo más.

De todas maneras, independientemente del tema de los blancos, revisa de nuevo las longitudes de los campos, porque tienes advertencias sobre valores demasiado grandes, comprueba también que las conversiones de fechas o de tipos de datos estén correctas, prueba a 'deployar' de nuevo el package CARGA_VENTAS, y cruza los dedos al ejecutar ;)

Ya nos contarás..

En respuesta a por Carlos

Gracias por contestar,

Sobre el truncado de los blancos, pues lo hice porque me lo recomendaron en otro foro para evitar que me saliesen warnings del tipo "El tamaño de la columna des demasiado larga..." y no es más que, cuando tienes un campo de una tabla externa de tipo VARCHAR2(30) y el campo al que hace referencia en la Dimensión también de VARCHAR2(30), al transferir los datos reales que contiene la tabla externa, evitar que OWB te rellene con "blancos" hasta llegar a 30. Con esto conseguí desplegar y generar (código) todos los objetos sin ningún warning. Sobre el momento en que lo hago, pues antes de la ejecución, es decir:

- Mapeo de datos del fichero
- Creación de la tabla externa
- Configuración de la tabla externa para que trunque por izquierda y derecha
- Creación de dimension
- ...
- Ejecución del Flujo de Proceso

Sobre conversiones de tipos de datos no hago ninguna (es un ejemplo sencillito para hacer un DWh rápidamente).

En cuanto a lo que dices de "deployar" de nuevo el paquete, pues si lo hago sobre "todos los objetos" no me deja porque ya existen en la ubicación esos objetos, y si lo hago sobre "sólo cambiantes" al intentar desplegarlos me salta este error:

"RTC-5270: Plan de Actualización no válido.
Se ha abortado el despliegue debido a un problema con la generación de un plan de actualización válido."

Y si miro en el fichero de detalles, veo que el error me lo da sólo en las tablas relacionales, me pone:

"oracle.sysman.vbo.VboDataSourceUpdateException".

Así que como habré cometido algún error, a pesar de asegurarme de que están bien todos los tipos de datos, volveré a hacer el proyecto otra vez de 0. En cualquier caso, si alguien supiese algo que pudiera estar pasando le agradecería que me lo comentase.

Muchas gracias y un saludo.

En respuesta a por EmilinDaSilva

Nada... he vuelto a rehacer todo el proyecto entero, incluyendo nuevas localizaciones y usuarios y, aunque he conseguido que no de ningún error ni warning al ejecutar el flujo de proceso (pone en todas correcto), cuando voy a mirar si las Dimensiones y el cubo tienen datos, no aparece nada de nada...

 

Adjunto el fichero de detalles, en el que se puede observar que se han fusionado 5 filas, pero insertado ninguna... no sé.

 

http://img689.imageshack.us/img689/3862/correcto.jpg

 

Ya no sé qué más hacer. Lo que estoy haciendo para comprobar los datos es, desde el Centro de Diseño, click derecho sobre la Dimensión o Cubo en cuestión y "Datos" (imagino que será así).

 

Y a la hora de desplegar las Dimensiones y el Cubo, puse la opción "Sólo Catálogo", tampoco sé si tendrá algo que ver...

 

 

Gracias.

En respuesta a por EmilinDaSilva

Sobre el tema de los blancos, como lo haces antes de la ejecución del flujo no tiene que afectarte.

Sobre el deploy, para volver a hacerlo, lo que no te debería fallar es seleccionar desde el Centro de Control el objeto que quieres  volver a desplegar, y en Definir Acción seleccionar Borrar. Después le das a 'Desplegar' para que elimine el despliegue (ya sé que suena raro), y luego vuelves a crearlo desplegando con la acción Crear seleccionada.

Opciones de despliegue en el Control Center de OWB

Pero si lo has creado todo de nuevo me temo que llego tarde ;)

Sobre el estado actual, la sensación que da es que no encuentra datos en el origen, porque como tu bien dices ahora no te sale ningún error. Lo de la opción 'sólo catálogo' ahora no caigo en lo que es, pero no me suena muy bien, prueba a cambiarla.

También podrías ejecutar por separado los procesos de carga, probar por ejemplo con el de NIVEL_LUGARES haciendo un seguimiento del movimiento de los datos, y en algún sitio has de encontrar algún filtro, join incorrecta o restricción que no te deje pasar los datos.

Puedes revisar también la propiedad 'Tipo de carga' de las tablas. Como son datos de prueba seguramente la opción que más te conviene es el modo TRUNCATE/INSERT para asegurarte de que se recarga todo de nuevo cada vez que ejecutas.

Y de momento no se me ocurre nada más, pero yo creo estás en mejor situación que ayer, el error que tenías no era de los habituales de OWB.

En respuesta a por Carlos

Gracias Carlos de nuevo.

 

En lo de seleccionar la opción Borrar en los despliegues no había caído, pero me será de gran ayuda en el futuro seguro.

 

Sobre desplegar las Dimensiones y el Cubo en "Sólo Catálogo" lo hice porque así lo pone en la guía que sigo de Oracle, donde se explica esto es justo en la mitad del documento:

http://www.oracle.com/technology/obe/11gr1_owb/owb11g_update_getting_st…

 

Y cuenta que así, en teoría, se podrían visualizar los datos mediante el Visor, que es como lo estoy mirando.

 

Cuando dices de ejecutar por separado los procesos de carga, ¿qué se supone que debería hacer?¿Ejecutar desde el Centro de Diseño por ejemplo la Dimensión o crearme un flujo de proceso en el que únicamente se cargue la Dimensión, desplegarlo y ejecutarlo? Es que como verás, no tengo mucha idea de todo esto...

 

No sé cómo se haría lo que dices del seguimiento de los datos, aquí no sé hacer trazas, pero una cosa que he observado es que, al intentar ver los datos que tenían las tablas externas, éstas están vacías, cosa que no me pasaba días atrás...

¿Cómo podría hacer una traza o algo parecido? Porque lo único que se me ocurre es ir mirando si en el recorrido de los datos, van llegando los datos con el Visor, aunque esto no me dice gran cosa...

 

En cuanto a lo de revisar la propiedad "Tipo de Carga", no sé desde dónde se hace eso, no lo encuentro. ¿Qué tipo de tablas son las que dices, relacionales o externas?

 

Gracias y un saludo.

Emilio

En respuesta a por EmilinDaSilva

He vuelto a lanzar el flujo de proceso y he observado que para las Fechas sí me funciona. Bueno, las tablas (externa y relacional) tienen los datos cargados, y en la Dimensión aparecen símplemente números del 6 al 10 (uno por cada fila de datos). Esto no sé muy bien a qué se debe, no sé si serán identificadores que asigna OWB automáticamente o qué pero con el Visor no puedo ver en el objeto Dimensión las fechas tal cual las introduje.

Dejo un pantallazo de los Datos de la tabla externa FECHAS:

http://img688.imageshack.us/img688/2503/tablarelacional.jpg

Y aquí uno de los datos que aparecen en la Dimensión:

http://img5.imageshack.us/img5/9376/cargafechas.jpg

 

Para el resto de las dimensiones no entiendo por qué no funciona. He vuelto a ejecutar el flujo de proceso y únicamente se fusionan las filas de las Fechas de nuevo.

 

Gracias.

 

En respuesta a por EmilinDaSilva

Hola otra vez, no sé qué he hecho (estoy tocando algunas cosas) y, como no sé cómo se borran las localizaciones, la segunda vez que creé el proyecto, creé otras nuevas. Ahora creo que tengo algún conflicto entre ellas.

 

El error que me da ahora es éste:

http://img8.imageshack.us/img8/8/erroresnuevos.jpg

 

Pero he detectado una cosa que está mal, y es que se aprecia en color gris y hay que fijarse bien, pone que la localización de evaluación es ALMACEN_VENTAS_LOCATION, y no es esa. Debería ser otra nueva. El caso es que desde el Centro de Diseño lo he cambiado (por cierto no sé cómo se cambian las localizaciones por defecto para un Módulo de Flujo de Proceso) y ahora en teoría tendría volver a desplegarlo, o no?

Aquí se ve lo que digo:

http://img41.imageshack.us/img41/2743/errorlocalizacion.jpg

 

Bien, como para volver a desplegarlo, primero debía eliminarlo, y después volver a desplegar el PK del módulo de Flujo de Proceso. Y al volver a desplegarlo me dió esto warning:

 

RPE-02213: El enlace de base de datos WB_LK_PK se ha desplegado con un nombre que no es compatible con nombres globales porque las instancias de base de datos origen y destino tienen nombres globales idénticos. Debería pedir al DBA que cambie el nombre de la base de datos destino y vuelva a desplegar.
 

 

No sé, ya veré a ver si mañana consigo solucionarlo.. pero si alguien me puede echar una mano se lo agradería.

 

Muchas gracias y un saludo.

 

En respuesta a por EmilinDaSilva

Un gran acierto lo de enlazar el tutorial, así va a ser mucho más fácil entendernos.

Sobre el modo Sólo Catálogo, yo probaría también con el modo 'Deploy All', que también debería generarte los objetos en la base de datos. Así podrás consultarlos directamente desde SQLPlus o cualquier otro software como Toad o Oracle SQL Developer.

Sobre hacerlo por separado me refería a hacerlo paso a paso, tal como se va haciendo en el tutorial. O sea:

- Despliegue de las Tablas Externas.

- Despliegue del Cubo y las Dimensiones

- Despliegue de los Mapeos

- Despliegue del Flujo de Proceso

El seguimiento de los datos me refería simplemente a comprobar, normalmente en la misma base de datos, que todo se va generando según lo previsto. En OWB también hay opciones de debug, pero yo creo que nadie las utiliza porque es más complicado seguir el código que va generando que hacer las cosas por partes e ir revisando 'manualmente'.

De todas maneras, si dices que las tablas externas están vacías seguramente ya has localizado el problema en el primer paso. Está claro que si no tiene datos en las tablas origen no cargará nada. A lo mejor es simplemente un problema en el acceso al fichero csv que alimenta las tablas.

 

Sobre el Tipo de Carga, yo lo he utilizado en tablas relacionales, así que olvídate.

 

Por lo que veo, las fechas no vienen de las tablas externas. Que en la dimensión FECHAS tengas datos y todo te haya ido bien apunta aún más a que el único problema está en la carga inicial de datos en las tablas externas.

 

Sobre el tema de las localizaciones, si has hecho cambios en el entorno de diseño, que contiene las localizaciones lógicas, como el Control Center trabaja con localizaciones físicas que referencian a las lógicas, lo mejor es que vuelvas a definir las localizaciones en el Centro de Control.

Te lo digo de memoria, pero creo que en el arbol de objetos, clickando con el botón derecho sobre los objetos tienes una opción 'unregister' o algo similar que te permite desvincular de nuevo los objetos. Una vez hecho esto, cuando quieras volver a deployar te pedirá de nuevo los datos de conexión y ya lo tendrás registrado de nuevo.

Bueno, espero que alguna cosa te sirva de ayuda y que al final consigas tu objetivo, ya nos contarás..

 

 

En respuesta a por Carlos

Gracias de nuevo Carlos,

sobre lo de cambiar el modo "Sólo Catálogo" por el "Deploy all" lo probaré y ya te comento porque hasta
dentro de 2 semanas no puedo volver a trabajar con esto.

En cuanto a lo de hacerlo paso a paso pensaba que te referías a ejecución, no a despliegue, el
despliegue sí que lo hago paso a paso como se indica en el manual.

También pensé en que el acceso a los ficheros .csv podía estar dándome problemas, lo que me
parece extraño porque este ejemplo es como la tercera o cuarta vez que lo intento y en las
anteriores sí que recuerdo haber comprobado los datos en las tablas externas y ahora he repetido
los mismos pasos, pero obviamente habré fallado en algo. Lo revisaré todo de nuevo.

Sobre el tema de las localizaciones, es algo que me trae un poco de cabeza, así que igual lo
que me comentas del unregister me viene bastante bien, porque creo que es justo lo que quiero,
es decir, eliminar los objetos a los que se está llamando desde el Centro de Control (son antiguos)
y volver a cargar los nuevos datos.

Lo dicho, cuando regrese probaré todas estas cosas y ya os comento qué tal me fue.

Muchas gracias y un saludo.
Emilio

En respuesta a por EmilinDaSilva

Hola otra vez,

ya estoy de nuevo con esto.

Creo que tengo un conflicto como dije en el tema de las localizaciones, ya que en el mismo proyecto, creé un nuevo

módulo que, en teoría debería llamar a unas nuevas localizaciones, pero parece ser que no.

Lo sé porque he probado a anular el registro desde el Centro de Control de la localización antigua que ya no uso y a

intentar desplegar otra vez las tablas relacionales (me ponían no desplegadas, imagino que sería por algun cambio que hice).

Y al desplegarlo me salta la ventana de registrar la

Localización antigua, lo cual indica que en algún sitio está asignado a ella.
He revisado todo bien, y aparentemente todo está bien, así que imagino que habrá alguna manera, que yo no conozco

de cambiar esto.

Había pensado en anular el registro también de la localización buena y empezar a desplegar todo de nuevo.

Si pensais sobre algo que pueda estar haciendo mal comentarmelo.

Gracias y un saludo.
 

En respuesta a por EmilinDaSilva

Hola de nuevo,

ya anulé el registro de la localización y desplegué todos los objetos de nuevo. Salvo en el despliegue del flujo de proceso

que me dieron los siguientes warnings, no hubo más en ninguna.

RPE-02212: El enlace de base de datos WB_LK_PK es de tipo ''nombre fijo''.
Esto se puede considerar como un riesgo para la seguridad ya que expone el nombre de usuario y la contraseña del

usuario destino.

RPE-02213: El enlace de base de datos WB_LK_PK se ha desplegado con un nombre que no es compatible con nombres globales porque las instancias de base de datos origen y destino tienen nombres globales idénticos.
Debería pedir al DBA que cambie el nombre de la base de datos destino y vuelva a desplegar.

Y a la hora de ejecutarlo, pues no me da ningún error ni warning pero sigue comportándose exactamente igual, no me carga

los datos en ninguna tabla externa salvo en Fechas.

Imagino que el único fallo está en el acceso a los .csv pero es que no sé ni cómo depurarlo ni solucionarlo.

Por cierto, me he fijado y he visto que en el icono del flujo de proceso y del origen de datos está gris, imagino que eso tendrá algo que ver no? como que no puede encontrarlo o algo...

Esta es la imagen:

http://img237.imageshack.us/img237/9503/errorcargadatos.jpg

Por favor, si alguien me puede echar una mano se lo agradecería enormemente porque este ya es el último paso que me falta

por dar.

Muchas gracias y un saludo.

 

En respuesta a por EmilinDaSilva

Me alegro que ya estés de vuelta, y que vayan saliendo las cosas.
Yo lo que haría es probar el tema de las tablas externas directamente desde la base de datos, sin que intervenga OWB.

Así podras localizar el problema que hace que no se carguen los datos del csv sin agobiarte por temas del entorno de Warehouse Builder.

Y a malas siempre te queda la opción de montar la carga con tablas normales que lean los datos de un fichero.

Ánimo!

En respuesta a por Carlos

Hola Carlos,

pues lo que me comentas de probar el tema de las tablas externas directamente desde la BD sin que
intervenga OWB, no sé muy bien a qué te refieres, si a consultar o a insertar. En cualquier caso,
desde el SQLPLUS he entrado y he consultado los valores de las tablas externas. Los valores que
contienen son exactamente iguales a los que me muestra OWB.

Voy a probar ahora a insertar directamente los datos desde aquí en las tablas externas para ver
si esto funciona.

En cualquier caso, no sé si tendrá algo que ver, pero cada vez que abro OWB, e intento abrir el
centro de Control o consultar valores de tablas, me aparece un mensaje con lo siguiente:

Fallo de conexión para la ubicación "..."
Se ha devuelto el siguiente error:
Faltan algunos detalles de la ubicación.
Compruebe que la información de la ubicación se ha especificado por completo.
¿Desea editar los detalles de la ubicación?

Seguramente no tenga nada que ver, pero cuando me pasa, le doy a Si, introduzco la clave y ya me
deja entrar. Aunque sea algo sin importancia, como tuve problemas anteriormente con las ubicaciones
y en el mismo módulo estuve usando unas y, después creé otras nuevas, dado que no las puedo eliminar
las tengo como "no registradas" para que no afecten, no sé si estará todo bien, pero creo que sí.

Gracias y ya os cuento.

En respuesta a por EmilinDaSilva

Me refiero a insertar, a crear las tablas externas enlazadas al fichero CSV directamente desde un cliente de base de datos, con SQLPlus, Toad, Oracle SQL Developer, o el que suelas utilizar tú.

Si OWB no te muestra datos en las tablas es que no los hay. Si he entendido bien lo que has ido comentando, yo sigo pensando que el problema tiene que estar en la creación de las tabla externas.

En respuesta a por Carlos

Acabo de observar un par de cosas, no sé si tendrán algo que ver o no.

1- Mi ubicación donde tengo los datos origen (extraidos del fichero csv) tiene como nombre físico ORIGEN y de negocio ORIGEN1, aunque las demás localizaciones también tienen nombre físico distinto al de negocio.

2- El módulo de flujo de proceso que creé he visto que tiene como identificación la ubicación que creé para él y como evaluación la ubicación donde están el resto de los objetos (tablas...).

3- En el explorador de proyectos, me pone como nombre de archivos DEPENDIENTES_CSV ... cuando es Dependientes.csv ¿Lo cambio o eso es normal? Además en sus propiedades ví que como nombre físico y de negocio es DEPENDIENTES_CSV

Creo que en el punto 3 está la clave, voy a probar a cambiar uno y ahora os cuento.

En respuesta a por EmilinDaSilva

Hola de nuevo,

he estado intentando insertar por línea de comandos con SQL Plus los valores en las tablas externas y me devuelve este error:

ORA-30657: operación no soportada en la tabla externa organizada

No sé si se referirá a un problema de permisos o que...

Y sobre lo que me dijiste de enlazar por consola las tablas externas con los ficheros .csv pues no tengo ni idea de cómo se
puede hacer eso, si me pudieses ubicar un poco te lo agradecería.

Y en cuanto a que el problema pueda estar en la creación de las tablas externas, pues no lo sé, pero se puede configurar todo
y, tal y como lo tengo ahora mismo (y desde hace tiempo) es exactamente igual a como se dice en el manual.

También probé lo que me dijiste tú de cambiar el modo de despliegue de las dimensiones de "sólo catálogo" a "desplegar todo",
para poder hacer también consultas desde SQL PLUS u otras herramientas.

No sé, si me puedes ayudar con lo del enlace te lo agradecería mucho.

Muchas gracias y un saludo.

En respuesta a por EmilinDaSilva

 Para crear las tablas externas desde un cliente SQL como SQLPlus o Oracle SQL Developer lo más sencillo es que copies el mismo código que genera OWB. Para ello tienes que utilizar la opción View Code del Control Center. Revisa el apartado Deploying the External Table del manual de Oracle. Se trata de abrir el archivo DDL que genera OWB (EXPENSE_CATEGORIES.ddl, por ejemplo), copiar la sentencia de creación de la tabla externa, y lanzarla directamente desde SQLPlus para comprobar si la tabla se genera correctamente y carga los datos del fichero, o la base de datos devuelve un error ORA-.. más específico que después habría que revisar.

Vigila también con la variable EXPENSE_WH_LOCATION_TO_SOURC_0, puede que si lanzas la sentencia con el mismo usuario que utiliza el Control Center la variable esté definida, pero si no tendrás que cambiarla en la sentencia por el directorio donde tienes el fichero.

Esta es la imagen del contenido del archivo ddl que has de copiar:

DDL de Creación de una Tabla Externa con OWB

 

El resultado ha de ser que después desde el mismo SQLPlus puedas hacer un SELECT * FROM EXPENSE_CATEGORIES y la tabla contenga los datos del fichero. Si no, es que hay un problema con el nombre del fichero, directorio o algo similar, y la base de datos te debería haber devuelto un mensaje de error al hacer el CREATE que nos daría pistas sobre el problema.

 

La otra opción que te comentaba era crear estas dos tablas como tablas normales, no externas, y cargar los datos del fichero con una importación, un proceso de OWB o directamente con sentencias de INSERTs, pero esta es ya la opción desesperada, y no creo que sea necesario porque la creación de las tablas externas tampoco debería ser tan complicada.

 

Disculpa que haya tardado tanto en contestar, pero no he encontrado el momento hasta ahora,

Amigos, nose si me pueden ayudar soy nuevo en esto de WAREHOUSE BUILDER
QUIERO HACER UN PROCESO ETL para cargar archivos EXCEL, pero no tengo idea de como hacerlo, eh tratado de ver tutoriales sin exito:

Nose si me pueden ayudar con uno, quiero crer un flujo de proceso para loq les mencione

Necesito instalar Workflow ?

ayuda por favor