> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-postgresql-tls-support.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Premiers pas avec Moose Stack : une approche orientée code pour développer sur ClickHouse avec des schémas typés et un développement local

# Développer sur ClickHouse avec 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>
            Géré par la communauté
        </div>;
};

[Moose OLAP](https://docs.fiveonefour.com/moosestack/olap) est un module clé de la [Moose Stack](https://docs.fiveonefour.com/moosestack), une boîte à outils open source destinée aux développeurs pour créer des backends analytiques en temps réel en Typescript et Python.

Moose OLAP propose des abstractions adaptées aux développeurs et des fonctionnalités de type ORM, conçues nativement pour ClickHouse.

<div id="key-features">
  ## Principales fonctionnalités de Moose OLAP
</div>

* **Schémas sous forme de code** : Définissez vos tables ClickHouse en TypeScript ou en Python avec typage sûr et autocomplétion dans l’IDE
* **Requêtes avec typage sûr** : Écrivez des requêtes SQL avec vérification des types et autocomplétion
* **Développement local** : Développez et testez sur des instances ClickHouse locales sans affecter la production
* **Gestion des migrations** : Versionnez vos modifications de schéma et gérez les migrations dans le code
* **Streaming en temps réel** : Prise en charge intégrée pour associer ClickHouse à Kafka ou Redpanda pour l’ingestion en streaming
* **API REST** : Générez facilement des API REST entièrement documentées à partir de vos tables et vues ClickHouse

<div id="getting-started">
  ## Premiers pas en moins de 5 minutes
</div>

Pour les guides d’installation et de prise en main les plus récents et les plus complets, consultez la [documentation Moose Stack](https://docs.fiveonefour.com/moosestack/getting-started/from-clickhouse).

Ou suivez ce guide pour démarrer avec Moose OLAP sur un déploiement ClickHouse ou ClickHouse Cloud existant en moins de 5 minutes.

<div id="prerequisites">
  ### Prérequis
</div>

* **Node.js 20+** ou **Python 3.12+** - Requis pour le développement en TypeScript ou en Python
* **Docker Desktop** - Pour l'environnement de développement local
* **macOS/Linux** - Windows fonctionne via WSL2

<Steps>
  <Step>
    ### Installer Moose

    Installez la CLI Moose à l'échelle du système :

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

  <Step>
    ### Configurer votre projet

    #### Option A : utiliser votre déploiement ClickHouse existant

    **Important** : votre ClickHouse de production restera intact. Cette opération initialise simplement un nouveau projet Moose OLAP avec des modèles de données dérivés de vos tables 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
    ```

    Votre chaîne de connexion ClickHouse doit respecter ce format :

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

    #### Option B : utiliser ClickHouse Playground

    Vous n'avez pas encore de déploiement ClickHouse opérationnel ? Utilisez le ClickHouse Playground pour essayer 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>
    ### Installer les dépendances

    ```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
    ```

    Vous devriez voir : `Successfully generated X models from ClickHouse tables`
  </Step>

  <Step>
    ### Explorer vos modèles générés

    La CLI Moose génère automatiquement des interfaces TypeScript ou des modèles Pydantic Python à partir de vos tables ClickHouse existantes.

    Consultez vos nouveaux modèles de données dans le fichier `app/index.ts`.
  </Step>

  <Step>
    ### Démarrer le développement

    Démarrez votre serveur de développement pour lancer une instance ClickHouse locale avec toutes vos tables de production automatiquement recréées à partir de vos définitions de code :

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

    **Important** : votre ClickHouse de production restera intact. Cette commande crée un environnement de développement local.
  </Step>

  <Step>
    ### Peupler votre base de données locale

    Importez vos données dans votre instance ClickHouse locale :

    #### Depuis votre propre ClickHouse

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

    #### Depuis ClickHouse Playground

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

  <Step>
    ### Développer avec Moose OLAP

    Maintenant que vos tables sont définies dans le code, vous bénéficiez des mêmes avantages que les modèles de données ORM dans les applications web : sécurité de typage et autocomplétion pour créer des API et des vues matérialisées à partir de vos données analytiques. Pour aller plus loin, vous pouvez par exemple :

    * Créer une API REST avec [Moose API](https://docs.fiveonefour.com/moosestack/apis)
    * Ingérer ou transformer des données avec [Moose Workflows](https://docs.fiveonefour.com/moosestack/workflows) ou [Moose Streaming](https://docs.fiveonefour.com/moosestack/workflows)
    * Explorer le passage en production avec [Moose Build](https://docs.fiveonefour.com/moosestack/deploying) et [Moose Migrate](https://docs.fiveonefour.com/moosestack/migrate)
  </Step>
</Steps>

<div id="get-help-stay-connected">
  ## Obtenir de l’aide et rester en contact
</div>

* **Application de référence** : Découvrez l’application de référence open source, [Area Code](https://github.com/514-labs/area-code) : un dépôt de départ avec tous les composants nécessaires pour créer une application complète, prête pour l’entreprise, qui nécessite une infrastructure spécialisée. Deux exemples d’application sont proposés : User Facing Analytics et Operational Data Warehouse.
* **Communauté Slack** : Échangez avec les mainteneurs de Moose Stack [sur Slack](https://join.slack.com/t/moose-community/shared_invite/zt-2fjh5n3wz-cnOmM9Xe9DYAgQrNu8xKxg) pour obtenir de l’aide et partager vos retours
* **Voir les tutoriels** : Tutoriels vidéo, démos et présentations approfondies des fonctionnalités de Moose Stack [sur YouTube](https://www.youtube.com/channel/UCmIj6NoAAP7kOSNYk77u4Zw)
* **Contribuer** : Consultez le code, contribuez à Moose Stack et signalez des issues [sur GitHub](https://github.com/514-labs/moose)
