# Data Mart

<figure><img src="https://content.gitbook.com/content/7nKJZNWmfvaqAyIRrGi4/blobs/DdjfZXyxABll8TAmJ5g1/Figure%202%20-%20Data%20Extraction%20Process.png" alt=""><figcaption></figcaption></figure>

## Descripción General del Proyecto

Construcción de un **Data Mart modular y escalable** dentro de Gaio DataOS, organizando datos operativos por dominios (Clientes, Órdenes, Productos y Detalle de Órdenes), habilitando analítica descriptiva, operativa y predictiva.

***

## Etapas de Desarrollo

### 1. Validación y Disparo del Proceso

<figure><img src="https://content.gitbook.com/content/7nKJZNWmfvaqAyIRrGi4/blobs/kKhXD05AorCEUaENph1F/Figure%201-%20Data%20Validation%20and%20Trigger%20Flow.png" alt=""><figcaption></figcaption></figure>

* El proyecto comienza con una verificación automática de actualización de datos.
  * Una tabla de control SQL crea `tmp_tb_control_data_update`.
  * Flujo de control:
    * `tmp_tb_control_data_update`: verifica si existen actualizaciones.
    * `tb_control_data_update`: almacena el estado de ejecución.
  * Si se detectan nuevos datos, el flujo principal de extracción se activa automáticamente.

***

### 2. Extracción de Datos

<figure><img src="https://content.gitbook.com/content/7nKJZNWmfvaqAyIRrGi4/blobs/DdjfZXyxABll8TAmJ5g1/Figure%202%20-%20Data%20Extraction%20Process.png" alt=""><figcaption></figcaption></figure>

* Los datos se extraen desde fuentes como bases PostgreSQL, archivos CSV o APIs conectadas a Gaio.

  Se utilizan tareas Builder para:

  * Transformación de datos
  * Manejo de valores nulos y errores
  * Estandarización de formatos

  Resultados intermedios:

  * Se almacenan en tablas temporales (`tmp_`).

  Consolidación final:

  * Se publica en tablas finales (`tb_`) con versionado y control.

***

### 3. Estructura Basada en Dominios

Cada dominio sigue la siguiente estructura modular:

```
Source → Staging Builder → Temporary Table (`tmp_`) → Final Builder → Final Table (`tb_`)
```

***

### 3.1 Dominio de Clientes

<figure><img src="https://content.gitbook.com/content/7nKJZNWmfvaqAyIRrGi4/blobs/RqqdzFby2ursq0EqqzYR/Figure%203%20-%20Customer%20Domain%20Flow.png" alt=""><figcaption></figcaption></figure>

* Fuente: PostgreSQL (`customers`)
  * Pasos:
    * Filtrar datos inválidos
    * Normalizar y enriquecer información
  * Flujo:
    * `tmp_customers` → `tb_customers`

***

### 3.2 Dominio de Órdenes

<figure><img src="https://content.gitbook.com/content/7nKJZNWmfvaqAyIRrGi4/blobs/0Yey7puFThUSJ2h0Cj3M/Figure%204%20-%20Orders%20Domain.png" alt=""><figcaption></figcaption></figure>

* Fuente: PostgreSQL (`orders`)
  * Pasos:
    * Cálculo de totales, costos de envío y entrega estimada
    * Normalización de estados y fallos
  * Flujo:
    * `tmp_orders` → `tb_orders`

***

### 3.3 Dominio de Productos

<figure><img src="https://content.gitbook.com/content/7nKJZNWmfvaqAyIRrGi4/blobs/0jEEsCFVQd984AZtBZMi/Figure%205%20-%20Products%20Domain.png" alt=""><figcaption></figcaption></figure>

* Fuente: PostgreSQL (`products`)
  * Pasos:
    * Enriquecer con categoría y disponibilidad
    * Agregar indicadores de productos discontinuados
  * Flujo:
    * `tmp_products` → `tb_products`

***

### 3.4 Dominio de Detalle de Órdenes (Order Items)

<figure><img src="https://content.gitbook.com/content/7nKJZNWmfvaqAyIRrGi4/blobs/2AeOxmvSx3Lbw7iDeHpB/Figure%206%20-%20Order%20Items%20Domain%20Flow.png" alt=""><figcaption></figcaption></figure>

* Fuente: PostgreSQL (`order_items`)
  * Pasos:
    * Limpieza de valores nulos y tipos de datos
    * Cálculo de impuestos, descuentos y valores unitarios
  * Flujo:
    * `tmp_order_items` → `tb_order_items`

***

### &#x20;Tecnologías Utilizadas

* Gaio DataOS como plataforma central
* ETL visual con tareas Builder, Form, Content y SQL
* Tablas temporales (`tmp_`) para staging y auditoría
* Tablas finales (`tb_`) para consumo downstream
* Parámetros dinámicos para manejo de contexto y automatización
* Lógica condicional para control de ejecución
* Preparado para integración con dashboards, IA y flujos automatizados

***

## Resultados Esperados

* Pipelines de datos sólidos y auditables
* Capacidad de reejecutar dominios específicos de manera independiente
* Desarrollo acelerado de dashboards
* Componentes reutilizables para futuros proyectos
* Mayor confiabilidad y gobernanza de datos para usuarios de negocio
* Estructura lista para modelos de forecasting, clustering y churn

***

### **Descargar este proyecto**

{% file src="<https://content.gitbook.com/content/7nKJZNWmfvaqAyIRrGi4/blobs/rcj4TAGOHwKUnHIczvZ1/Tables.zip>" %}

{% file src="<https://content.gitbook.com/content/7nKJZNWmfvaqAyIRrGi4/blobs/hE9F9vYzSfM6IwiB3gXB/bkp_app-52_25-07-29_17-07-19.zip>" %}
