Trabajo con la ventana PowerPivot 2012 – Design – Fechas (1)

Posted by anabisbe on abril 23, 2012
Power Pivot, SQL Server 2012

Hoy vamos a finalizar el recorrido por la ficha Design de la ventana PowerPivot SQL Server 2012. El único grupo que nos queda por recorrer es Mark as Date Table.

Esto es una gran novedad dentro de PowerPivot, se trata de definir una tabla que va a realizar función de fecha, lo que nos va a permitir utilizar filtros avanzados con funciones de fecha en tablas dinámicas que actúen en datos almacenados sobre tablas PowerPivot. Nuestro objetivo es definir una tabla con función Date, es decir Mark as Date Table, y ver el efecto que produce esto en la tabla dinámica. Para ello vamos a preparar e importar datos nuevos a nuestro modelo de datos creado con PowerPivot y vamos a crear columnas calculadas sobre tablas desde la ventana PowerPivot.

Preparación de datos

Tenemos una hoja de MS Excel 2010 con los datos preparados.

La primera columna contiene las fechas y su tipo es date, no es numérico como hacíamos antes (SSAS 2005 a 2008R2), según se explica en la documentación de PowerPivot , es necesario evitar el uso de claves numéricas surrogadas ehhh???  :( Esto es justo lo contrario a lo que hacemos hasta 2008R2 cuando creamos nuestro Datawarehouse !!! Lo que ocurre es que estas claves numéricas no son necesarias en PowerPivot y puede ser más complicado partir de claves surrogadas para enlazar luego con orígenes de datos diversos que vienen con formato Date. Veremos que solamente se puede seleccionar una tabla con función de fecha si se selecciona una columna tipo Date que la defina.

Por cierto, que si vamos a continuar trabajando con SSAS modelo multidimensional, trabajar con claves numéricas para tratamiento de fechas, nos sigue valiendo y sigue siendo lo más óptimo, no olvidemos, modelos diferentes y enfoques diferentes :) .

El resto de las columnas de la hoja Excel se han obtenido mediante fórmulas, para dar contenido de tiempos a nuestra tabla, veamos

Importamos los datos a PowerPivot.

Cambiamos el formato de fecha para deshacernos de las horas que no nos hacen falta. Esto lo hacemos en la tabla de tiempos que acabamos de importar y en la tabla donde tenemos columnas de fecha que vamos a relacionar, SalesOrderHeader.

Sobre el formato de la fecha, otra recomendación de la mano de Microsoft. Siempre que no sea necesario el formato de la hora, es mejor no tenerlo en cuenta, porque podría traer como consecuencia, errores o no coincidencias.  Hay que tener en cuenta que en MS Excel hay dos funciones que devuelven el momento actual:

Today() devuelve la fecha actual sin precisar la hora, 0:00:00

Now() devuelve la misma fecha, la actual; pero con la hora precisa

Al importar estos en PowerPivot vemos que son claramente distintos y no se establecería coincidencia.

Y ya que estamos con las buenas prácticas, vamos a por otra, Utilizar una tabla maestra de fechas :) eso sí !! Aquí no hay cambio de concepto con lo que hacíamos en SSAS, relacionar todas las fechas contra una única Dimensión de tiempos. Por eso preparé un juego de datos, estableceremos tantas relaciones como sean necesarias con nuestra única tabla de Tiempos.

En la próxima entrada vamos a utilizar DAX para crear columnas calculadas y así probar el efecto de Mark as Date Table de la ficha Design de la ventana PowerPivot para SQL Server 2012.

Tags: , , ,

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>