viernes, enero 05, 2007

Integridad Referencial en DW, ¿Si o no?

Voy a intentar exponer de la forma más sencilla posible el eterno dímela sobre el uso de la Integridad Referencial sobre un Data Warehouse.

He optado hoy por escribir algo sobre ello por varias causas: nunca encontré nada al respecto en ningún lugar o por lo menos de forma clara, e incluso grandes “Gurus”, el mismo Kimball como consultor CONSULTOR, tampoco me contesto claramente a dichas preguntas. Se limito a decir un “depende”, desde luego así no se equivocó.

Para empezar debemos partir del concepto claro de que al DW solamente se accede, por los usuarios, para la consulta de información. Por lo tanto, inicialmente no se justifica controles para garantizar la consistencia e integridad de la información.

Los problemas de consistencia e integración nos pueden aparecer en los procesos de altas, bajas y modificaciones. Estos dos últimos casos más que discutibles conceptualmente en un DW, pero siempre existen excepciones y causas de fuerza mayor.

El tener “levantada” la integridad referencial tiene lógicamente las ventajas de todos conocidas, pero para procesos de carga masivos nos ocasiona o nos puede ocasionar graves problemas. Las cargas son radicalmente más lentas, debido a las gestiones que debe realizar la propia BBDD, el orden de las cargas tiene que estar adecuado a las mismas, etc, etc.

También en función del volumen de información a cargar y de la ventana temporal que nos hubieran dejado para ello, nos aporta suficientes “input” como para decidir definir IR o no.
Una consideración muy especial la podríamos obtener por asegurar la calidad de los procesos ETL desarrollados. Si dichos procesos están REALMENTE bien desarrollados, en todos los aspectos (calidad, depuración de errores, parámetros de control de ejecución, etc.), entonces y solo entonces nos podríamos plantear no tener declarada una IR, de escasa necesidad real en el día a día del DW. ¿Estamos seguros de que mis ETL son muy buenos?.

Lo que no tiene especial sentido, o por lo menos nos puede ocasionar más dolores de cabeza que beneficios, es disponer de IR y cuando vamos a lanzar los procesos de carga (inicial, histórica, periódica o lo que queráis) es desactivar dicho control, proceder con la carga masiva y luego intentar levantar la IR. Esta solución la plantea algún fabricante de BBDD, se nota que no han tenido cargas masivas de Teras. La IR no podrá activarse… ¿Y ahora qué? ¿Qué limpia el desastre?, Al final existen soluciones para todo, pero bajo mi opinión estamos perdiendo un tiempo escaso y caro. ¡¡¡Ojo a esta solución!!!.

También el uso de la IR, tiene mucho que ver con el tipo de modelo de datos y de base de datos. Entendiendo que dicha cuestión se centra exclusivamente en las BBDD relacionales, pues las multidimensionales propietarias… no tiene sentido.

Volviendo al tema de los modelos. Si estamos, y lo siento, bajo “estrellas” solamente podremos activar IR entre la tabla de hechos y sus dimensiones asociadas. Pero no podremos definir ni gestionar relaciones de padres e hijos, y además con IR, entre los campos de una misma tabla. Ojo, que esta cuestión suele ser olvidada, ya estamos obligados a hacer bien la carga de una dimensión sobre una única tabla (estrella) vía ETL o manual, pues aquí nadie nos va a ayudar.

Si por el contrario usamos modelos copo de nieve, afortunadamente podremos usar todas las ventajas de la IR y podremos descargar, si fuera nuestra solución definida, de controles y procesos complejos a los procesos ETL.

“Ante la duda …” (y no empecemos) monten, si pueden, integridad referencial, no olviden que si cargan basura sacarán basura.

José María Arce

miércoles, enero 03, 2007

LA CALIDAD TIENE UN PRECIO

Corren malos tiempos para la consultoría, me atrevería a decir que estamos en crisis.

Aquellos años en los cuales los consultores eran CONSULTORES (en mayúsculas intencionadamente) ya han pasado. Los años en los que las tarifas no tenían casi límites y todo se vendía ya han pasado. Estamos ante un nuevo reto, ante nuevos cambios.

Todo ello es fruto de muchas cosas: de la globalización (este termino me encanta, pues siempre tiene la culpa de todo), de la mayor información de los clientes (Internet, eventos, etc…) y de su mayor preparación, etc. Y también, porque no, de algunas estrategias empresariales del pelotazo, el vender caro y con recursos humanos cada vez de menor preparación, es decir, personal con muy poca experiencia para abaratar los costes salariales.

El cliente, por su parte, también ha participado en este caos. Pues ha alimentado este ciclo, cada vez pedía las cosas más baratas y en menor tiempo, lo cual derriba en una menor cualificación de las personas y lamentablemente en una notable bajada de calidad de los trabajos. Eso sí, a nadie le gusta reconocerlo.

Ahora intento recordar si alguna vez un cliente, al entregarle una oferta, me ha preguntado -¿Me aseguras que el proyecto saldrá bien?- creo que jamás, sus preguntas siempre han sido: ¿no puede ser mas barato?, ¿por que motivo existe esta actividad?… ¿y si la quitamos?, ¿no valdría con recursos de menos nivel?, etcétera.

En estos momentos, bajo mi entender, la situación comienza a ser difícil de gestionar. Por un lado tenemos recursos cada vez más caros, eso si pretendemos tener buenos profesionales, por otra lado, los clientes que no solamente te marcan sus tarifas (en ocasiones ridículas) si no que también te dicen como quieren las cosas. Además tenemos una preocupante proliferación de nuevas “empresas” oportunistas, ya se sabe “a mar revuelto ganancia de pescadores”. U otras compañías cuyos desarrollos se realzan en países de bajo coste salarial.

Y por si todo esto no fuera suficiente, cuando hablas con un cliente, lo primero que contesta es “yo ya tengo uno”. Es decir, es muy difícil “vender” algo.

Para aquellos que ya han leído mis reflexiones anteriores, ya he comentado lo que realmente suelen tener los clientes, hablando de Business Intelligence y en concreto de Data Warehouse, sacos de datos más o menos bonitos y estructurados… poco más.

Hace pocos días me reuní con un directivo de una importante empresa del ámbito bancario, me proponía unos perfiles para cubrir sus necesidades de cierto peso y a unas tarifas…, creo que lo mejor es comentar este punto. Un experto en temas de BI cuya misión sería ser el jefe de proyecto y cuya tarifa tope era 24€/ hora. ¿Os parece mucho? ¿Sabéis cuanto me cobra mi profesor de Inglés? 30€ hora, ¿Sabéis lo que os cobran en un taller de coches de media? 60€ hora., ¿Qué nos costaría un hora dentro de un taxi?, para terminar la comparativa, tarifa del fontanero el pasado mes de octubre de 2006, 100€ para primera hora y 70€ el resto.

Soy el primero que entiendo que debemos buscar un entendimiento entre todos los actores, debemos conseguir que ganamos ambas partes, soy el primero que comienza a tener cierta bofia al término consultor, e incluso uno empieza a avergonzarse de llevar dicha etiqueta. Puesto, categoría o responsabilidad que era un orgullo realizar hace unos años y que ahora ciertamente esta en crisis.

En otra ocasión, hace año y medio (estaba yo en otra firma), un alto cargo de una de las empresas de este país, me pidió abiertamente un par de personas durante el máximo tiempo que pudiera, que él entendía debería ser como mínimo 2 meses, para evaluar su nivel de conocimientos en temas de Data Mining. Para ello tenía pensado desarrollar un pequeño proyecto, con utilidad para él, y en el caso de salir bien y suponiendo que en el futuro tuviera algún proyecto nos tendría en consideración para posibles contrataciones.

¿Os podéis hacer una idea del coste real para una compañía de semejante acción? Y encima sin tener proyecto a posteriori. Pensemos que un “consultor” bueno en Data Mining y con experiencia real, de dos o tres años, tiene una banda salarial muy por encima de los 40.000€, eso de coste directo, pensemos en los indirectos y nos podremos hacer una idea del coste real y del coste de la supuesta acción de “preventa”.

Si entendemos la palabra crisis por su significado “cambios”, empecemos todos a cambiar, “Zapatero a tus zapatos” (frase sin connotaciones políticas), dejemos a cada profesional que desarrolle su actividad de la mejor manera posible.

No conviene caer en el error de intentar hacer un proyecto en tres meses cuando debería tardarse cinco meses, y mucho menos bajando la calidad del servicio.


Estimado señor cliente, tampoco debería imponer unas tarifas tan abusivas, las cuales entiendo que van contra sus propios intereses a medio y/o largo plazo.

Creo que nos queda mucho camino por delante, creo que en nuestros negocios nos falta mucha “inteligencia”, debemos encontrar entre todos formulas que nos permitan ganar todos “Win to Win”.

José María Arce

Seguidores