Data Mart Report in MicroStrategy (II)

Hace un tiempo publique una entrada en relación a la creación de Datamart Report en Microstrategy, la cual podéis encontrar en este enlace:

http://bipostit.com/2015/02/21/data-mart-report-in-microstrategy/

Ahora voy a dedicar unas lineas a hablaros más en profundidad de aspectos de configuración y características de esta funcionalidad.

Como os comentaba en el anterior post, una vez que pulsamos el botón de “Configurar Datamart” tendremos un menú donde podemos personalizar las opciones de creación/inserción:

DataMart_Report

Pestaña General:

DAtamart_report2

  • En el menú desplegable podemos elegir la instancia apropiada de base de datos
  • Elegimos un nombre de la tabla. Este nombre de tabla debe ser compatible con el convenio de denominación del servidor de base de datos.
  • Elegimos entre las 2 opciones:
    – Crear una nueva tabla : Esta opción sustituye a la tabla existente cada vez que se ejecuta el informe .
    – Anexar a una tabla existente : Cada vez que se ejecuta el informe añade los datos resultantes a la tabla.

En este punto quería matizar que este informe siempre va ha ejecutar la sentencia de creación de tabla (“CREATE TABLE”) aunque elijamos la opción de “Anexar a una tabla existente” . En este caso si visualizamos el SQL generado  veremos un mensaje como este:

(Note: Table existed. Ignore the failure.)

y posteriormente la sentencia “Insert” correspondiente.

Pestaña Avanzado.

Datamart_report_5

En esta pestaña podemos configurar:

Control

  • Tiempo máximo de ejecución (segundos)
  • Número de filas máximo (Motor analítico)

Propiedades de creación de la tabla

  • Calificador de tabla : Palabras clave que se coloca justo antes de “TABLE” en la sentencia “CREATE TABLE”
  • Descriptor de tabla : Palabra que se coloca después de la palabra “TABLE” en la sentencia “CREATE TABLE”
  • Opción de tabla : Palabra que se coloca después del nombre de la tabla en la sentencia “CREATE TABLE”
  • Crear cadena posterior a la tabla : tras el final de la sentencia “CREATE TABLE”
  • Tablespace : espacio donde se ubica la tabla
  • Prefijo de tabla : Cadena que se añade al nombre de la tabla
  • Tipo de tabla : Establece si la tabal es permanente o temporal

Ejemplo,  creación de tabla TABLA_TEST:

drop table |Prefijo de tabla|TABLE_TEST

create |Calificador de tabla| table |Descriptor de tabla||Prefijo de tabla|TABLE_TEST |Opción de tabla|
|Tablespace| as
select distinct

…………….

…………….                           

Sentencias SQL

DAtamart_report3

Pueden ejecutarse sentencias SQL:

  • antes de la creación de la tabla
  • después de la creación tabla
  • antes de la inserción de datos

Ejemplo en vista SQL del informe:

drop table TABLE_TEST

|SQL antes de la creación de la tabla|

|SQL antes de la inserción de datos|

create table TABLE_TEST  as

select         distinct

…………….

……………..

|SQL después de la creación de la tabla|

 

Estas sentencias SQL no se validan antes de ejecutar el informe, por lo que deben tener la sintaxis adecuada a la finalidad que necesitemos.

Las sentencias SQL deben estar separadas entre sí por  punto y coma “ ; “

Microstrategy proporciona una serie de variables que son sustituidas dinámicamente en nuestro SQL según las condiciones en que se ejecute el informe. Aquí vemos algunas de las más útiles:

  • !u -> Nombre de usuario
  • !d -> Fecha de creacion de la tabla
  • !o -> Nombre del informe
  • ??? -> Nombre tablas temporales
  • !!! -> Todos los nombres de columnas
  • !a -> Nombre de columnas de los atributos
  • !! -> Exclamacion (!)
  • !!= -> No es igual (!=)
  • !j -> Job ID
  • !r -> Report GUID
  • !t -> Timestamp
  • !p -> Nombre del proyecto
  • !z -> Project GUID
  • !s -> User session GUID

Por ejemplo, si ponemos la query:

GRANT ALL PRIVILEGES TO !u

en el SQL que debe ejecutarse antes de la creación tabla de datos, el resultado al ejecutar nuestro informe seria este:

drop table TABLE_TEST

GRANT ALL PRIVILEGES TO usuario

create table TABLE_TEST  as

select

….

….

Siendo “usuario” el usuario que ha lanzado el Datamart report.

En este post también quería comentar un problema con el que me he encontrado recientemente. Quería crear un datamart report en el que solamente aparecieran como columnas los campos DESC de un atributo, no los campos ID.
Técnicamente he visto que en el Datamart Report deben ir siempre incluidos los ID de los atributos participantes en el informe pues son los elementos de lo que se vale MicroStrategy para generar el SQL adecuado.

Para salvar este inconveniente os presento 3 alternativas que quizás os puedan ser de ayuda:

1 – Definir nuevos atributos asociandoles como campo ID el valor que tienen los anteriores atributos como DESC.

2 – Usar  Post SQL (VLDB Properties) para modificar la tabla resultado,  borrando las columnas ID de la tabla generada y quedarnos únicamente con las que nos interesen

3 – Trabajar con la tabla que genera el Datamart report como una tabla auxiliar y usar Post SQL (VLDB Properties) para hacer una inserción en una nueva tabla con los campos que nos interesan.

Espero que este post os sirva de ayuda a la hora de realizar este tipo de informes.

Deja un comentario

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