> For the complete documentation index, see [llms.txt](https://cleyrop.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://cleyrop.gitbook.io/docs/projet-data-and-ia/dataflow.md).

# Dataflow

Les Dataflows sont le cœur du moteur de transformation de données dans Cleyrop.

Ils permettent de créer des **pipelines visuels, reproductibles et collaboratifs** pour transformer, enrichir et publier vos données au sein de la plateforme.

Un Dataflow peut être vu comme une **suite d’étapes logiques** (transformations) connectées entre elles pour produire un ou plusieurs **Datasets de sortie**.

## Pourquoi utiliser les Dataflows ?

Les Dataflows ont été conçus pour :

* 🧩 **Unifier les traitements** Spark, Python, SQL et Low Code dans un même environnement.
* 👥 **Faciliter la collaboration** entre profils techniques et métiers grâce à une interface visuelle.
* 🔁 **Garantir la traçabilité** et la **reproductibilité** des traitements (versionning, logs, exécutions).
* ⚙️ **Optimiser les performances** via des clusters managés et prêts à l’emploi.
* 📦 Assurer la **qualité et la gouvernance** grâce à des jeux de données versionnés et typés.

***

## Le cycle de vie d’un Dataflow

Chaque Dataflow suit un cycle en plusieurs étapes

{% stepper %}
{% step %}
**Création**

Vous définissez le type de Dataflow (Spark ou Python), ses variables et son dataset de sortie.
{% endstep %}

{% step %}
**Transformation**

Vous ajoutez des étapes de traitement : code, SQL, ou Low Code.
{% endstep %}

{% step %}
**Exécution**

Vous lancez le flux manuellement ou le planifiez pour une exécution récurrente.
{% endstep %}

{% step %}
**Analyse**

Vous consultez les logs, les résultats et la qualité des datasets produits.
{% endstep %}

{% step %}
**Publication**

Une fois validé, le Dataflow peut être publié pour alimenter d’autres projets, dashboards ou assistants IA.
{% endstep %}

{% step %}
**Collaboration et évolution**

Après le mise en Production, les autres membres du projet peuvent créer des branches pour faire évoluer le Dataflow
{% endstep %}
{% endstepper %}

{% hint style="success" %}
Les Dataflows garantissent une **séparation claire** entre les environnements de test et de production grâce à leur système de **branches et de rôles**.
{% endhint %}

## Structure d’un Dataflow

Un Dataflow se compose de plusieurs éléments :

| Élément                    | Description                                                                                   |
| -------------------------- | --------------------------------------------------------------------------------------------- |
| Transformations            | Étapes de traitement exécutées séquentiellement (Python, PySpark, SQL ou Low Code).           |
| Variables d’environnement  | Paramètres réutilisables injectés dans le code (ex : clés API, chemins S3…).                  |
| Datasets d’entrée / sortie | Données consommées ou produites par le Dataflow.                                              |
| Cluster d’exécution        | Environnement technique dans lequel les traitements sont exécutés.                            |
| Logs et exécutions         | Historique détaillé des traitements effectués.                                                |
| Branches                   | Copies isolées du Dataflow permettant de travailler en parallèle sans impacter la production. |

## Naviguer dans la documentation

| Étape                                                                                                   | Objectif                                                                                    |
| ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- |
| [Comprendre les Dataflows](/docs/projet-data-and-ia/dataflow/comprendre-les-dataflows.md)               | Découvrir les concepts fondamentaux, les bonnes pratique, des exemple de code et les rôles. |
| [Créer un Dataflow](/docs/projet-data-and-ia/dataflow/creer-un-dataflow.md)                             | Apprendre à définir, configurer et exécuter vos flux : transformation, dataset, schéma .... |
| [Analyser les exécutions et logs](/docs/projet-data-and-ia/dataflow/analyser-les-executions-et-logs.md) | Comprendre les résultats, visualiser les sorties, corriger les erreurs.                     |
| [Collaborer et versionner](/docs/projet-data-and-ia/dataflow/collaborer-et-versionner.md)               | Travailler à plusieurs sur un même Dataflow sans risque.                                    |
| [Configurer des alertes](/docs/projet-data-and-ia/dataflow/configurer-des-alertes.md)                   | Être notifié automatiquement des exécutions.                                                |
| [Transformer sans code (Low Code)](/docs/projet-data-and-ia/dataflow/transformer-sans-code-low-code.md) | Utiliser l’interface visuelle pour manipuler vos données.                                   |
| [Utiliser des Modules](/docs/projet-data-and-ia/dataflow/utiliser-des-modules.md)                       | Mutualiser des fonctions réutilisables entre vos Dataflows.                                 |

***

## Bonnes pratiques

* Créez une **branche par évolution** pour sécuriser vos tests.
* Vérifiez toujours le **schéma du dataset de sortie** avant publication.
* Utilisez les modules pour **mutualiser** les fonctions entre projets.
* Activez les **alertes d’échec** pour vos Dataflows de production.
* **Documentez** vos transformations dans leur description pour améliorer la lisibilité du graphe.
