Duda con opción REMOVE

Ver el tema anterior Ver el tema siguiente Ir abajo

Duda con opción REMOVE

Mensaje  equipoBI el Vie 28 Ago 2009, 12:26

Buenos días,

Tenemos una duda respecto a cómo utilizar la opción REMOVE de los cubos.

En nuestro caso necesitamos hacer un proceso de limpieza pero basado sólo en los valores de 3 dimensiones (el resto de valores de dimensiones nos da igual, con que coincidan esas 3 ya sabemos que hay que borrar independientemente de las otras dimensiones que pueden haber cambiado).

El caso es que nos planteábamos si no sería más sencillo hacer un script SQL del tipo

delete from cubo where dim_uno = (select dimension_key from dim_uno where campo1=X and campo2=Y)
and dim_dos = (select dimension_key from dim_dos where campo3=A and campo4=B)
and dim_tres = (select dimension_key from dim_tres where campo=J)


o si es posible a través de la opción REMOVE montar una correspondencia que borre el cubo pero si coinciden los valores de esas 3 dimensiones (aunque los de las otras dimensiones hayan cambiado).

Gracias de antemano

equipoBI

Cantidad de envíos : 128
Fecha de inscripción : 24/02/2009

Ver perfil de usuario

Volver arriba Ir abajo

Re: Duda con opción REMOVE

Mensaje  bvillamor el Lun 31 Ago 2009, 14:47

Hola,
puedes hacer una correspondencia que usando como origen el cubo, filtre las filas que deseas borrar, esa filas las envías de nuevo a un operador de cubo que haga referencia al mismo cubo y con la opción de carga REMOVE borrará todas las filas que hayan salido del filtro.

Saludos,

Begoña.

bvillamor

Cantidad de envíos : 388
Localización : Madrid
Fecha de inscripción : 18/02/2009

Ver perfil de usuario http://www.adiante.es

Volver arriba Ir abajo

Re: Duda con opción REMOVE

Mensaje  equipoBI el Mar 01 Sep 2009, 11:05

Hola Begoña,

Estamos intentando hacer lo que nos indicas pero no acaba de funcionar.

Nuestra idea inicial fue poner en la correspondencia el operador cubo y la tabla origen, hacer un join entre ambos por los campos que tienen que coincidir y así filtrar las filas, y de ahí pasárselas de nuevo al operador cubo.

Como esto no daba resultados, probamos algo más sencillo: pintar el mismo cubo dos veces y entre ellas hacer un filtro para coger sólo los registros que cumplan determinadas características

Es decir cubo -> filtro -> cubo y en el filtro (indicador > 1 and dim1.campo1 = 'X' and dim1.campo2='Y')

Hemos analizado el código que se genera y no lo entendemos. Hace una select del cubo con sus dimensiones y luego la cláusula where es del tipo

WHERE
( "CUBO"."DIM_1" IS NOT NULL ) AND
( NULL = 'X' ) AND
( NULL = 'Y' ) AND

( "CUBO"."INDICADOR" >= 1 ) AND
( "DIM_1"."CAMPO1" = NULL ) AND
( "DIM_1"."CAMPO2" = NULL ) AND
( "DIM_2"."CAMPO1" = NULL ) AND
( "DIM_3"."CAMPO1" = NULL ) AND
( "DIM_3"."CAMPO2" = NULL ) AND
( "DIM_3"."CAMPO3" = NULL ) AND

...

y así sucesivamente para todas las dimensiones.

¿Por qué aparecen en la condición de NULL='X', NULL='Y'? Nosotros lo que querríamos conseguir en la where sería algo del tipo

where
( "CUBO"."INDICADOR" >= 1 ) AND
("DIM_1".CAMPO1 = 'X') AND
("DIM_1".CAMPO2 = 'Y')

Y que el where terminase ahí, que sólo se incluyesen condiciones de los atributos de las dimensiones que estamos poniendo nosotros específicamente en el filtro, y no de todas las dimensiones.

¿Puede ser que tengamos montado algo mal?

Gracias de nuevo

equipoBI

Cantidad de envíos : 128
Fecha de inscripción : 24/02/2009

Ver perfil de usuario

Volver arriba Ir abajo

Re: Duda con opción REMOVE

Mensaje  bvillamor el Mar 01 Sep 2009, 12:49

Hola,
si en la correspondencia usas como origen la tabla del cubo en lugar del cubo, ¿genera el sql que necesitas?

Begoña.

bvillamor

Cantidad de envíos : 388
Localización : Madrid
Fecha de inscripción : 18/02/2009

Ver perfil de usuario http://www.adiante.es

Volver arriba Ir abajo

Re: Duda con opción REMOVE

Mensaje  equipoBI el Mar 01 Sep 2009, 13:46

Pero si tenemos como origen la tabla del cubo y como destino el operador, ¿cómo obtenemos las claves de negocio de cada dimensión?

Hemos intentando también utilizar tabla como origen y destino, pero no tenemos muy claro cómo indicar que se borren los datos. Cambiamos el tipo de carga de la tabla destino a DELETE y en "Filtro destino para supresión" ponemos una condición de prueba.

Al validar se nos muestra el error "Si la coincidencia por restricción está definida en Sí para CUBO, se debe asignar la correspondencia de al menos un juego de restricciones definido para CUBO para cada atributo compuesto".

La verdad es que el error no es nada descriptivo... ¿Sabríais decirnos qué está ocurriendo?

Gracias!

equipoBI

Cantidad de envíos : 128
Fecha de inscripción : 24/02/2009

Ver perfil de usuario

Volver arriba Ir abajo

Re: Duda con opción REMOVE

Mensaje  equipoBI el Jue 03 Sep 2009, 10:18

Hola de nuevo,



Creemos que ya hemos conseguido lo que necesitábamos.

Hemos utilizado como origen y destino la tabla física del cubo, y para seleccionar las claves de negocio de cada dimensión hemos hecho un busca_claves a partir de los datos de una tabla origen que es la que nos identifica qué registros del cubo hay que borrar.

Es decir,

tabla origen -> busca_claves -> join con tabla cubo (por las dim key que necesitamos) -> tabla cubo_1

En las propiedades de la tabla cubo hemos marcado:

- Tipo de carga : DELETE
- Filtro destino para supresión: vacío (al hacer el join ya sólo llegarán las filas que queremos borrar)
- Coincidencia por restricción: NO_CONSTRAINTS (queremos que prime el criterio de borrado que definamos nosotros).

Además, en cada uno de los atributos del cubo que queremos que se consulten para hacer el borrado hemos marcado "Coincidir columna al suprimir"='Sí', para que se tengan en cuenta al hacer el delete.

¿Veis algún problema en este enfoque que nosotros no hayamos detectado?

Gracias de antemano

equipoBI

Cantidad de envíos : 128
Fecha de inscripción : 24/02/2009

Ver perfil de usuario

Volver arriba Ir abajo

Re: Duda con opción REMOVE

Mensaje  Contenido patrocinado Hoy a las 03:49


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.