Esquemas
Mapeo de bases de datos Start / Snowflake ..
Versiones de esquema
Un esquema define una base de datos multidimensional en estrella / copo de nieve. Contiene un modelo lógico, compuesto por cubos, jerarquías y miembros, y un mapeo de este modelo sobre un modelo físico.
El modelo lógico consiste en las construcciones usadas para escribir consultas en el lenguaje MDX: cubos, dimensiones, jerarquías, niveles y miembros.
El modelo físico es la fuente de los datos que se presentan a través del modelo lógico. Típicamente es un esquema en estrella, que es un conjunto de tablas en una base de datos relacional.

Explora las construcciones del esquema:
Elemento de esquema
El elemento Schema es el contenedor raíz de un archivo de esquema Mondrian. Piénsalo como la envoltura exterior que contiene todo lo demás. Cada archivo XML de esquema Mondrian tiene exactamente un elemento Schema.
Cada esquema necesita un atributo name, aunque Mondrian no lo utiliza para operaciones críticas. Se recomienda que también añadas un atributo description para explicar qué hace el esquema en términos legibles por humanos.
También deberías especificar metamodelVersion="3.14" ya que esto ayuda a rastrear qué versión del formato de esquema estás usando.
El elemento Schema contiene todos los bloques de construcción de tu modelo de datos. Siempre requiere un elemento PhysicalSchema, que define las tablas y columnas reales de la base de datos.
Típicamente, un esquema incluye uno o más elementos Cube que definen las estructuras de datos multidimensionales. También puede contener elementos Dimension para dimensiones compartidas que múltiples cubos pueden usar, y elementos Role para control de acceso y configuraciones de seguridad.
Un analista típicamente crea primero el Schema como el contenedor exterior, luego lo rellena con los componentes necesarios para responder preguntas empresariales, como dimensiones y cubos.
Piénsalo como un archivador: el Schema es el propio armario, y llenas los cajones con carpetas organizadas (cubos, dimensiones) que ayudan a responder preguntas empresariales específicas.
¿Esto ayuda a aclarar el concepto?

En Mondrian v3 el analizador de esquemas era extremadamente sensible al orden de los elementos hijos. Si obtienes los elementos hijos en el orden incorrecto (por ejemplo, un cube después de un role..), Mondrian ignorará el cube.
Elemento Cube
Un cubo, definido por un elemento XML Cube, es el contexto para un informe o sesión de análisis interactivo. Representa una colección de eventos, describiendo las ocurrencias de un proceso de negocio a lo largo de la vida del mart de datos.
Los cubos tienden a ser un conjunto completo de Dimensiones, Jerarquías, Niveles y Medidas para realizar un análisis sobre el conjunto de eventos. Por ejemplo, si te interesan las ventas por cliente, podrías querer ver importes de ventas (Medidas) por cliente (Dimensión) geografía (Nivel).
Un cubo reúne estas cosas en un solo lugar, listo para el análisis y las consultas.

Recuerda que un cubo es una colección de Dimensiones, Jerarquías, Niveles (atributos en Mondrian v4) y Medidas. Las Medidas describen cuantitativamente eventos o colecciones de eventos, y los Niveles representan el contexto en el que ocurrieron los eventos.
Cada combinación de Niveles y Medidas es efectivamente un nuevo informe que se puede crear en segundos.
nombre
Nombre del cubo
descripción
Descripción de este cubo. Puede localizarse desde un archivo de propiedades usando #{propertyname}.
caption
Una cadena que se muestra en lugar del nombre del cubo. Puede localizarse desde un archivo de propiedades usando #{propertyname}.
cache
Si los datos de la tabla de hechos para este cubo deben ser almacenados en caché por Mondrian o no. La acción predeterminada es almacenar en caché los datos.
habilitado
Si el elemento está habilitado: si es true, entonces el cubo se realiza; de lo contrario se ignora.
visible
Si este cubo es visible en la interfaz de usuario.
Dimensión
Una Dimensión es un atributo estructural de un Cubo que es una lista de nombres relacionados —conocidos como Miembros—, todos los cuales pertenecen a una categoría similar en la percepción del usuario sobre los datos. Por ejemplo, meses y trimestres pueden formar una dimensión Meses; de igual modo, todas las ciudades, regiones y países pueden formar una dimensión Región.
Una Dimensión actúa como un índice para identificar valores dentro de un arreglo multidimensional y ofrece una forma muy concisa e intuitiva de organizar y seleccionar datos para recuperación, exploración y análisis. Las Dimensiones son los parámetros de negocio normalmente vistos en las filas y columnas de un informe. Una Dimensión es una colección de atributos lógicamente relacionados, equivalente a una tabla.

nombre
Nombre de la dimensión
descripción
Descripción de esta dimensión. Puede localizarse desde un archivo de propiedades usando #{propertyname}.
clave foránea
El nombre de la columna en la tabla de hechos.
tipo
El tipo de la dimensión puede ser "Standard" o "Time". Una dimensión de tiempo permitirá el uso de las funciones de tiempo MDX (WTD, YTD, QTD, etc.). Usa una dimensión estándar si la dimensión no está relacionada con el tiempo. El valor predeterminado es "Standard".
prefijo de uso
Agrega un prefijo de texto a los nombres de columna de una dimensión en tablas agregadas para prevenir conflictos de nombres cuando múltiples dimensiones usan nombres de columna similares. Esto solo debe establecerse para dimensiones privadas.
caption
Una cadena que se muestra en lugar del nombre de la dimensión. Puede localizarse desde un archivo de propiedades usando #{propertyname}.
visible
Si esta dimensión es visible en la interfaz de usuario. Predeterminado true.
Jerarquía
Las jerarquías permiten una mejor experiencia en la interfaz de usuario. Una jerarquía es una forma de organizar datos en diferentes niveles de agregación. Al ver datos, los analistas usan jerarquías de dimensión para reconocer tendencias en un nivel, profundizar a niveles inferiores para identificar las razones de estas tendencias y consolidar a niveles superiores para ver qué efecto tienen estas tendencias en un sector más amplio del negocio.

El Nivel en cada jerarquía debe tener una relación estricta de uno a muchos con el siguiente nivel. En la jerarquía [Markets], cada Country pertenece a un solo Territory, y cada City pertenece a un solo State Province. El efecto neto es que cada nivel inferior tiene más miembros que el anterior.
nombre
Nombre de la jerarquía. Si no se especifica, la jerarquía tiene el mismo nombre que su dimensión.
descripción
Descripción de esta jerarquía. Puede localizarse desde un archivo de propiedades usando #{propertyname}.
hasAll
Si esta jerarquía tiene un miembro 'all'.
allMemberName
Nombre del miembro 'all'. Si este atributo no se especifica, el miembro all se nombra 'All hierarchyName', por ejemplo, 'All Store'.
allMemberCaption
Una cadena que se muestra en lugar del nombre del miembro all. Puede localizarse desde un archivo de propiedades usando #{propertyname}.
allLevelName
Nombre del nivel 'all'. Si este atributo no se especifica, el miembro all se nombra '(All)'. Puede localizarse desde un archivo de propiedades usando #{propertyname}.
defaultMember
Valor del miembro por defecto
memberReaderClass
Nombre de la clase personalizada lector de miembros. Debe implementar la interfaz mondrian.rolap.MemberReader.
primaryKeyTable
El nombre de la tabla que contiene la clave primaria. Si la jerarquía tiene una sola tabla, por defecto es esa; es obligatorio.
primaryKey
El nombre de la columna que identifica a los miembros y que es referenciada por filas en la tabla de hechos. Si no se especifica, se usa la clave del nivel más bajo. Véase también CubeDimension.foreignKey.
caption
Una cadena para mostrar en la interfaz de usuario. Si no se especifica, se usa el nombre de la jerarquía. Puede localizarse desde un archivo de propiedades usando #{propertyname}.
visible
Si esta jerarquía es visible en la interfaz de usuario. Predeterminado true.
Por defecto, cada jerarquía contiene un nivel superior llamado '(All)', que contiene un único miembro llamado '(All {hierarchyName})'. Este miembro es padre de todos los demás miembros de la jerarquía y, por tanto, representa un gran total.
El miembro all también es el miembro predeterminado de la jerarquía; es decir, el miembro que se utiliza para calcular valores de celda cuando la jerarquía no está incluida en un eje o en el slicer. Varios atributos permiten controlar el nivel y miembro all. Los atributos allMemberName y allLevelName del elemento anulan los nombres predeterminados del nivel all y del miembro all.
Si el elemento tiene hasAll="false", el nivel 'all' se suprime. El miembro predeterminado de esa dimensión ahora será el primer miembro del primer nivel; por ejemplo, en una jerarquía de Tiempo, será el primer año de la jerarquía. Cambiar el miembro predeterminado puede ser confuso, por lo que generalmente deberías usar hasAll="true".
También puedes establecer explícitamente el miembro predeterminado de una jerarquía. El atributo defaultMember debe ser el nombre completamente calificado del miembro predeterminado.
Cuando se especifica de esta manera, el miembro predeterminado incluso puede ser un miembro calculado.
Nivel
El elemento Level puede considerarse como la representación de una columna en una tabla. Es una colección de Miembros que están a la misma distancia de la raíz de la jerarquía.

nombre
Nombre del Nivel.
descripción
Descripción de este Nivel. Puede localizarse desde un archivo de propiedades usando #{propertyname}.
tabla
El nombre de la tabla de la que proviene la columna. Si esta jerarquía se basa en una sola tabla, por defecto es el nombre de esa tabla; de lo contrario, es obligatorio. Puede localizarse desde un archivo de propiedades usando #{propertyname}.
columna
El nombre de la columna que contiene el identificador único de este nivel.
nameColumn
El nombre de la columna que contiene el identificador visible (nombre) de este nivel.
parentColumn
El nombre de la columna que referencia al miembro padre en una jerarquía padre-hijo.
nullParentValue
Valor que identifica padres nulos en una jerarquía padre-hijo. Valores típicos son 'NULL' y '0'.
ordinalColumn
El nombre de la columna que contiene los ordinales de los miembros. Si no se especifica esta columna, se usa la columna de clave para el ordenamiento.
tipo
Indica el tipo de la columna de clave de este nivel: String, Numeric, Integer, Boolean, Date, Time o Timestamp. Al generar sentencias SQL, Mondrian encierra los valores de columnas String entre comillas, pero deja sin comillas los valores de columnas Integer y Numeric. Los valores Date, Time y Timestamp se citan según el dialecto SQL. Para un dialecto compatible con SQL, los valores aparecen prefijados por su tipo, por ejemplo, "DATE '2006-06-01'".
internalType
Indica el tipo Java que Mondrian usa para almacenar la columna de clave de este nivel. También determina el método JDBC que Mondrian llamará para recuperar la columna; por ejemplo, si el tipo Java es 'int', Mondrian llamará a 'ResultSet.getInt(int)'. Normalmente este atributo no es necesario, porque Mondrian puede elegir un tipo sensato basado en el tipo de la columna de la base de datos. Valores permitidos: 'int', 'long', 'Object', 'String'.
uniqueMembers
Si los miembros son únicos entre todos los padres. Por ejemplo, los códigos postales son únicos entre todos los estados. Los miembros del primer nivel siempre son únicos.
levelType
Si este es un nivel regular o relacionado con el tiempo. El valor marca la diferencia para funciones relacionadas con el tiempo como YTD (año hasta la fecha). El valor "TimeHalfYear" está obsoleto y se eliminará en mondrian-4.0; usa "TimeHalfYears" en su lugar.
hideMemberif
Condición que determina si un miembro de este nivel está oculto. Si una jerarquía tiene uno o más niveles con miembros ocultos, entonces es posible que no todos los miembros hoja estén a la misma distancia de la raíz, y se denomina jerarquía irregular. Valores permitidos: Never (un miembro siempre aparece; valor predeterminado); IfBlankName (un miembro no aparece si su nombre es nulo, vacío o solo espacios en blanco); e IfParentsName (un miembro aparece a menos que su nombre coincida con el del padre).
approxRowCount
El número estimado de filas en esta tabla de agregación. Establecer esta propiedad mejora el rendimiento del optimizador de agregaciones y evita que emita una consulta 'select count(*)' sobre la tabla de agregación.
caption
Una cadena que se muestra en lugar del nombre del nivel. Puede localizarse desde un archivo de propiedades usando #{propertyname}.
captionColumn
El nombre de la columna que contiene el título (caption) para los miembros.
formateador
Nombre de una clase formateadora para las etiquetas de los miembros que se muestran. La clase debe implementar la interfaz mondrian.spi.MemberFormatter. Este atributo está obsoleto.
Por favor usa un elemento anidado MemberFormatter.
Propiedades
Muchas dimensiones, como Customer, son grandes, y es útil subconfigurarlas para propósitos de visualización incluso antes de crear una consulta. Puede que desees subconfigurar información por nombre / apellido del cliente, dirección, nivel de ingresos, formación educativa o estado civil antes de empezar a profundizar en un conjunto de datos, estratificando la población.

nombre
El nombre de la Propiedad.
descripción
Descripción de esta propiedad de miembro. Puede localizarse desde un archivo de propiedades usando #{propertyname}.
columna
La columna de datos que determinará el contenido de esta subcategoría
tipo
Tipo de datos de esta propiedad: String, Numeric, Integer, Boolean, Date, Time o Timestamp.
formateador
Nombre de una clase formateadora para el valor apropiado de la propiedad que se muestra. La clase debe implementar la interfaz mondrian.spi.PropertyFormatter. Este atributo está obsoleto. Por favor usa un elemento anidado PropertyFormatter.
caption
Una cadena que se muestra en lugar del nombre. Puede localizarse desde un archivo de propiedades usando #{propertyname}.
dependsOnLevelValue
Debe establecerse a true si el valor de la propiedad depende funcionalmente del valor del nivel. Esto permite que la columna de propiedad asociada se omita de la cláusula GROUP BY (si la base de datos permite columnas en el SELECT que no están en el GROUP BY). Esto puede suponer una mejora de rendimiento significativa en algunas bases de datos, como MySQL.
Medidas
El elemento XML Measure define una medida. Una medida es un valor, casi siempre numérico, que aparece en una celda. Estrictamente hablando, el elemento XML Measure define una medida almacenada. Mondrian también soporta medidas calculadas, que se calculan a partir de otras medidas usando una fórmula MDX. Aunque las medidas almacenadas y calculadas se definen y evalúan de forma diferente, para un usuario de negocio que ejecuta un informe aparecen igual.

sum
Suma valores numéricos. El agregador más común.
count
Cuenta el número de filas para las cuales una columna no es nula; si no se especifica columna, cuenta el número de filas.
distinct-count
Calcula el número de valores distintos de la columna. Los nulos no se cuentan.
max
Encuentra el valor máximo de una columna.
min
Encuentra el valor mínimo de una columna.
avg
Calcula el valor promedio de una columna numérica.
Anotaciones
Los principales tipos de elementos (schema, cube, virtual cube, shared dimension, dimension, hierarchy, level, measure, calculated member) soportan anotaciones. Una anotación es una forma de asociar una propiedad definida por el usuario con un elemento de metadatos y permite que las herramientas añadan metadatos sin extender el esquema oficial de Mondrian.

Crea un elemento como hijo del elemento que deseas anotar (generalmente es el primer elemento hijo, pero verifica la definición del esquema para detalles), luego incluye varios elementos. Los nombres de los elementos deben ser únicos dentro de su elemento. Si estás añadiendo anotaciones para soportar una herramienta que mantienes, elige los nombres de anotaciones con cuidado para asegurar que no choquen con las anotaciones usadas por otras herramientas.
El siguiente ejemplo muestra la anotación "AnalyzerDateFormat":
AnalyzerBusinessGroup
Nivel
Usado para crear carpetas en la IU
AnalyzerBusinessGroupDescription
Nivel
Descripción para las carpetas
AnalyzerDateFormat
Nivel
Usado para filtros de fecha relativos
AnalyzerHideInUI
Measure, CalculatedMember
Oculta el campo en la IU
AnalyzerDisableDrillLinks
Cubo
Desactiva los enlaces de drillthrough en el cubo
Última actualización
¿Te fue útil?
