> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

> Primeros pasos con Moose Stack: un enfoque code-first para desarrollar sobre ClickHouse con esquemas con tipado seguro y desarrollo local

# Desarrollo sobre ClickHouse con Moose OLAP

export const CommunityMaintainedBadge = () => {
  return <div className="CommunityMaintainedBadge">
            <div className="CommunityMaintainedIcon">
            <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="currentColor" viewBox="0 0 256 256">
                <path d="M244.8,150.4a8,8,0,0,1-11.2-1.6A51.6,51.6,0,0,0,192,128a8,8,0,0,1-7.37-4.89,8,8,0,0,1,0-6.22A8,8,0,0,1,192,112a24,24,0,1,0-23.24-30,8,8,0,1,1-15.5-4A40,40,0,1,1,219,117.51a67.94,67.94,0,0,1,27.43,21.68A8,8,0,0,1,244.8,150.4ZM190.92,212a8,8,0,1,1-13.84,8,57,57,0,0,0-98.16,0,8,8,0,1,1-13.84-8,72.06,72.06,0,0,1,33.74-29.92,48,48,0,1,1,58.36,0A72.06,72.06,0,0,1,190.92,212ZM128,176a32,32,0,1,0-32-32A32,32,0,0,0,128,176ZM72,120a8,8,0,0,0-8-8A24,24,0,1,1,87.24,82a8,8,0,1,0,15.5-4A40,40,0,1,0,37,117.51,67.94,67.94,0,0,0,9.6,139.19a8,8,0,1,0,12.8,9.61A51.6,51.6,0,0,1,64,128,8,8,0,0,0,72,120Z"></path>
            </svg>
        </div>
            Mantenimiento de la comunidad
        </div>;
};

<CommunityMaintainedBadge />

[Moose OLAP](https://docs.fiveonefour.com/moosestack/olap) es un módulo principal de [Moose Stack](https://docs.fiveonefour.com/moosestack), un conjunto de herramientas de desarrollo de código abierto para crear backends analíticos en tiempo real con Typescript y Python.

Moose OLAP ofrece abstracciones pensadas para desarrolladores y funcionalidades similares a las de un ORM, desarrolladas de forma nativa para ClickHouse.

<div id="key-features">
  ## Características principales de Moose OLAP
</div>

* **Esquemas como código**: Define tus tablas de ClickHouse en TypeScript o Python con tipado seguro y autocompletado en el IDE
* **Consultas con tipado seguro**: Escribe consultas SQL con comprobación de tipos y autocompletado
* **Desarrollo local**: Desarrolla y prueba con instancias locales de ClickHouse sin afectar a producción
* **Gestión de migraciones**: Controla las versiones de tus cambios de esquema y gestiona las migraciones mediante código
* **Streaming en tiempo real**: Compatibilidad integrada para combinar ClickHouse con Kafka o Redpanda para la ingesta en streaming
* **API REST**: Genera fácilmente API REST totalmente documentadas sobre tus tablas y vistas de ClickHouse

<div id="getting-started">
  ## Primeros pasos en menos de 5 minutos
</div>

Para consultar las guías de instalación y de primeros pasos más recientes y completas, consulta la [documentación de Moose Stack](https://docs.fiveonefour.com/moosestack/getting-started/from-clickhouse).

O sigue esta guía para empezar a usar Moose OLAP en un despliegue existente de ClickHouse o ClickHouse Cloud en menos de 5 minutos.

<div id="prerequisites">
  ### Requisitos previos
</div>

* **Node.js 20+** O **Python 3.12+** - Necesario para el desarrollo en TypeScript o Python
* **Docker Desktop** - Para el entorno de desarrollo local
* **macOS/Linux** - Windows funciona mediante WSL2

<Steps>
  <Step title="Instala Moose" id="step-1-install-moose">
    Instala la CLI de Moose de forma global en tu sistema:

    ```bash theme={null}
    bash -i <(curl -fsSL https://fiveonefour.com/install.sh) moose
    ```
  </Step>

  <Step title="Configura tu proyecto" id="step-2-set-up-project">
    #### Opción A: Usa tu propio despliegue existente de ClickHouse

    **Importante**: Tu ClickHouse de producción permanecerá intacto. Esto solo inicializará un nuevo proyecto OLAP de Moose con modelos de datos derivados de tus tablas de ClickHouse.

    ```bash theme={null}
    # TypeScript
    moose init my-project --from-remote <YOUR_CLICKHOUSE_CONNECTION_STRING> --language typescript

    # Python
    moose init my-project --from-remote <YOUR_CLICKHOUSE_CONNECTION_STRING> --language python
    ```

    Tu cadena de conexión de ClickHouse debe tener este formato:

    ```bash theme={null}
    https://username:password@host:port/?database=database_name
    ```

    #### Opción B: usa ClickHouse Playground

    ¿Aún no tienes ClickHouse en funcionamiento? ¡Usa ClickHouse Playground para probar Moose OLAP!

    ```bash theme={null}
    # TypeScript
    moose init my-project --from-remote https://explorer:@play.clickhouse.com:443/?database=default --language typescript

    # Python
    moose init my-project --from-remote https://explorer:@play.clickhouse.com:443/?database=default --language python
    ```
  </Step>

  <Step title="Instala las dependencias" id="step-3-install-dependencies">
    ```bash theme={null}
    # TypeScript
    cd my-project
    npm install

    # Python
    cd my-project
    python3 -m venv .venv
    source .venv/bin/activate
    pip install -r requirements.txt
    ```

    Deberías ver: `Successfully generated X models from ClickHouse tables`
  </Step>

  <Step title="Explora tus modelos generados" id="step-4-explore-models">
    La CLI de Moose genera automáticamente interfaces de TypeScript o modelos Pydantic de Python a partir de tus tablas de ClickHouse existentes.

    Revisa tus nuevos modelos de datos en el archivo `app/index.ts`.
  </Step>

  <Step title="Inicia el desarrollo" id="step-5-start-development">
    Inicia tu servidor de desarrollo para levantar una instancia local de ClickHouse con todas tus tablas de producción reproducidas automáticamente a partir de las definiciones de tu código:

    ```bash theme={null}
    moose dev
    ```

    **Importante**: Tu ClickHouse de producción permanecerá intacto. Esto crea un entorno de desarrollo local.
  </Step>

  <Step title="Carga datos en tu base de datos local" id="step-6-seed-database">
    Carga tus datos en tu instancia local de ClickHouse:

    #### Desde tu propio ClickHouse

    ```bash theme={null}
    moose seed --connection-string <YOUR_CLICKHOUSE_CONNECTION_STRING> --limit 100
    ```

    #### Desde ClickHouse Playground

    ```bash theme={null}
    moose seed --connection-string https://explorer:@play.clickhouse.com:443/?database=default --limit 100
    ```
  </Step>

  <Step title="Desarrolla con Moose OLAP" id="step-7-building-with-moose-olap">
    Ahora que tienes tus tablas definidas en código, obtienes las mismas ventajas que los modelos de datos ORM en las aplicaciones web: tipado seguro y autocompletado al crear API y vistas materializadas sobre tus datos analíticos. Como siguiente paso, podrías probar:

    * Crear una API REST con [Moose API](https://docs.fiveonefour.com/moosestack/apis)
    * Ingestar o transformar datos con [Moose Workflows](https://docs.fiveonefour.com/moosestack/workflows) o [Moose Streaming](https://docs.fiveonefour.com/moosestack/workflows)
    * Explorar cómo pasar a producción con [Moose Build](https://docs.fiveonefour.com/moosestack/deploying) y [Moose Migrate](https://docs.fiveonefour.com/moosestack/migrate)
  </Step>
</Steps>

<div id="get-help-stay-connected">
  ## Obtén ayuda y mantente conectado
</div>

* **Aplicación de referencia**: Echa un vistazo a la aplicación de referencia open source, [Area Code](https://github.com/514-labs/area-code): un repositorio base con todos los componentes necesarios para crear una aplicación empresarial, rica en funcionalidades y preparada para una infraestructura especializada. Hay dos aplicaciones de ejemplo: User Facing Analytics y Operational Data Warehouse.
* **Comunidad de Slack**: Conéctate con los maintainers de Moose Stack [en Slack](https://join.slack.com/t/moose-community/shared_invite/zt-2fjh5n3wz-cnOmM9Xe9DYAgQrNu8xKxg) para obtener ayuda y compartir comentarios
* **Ver tutoriales**: Tutoriales en video, demos y análisis en profundidad de las funcionalidades de Moose Stack [en YouTube](https://www.youtube.com/channel/UCmIj6NoAAP7kOSNYk77u4Zw)
* **Contribuir**: Consulta el código, contribuye a Moose Stack y reporta problemas [en GitHub](https://github.com/514-labs/moose)
