jueves, 10 de julio de 2008

Integration Services - Uso de Look Up como Slowly Changing Dimension

En este post voy ha hablar de un uso que se le puede dar al componente Lookup (LKP) que me parece muy interesante y útil. Me he decidido a escribirlo porqué me ha servido de solución en muchas ocasiones y en los últimos días ha ayudado a mis compañeros de trabajo en sus proyectos.

El uso más típico del componente LKP de SSIS es para añadir datos de una tabla a los datos que estamos tratando en un flujo dentro de un Data Flow Task (DFT) en una relación 1 a 1, en otras palabras, al hacer una JOIN. Esto, unido a las diferentes posibilidades de gestión de errores que tiene el componente, nos permite hacer una gestión de valores muy completa.

Pero hay una posibilidad de utilizar este componente que me parece más interesante, y es como sustituto del componente Slowly Changing Dimension (SCD).

Yo personalmete le veo dos situaciones en las que es mejor utilizar el LKP en vez del SCD:
  • En la primera realmente no es una alternativa, sino que el SCD no funciona, y esta solución te saca del apuro. Es la situación en la que la Business Key de la tabla de destino del DFT es un Identity, cosa que el SCD no acepta. En este caso el LKP nos daría la funcionalidad que buscamos.
  • El segundo caso es en el que busquemos un procesamiento de datos más rápido, ya que fijando la cache del DFT podemos obtener un mejor rendimiento que el del SCD para volumenes de datos elevados.
Para poder hacer este uso del LKP es muy sencillo, simplemente hemos de aprovechar la gestión de errores del LKP para detectar que filas de las que nos llegan no estan en la tabla de destino y portanto hemos de insertar, y cuales hemos de tratar como existentes, y por tanto darles un trato de actualización.

La configuración del LKP es sencilla, veamosló paso a paso:
  • Paso 1: Indicar que la tabla con la que relacionar el flujo de datos que recibimos en el LKP es la de destino del proceso (igual que si aplicaramos SCD).
  • Paso 2: Indicar que queremos relacionar la tabla de destino y el flujo de datos mediante la Primary Key de la tabla de destino.
  • Paso 3: Configurar la salida de error, indicando que en caso de no encontrar coincidencia redireccione la fila erronea por la salida de error.

  • Paso 4: Crear un OLDB Destination cuya tabla sea la de destino del proceso y conectarlo con la salida de error del LKP. Esto hará que cuando el LKP no detecte coincidencia de Primary Key derive por la salida de error la fila "erronea", haciendo la misma función que la salida de New del SCD.

  • Paso 5: Crear un OLDB Command, construir la consulta SQL de update y conectarlo con la salida del LKP. De esta manera toda fila cuya Primary Key coincida con una existente en la tabla de destino irá por la salida normal del LKP e irá al OLDB Command de actualización, haciendo la misma función que la salida de actualización del SCD. En este punto podemos darle toda la funcionalidad que queramos a base de conectar OLDB Commands, pudiendo crear, por ejemplo, la misma funcionalidad que la salida Historical del SCD.

Con estos simples pasos ya tenemos un nuevo uso para el LKP. ¡Espero que os resulte tan útil como a mi!

lunes, 7 de julio de 2008

Certificado de aplicaciones en Windows Vista

Todos estamos familiarizados en ver una etiqueta en los ordenadores que compramos que nos indica que es compatible con Windows Vista. Esto nos da la certeza que si en este ordenador instalamos Windows Vista, nos funcionará correctamente y podremos trabajar con él con garantías de un rendimiento aceptable.

¿Sabíais que en software también puede obtenerse este logotipo?

Si nos remontamos a la aparición de Windows Vista, todos recordaremos los problemas que teníamos con la mayoría de aplicaciones que usamos para el día a día, ya que la mayoría no eran compatibles con esta nueva versión del sistema operativo. Todas las compañías de software corrieron a adaptar sus aplicativos a este nuevo sistema operativo y poco a poco todos pudimos volver a usar nuestros programas favoritos, pero…

¿Qué imagen nos dio todo esto? ¿Qué pensamos cada vez que nos sale un aviso de que el software no está validado por Microsoft o que no es compatible con Windows Vista?

Sé que muchos pensareis que todo es culpa de Microsoft, y su “manía” de hacer incompatible su sistema operativo con el software de toda la vida, pero esto tiene una solución que podemos aplicar al desarrollo de nuestras aplicaciones.
Hace un par de meses llegó a mí un proyecto de obtención del Logo Vista para el aplicativo de un cliente. Al principio he de reconocer que fui un poco escéptico con el tema, pero una vez acabado el proyecto con éxito, veo que tiene mucho sentido certificar aplicaciones con este logo.

¿Qué es el Windows Vista Logo Program?

Microsoft ha apostado por crear un programa que permite asegurar la fiabilidad de las aplicaciones sobre su sistema operativo. Este programa nos permite validar que nuestra aplicación va a funcionar correctamente sobre este sistema operativo.

Hay dos certificaciones, una más básica y otra más exhaustiva:

• El logotipo "Funciona con Windows Vista" es una designación de compatibilidad diseñada para fomentar la compatibilidad con Windows Vista para la generación actual de aplicaciones basadas en Windows. Para recibir esta designación, las compañías de software prueban sus aplicaciones para asegurarse de que cumplen las instrucciones del programa.

• El logotipo "Certificado para Windows Vista" es una designación de compatibilidad para aplicaciones y dispositivos que han superado un riguroso programa de pruebas en equipos que ejecutan Windows Vista. Los requisitos técnicos para esta designación se centran en cuatro áreas básicas: confiabilidad, seguridad, compatibilidad con Windows Vista y sistemas operativos futuros e instalación y desinstalación.

El primer logotipo es un proceso de validación que puede realizar la misma empresa que desarrolla el software, y solamente certifica que el aplicativo va a funcionar en Windows Vista. Para obtener el segundo logotipo la aplicación ha de pasar unos test que realiza una entidad certificadora externa designada por Microsoft, y obtenerlo garantiza además que el aplicativo va a funcionar correctamente en Windows Vista, va a aprovechar el 100% de sus características, va a tener un excelente rendimiento, va a ser de uso fácil para el usuario y va a proporcionar una experiencia de usuario óptima.

¿En qué nos puede ayudar como desarrolladores?

En mi opinión esta filosofía nos ayuda con la calidad de nuestras aplicaciones. Cuando vamos a un cliente y le decimos que nuestra aplicación ha sido certificada y le enseñamos el logotipo de Microsoft le da seguridad y tenemos un sello de calidad. Por otro lado, el simple hecho de hacer internamente, por los propios equipos de desarrollo, los test de “Funciona con Windows Vista” hace que estemos seguros que estamos haciendo las cosas bien.

Para más información:
http://support.microsoft.com/kb/933305

Aquí podréis encontrar el listado de aplicaciones que han apostado por este programa de certificación.

Un poco de propaganda de mi empresa:
http://www.raona.com/Actius/WindowsVistaLogo/tabid/300/Default.aspx

Aquí podréis encontrar el caso de éxito de mi empresa y la apuesta que estamos haciendo por aplicar este valor de calidad en nuestros proyectos.