Guía del usuario y de configuración de OLAP

Vistas de DB2 OLAP Server

Cuando se crea una aplicación y base de datos pluridimensional OLAP, DB2 OLAP Server cataloga la nueva aplicación y la nueva base de datos y crea un conjunto de tablas relacionales, conocido como un esquema en estrella. Además, DB2 OLAP Server crea y gestiona varias vistas que simplifican el acceso de la aplicación SQL a los datos pluridimensionales. Se pueden utilizar aplicaciones personalizadas y herramientas estándar de consulta para acceder a los datos pluridimensionales utilizando estas vistas. Algunas aplicaciones están diseñadas para aprovechar al máximo los datos almacenados en el esquema en estrella creado por DB2 OLAP Server.

La siguiente lista muestra el conjunto completo de vistas gestionadas por DB2 OLAP Server:

Esquema de denominación para vistas

DB2 OLAP Server almacena todas las tablas y vistas base en el esquema nombreusuario, donde nombreusuario es el identificador de usuario asignado a DB2 OLAP Server. Para los ejemplos de este capítulo se utiliza el nombre de esquema OLAPSERV.

Todos los nombres de vista se encuentran en mayúsculas. No encierre los nombre de vista entre comillas. DB2 OLAP Server construye nombres de vista y los almacena en vistas de catálogo. Las aplicaciones SQL pueden consultar los nombres de vista desde las vistas de catálogo. La Figura 9 muestra las vistas primarias de DB2 OLAP Server.

Figura 9. esquema de DB2 OLAP Server


Figure views not displayed.

Utilización de la vista de catálogo de cubos

Existe una vista de catálogo de cubos que DB2 OLAP Server utiliza en el esquema nombreusuario. Esta vista contiene una fila por cada cubo. Utilice esta vista para obtener detalles acerca de todas las aplicaciones y cubos OLAP almacenados en un esquema. La vista de catálogo de cubos cataloga todas las aplicaciones y bases de datos OLAP gestionadas por DB2 OLAP Server.

Nombre de la vista de catálogo de cubos

El nombre de la vista de catálogo de cubos es CUBECATALOGVIEW. Al igual que todas las otras vistas, es propiedad del esquema asignado a DB2 OLAP Server.

Contenido de la vista de catálogo de cubos

La Tabla 14 muestra las columnas de la vista de catálogo de cubos.

Tabla 14. Contenido de la vista de catálogo de cubos
Nombre Tipo Tamaño máximo Contenido
AppName VarChar 8 El nombre de la aplicación OLAP que contiene el cubo relacional identificado con CubeName.
CubeName VarChar 8 El nombre de una base de datos pluridimensional.
CubeViewName VarChar 27 El nombre totalmente calificado de la vista de cubo para esta base de datos pluridimensional.
FactViewName VarChar 27 El nombre totalmente calificado de la vista de hechos para esta base de datos pluridimensional.
StarViewName VarChar 27 El nombre totalmente calificado de la vista en estrella para esta base de datos pluridimensional.
AliasIdViewName VarChar 27 El nombre totalmente calificado de la vista de un ID de alias para esta base de datos pluridimensional.
LROViewName VarChar 27 El nombre totalmente calificado de la vista de LRO para esta base de datos pluridimensional.

Consulta de la vista de catálogo de cubos utilizando sentencias SQL

Para obtener una lista de las aplicaciones OLAP, utilice esta sentencia SQL:

SELECT DISTINCT APPNAME FROM OLAPSERV.CUBECATALOGVIEW 

Para obtener una lista de las bases de datos pluridimensionales de la aplicación Sample, utilice esta sentencia SQL:

SELECT CUBENAME FROM OLAPSERV.CUBECATALOGVIEW WHERE APPNAME='Sample'

Para obtener los nombres de vista de la base de datos pluridimensional Basic de la aplicación Sample, utilice esta sentencia SQL:

SELECT CUBEVIEWNAME,FACTVIEWNAME,STARVIEWNAME,ALIASIDVIEWNAME,LROVIEWNAME 
  FROM OLAPSERV.CUBECATALOGVIEW WHERE APPNAME='Sample' AND CUBENAME='Basic'

Consulta de información de miembro y de dimensión

La vista de cubo y las vistas de dimensiones contienen información acerca de las dimensiones y los miembros de un cubo relacional. Existe una vista de cubo por cada cubo relacional y una vista de dimensiones por cada dimensión dentro de un cubo relacional. Estas vistas pueden utilizarse para consultar muchos de los atributos que se asignan a dimensiones y miembros del boceto de OLAP.

Utilización de la vista de cubo

Existe una vista de cubo por cada cubo relacional que gestiona DB2 OLAP Server. La vista de cubo contiene una fila por cada dimensión del cubo relacional. Utilice esta vista para obtener información acerca de las dimensiones de un cubo.

Nombre de la vista de cubo

El nombre de la vista de cubo se obtiene de la columna CubeViewName de la vista de catálogo de cubos.

Contenido de la vista de cubo

La Tabla 15 muestra las columnas en la vista de cubo.

Tabla 15. Contenido de la vista de cubo
Nombre Tipo Tam. Contenido
DimensionName VarChar 80 El valor de dimensión Name de OLAP.
RelDimensionName VarChar 18 El nombre de dimensión de DB2 OLAP Server. Esta columna contiene el nombre de una columna de la vista en estrella o de la vista de hechos que corresponde a esta dimensión. El valor de RelDimensionName es un nombre exclusivo, si se compara con todos los demás nombres de dimensión y los nombres de los miembros de la dimensión ancla de este cubo relacional. RelDimensionName es una versión modificada de DimensionName. Los cambios que puede ser necesario realizar en un DimensionName son:
  • Limitar la longitud del nombre.
  • Eliminar o sustituir caracteres especiales que se permiten en los nombres pluridimensionales, pero no en los nombres relacionales.
  • Alterar caracteres para crear un nombre exclusivo en el espacio de nombres del cubo relacional, una vez que se han llevado a cabo todos los demás cambios.
DimensionType Small Ineger
Los valores para esta columna son:
  • 0 = Dimensión densa
  • 1 = Dimensión ligera
  • 2 = Dimensión ancla
DimensionTag Small Ineger
Los valores para esta columna son:
  • 0x00 para no utilizar etiqueta
  • 0x01 para Accounts
  • 0x02 para Time
  • 0x04 para Country
  • 0x08 para Currency Partition
DimensionId Integer
El identificador de dimensión del boceto de OLAP.
DimensionViewName VarChar 27 El nombre totalmente calificado de la vista de dimensiones para esta dimensión.
UDAViewName VarChar 27 El nombre totalmente calificado de la vista de atributos definidos por el usuario (UDA) para esta dimensión.
RATViewName VarChar 27 El nombre totalmente calificado de la vista de atributos relacionales para esta dimensión.

Consulta de la vista de cubo utilizando sentencias SQL

Para acceder a los datos de la vista de cubo, la aplicación debe determinar en primer lugar el nombre de la vista de cubo a partir de la vista de catálogo de cubos.

Por ejemplo, para determinar el nombre de la vista de cubo para la base de datos Basic de la aplicación Sample, consulte la base de datos utilizando la siguiente sentencia SQL:

SELECT CUBEVIEWNAME FROM OLAPSERV.CUBECATALOGVIEW 
  WHERE APPNAME='Sample' AND CUBENAME='Basic'

El resultado de esta consulta podría ser:

OLAPSERV.SAMPBASI_CUBEVIEW

Para listar los nombres de dimensión y los correspondientes nombres de la vista de dimensiones para la base de datos Basic:

SELECT DIMENSIONNAME.DIMENSIONVIEWNAME FROM OLAPSERV.SAMPBASI_CUBEVIEW

Para listar los nombres de dimensión de las dimensiones densas de la base de datos Basic:

SELECT DIMENSIONNAME FROM OLAPSERV.SAMPBASI_CUBEVIEW WHERE DIMENSIONTYPE = 0

Para determinar los nombres de las dimensiones no ancla utilizadas para nombrar las columna de la vista en estrella:

SELECT RELDIMENSIONNAME FROM OLAPSERV.SAMPBASI_CUBEVIEW WHERE DIMENSIONTYPE <> 2  

Para devolver el nombre de la vista de atributos relacionales para la dimensión Product:

SELECT RATVIEWNAME FROM OLAPSERV.SAMPBASI_CUBEVIEW WHERE DIMENSIONNAME='Product'

Nombre de la vista de dimensiones

El nombre de la vista de dimensiones se obtiene de la columna DimensionViewName de la vista de cubo.

Contenido de la vista de dimensiones

La Tabla 16 muestra las columnas de una vista de dimensiones.

Tabla 16. Contenido de una vista de dimensiones
Nombre Tipo Tamaño Contenido
MemberName VarChar 80 El nombre del miembro.
RelMemberName VarChar 18 Dimensión ancla únicamente. El nombre de miembro de DB2 OLAP Server. Este nombre se utiliza para nombrar columnas en las vistas de Hechos y en Estrella que corresponden a miembros de la dimensión ancla. Este nombre es exclusivo, si se compara con todos los demás nombres de miembro de dimensión Ancla de este cubo relacional. Se trata de una versión modificada de MemberName. Los cambios que puede ser necesario realizar en MemberName son:
  • Limitar la longitud del nombre.
  • Eliminar o sustituir caracteres especiales que se permiten en los nombres pluridimensionales, pero no en los nombres relacionales.
  • Alterar caracteres para crear un nombre exclusivo en el espacio de nombres del cubo relacional, una vez que se han llevado a cabo los cambios anteriores.
RelMemberID Integer Ninguno El identificador de DB2 OLAP Server para este miembro. Este identificador se utiliza para unir la tabla de dimensiones a la tabla de hechos.
ParentRelId Integer Ninguno El identificador relacional del padre del miembro en el boceto de OLAP. Para el miembro de nivel más alto, el valor es NULL.
LeftSiblingRelId Integer Ninguno El identificador relacional del hermano izquierdo del miembro en el boceto de OLAP. Para los miembros que no tienen un hermano izquierdo, este valor es NULL.
Status Integer Ninguno El estado de este miembro puede contener una combinación de:
  • 0x0000= Reservado
  • 0x0001= Para un miembro establecido como 'No compartir nunca'
  • 0x0002= Para un miembro establecido como 'Solo etiqueta'
  • 0x0004 = Para un miembro establecido como 'Miembro compartido'
  • 0x0008 = Reservado
  • 0x0010 = Para un miembro padre con un único hijo o un para un miembro padre con un único hijo que a su vez tiene un operador de agregación. (Todos los demás hijos tienen el operador 'no-op'.)
  • 0x0020 = Para un miembro establecido como 'Cálculo y almacenamiento dinámico'
  • 0x0040= Para un miembro establecido como 'Cálculo dinámico'
  • 0x0080= Reservado
  • 0x0100= Reservado
  • 0x02000= Para un miembro padre donde uno de los hijos está compartido
  • 0x04000= Para un miembro normal
CalcEquation Long VarChar (estación de trabajo); VarChar (OS/390) 32700 (estación de trabajo); 250 (OS/390) La ecuación de cálculo por omisión para miembros calculados. Observe que la ecuación de cálculo por omisión puede no ser la ecuación utilizada para calcular el valor del miembro, si se especifica un cálculo diferente en el script de cálculo utilizado para calcular el cubo relacional.
UnarySymbol Small Ineger Ninguno El símbolo de cálculo unitario:
  • 0 = Añadir
  • 1 = Sustraer
  • 2 = Multiplicar
  • 3 = Dividir
  • 4 = Porcentaje
  • 5 = Ninguna operación ('No op')
AccountsType Integer Ninguno Este atributo se utiliza únicamente para la dimensión Accounts. Puede contener una combinación de los siguientes valores:
  • 0x0000 = No aplicar máscara sobre valor cero o no hallado
  • 0x4000 = Aplicar máscara sobre valor cero o no hallado
  • 0x8000 = Aplicar máscara sobre valor cero
  • 0x0001 = Equilibrar primero
  • 0x0002 = Equilibrar último
  • 0x0004 = Porcentaje
  • 0x0008 = Promedio
  • 0x0010 = Unidad
  • 0x0020 = Solo detalles
  • 0x0040 = Gasto
NoCurrencyConv Small Ineger Ninguno Valor de conversión de divisa:
  • 0x0000 = Utilizar conversión de divisa
  • 0x0001 = No utilizar conversión de divisa
CurrencyMemberName VarChar 80 Un nombre de miembro del cubo de divisa asociado a este miembro.
GenerationNumber Integer Ninguno El número de generación para este miembro.
GenerationName VarChar 80 El nombre de generación para este miembro.
LevelNumber Integer
El número de nivel para este miembro.
LevelName VarChar 80 El nombre de nivel para este miembro.
nombre de tabla de alias Hay una columna de alias por cada tabla de alias de OLAP utilizada en el boceto. VarChar 80 El alias para este miembro en una tabla de alias de OLAP asociada. Si no se proporciona un alias para un miembro, el valor es nulo. Consulte Utilización de las vistas de ID de alias.
nombre de columna de atributos relacionales Hay una columna de atributos relacionales por cada atributo RatCol definido por el usuario. El tipo de datos especificado cuando se creó la columna de atributos relacionales. El tamaño especificado cuando se creó la columna de atributos relacionales. El valor del atributo relacional para este miembro.

Consulta de un nombre de dimensión utilizando sentencias SQL

Para acceder a los datos de una vista de dimensiones, la aplicación debe determinar en primer lugar el nombre de la vista de dimensiones a partir de la vista de cubo.

Por ejemplo, para encontrar el nombre de la vista de dimensiones para la dimensión Time de la base de datos Basic, se consulta la base de datos utilizando la siguiente sentencia SQL:

SELECT DIMENSIONVIEWNAME FROM OLAPSERV.SAMPBASI_CUBEVIEW WHERE DIMENSIONNAME='Time'

El resultado de la consulta podría ser: OLAPSERV.SAMPBASID_TIME

Listado de nombres de miembros utilizando SQL

Para listar los nombres de miembro para la dimensión Time:

SELECT MEMBERNAME FROM OLAPSERV.SAMPBASID_TIME

Vistas de hechos y en estrella

DB2 OLAP Server crea y mantiene dos vistas de la tabla de hechos y del esquema en estrella:

Vista de hechos
Existe una vista de hechos por cada cubo que gestiona DB2 OLAP Server. La vista de hechos es una vista simple de la tabla de hechos. La tabla de hechos contiene los datos pluridimensionales. Utilice esta vista para acceder directamente a datos pluridimensionales desde aplicaciones SQL que gestionan las uniones necesarias a las vistas de dimensiones.

Vista en estrella
Existe una vista en estrella por cada cubo que gestiona DB2 OLAP Server. La vista en estrella une la tabla de hechos a cada vista de dimensiones del esquema en estrella. Esta vista proporciona un acceso SQL simplificado a los datos pluridimensionales y resulta ideal para consultas ad hoc y para herramientas de consulta de propósito general que no gestionan las uniones requeridas por las vistas de dimensiones.

Dado que una tabla de hechos contiene valores con diferentes niveles de agregación, si escribe una aplicación SQL para agregar, debe asegurarse de que el conjunto de miembros seleccionados en cada dimensión tiene el mismo nivel de agregación. En caso contrario, las agregaciones serán incorrectas. Una manera de cumplir este requisito consiste en incluir una restricción en el campo de número de generación o en el campo de número de nivel en la tabla de dimensiones.

La tabla de hechos que crea DB2 OLAP Server tiene una columna por cada dimensión no ancla y una columna por cada miembro de la dimensión ancla que almacena datos. La tabla de hechos que corresponde al boceto utilizado en la Figura 9 tiene las siguientes secciones:

Las columnas de dimensiones almacenan identificadores de miembro que hacen referencia a miembros de cada dimensión no ancla. Los identificadores de miembro pueden correlacionarse con nombres de miembro utilizando las vistas de dimensiones. Las columnas de miembro de ancla almacenan los valores reales de datos. Los miembros de dimensión ancla pueden correlacionarse con columnas de la vista de hechos utilizando la vista de dimensiones para la dimensión ancla.

DB2 OLAP Server utiliza nombres internos para las columnas de la tabla de hechos e identificadores internos para los miembros. La vista de hechos sustituye los nombres internos de columna por nombres de miembro y de dimensión, pero no correlaciona identificadores de miembro de columna de dimensiones con nombres de miembro. La vista en estrella sustituye los nombres internos de columna por nombres de miembro y de dimensión y correlaciona los identificadores de miembro de columna de dimensiones por nombres de miembro uniendo la tabla de hechos a las tablas de dimensiones.

Aunque puede especificar cualquier dimensión densa como la dimensión ancla, si va a acceder a la vista de hechos o en estrella desde aplicaciones SQL y ejecutar consultas ad-hoc, la correlación más natural se obtiene si se especifica la dimensión Accounts como la dimensión ancla.

Nombre de la vista de hechos

El nombre de la vista de hechos se obtiene de la columna FactViewName de la vista de catálogo de cubos.

Contenido de la vista de hechos

La vista de hechos contiene un número variable de columnas de dos tipos:

Columnas de dimensiones
Una columna por cada dimensión no ancla

Columnas de miembro de ancla
Una columna por cada miembro de dimensión ancla que almacena datos

La Tabla 17 muestra detalles acerca de los dos tipos de columnas de la vista de hechos.

Tabla 17. Contenido de la vista de hechos
Nombre Tipo Contenido
Para columnas de dimensiones:

El nombre corto de la dimensión se toma de la columna RelDimensionName de la vista de cubo.

Integer RelMemberID del miembro de esta dimensión.
Para columnas de miembro de ancla:

El nombre corto del miembro se toma de la columna RelMemberName de la vista de dimensiones de la dimensión ancla.

Double El valor de dato de esta celda.

Consulta de la vista de hechos en UNIX y Windows NT utilizando sentencias SQL

Para acceder a los datos de una vista de hechos, la aplicación debe determinar en primer lugar el nombre de la vista de hechos a partir de la vista de catálogo de cubos.

Por ejemplo, para encontrar el nombre de la vista de hechos de la base de datos Basic de la aplicación Sample, utilice la siguiente sentencia SQL:

SELECT FACTVIEWNAME FROM OLAPSERV.CUBECATALOGVIEW 
  WHERE APPNAME='Sample' AND CUBENAME='Basic'

El resultado de la consulta podría ser:

OLAPSERV.SAMPBASI_FACTVIEW

Si la aplicación hace un seguimiento de los valores de RelMemberID para miembros, se puede consultar directamente la vista de hechos. Por ejemplo, para seleccionar los valores de datos para productos (dimensión Product) con RelMemberId 3 (100-20), en el mercado este (dimensión Market con RelMemberId 2) durante el tercer trimestre (dimensión Time con RelMemberID 4):

SELECT PROFIT,SALES,COGS FROM OLAPSERV.SAMPBASI_FACTVIEW 
  WHERE PRODUCT=3 AND MARKET=2 AND TIME=4

De manera más común, las consultas contra la vista de hechos incluyen uniones con las vistas de dimensiones. Una consulta que utilice uniones y que sea equivalente a la anterior es:

SELECT PROFIT,SALES,COGS
    FROM OLAPSERV.SAMPBASI_FACTVIEW,
         OLAPSERV.SAMPBASID_TIME,
         OLAPSERV.SAMPBASID_MARKET,
         OLAPSERV.SAMPBASID_PRODUCT,
   WHERE OLAPSERV.SAMPBASID_TIME.MEMBERNAME='Q3'
     AND OLAPSERV.SAMPBASID_PRODUCT.MEMBERNAME='100-20'
     AND OLAPSERV.SAMPBASID_MARKET.MEMBERNAME='East'
     AND OLAPSERV.SAMPBASI_FACTVIEW.TIME=OLAPSERV.SAMPBASID_TIME.RELMEMBERID
     AND OLAPSERV.SAMPBASI_FACTVIEW.PRODUCT=OLAPSERV.SAMPBASID_PRODUCT.RELMEMBERID
     AND OLAPSERV.SAMPBASI_FACTVIEW.MARKET=OLAPSERV.SAMPBASID_MARKET.RELMEMBERID

Nombre de la vista en estrella

El nombre de la vista en estrella se obtiene de la columna StarViewName de la vista de catálogo de cubos.

Contenido de la vista en estrella

La vista en estrella contiene un número variable de columnas de dos tipos:

Columnas de dimensiones
Una columna por cada dimensión no ancla

Columnas de miembro de ancla
Una columna por cada miembro de dimensión ancla

La Tabla 18 muestra detalles acerca de los dos tipos de columnas de la vista en estrella.


Tabla 18. Contenido de la vista en estrella
Nombre Tipo Contenido
Para columnas de dimensiones:

El nombre corto de la dimensión se toma de la columna RelDimensionName de la vista de cubo.

VarChar(80) Nombre de miembro.
Para columnas de miembro de ancla:

El nombre corto del miembro se toma de la columna RelMemberName de la vista de dimensiones de la dimensión ancla.

Double El valor de dato de esta celda.

Consulta de la vista en estrella en UNIX y Windows NT utilizando sentencias SQL

Para acceder a los datos de la vista en estrella, la aplicación debe determinar en primer lugar el nombre de la vista en estrella a partir de la vista de catálogo de cubos.

Por ejemplo, para encontrar el nombre de la vista en estrella de la base de datos Basic de la aplicación Sample, utilice la siguiente sentencia SQL:

SELECT STARVIEWNAME FROM OLAPSERV.CUBECATALOGVIEW 
  WHERE APPNAME='SAMPLE' and CUBENAME='BASIC'

El resultado de esta consulta podría ser: OLAPSERV.SAMPBASI_STARVIEW

Para seleccionar los valores de datos para el producto 100-10 (dimensión Product) en el mercado central (dimensión Market) durante el primer trimestre (dimensión Time):

SELECT PROFIT,SALES,COGS FROM OLAPSERV.SAMPBASI_STARVIEW
  WHERE PRODUCT='100-10' AND MARKET='Central' AND TIME='Q1'

Para seleccionar todos los productos con beneficios negativos en la región central durante el segundo trimestre:

SELECT PRODUCT,PROFIT,SALES,COGS FROM OLAPSERV.SAMPBASI_STARVIEW
  WHERE MARKET='Central' AND TIME='Q2' AND PROFIT < 0

No todos los miembros de la vista en estrella se encuentran al mismo nivel jerárquico, así que construya las consultas cuidadosamente cuando utilice SQL para llevar a cabo operaciones de agregación. Los miembros seleccionados en una dimensión deben encontrarse al mismo nivel para evitar dobles agregaciones.

Por ejemplo, la siguiente sentencia SQL muestra miembros seleccionados a diferentes niveles en la vista en estrella. (Algunas ventas se contarán dos veces debido a que se agregan dos niveles de sumas.)

SELECT SUM(PROFIT) FROM OLAPSERV.SAMPBASI_STARVIEW
  WHERE MARKET IN ('Central','Illinois') AND
      PRODUCT='100' AND
      TIME IN ('Q1','1996')
 

Presuponiendo que Illinois es parte de la región Central y que Q1 (primer trimestre) es parte de 1996, esta consulta da como resultado cifras de beneficio (PROFIT) con los niveles de estado y de región y los niveles de trimestre y de año sumados. Dado que la región Central ya incluye los datos de Illinois, los datos de Illinois y del primer trimestre se cuentan dos veces en la suma. Si desea corregir la sentencia SQL para que sume las ventas de dos estados de la región Central durante dos trimestres diferentes, podría utilizar el siguiente ejemplo:

SELECT SUM(PROFIT) FROM OLAPSERV.SAMPBASI_STARVIEW
  WHERE MARKET IN ('Indiana','Illinois') AND
      PRODUCT='100' AND
      TIME IN ('Q1','Q2')
 


[ Principio de página | Página anterior | Página siguiente | Contenido | Índice ]