# Modelo ampliado

{% hint style="warning" %}

#### Taller - **Construcción de un Modelo de Datos Multidimensional**

Crear cubos básicos con dimensiones simples establece habilidades fundamentales, pero los esquemas OLAP de grado de producción requieren capacidades avanzadas que transforman los modelos analíticos de funcionales a potentes. La inteligencia de negocio del mundo real exige características dimensionales sofisticadas, incluidas dimensiones compartidas para consistencia entre cubos, inteligencia temporal para análisis de tendencias, anotaciones geográficas para visualizaciones de mapas, propiedades de miembros para contexto enriquecido y dimensiones degeneradas para detalles a nivel de transacción, todas trabajando juntas para crear entornos analíticos que respondan preguntas de negocio complejas con facilidad y flexibilidad.

En este taller práctico, mejorarás el esquema Miniature Models agregando capacidades dimensionales a nivel empresarial que reflejan implementaciones profesionales de inteligencia de negocio. Basándote en tu conocimiento de cubos, dimensiones y jerarquías, implementarás dimensiones TIME compartidas que aseguren un análisis temporal consistente entre múltiples tablas de hechos, agregarás anotaciones geográficas que permitan visualizaciones basadas en mapas, enriquecerás dimensiones con propiedades de miembros que proporcionen a los usuarios de negocio información para filtrar y contexto, y crearás dimensiones degeneradas que capturen identificadores de transacción sin la sobrecarga de tablas de dimensión separadas.

**Lo que lograrás:**

* Crear una dimensión MARKETS de cuatro niveles con jerarquías de Territorio, País, Estado/Provincia y Ciudad
* Agregar anotaciones geográficas (Data.Role, Geo.Role, Geo.RequiredParents) para compatibilidad con visualizaciones de mapas
* Refactorizar la dimensión CUSTOMERS y agregar propiedades de miembro (Número, Nombres de Contacto, Teléfono, Dirección, Límite de Crédito)
* Mejorar la dimensión PRODUCTS con propiedades de miembro (Descripción, Código, Vendedor)
* Construir una dimensión TIME compartida que pueda reutilizarse en múltiples cubos
* Configurar niveles basados en tiempo (Años, Trimestres, Meses) con tipos de nivel apropiados
* Agregar anotaciones AnalyzerDateFormat para cálculos inteligentes basados en tiempo
* Implementar DimensionUsage para referenciar dimensiones compartidas desde dentro de los cubos
* Crear una dimensión degenerada (ORDERSTATUS) usando columnas de la tabla de hechos sin una tabla de dimensión separada
* Agregar una medida Quantity para permitir la creación de medidas calculadas
* Publicar y validar tu esquema mejorado en Pentaho Analyzer

Al final de este taller, comprenderás cómo las funciones dimensionales avanzadas transforman cubos OLAP básicos en plataformas analíticas sofisticadas. Verás cómo las dimensiones compartidas eliminan redundancias y garantizan consistencia, cómo las anotaciones habilitan funciones inteligentes como mapeo geográfico e inteligencia temporal, cómo las propiedades de miembros proporcionan contexto rico sin sobrecargar las jerarquías de dimensión y cómo las dimensiones degeneradas manejan de forma eficiente atributos de baja cardinalidad. Estas técnicas de grado de producción, adquiridas mediante implementación práctica, te preparan para construir esquemas de calidad empresarial que cumplan con exigentes requisitos de inteligencia de negocio, incluyendo tendencias año con año, desglose geográfico, segmentación de clientes y análisis multidimensional a través de estructuras organizativas complejas.

**Prerrequisitos:** Finalización del taller Miniature Model; Schema Workbench y Pentaho Server instalados y configurados; Acceso a la base de datos SampleData con la tabla DIM\_TIME; Sólida comprensión de dimensiones, jerarquías, niveles y medidas

**Tiempo estimado:** 90 minutos
{% endhint %}

<figure><img src="/files/8e710cc4f05b07d61199e6f80f6a274be7fd133d" alt=""><figcaption><p>Esquema Extendido - Miniature Models</p></figcaption></figure>

{% file src="/files/e7e2b2ceb9aaf609766f240b4903a1af05268a20" %}

***

1. Iniciar Schema Workbench:

{% hint style="info" %}

#### Windows (Powershell):

```powershell
cd \
cd Pentaho/design-tools/schema-workbench/
./workbench.bat
```

{% endhint %}

{% hint style="info" %}

#### Linux:

```bash
cd
cd Pentaho/design-tools/schema-workbench/
./workbench.sh
```

{% endhint %}

2. Asegurarse de que Pentaho Server esté en ejecución:

{% hint style="danger" %}
**Asegúrate de que el Pentaho Server esté activo y en ejecución (se inicia automáticamente en Pentaho Lab):**

```bash
cd
cd /opt/pentaho/server/pentaho-server
sudo ./start-pentaho.sh
```

{% endhint %}

Sigue la guía a continuación para Extender el Esquema Miniature Models:

{% tabs %}
{% tab title="1. MARKETS" %}
{% hint style="info" %}

#### **Dimensión Markets**

Vamos a extender el modelo añadiendo una dimensión MARKETS que permitirá a los usuarios profundizar en los datos por geo.
{% endhint %}

1. Para agregar una dimensión MARKETS, en el panel izquierdo, haz clic derecho en Sales Cube y selecciona Add Dimension.

<figure><img src="/files/5981ef2e85cded0bd60e7efc5174e86fb6f1fc52" alt=""><figcaption><p>Agregar Dimensión - MARKETS</p></figcaption></figure>

2. Para crear la dimensión MARKETS, escribe o elige:&#x20;

| Atributo   | Valor          |
| ---------- | -------------- |
| nombre     | MARKETS        |
| ForeignKey | CUSTOMERNUMBER |

3. Para ver la jerarquía, en el panel izquierdo, expande MARKETS y luego haz clic en New Hierarchy 0.
4. Para agregar la tabla CUSTOMER\_W\_TER, haz clic derecho en New Hierarchy 0 y selecciona Add Table.
5. Haz clic en el Valor de schema y selecciona PUBLIC.
6. Haz clic en el Valor de name y selecciona CUSTOMER\_W\_TER, y presiona Tab.
7. Para nombrar la jerarquía y establecer la clave primaria, haz clic en New Hierarchy 0.
8. Para crear la jerarquía Markets, escribe o elige:

| Atributo      | Valor          |
| ------------- | -------------- |
| nombre        | Markets        |
| allMemberName | All Markets    |
| primaryKey    | CUSTOMERNUMBER |

9. Para agregar un nivel, en el panel izquierdo, haz clic derecho en Markets (hierarchy) bajo MARKETS y selecciona Add Level.
10. Para definir el nivel Territory, escribe o elige:

<table><thead><tr><th valign="top">Atributo</th><th valign="top">Valor</th></tr></thead><tbody><tr><td valign="top">nombre</td><td valign="top">Territory</td></tr><tr><td valign="top">column</td><td valign="top">TERRITORY</td></tr><tr><td valign="top">type</td><td valign="top">String</td></tr><tr><td valign="top">uniqueMembers</td><td valign="top">Selected</td></tr><tr><td valign="top">levelType</td><td valign="top">Regular</td></tr><tr><td valign="top">hideMemberIf</td><td valign="top">Never</td></tr></tbody></table>

11. Para agregar otro nivel, en el panel izquierdo, haz clic derecho en Markets (hierarchy) bajo MARKETS y selecciona Add Level.
12. Para definir el nivel Country, escribe o elige:&#x20;

<table><thead><tr><th valign="top">Atributo</th><th valign="top">Valor</th></tr></thead><tbody><tr><td valign="top">nombre</td><td valign="top">Country</td></tr><tr><td valign="top">column</td><td valign="top">COUNTRY</td></tr><tr><td valign="top">type</td><td valign="top">String</td></tr><tr><td valign="top">levelType</td><td valign="top">Regular</td></tr><tr><td valign="top">hideMemberIf</td><td valign="top">Never</td></tr></tbody></table>

13. Para agregar otro nivel, en el panel izquierdo, haz clic derecho en Markets (hierarchy) bajo MARKETS y selecciona Add Level.
14. Para definir el nivel State, escribe o elige:&#x20;

<table><thead><tr><th valign="top">Atributo</th><th valign="top">Valor</th></tr></thead><tbody><tr><td valign="top">nombre</td><td valign="top">State Province</td></tr><tr><td valign="top">column</td><td valign="top">STATE</td></tr><tr><td valign="top">type</td><td valign="top">String</td></tr><tr><td valign="top">levelType</td><td valign="top">Regular</td></tr><tr><td valign="top">hideMemberIf</td><td valign="top">Never</td></tr></tbody></table>

15. Para agregar otro nivel, en el panel izquierdo, haz clic derecho en Markets (hierarchy) bajo MARKETS y selecciona Add Level.
16. Para definir el nivel City, escribe o elige:&#x20;

<table><thead><tr><th valign="top">Atributo</th><th valign="top">value</th></tr></thead><tbody><tr><td valign="top">nombre</td><td valign="top">City</td></tr><tr><td valign="top">column</td><td valign="top">CITY</td></tr><tr><td valign="top">type</td><td valign="top">String</td></tr><tr><td valign="top">levelType</td><td valign="top">Regular</td></tr><tr><td valign="top">hideMemberIf</td><td valign="top">Never</td></tr></tbody></table>

x
{% endtab %}

{% tab title="2. Anotaciones" %}
{% hint style="info" %}

#### **Anotaciones**

Las anotaciones geo superpondrán los resultados mediante llamadas a la API REST de OpenStreetMap al mostrar los datos como un Mapa Geo.
{% endhint %}

{% embed url="<https://www.loom.com/share/477584be32574fae8570a1219e2b38bd?hideEmbedTopBar=true&hide_owner=true&hide_share=true&hide_title=true>" %}

***

1. En el panel izquierdo, haz clic derecho en Country y selecciona Add Annotations. Esto añade la carpeta de anotaciones. Ahora debes agregar las anotaciones individuales como subcarpetas.

<figure><img src="/files/6db46a1e557b5b10fa53af704784768bb910b4e4" alt=""><figcaption><p>MARKETS - Anotaciones</p></figcaption></figure>

2. Bajo el nivel Country, haz clic derecho en Annotations y selecciona Add Annotation.
3. Para crear las anotaciones Data.Role y Geo.Role, escribe:

<table><thead><tr><th valign="top">Atributo</th><th valign="top">Valor</th></tr></thead><tbody><tr><td valign="top">nombre</td><td valign="top">Data.Role</td></tr><tr><td valign="top">cdata</td><td valign="top">Geography</td></tr><tr><td valign="top">nombre</td><td valign="top">Geo.Role</td></tr><tr><td valign="top">cdata</td><td valign="top">Country</td></tr></tbody></table>

4. Bajo el nivel State Province, haz clic derecho en Annotations y selecciona Add Annotation.
5. Crea las siguientes anotaciones:

<table><thead><tr><th valign="top">Atributo</th><th valign="top">Valor</th></tr></thead><tbody><tr><td valign="top">nombre</td><td valign="top">Data.Role</td></tr><tr><td valign="top">cdata</td><td valign="top">Geography</td></tr><tr><td valign="top">nombre</td><td valign="top">Geo.Role</td></tr><tr><td valign="top">cdata</td><td valign="top">State</td></tr><tr><td valign="top">nombre</td><td valign="top">Geo.RequiredParents</td></tr><tr><td valign="top">cdata</td><td valign="top">Country</td></tr></tbody></table>

6. Bajo el nivel City, haz clic derecho en Annotations y selecciona Add Annotation.
7. Crea las siguientes anotaciones:

<table><thead><tr><th valign="top">Atributo</th><th valign="top">Valor</th></tr></thead><tbody><tr><td valign="top">nombre</td><td valign="top">Data.Role</td></tr><tr><td valign="top">cdata</td><td valign="top">Geography</td></tr><tr><td valign="top">nombre</td><td valign="top">Geo.Role</td></tr><tr><td valign="top">cdata</td><td valign="top">City</td></tr><tr><td valign="top">nombre</td><td valign="top">Geo.RequiredParents</td></tr><tr><td valign="top">cdata</td><td valign="top">Country,State</td></tr></tbody></table>

8. Guarda el Esquema.

<figure><img src="/files/bcb92bf88076cce6a72ef843fec60ba1de13e640" alt=""><figcaption><p>Mapa Geo - Anotaciones geo</p></figcaption></figure>
{% endtab %}

{% tab title="3. CUSTOMERS" %}
{% hint style="info" %}

#### **Dimensión CUSTOMERS**

Para aclarar el análisis, vamos a eliminar los niveles Territory y Country actuales en la dimensión CUSTOMERS y agregar algunas Propiedades al Nombre del Cliente.
{% endhint %}

1. Elimina los siguientes Niveles de la dimensión CUSTOMERS:

* Territory
* Country

2. En el panel izquierdo, haz clic derecho en el nivel Customer Name bajo Customers (Hierarchy) y selecciona: Add Property.

<figure><img src="/files/83ed435da421efcb2b8bbf9f314be9fd8dd9bc97" alt=""><figcaption><p>Propiedades - Customers</p></figcaption></figure>

3. Para crear la propiedad Customer Number, escribe o elige:&#x20;

<table><thead><tr><th valign="top">Atributo</th><th valign="top">Valor</th></tr></thead><tbody><tr><td valign="top">nombre</td><td valign="top">Number</td></tr><tr><td valign="top">column</td><td valign="top">CUSTOMERNUMBER</td></tr><tr><td valign="top">type</td><td valign="top">String</td></tr></tbody></table>

{% hint style="info" %}
Al agregar propiedades, debes escribir el nombre de la columna.
{% endhint %}

4. En el panel izquierdo, haz clic derecho en el nivel Customer bajo Customers y selecciona Add Property.
5. Para crear la propiedad Contact First Name, escribe o elige:&#x20;

<table><thead><tr><th valign="top">Atributo</th><th valign="top">Valor</th></tr></thead><tbody><tr><td valign="top">nombre</td><td valign="top">Contact First Name</td></tr><tr><td valign="top">column</td><td valign="top">CONTACTFIRSTNAME</td></tr><tr><td valign="top">type</td><td valign="top">String</td></tr></tbody></table>

6. En el panel izquierdo, haz clic derecho en el nivel Customer bajo Customers y selecciona Add Property.
7. Para crear la propiedad Contact Last Name, escribe o elige:&#x20;

<table><thead><tr><th valign="top">Atributo</th><th valign="top">Valor</th></tr></thead><tbody><tr><td valign="top">nombre</td><td valign="top">Contact Last Name</td></tr><tr><td valign="top">column</td><td valign="top">CONTACTLASTNAME</td></tr><tr><td valign="top">type</td><td valign="top">String</td></tr></tbody></table>

8. (Opcional) Agrega propiedades adicionales de miembro para Phone (PHONE), Address (ADDRESSLINE1) y Credit Limit (CREDITLIMIT).
9. Guarda el Esquema.
   {% endtab %}

{% tab title="4. PRODUCTS" %}
{% hint style="info" %}

#### **Dimensión PRODUCTS**

{% endhint %}

1. Elimina los siguientes Niveles de la dimensión PRODUCTS:

* Vendor

2. En el panel izquierdo, haz clic derecho en el nivel (Products) Line bajo Products (Hierarchy) y selecciona Add Property.

<figure><img src="/files/8eba5289fb1dc98cf75f8e48620eb566dd9ad707" alt=""><figcaption></figcaption></figure>

3. Para crear la propiedad Description, escribe o elige:&#x20;

<table><thead><tr><th valign="top">Atributo</th><th valign="top">Valor</th></tr></thead><tbody><tr><td valign="top">nombre</td><td valign="top">Description</td></tr><tr><td valign="top">column</td><td valign="top">PRODUCTDESCRIPTION</td></tr><tr><td valign="top">type</td><td valign="top">String</td></tr></tbody></table>

4. En el panel izquierdo, haz clic derecho en el nivel (Products) Name bajo Products (Hierarchy) y selecciona Add Property.
5. Para crear la propiedad Code, escribe o elige:&#x20;

<table><thead><tr><th valign="top">Atributo</th><th valign="top">Valor</th></tr></thead><tbody><tr><td valign="top">nombre</td><td valign="top">Code</td></tr><tr><td valign="top">column</td><td valign="top">PRODUCTCODE</td></tr><tr><td valign="top">type</td><td valign="top">String</td></tr></tbody></table>

6. Para crear la propiedad vendor, escribe o elige:&#x20;

<table><thead><tr><th valign="top">Atributo</th><th valign="top">Valor</th></tr></thead><tbody><tr><td valign="top">nombre</td><td valign="top">Vendor</td></tr><tr><td valign="top">column</td><td valign="top">PRODUCTVENDOR</td></tr><tr><td valign="top">type</td><td valign="top">String</td></tr></tbody></table>

7\.       Guarda el Esquema.
{% endtab %}

{% tab title="5. TIME" %}
{% hint style="info" %}

#### TIME - Una Dimensión Compartida

Algunas dimensiones (como Time o Date) pueden usarse en múltiples cubos. Estas dimensiones se conocen como Dimensiones Compartidas.

Debido a que las Dimensiones Compartidas no pertenecen a un cubo, debes declarar una tabla explícita (u otra fuente de datos). Cuando las uses en un cubo, necesitas especificar la clave foránea.&#x20;

Este ejemplo muestra la dimensión CUSTOMERS unida al cubo Classic Models usando la clave foránea ORDERFACT.CUSTOMERNUMBER, y al cubo Warehouse usando la clave foránea WAREHOUSE.WAREHOUSE\_CUSTOMERNUMBER:

```xml
<Dimension name="CUSTOMERS">
<Hierarchy hasAll="true" primaryKey="CUSTOMERNUMBER">
<Table name="CUSTOMER_W_TER"/>
<Level name="TERRITORY" column="TERRITORY" uniqueMembers="true"/>
</Hierarchy>
</Dimension>

<Cube name="Classic Models">
<Table name="ORDERFACT"/>
...
<DimensionUsage name="CUSTOMERS" source="CUSTOMERS" foreignKey="CUSTOMERNUMBER"/>
</Cube>

<Cube name="Warehouse">
<Table name="WAREHOUSEFACT"/>
...
<DimensionUsage name="CUSTOMERS" source="CUSTOMERS" foreignKey="WAREHOUSE_CUSTOMERNUMBER"/>
</Cube>

```

Al generar el SQL para un join, Mondrian necesita saber a qué columna realizar el join. Si estás uniendo a una vista de join, entonces necesitas indicarle a cuál de las tablas en el join pertenece esa columna (por lo general será la primera tabla en el join).
{% endhint %}

{% embed url="<https://www.loom.com/share/cc5f940551384a40a326537009003dcb?hideEmbedTopBar=true&hide_owner=true&hide_share=true&hide_title=true>" %}
TIME - Una Dimensión Compartida
{% endembed %}

***

1. En el panel izquierdo, haz clic derecho en Schema y selecciona Add Dimension.
2. Para crear la dimensión TIME, escribe o elige:&#x20;

<table><thead><tr><th valign="top">Atributo</th><th valign="top">Valor</th></tr></thead><tbody><tr><td valign="top">nombre</td><td valign="top">TIME</td></tr><tr><td valign="top">type</td><td valign="top">TimeDimension</td></tr></tbody></table>

3. En el panel izquierdo, expande TIME y luego haz clic en New Hierarchy 0.
4. Para agregar la tabla DIM\_TIME, haz clic derecho en New Hierarchy 0 y selecciona Add Table.
5. Haz clic en el Valor de schema, selecciona PUBLIC y presiona Tab.
6. Haz clic en el Valor de name, selecciona DIM\_TIME y presiona Tab.
7. Para nombrar la jerarquía y establecer la clave primaria, haz clic en New Hierarchy 0.
8. Para definir la jerarquía Time, escribe o elige:&#x20;

<table><thead><tr><th valign="top">Atributo</th><th valign="top">Valor</th></tr></thead><tbody><tr><td valign="top">nombre</td><td valign="top">Time</td></tr><tr><td valign="top">allMemberName</td><td valign="top">All Years</td></tr><tr><td valign="top">primaryKey</td><td valign="top">TIME_ID</td></tr></tbody></table>

9. En el panel izquierdo, haz clic derecho en la jerarquía Time bajo TIME y selecciona Add Level.
10. Para crear el nivel Years, escribe o elige:&#x20;

<table><thead><tr><th valign="top">Atributo</th><th valign="top">value</th></tr></thead><tbody><tr><td valign="top">nombre</td><td valign="top">Years</td></tr><tr><td valign="top">column</td><td valign="top">YEAR_ID</td></tr><tr><td valign="top">type</td><td valign="top">String</td></tr><tr><td valign="top">uniqueMembers</td><td valign="top">Selected</td></tr><tr><td valign="top">levelType</td><td valign="top">TimeYears</td></tr><tr><td valign="top">hideMemberIf</td><td valign="top">Never</td></tr></tbody></table>

11. Guarda y Publica el Esquema.

<figure><img src="/files/f2da7fe92a5c8447949fd4daa8cf9001881a8c74" alt=""><figcaption><p>TIME - Dimensión Compartida</p></figcaption></figure>

11. Verifica que puedas acceder al Schema como Fuente de Datos.

***

**Anotaciones de Tiempo**

1. En el panel izquierdo, haz clic derecho en Years y selecciona Add Annotations.
2. Bajo el nivel Years, haz clic derecho en Annotations y selecciona Add Annotation.
3. Para crear la anotación AnalyzerDateFormat, escribe:&#x20;

<table><thead><tr><th valign="top">Atributo</th><th valign="top">Valor</th></tr></thead><tbody><tr><td valign="top">nombre</td><td valign="top">AnalyzerDateFormat</td></tr><tr><td valign="top">cdata</td><td valign="top">[yyyy]</td></tr></tbody></table>

4. En el panel izquierdo, haz clic derecho en la jerarquía Time bajo TIME y selecciona Add Level.
5. Para crear el nivel Quarters, escribe o elige:&#x20;

<table><thead><tr><th valign="top">Atributo</th><th valign="top">Valor</th></tr></thead><tbody><tr><td valign="top">nombre</td><td valign="top">Quarters</td></tr><tr><td valign="top">column</td><td valign="top">QTR_NAME</td></tr><tr><td valign="top">ordinalColumn</td><td valign="top">QTR_ID</td></tr><tr><td valign="top">type</td><td valign="top">String</td></tr><tr><td valign="top">levelType</td><td valign="top">TimeQuarters</td></tr><tr><td valign="top">hideMemberIf</td><td valign="top">Never</td></tr></tbody></table>

6. En el panel izquierdo, haz clic derecho en Quarters y selecciona Add Annotations.
7. Bajo el nivel Quarters, haz clic derecho en Annotations y selecciona Add Annotation.
8. Para crear la anotación AnalyzerDateFormat, escribe:&#x20;

<table><thead><tr><th valign="top">Atributo</th><th valign="top">Valor</th></tr></thead><tbody><tr><td valign="top">nombre</td><td valign="top">AnalyzerDateFormat</td></tr><tr><td valign="top">cdata</td><td valign="top">[yyyy].[‘QTR’q]</td></tr></tbody></table>

9. Para agregar otro nivel, en el panel izquierdo, haz clic derecho en la jerarquía Time bajo TIME y selecciona Add Level.
10. Para crear el nivel Months, escribe o elige:&#x20;

<table><thead><tr><th valign="top">Atributo</th><th valign="top">Valor</th></tr></thead><tbody><tr><td valign="top">nombre</td><td valign="top">Months</td></tr><tr><td valign="top">column</td><td valign="top">MONTH_NAME</td></tr><tr><td valign="top">ordinalColumn</td><td valign="top">MONTH_ID</td></tr><tr><td valign="top">type</td><td valign="top">String</td></tr><tr><td valign="top">levelType</td><td valign="top">TimeMonths</td></tr><tr><td valign="top">hideMemberIf</td><td valign="top">Never</td></tr></tbody></table>

11. En el panel izquierdo, haz clic derecho en Months y selecciona Add Annotations.
12. Bajo el nivel Months, haz clic derecho en Annotations y selecciona Add Annotation.
13. Para crear la anotación AnalyzerDateFormat, escribe:&#x20;

<table><thead><tr><th valign="top">Atributo</th><th valign="top">Valor</th></tr></thead><tbody><tr><td valign="top">nombre</td><td valign="top">AnalyzerDateFormat</td></tr><tr><td valign="top">cdata</td><td valign="top">[yyyy].[‘QTR’q].[MMM]</td></tr></tbody></table>

14. Guarda el esquema.

&#x20;El siguiente paso es referenciar la dimensión TIME desde dentro del cubo SALES.

***

**Uso de Dimensión (Dimension Usage)**

1. Haz clic derecho en el Cubo y selecciona: Add Dimension Usage. Observa el icono diferente para indicar que esta es una Dimensión Compartida.
2. Para crear la Dimensión TIME, escribe o elige:&#x20;

<table><thead><tr><th valign="top">Atributo</th><th valign="top">Valor</th></tr></thead><tbody><tr><td valign="top">nombre</td><td valign="top">TIME</td></tr><tr><td valign="top">foreignKey</td><td valign="top">TIME_ID</td></tr><tr><td valign="top">source</td><td valign="top">TIME</td></tr></tbody></table>

3. Revisa el Schema y visualiza el xml.
   {% endtab %}

{% tab title="6. Degenerate" %}
{% hint style="info" %}

#### **Dimensión Degenerada de Estado de Orden**

Mientras que una dimensión en estrella tiene una tabla de dimensión, y una dimensión copo de nieve tiene dos o más, una dimensión degenerada no tiene ninguna. Todas las columnas que describen la dimensión viven en la tabla de hechos.&#x20;

Por ejemplo, se podría crear una dimensión degenerada para Order Status porque solo hay pocos valores en la columna Order Status. Crear una tabla de dimensión es innecesario porque tiene solo unos pocos valores, no agrega información adicional y supone el costo de una unión adicional.
{% endhint %}

{% embed url="<https://www.loom.com/share/f93673283a184b31ae57261b9086cd84?hideEmbedTopBar=true&hide_owner=true&hide_share=true&hide_title=true>" %}
Dimensión Degenerada - Estado de Orden
{% endembed %}

***

1. En el panel izquierdo, haz clic derecho en el cubo Sales\_FY2003\_2005 y selecciona Add Dimension.
2. Para crear la dimensión ORDERSTATUS, escribe o elige:&#x20;

<table><thead><tr><th valign="top">Atributo</th><th valign="top">Valor</th></tr></thead><tbody><tr><td valign="top">nombre</td><td valign="top">ORDERSTATUS</td></tr><tr><td valign="top">foreignKey</td><td valign="top">STATUS</td></tr></tbody></table>

3. En el panel izquierdo, expande Order Status y luego haz clic en New Hierarchy 0.
4. Para nombrar la jerarquía y establecer la clave primaria, haz clic en New Hierarchy 0.
5. Para definir la jerarquía Order Status, escribe o elige:&#x20;

<table><thead><tr><th valign="top">Atributo</th><th valign="top">Valor</th></tr></thead><tbody><tr><td valign="top">nombre</td><td valign="top">Status</td></tr><tr><td valign="top">allMemberName</td><td valign="top">All Status Types</td></tr><tr><td valign="top">primaryKey</td><td valign="top">STATUS</td></tr></tbody></table>

{% hint style="info" %}
Cuando no hay nombre de jerarquía, Mondrian usa el nombre de la dimensión como nombre de la jerarquía.
{% endhint %}

6. En el panel izquierdo, haz clic derecho en la jerarquía predeterminada bajo Order Status, luego en la barra de herramientas haz clic en Add Level.

<figure><img src="/files/7cb44307085a5d59adc6e2dc0e932f124fd7f0e2" alt="" width="449"><figcaption><p>Order Status - Dimensión Degenerada</p></figcaption></figure>

7. Para crear el nivel Type, escribe o elige:&#x20;

<table><thead><tr><th valign="top">Atributo</th><th valign="top">Valor</th></tr></thead><tbody><tr><td valign="top">nombre</td><td valign="top">Type</td></tr><tr><td valign="top">column</td><td valign="top">STATUS</td></tr><tr><td valign="top">type</td><td valign="top">String</td></tr><tr><td valign="top">uniqueMembers</td><td valign="top">Selected</td></tr><tr><td valign="top">levelType</td><td valign="top">Regular</td></tr><tr><td valign="top">hideMemberIf</td><td valign="top">Never</td></tr></tbody></table>

8. Guarda el Esquema.
   {% endtab %}

{% tab title="7. Measures" %}
{% hint style="info" %}

#### **Agregar Medida Quantity**

Agregar una Quantity extiende el modelo ya que la medida puede usarse en Medidas Calculadas.
{% endhint %}

1. Para agregar una medida para Quantity, en el panel izquierdo, haz clic derecho en Sales Cube y selecciona Add Measure.
2. Para crear la medida Quantity, escribe o elige:

<table><thead><tr><th valign="top">Atributo</th><th valign="top">Valor</th></tr></thead><tbody><tr><td valign="top">nombre</td><td valign="top">Quantity</td></tr><tr><td valign="top">aggregator</td><td valign="top">sum</td></tr><tr><td valign="top">column</td><td valign="top">QUANTITYORDERED</td></tr><tr><td valign="top">formatString</td><td valign="top">#,###</td></tr><tr><td valign="top">datatype</td><td valign="top">Numeric</td></tr></tbody></table>
{% endtab %}

{% tab title="8. Publicar" %}
{% hint style="info" %}

#### **Publicar el Esquema**

Antes de hacer cambios en tu modelo .. Guarda .. esto ayudará con la gestión del ciclo de vida del Modelo y la resolución de problemas.
{% endhint %}

1. Para publicar el esquema, en el menú, selecciona File > Publish.
2. Para publicar el esquema:

* En el campo User, escribe admin.
* En el campo Password, escribe password.
* Haz clic en Publish.
* Para cerrar el cuadro de diálogo Schema Publish, haz clic en OK.

***

**Crear un Reporte en Analyzer**

1. Desde la perspectiva User Console Home, haz clic en Create New > Analysis Report.
2. En el cuadro de diálogo Select Data Source, haz clic en Miniature Models: Sales.
3. Arrastra Sales a la zona de medidas (Measure drop zone).
4. Arrastra Territory y Line a la zona de filas (Rows drop zone).
5. Arrastra Years a la zona de columnas (Columns drop zone).
6. Cierra el informe Star Schema Training Exercise.

<figure><img src="/files/67aa7ed0d32e47a19240d539bc0b4756280fba3d" alt=""><figcaption><p>Reporte Analyzer</p></figcaption></figure>

{% hint style="info" %}
Si estás conectado a internet .. intenta crear un informe Geo Map.
{% endhint %}

<figure><img src="/files/307e37d9a69cd56581a76b6eb39db268e8f99245" alt=""><figcaption><p>Mapa geo</p></figcaption></figure>
{% endtab %}
{% endtabs %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://academy.pentaho.com/schema-workbench/schema-workbench-es/banco-de-trabajo-de-esquemas/extender-modelo/modelo-ampliado.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
