El Data Source View (DSV) no solo nos permite poder indicar de qué tablas deseamos cargar la información en nuestros Cubos de Analysis Services (SSAS), sino que además, podemos añadir campos calculados a dichas tablas (Named Columns) dentro del DSV (sin alterar la tabla en origen) así como utilizar Consultas más complejas (Named Queries) como origen de datos, aprovechando toda la potencia del lenguaje del motor de base de datos que estemos utilizando (T-SQL, PL/SQL, etc.).
Quizás la principal ventaja es que agiliza bastante el proceso de desarrollo de nuestros Cubos, al poder modificar rápidamente el DSV, en lugar de tener que modificar el origen de datos (algo que en muchas organizaciones requiere atravesar un Proceso de Gestión de Cambios no tan ágil y rápido).
En el presente artículo vamos a mostrar cómo alterar el Data Source View (DSV) de un Cubo existente de Analysis Services 2014 (SSAS), sin necesidad de alterar en ningún caso el esquema de la base de datos origen del Data Warehouse subyacente, lo cual resulta más rápido, en lo que a tiempo de desarrollo se refiere (en caso contrario, habría que alterar el esquema de origen, para seguidamente actualizar el DSV, por lo que de seguro que requerirá algo más de dedicación).
Cómo crear una Named Column
La creación de una Columna Calculada (Named Column) en un Data Source View (DSV) es muy sencilla. Tan sólo deberemos seleccionar la tabla del DSV a la que deseamos añadir la nueva Columna Calculada (Named Column), y seleccionar la opción New Named Calculation del menú contextual.
En el diálogo Create Named Calculation, deberemos especificar un nombre para la nueva columna, una descripción (opcional), así como una expresión que represente el cálculo que deseamos realizar. Téngase en cuenta, que la expresión debe escribirse en el lenguaje que utilice el motor de base de datos en el que se almacena dicha tabla. Es decir, si se trata de una tabla de SQL Server deberemos utilizar las funciones y sintaxis de T-SQL, mientras que en el caso de Oracle recurriremos al PL/SQL, por poner un par de ejemplos típicos.
Una vez creada la nueva Columna Calculada (Named Column), veremos que en Data Source View (DSV) aparece representada gráficamente con un icono de una calculadora. Además, si deseamos comprobar el resultado de la ejecución de la misma, podemos utilizar la opción Explore Data del menú contextual de la tabla.
De este modo, forzaremos que se ejecute la correspondiente consulta sobre el origen de datos, y podremos ver el resultado de su ejecución, para así comprobar si hemos conseguido el resultado deseado.
Ahora que ya hemos añadido nuestra nueva Columna Calculada (Named Column), y que hemos verificado que cumple nuestros requisitos, podemos utilizarla en nuestro Cubo y/o Dimensiones. Por ejemplo, podríamos usarla en la Propiedad NameColumn de una Dimensión.
Tras volver a procesar el Cubo y Dimensión afectados, podremos comprobar los resultados obtenidos. En nuestro caso de ejemplo, la Dimensión Cliente (Customer) ya no muestra el código de cliente (Clave), sino que muestra el nombre completo de cada cliente, que se obtiene de la nueva Columna que acabamos de añadir.
Cómo crear una Named Query
Si necesitamos algo más, podemos crear Consultas personalizadas (Named Queries), en lugar de simples Tablas o de Tablas con Columnas Calculadas (Named Calculations). Esto podemos hacerlo de dos modos, creando directamente una nueva Consulta (opción New Named Query desde el menú contextual en el tapiz del DSV), o bien si sustituyendo una Tabla de nuestro DSV por una nueva Consulta (opción Replace Table with New Named Query del menú contextual de la Tabla correspondiente).
En el diálogo Create Named Query, deberemos escribir la consulta SQL que deseemos utilizar, para lo cual podremos utilizar las ayudas gráficas que nos provee este diálogo, o bien escribir manualmente la consulta SQL. Deberemos recordar utilizar la sintaxis del origen de datos en cuestión (ej: SQL Server, Oracle, etc.), así como podremos hacer JOINs entre diferentes Tablas, Agrupaciones, Filtrados, etc.
Una vez creada nuestra nueva Consulta personalizada (Named Query), podremos editar, comprobar su ejecución (Explore Data), sustituirla por una Tabla, etc. En este caso, no tenemos la posibilidad de añadir una Columna Calculada (Named Column), ya que no tiene sentido, es decir, en su lugar editaríamos la Consulta para añadir dicha Columna directamente.
Despedida y Cierre
La utilización de Columnas Calculadas (Named Columns) y Consultas personalizadas (Named Queries) en los Data Source View (DSV) de Analysis Services (SSAS) es un recurso muy potente, que nos ayudará a conseguir nuestros resultados con una mínima inversión de tiempo, por lo que en muchos casos, nos será de gran utilidad, evitando tener que realizar modificaciones en el modelo datos de nuestro Data Warehouse, consiguiendo el mismo resultado con un menor esfuerzo.
Poco más por hoy. Como siempre, confío que la lectura resulte de interés.