> 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/v4.7/projet-data-and-ia/datasets/gerer-les-datasets.md).

# Gérer les Datasets

Ajouter des jeux de données au projet depuis un import local, une datasource ou le catalogue

Un dataset correspond à une table de données structurées que vous pouvez exploiter pour vos analyses, transformations et visualisations.

Cleyrop vous permet de créer des datasets de plusieurs manières : en important des fichiers locaux, en vous connectant à des sources de données externes, ou en exploitant les résultats de vos Dataflows.

Une fois créés, vos datasets peuvent être **rafraîchis** pour maintenir vos données à jour, **publiés au catalogue** pour les partager avec d'autres utilisateurs, ou **exposés via API** pour alimenter vos applications métier.

***

## Créer un Dataset <a href="#creer-un-dataset-depuis-un-import-local" id="creer-un-dataset-depuis-un-import-local"></a>

### Créer un Dataset depuis une Datasource <a href="#creer-un-dataset-depuis-un-import-local" id="creer-un-dataset-depuis-un-import-local"></a>

**Ajouter une Datasource au projet**

{% hint style="info" %}
Cette étape n'est pas nécessaire pour créer un dataset depuis un **import local** : cette source ne nécessite pas de Datasource ni de demande d'accès préalable.
{% endhint %}

Pour pouvoir utiliser une Datasource comme origine d'un dataset au sein d'un projet, il faut préalablement obtenir l'autorisation de pouvoir l'utiliser dans le projet.

* Depuis la bibliothèque, allez dans l'onglet `Datasources`
* Cliquez sur le bouton `Ajouter une Datasource`. Vous pouvez rechercher une Datasource dans la liste en renseignant un ou plusieurs mots-clés dans la barre de recherche ou en filtrant par sensibilité ou type de connecteur
* Cliquez sur `Demander l'accès` puis expliquez votre demande dans le champ `Commentaire` et cliquez sur `Envoyer`.

Une demande d'accès est envoyée aux Platform Managers.

Vous recevrez une notification suite au traitement de la demande pour confirmer ou non, l'accès.

**Créer le Dataset**

{% stepper %}
{% step %}
**Choisir la Datasource dans la liste des Datasources autorisées du projet**
{% endstep %}

{% step %}
**Définissez les paramètres de collecte en fonction du type de source**

{% tabs %}
{% tab title="Import Local" %}
Choisissez vos fichiers :

* soit glisser-déposer vos fichiers dans la zone prévue à cet effet
* soit cliquer sur Parcourir pour sélectionner vos fichiers

Définissez les paramètres de collecte :

* **Schéma du dataset** : il sera basé sur le schéma inféré du premier fichier. Si vous avez plusieurs fichiers vous pouvez choisir le fichier sur lequel s'appuyer pour le schéma de référence. Vous pouvez choisir d'ignorer les types, toutes les colonnes seront en string.

{% hint style="warning" %}
**Si vous importez plusieurs fichiers en même temps**, ils alimentent **un seul dataset**. En mode Remplacement, les fichiers sont d'abord agrégés entre eux selon la logique de fusion de schémas (colonnes de même nom de même type, colonnes manquantes renseignées à vide) pour former une table intermédiaire, qui est ensuite confrontée à la politique de schéma du dataset. En mode Ajout, les fichiers sont traités un par un. Voir [Politique de schéma](/docs/v4.7/projet-data-and-ia/datasets/politique-de-schema.md#plusieurs-fichiers-pour-un-meme-dataset).

Pour obtenir un dataset par fichier, utilisez l'[import multiple](#creer-plusieurs-datasets-en-une-fois-import-multiple).
{% endhint %}

* **Séparateur** : le caractère qui sépare les colonnes de votre fichier. Par défaut, le séparateur est un point virgule. *\[Cas fichiers texte avec séparateur]*
* **En-tête** : si votre fichier contient une ligne d'en-tête, cochez cette case pour que les noms de colonnes soient automatiquement détectés *\[Cas fichiers texte avec séparateur et excel]*
* **Chemin des éléments - Cas fichiers json**
  * Démarrer par “$” et utiliser le séparateur “.” Exemple : *$.item\[\*]*
  * Vous pouvez utiliser l'aide à la navigation pour naviguer entre niveaux et obtenir le bon chemin

    <figure><img src="https://content.gitbook.com/content/Lve2h8CdCFZ7rIwwaoUU/blobs/3ViycVNChnXgl8HDfgag/image.png" alt=""><figcaption></figcaption></figure>
* **Chemin des éléments - Cas fichiers xml***.* Utiliser le séparateur : “/”. Exemple : *dataset/record*
* **Feuille** : la feuille de votre fichier Excel à importer - Par défaut, la première feuille est sélectionnée *\[Cas fichiers excel]*

Définissez une configuration avancée

* **Encodage.** Par défaut, l'encodage est UTF-8
* **Compression** : si votre fichier est compressé, choisissez le type de compression - Par défaut, le fichier n'est pas compressé *\[Cas fichiers hors excel]*
* Nombre de lignes ou colonnes à ignorer *\[Cas fichiers excel]*
* Transposer le dataset *\[Cas fichiers excel]*
* **Ajouter une colonne** : avec le nom du fichier ou avec la date d'import
* Ignorer les **lignes vides**
* Ignorer les types du schema : toutes les colonnes seront au **type string** (configuration utile lorsque la cohérence entre les données et le type reconnu n'est pas assuré)

{% hint style="info" %}
Les formats texte supportés sont : `.csv`, `.txt`, `.tsv`, `.tab`, `.dsv` et `.psv`. Définissez le séparateur correspondant à votre fichier.
{% endhint %}

Vous pouvez à tout moment visualiser sur votre fichier de référence l'impact du choix des paramètres

<figure><img src="https://content.gitbook.com/content/Lve2h8CdCFZ7rIwwaoUU/blobs/grmVYd0rg1sRyosGNbZG/image.png" alt=""><figcaption></figcaption></figure>
{% endtab %}

{% tab title="SQL/Snowflake" %}

* Sélectionnez les tables ou vues
* Vous pouvez prévisualiser les données (une requête select \* ... limit 50 sera envoyé à la datasource)
* **Filtrage SQL personnalisé** : à l'étape de Traitement, vous pouvez saisir une requête SQL pour n'importer qu'un sous-ensemble de données. Si le champ est vide, la table entière est importée.

{% hint style="warning" %}
**Règles de syntaxe acceptées** : Seules les requêtes simples sont prises en charge : `SELECT [colonnes] FROM [table] WHERE [condition] GROUP BY [col] ORDER BY [col] LIMIT [n]`. Les jointures et les sous-requêtes ne sont pas autorisées. La table indiquée dans le `FROM` doit correspondre à la table sélectionnée dans le formulaire.
{% endhint %}

<figure><img src="https://content.gitbook.com/content/Lve2h8CdCFZ7rIwwaoUU/blobs/3idhO99hVXOP60hx1FKb/image.png" alt=""><figcaption></figcaption></figure>
{% endtab %}

{% tab title="SFTP / Dépôt" %}

* Vous devrez définir les règles d'accès aux fichiers : chemin d'accès et règles de sélection sur le nom des fichiers.
* Suivre les mêmes étapes de configuration que [Créer un dataset depuis un import local](#creer-un-dataset-depuis-un-import-local-1)
* Lors d'un rafraîchissement du Dataset, ces paramètres seront réutilisés pour accéder aux fichiers
  {% endtab %}

{% tab title="SharePoint" %}

* Parcourez les **bibliothèques de documents** du site SharePoint : chaque bibliothèque apparaît comme un dossier à la racine du **Chemin des données**. Double-cliquez sur un dossier pour l'ouvrir.
* Définissez les **règles de sélection** sur le nom des fichiers et le **type de fichiers** à lire (texte avec séparateur, Excel, JSON, XML ou Parquet).
* Suivez ensuite les mêmes étapes de configuration que [Créer un dataset depuis un import local](#creer-un-dataset-depuis-un-import-local-1).
* Lors d'un rafraîchissement du Dataset, ces paramètres sont réutilisés pour relire les fichiers depuis SharePoint.

<figure><img src="https://content.gitbook.com/content/Lve2h8CdCFZ7rIwwaoUU/blobs/JxuXVWock42wBVAL3XkW/4.7-dataset-sharepoint-files.png" alt="Étape Ingestion d&#x27;un dataset SharePoint : chemin des données, règles de sélection et fichiers trouvés"><figcaption></figcaption></figure>

{% hint style="info" %}
Sur un site volumineux, limitez la sélection à une bibliothèque ou à un sous-dossier : le parcours d'un site comportant un très grand nombre de fichiers peut échouer. La datasource SharePoint est décrite dans [Sources de données](/docs/v4.7/gouvernance-de-donnees/sources-de-donnees.md#ms-sharepoint).
{% endhint %}
{% endtab %}

{% tab title="API" %}
À l'étape **Ingestion**, vous pouvez surcharger certains paramètres définis dans la datasource :

* **Fin de l'URL (endpoint)** : précisez ou surchargez l'endpoint à appeler (ex : `/users`, `/posts`)
* **Paramètres** : ajoutez ou surchargez des paramètres de requête (ex : `limit: 100`)
* **En-têtes** : ajoutez ou surchargez des en-têtes HTTP

Vous pouvez également configurer la pagination si votre API est paginée, ainsi que la réponse JSON retournée par votre API.

<details>

<summary>Configurer la pagination</summary>

Si votre API est paginée, activez la **Pagination** et choisissez son **type** : Page based, Offset based, Cursor based, Link based, Header link based, ou OData.

Exemple Page based :

* **Nom du paramètre** : nom du paramètre de requête indiquant le numéro de page (ex : `page`)
* **Première page** : numéro de la première page (souvent `1` ou `0`)
* **Format** : définit comment l'API signale la fin de la pagination :

  * **Scroll infini** : un booléen indiquant s'il reste des éléments à récupérer est renvoyé dans la réponse
  * **Nombre de page** : le nombre total de pages est renvoyé dans la réponse (ex : `$.total_pages`)

  Dans les deux cas, renseignez le **Chemin de l'élément** correspondant : le chemin JSON Path vers cette valeur
* **Limit** (optionnel) : nom et valeur du paramètre de taille de page (ex : `limit` = `50`)

{% hint style="info" %}
Le **Chemin des éléments** (section Sortie) doit pointer vers le tableau de données, et non vers l'information de pagination (ex : `$.results`).
{% endhint %}

<figure><img src="https://content.gitbook.com/content/Lve2h8CdCFZ7rIwwaoUU/blobs/4wPk455xhdnHEnLa57ax/image.png" alt=""><figcaption></figcaption></figure>

<figure><img src="https://content.gitbook.com/content/Lve2h8CdCFZ7rIwwaoUU/blobs/oTmLiL3qIQVtswGCuVCf/image.png" alt=""><figcaption></figcaption></figure>

</details>

<details>

<summary>Configurer la réponse JSON</summary>

Configurer la réponse JSON : vous pouvez définir comment les données JSON retournées par l'API seront interprétées :

* **Chemin des éléments (JSON Path) :** définit le point d'entrée dans la structure JSON. Il utilise la syntaxe JSON Path :
  * `$` : racine de la réponse (par défaut)
  * `$[*]` : tous les éléments d'un tableau à la racine
  * `$[*].sous_objet` : le sous-objet de chaque élément
* **Récupérer le schéma automatiquement :** cliquez sur **Récupérer le schéma** pour interroger l'API et détecter automatiquement la structure de la réponse. Le panneau Aide JSON Path affiche alors les colonnes disponibles avec leur type :
  * `#` : numérique
  * `T` : texte
  * `{}` : object JSON imbriqué
* **Naviguer dans les objets imbriqués :** lorsque votre réponse JSON contient des objets imbriqués (type `{}`), cliquez sur l'icône à droite de l'objet pour naviguer dans ses sous-champs. Le Chemin des éléments est mis à jour automatiquement.

<div><figure><img src="https://content.gitbook.com/content/Lve2h8CdCFZ7rIwwaoUU/blobs/0hwHHkzBVzNOD2Z9S4PG/image.png" alt=""><figcaption></figcaption></figure> <figure><img src="https://content.gitbook.com/content/Lve2h8CdCFZ7rIwwaoUU/blobs/YVY518UVrQjVzqBXlcyn/image.png" alt=""><figcaption></figcaption></figure></div>

<figure><img src="https://content.gitbook.com/content/Lve2h8CdCFZ7rIwwaoUU/blobs/YVY518UVrQjVzqBXlcyn/image.png" alt=""><figcaption></figcaption></figure>

</details>
{% endtab %}

{% tab title="Business Central" %}
**Étape Ingestion**

* **Société** : sélectionnez la société Business Central à interroger
* **Entité** : sélectionnez l'entité (table) à importer parmi la liste proposée

**Étape Traitement**

* **Colonnes à importer** : sélectionnez les colonnes à conserver parmi celles détectées automatiquement
* **Configuration avancée** :
  * **Filtre** : filtre au format OData (ex : `type eq 'Inventory' and blocked eq false`)
  * **Limite** : nombre maximum de lignes importées à chaque rafraîchissement (0 = pas de limite)
  * **Tri des résultats** : utile uniquement si une limite est définie, pour déterminer quelles lignes sont conservées

Vous pouvez **prévisualiser** vos données à tout moment pour vérifier l'impact de vos réglages.

<figure><img src="https://content.gitbook.com/content/Lve2h8CdCFZ7rIwwaoUU/blobs/IqFxY27swJY5rHSC1Ghh/image.png" alt=""><figcaption></figcaption></figure>
{% endtab %}

{% tab title="SalesForce" %}
**Entité** : sélectionnez l'entité (objet Salesforce) à importer parmi la liste proposée

**Étape Traitement**

* **Colonnes à importer** : sélectionnez les colonnes à conserver parmi celles détectées automatiquement
* **Configuration avancée** :
  * **Filtre** : filtre au format SOQL (ex : `Status = 'Open' AND Priority = 'High'`)
  * **Limite** : nombre maximum de lignes importées à chaque rafraîchissement (0 = pas de limite)
  * **Tri des résultats** : utile uniquement si une limite est définie, pour déterminer quelles lignes sont conservées

Vous pouvez **prévisualiser** vos données à tout moment pour vérifier l'impact de vos réglages.

<figure><img src="https://content.gitbook.com/content/Lve2h8CdCFZ7rIwwaoUU/blobs/gcM4Z21CyoG9zISpt3ed/image.png" alt=""><figcaption></figcaption></figure>
{% endtab %}
{% endtabs %}
{% endstep %}

{% step %}
**Définir les paramètres de Rafraîchissement**

* **Mode de rafraîchissement** : Ajout des nouvelles données aux données existantes ou Remplacement des données existantes par les nouvelles données
* **Fréquence de rafraîchissement** : pour automatiser selon une récurrence définie
* Si un filtrage SQL personnalisé a été configuré à la création, il est réappliqué à chaque rafraîchissement. La requête SQL utilisée est visible depuis la fiche de Rafraichissement du dataset.
* **Politique de schéma** : définit la réaction du dataset lorsque les nouvelles données n'ont pas exactement le même schéma que lui (colonnes en plus ou en moins, changement de type). Voir [Politique de schéma](/docs/v4.7/projet-data-and-ia/datasets/politique-de-schema.md).

{% hint style="warning" %}
La politique de schéma se choisit **à la création** du dataset et n'est plus modifiable ensuite, y compris pour un import local.
{% endhint %}
{% endstep %}

{% step %}
**Qualifier votre Dataset**

* **Nom** : le nom d'affichage

{% hint style="info" %}
L'ID unique du dataset est généré à partir du Nom et ne pourra plus être modifié par la suite
{% endhint %}

* **Description** : donner plus d'informations pour que les autres utilisateurs puissent comprendre le contenu du dataset
* **Responsable** : Data Owner
* **Sensibilité** :
  * Pour un import local : vous pouvez choisir sa sensibilité. Les datasets restreints et sensibles sont visibles au catalogue mais soumis à autorisation pour être utilisés dans les projets.
  * Sinon : la sensibilité sera héritée de la sensibilité de la Datasource.
* **Classification** : la classification permet d'identifier le niveau de traitement des données et leurs usage de prédilection : bronze - brutes, silver - traitées ou gold - de référence / prêtes au usages métiers
* **Labels** : vous pouvez choisir un label dans la liste de ceux existant ou en rejouter un en l'écrivant. Vous pouvez gérer les labels en cliquant sur les ... à côté du nom d'un label

<figure><img src="https://content.gitbook.com/content/Lve2h8CdCFZ7rIwwaoUU/blobs/DZbLAojCUdTU42fzirlM/image.png" alt=""><figcaption></figcaption></figure>
{% endstep %}
{% endstepper %}

### Choisir la politique de schéma <a href="#choisir-la-politique-de-schema" id="choisir-la-politique-de-schema"></a>

À l'étape de rafraîchissement, vous choisissez la **politique de schéma** du dataset : **Fusion de schéma** (par défaut), **Remplacement de schéma**, **Schéma fixe permissif** ou **Schéma fixe strict**. Elle n'est plus modifiable après la création. Le comportement de chaque politique et le cas des imports multi-fichiers sont détaillés dans [Politique de schéma](/docs/v4.7/projet-data-and-ia/datasets/politique-de-schema.md).

### Créer plusieurs datasets en une fois (import multiple) <a href="#creer-plusieurs-datasets-en-une-fois-import-multiple" id="creer-plusieurs-datasets-en-une-fois-import-multiple"></a>

L'import multiple crée **un dataset par fichier** en un seul parcours, au lieu de répéter la création pour chaque fichier. Il est disponible pour l'**import local** uniquement.

1. Cliquez sur **Créer** puis **Datasets multiples** : depuis la **Bibliothèque > Datasets** d'un projet pour un Data Worker, ou depuis le **Catalogue** pour un Platform Manager qui crée des datasets de référence.
2. **Import** : déposez vos fichiers (`.xlsx`, `.csv`, `.json`, `.xml`, `.parquet` ou `.gz`, 5 Go maximum pour l'ensemble). Chaque fichier importé génère un dataset.
3. **Configuration** : les paramètres de lecture sont définis **par format de fichier** (texte avec séparateur, Excel, JSON, XML, Parquet). Pour chaque format, renseignez les **valeurs par défaut** (séparateur, ligne d'en-tête, encodage, compression, lignes ou colonnes à ignorer…) et cliquez sur **Appliquer à tous les fichiers**, puis ajustez fichier par fichier si nécessaire : un badge indique le nombre de différences avec les valeurs par défaut. Un aperçu est disponible pour chaque fichier.
4. **Rafraîchissement** : choisissez la [politique de schéma](/docs/v4.7/projet-data-and-ia/datasets/politique-de-schema.md) par défaut, puis ajustez-la par fichier au besoin.
5. **Métadonnées** : définissez les valeurs par défaut (responsable, sensibilité, classification, labels, abonnement aux rafraîchissements en erreur), puis complétez pour chaque fichier le **nom du dataset** et sa **description**. L'identifiant technique est généré à partir du nom.
6. Cliquez sur **Créer** : les datasets sont créés et apparaissent dans la liste.

<figure><img src="https://content.gitbook.com/content/Lve2h8CdCFZ7rIwwaoUU/blobs/yXlGxKHG1DyG3FhNUHB3/4.7-catalog-create-menu.png" alt="Menu Créer avec les entrées Dataset unique et Datasets multiples"><figcaption></figcaption></figure>

<figure><img src="https://content.gitbook.com/content/Lve2h8CdCFZ7rIwwaoUU/blobs/YWqEnj0g0KMTRj5zGgDk/4.7-bulk-configuration.png" alt="Étape Configuration de l&#x27;import multiple : valeurs par défaut et fichiers"><figcaption></figcaption></figure>

{% hint style="warning" %}
À chaque étape, une sélection faite dans la partie **Valeurs par défaut** ne s'applique aux fichiers qu'après un clic sur **Appliquer à tous les fichiers**. Après toute modification, vérifiez sur les cartes des fichiers que les paramètres voulus ont bien été pris en compte avant de passer à l'étape suivante.
{% endhint %}

{% hint style="warning" %}
Deux fichiers ne peuvent pas produire le même identifiant technique : un badge **Identifiant dupliqué** signale le conflit. Renommez l'un des datasets avant de valider.
{% endhint %}

{% hint style="info" %}
Pour les fichiers Excel, la **première feuille** est importée par défaut : sélectionnez la feuille voulue fichier par fichier si nécessaire.
{% endhint %}

### **Créer un Dataset depuis un Dataflow**

Un dataset peut être créé directement depuis un Dataflow configuré pour produire des données transformées. Vous pouvez choisir quels datasets de sortie vous souhaitez rendre disponible dans la bibliothèque de votre projet.

**Pour créer un dataset depuis un Dataflow** :

1. [Créez un Dataflow](/docs/v4.7/projet-data-and-ia/dataflow/creer-un-dataflow.md) et ajoutez une transformation avec un Dataset de Sortie avec un dataset de sortie
2. Configurez votre [Dataset de sortie](/docs/v4.7/projet-data-and-ia/dataflow/creer-un-dataflow/configurer-un-dataset-de-sortie.md)
3. Exécutez le Dataflow pour générer les premières données
4. Cliquez sur **Référencer** (au dessus du dataset de sortie ou depuis la fiche Détails) pour rendre le dataset de sortie disponible dans la bibliothèque du projet.
5. Après la mise en production de votre Dataflow, le dataset marqué pour référencement apparaît dans votre bibliothèque pour être utilisé dans le projet

<figure><img src="https://content.gitbook.com/content/Lve2h8CdCFZ7rIwwaoUU/blobs/iFGTwW22ViXCYsfQTb09/image.png" alt="" width="563"><figcaption></figcaption></figure>

Le dataset sera alimenté à chaque exécution du Dataflow. Pour en savoir plus sur l'[exécution et l'automatisation](/docs/v4.7/projet-data-and-ia/dataflow/executer-deployer-et-automatiser.md) de votre Dataflow.

### Types de colonnes supportés

Chaque colonne d'un dataset possède un type, détecté automatiquement à l'import ou configurable selon la source. Les types suivants sont supportés :

<table data-search="false"><thead><tr><th>Type</th><th>Description</th><th>Exemple</th><th>Pandas</th><th>Spark SQL</th><th>Polars</th></tr></thead><tbody><tr><td><strong>Texte (String)</strong></td><td>Chaîne de caractères</td><td><code>Bonjour</code></td><td><code>object</code> / <code>string</code></td><td><code>string</code></td><td><code>Utf8</code></td></tr><tr><td><strong>Entier (Integer)</strong></td><td>Nombre entier (32 bits)</td><td><code>42</code></td><td><code>int32</code> / <code>Int32</code></td><td><code>int</code></td><td><code>Int32</code></td></tr><tr><td><strong>Entier long (Long)</strong></td><td>Nombre entier (64 bits)</td><td><code>9999999999</code></td><td><code>int64</code> / <code>Int64</code></td><td><code>bigint</code></td><td><code>Int64</code></td></tr><tr><td><strong>Décimal (Float)</strong></td><td>Virgule flottante simple précision</td><td><code>3.14</code></td><td><code>float32</code></td><td><code>float</code></td><td><code>Float32</code></td></tr><tr><td><strong>Décimal (Double)</strong></td><td>Virgule flottante double précision</td><td><code>1.5e200</code></td><td><code>float64</code></td><td><code>double</code></td><td><code>Float64</code></td></tr><tr><td><strong>Décimal exact (Decimal)</strong></td><td>Précision exacte (19 chiffres au total, 2 maximum après la virgule)</td><td><code>123456789012345.67</code></td><td><code>object</code> (Decimal)</td><td><code>decimal(19,2)</code></td><td><code>Decimal(38,s)</code></td></tr><tr><td><strong>Booléen</strong></td><td>Vrai ou faux</td><td><code>true</code> / <code>false</code></td><td><code>bool</code></td><td><code>boolean</code></td><td><code>Boolean</code></td></tr><tr><td><strong>Date</strong></td><td>Date seule, sans heure</td><td><code>2024-01-15</code></td><td><code>datetime64[ns]</code></td><td><code>date</code></td><td><code>Date</code></td></tr><tr><td><strong>Timestamp</strong></td><td>Date et heure</td><td><code>2024-01-15 10:30:00</code></td><td><code>datetime64[ns]</code></td><td><code>timestamp_ntz</code></td><td><code>Datetime("us", None)</code></td></tr><tr><td><strong>Timestamp avec fuseau horaire</strong></td><td>Date et heure avec fuseau horaire</td><td><code>2024-01-15T10:30:00Z</code></td><td><code>datetime64[ns, tz]</code></td><td><code>timestamp</code></td><td><code>Datetime("us", "UTC")</code></td></tr><tr><td><strong>Binaire (Binary)</strong></td><td>Données binaires (fichiers inline, hashes, blobs)</td><td><code>SGVsbG8=</code></td><td><code>bytes</code> / <code>object</code></td><td><code>binary</code></td><td><code>Binary</code></td></tr><tr><td><strong>Tableau (Array)</strong></td><td>Liste de valeurs typées</td><td><code>[1, 2, 3]</code></td><td><code>object</code> (list)</td><td><code>array&#x3C;...></code></td><td><code>List(inner)</code></td></tr><tr><td><strong>Structure (Struct)</strong></td><td>Données imbriquées à clés fixes</td><td><code>{"name": "Ada", "age": 36}</code></td><td><code>object</code> (dict)</td><td><code>struct&#x3C;...></code></td><td><code>Struct({...})</code></td></tr><tr><td><strong>Clés/valeurs (Map)</strong></td><td>Données imbriquées à clés dynamiques</td><td><code>{"a": 1, "b": 2}</code></td><td><code>object</code> (dict)</td><td><code>map&#x3C;k,v></code></td><td><code>List(Struct)</code> (pas de type Map natif)</td></tr></tbody></table>

{% hint style="info" %}
Le type **Binaire** n'est pas détecté automatiquement à l'import : sélectionnez-le manuellement sur la colonne concernée si nécessaire.
{% endhint %}

## Ajouter des descriptions aux colonnes

Chaque colonne d'un dataset peut être documentée avec une description textuelle pour expliquer sa signification métier, sa logique de transformation ou ses contraintes particulières.

{% hint style="info" %}
Pour les responsables du Dataset
{% endhint %}

Pour ajouter ou modifier une description:

1. Accédez à l'onglet **Schéma** de la fiche d'un dataset
2. Cliquez sur le bouton <i class="fa-pen">:pen:</i> Editer
3. Cliquez sur la colonne concernée et saisissez votre texte dans le champ **Description**.

Les descriptions sont persistantes et accessibles via l'interface et l'API. La modification d'une description n'impacte ni les données ni les pipelines.

💡 **Bon à savoir** : Pour les datasets issus de Dataflow, les descriptions peuvent être éditées en mode Brouillon. Une fois le Dataflow en production, elles ne peuvent être modifiées que depuis la fiche dataset après le merge en production, et non dans les branches de développement.

## Modifier le schéma d'un dataset

Le responsable d'un dataset peut renommer une colonne, élargir son type, la supprimer ou compléter sa description depuis l'onglet **Schéma** de la fiche du dataset, bouton **Modifier**. Les règles (conversions autorisées, colonnes déployées, effet sur les imports suivants) sont détaillées dans [Modifier le schéma d'un dataset](/docs/v4.7/projet-data-and-ia/datasets/modifier-le-schema-dun-dataset.md).

## **Rafraîchir un Dataset**

Le rafraîchissement permet de mettre à jour les données d'un dataset.

### **Rafraîchir un dataset issus de sources de données**

{% hint style="success" %}
Le rafraîchissement réapplique automatiquement la **configuration d'import** (transformations, séparateurs...).
{% endhint %}

#### **Rafraîchissement manuel**

1. Ouvrez la fiche du dataset
2. Cliquez sur l'icône <i class="fa-arrows-rotate-reverse">:arrows-rotate-reverse:</i> Rafraîchir sur la page d'accueil ou en haut à droite (visible uniquement si vous disposez des droits nécessaires)
3. Le rafraîchissement démarre immédiatement

<figure><img src="https://content.gitbook.com/content/Lve2h8CdCFZ7rIwwaoUU/blobs/77GcObUaxV5XJsq2PjQK/image.png" alt=""><figcaption></figcaption></figure>

#### **Rafraîchissement automatique**

Vous pouvez définir une fréquence de rafraîchissement des données à la création ou à la modification d'un dataset en cliquant sur Editer depuis la fiche Dataset (visible uniquement si vous avez les autorisations)

1. Accédez aux paramètres du dataset
2. Editer le dataset
3. Configurez la fréquence souhaitée dans la partie "Récurrence"

<figure><img src="https://content.gitbook.com/content/Lve2h8CdCFZ7rIwwaoUU/blobs/JdjewOMf1zDNlUiTU7Jp/image.png" alt=""><figcaption></figcaption></figure>

### Rafraîchir un dataset issu d'un import local

Vous pouvez ajouter de nouveaux fichiers à un dataset existant en suivant un processus guidé.

**Import multi-fichiers** :

1. Ouvrez la fiche du dataset
2. Cliquez sur <i class="fa-arrows-rotate-reverse">:arrows-rotate-reverse:</i> "Rafraîchir" (visible uniquement si vous disposez des droits nécessaires)
3. Choisissez le mode de rafraîchissement pour cet import :
   1. **Append** : ajoute les nouvelles lignes aux données existantes
   2. **Replace** : remplace intégralement les données du dataset
4. Sélectionnez 1 à n fichiers à importer

{% hint style="info" %}
Les fichiers ajoutés doivent être du même type que l'import initial.
{% endhint %}

**Validation et gestion des écarts** :

Le système effectue automatiquement les vérifications suivantes pour chaque fichier :

* **Compatibilité du schéma** : vérification des types de données. En cas d'incompatibilité, un message explicite indique la colonne et, si possible, les lignes concernées.
* **Écarts de colonnes** : affichage clair des colonnes supplémentaires (présentes dans le fichier mais absentes du dataset) et des colonnes manquantes (attendues par le dataset mais absentes du fichier), avec rappel de la politique de schéma configurée.

**Aperçu de la configuration** :

Avant de valider, vous pouvez consulter :

* Les transformations qui seront appliquées
* Le séparateur utilisé
* La feuille sélectionnée (pour les fichiers Excel)

<figure><img src="https://content.gitbook.com/content/Lve2h8CdCFZ7rIwwaoUU/blobs/vsyZPkEqiimk11JFxae7/image.png" alt=""><figcaption></figcaption></figure>

Une fois validé, le rafraîchissement apparaît dans la liste des rafraîchissements avec :

* L'utilisateur ayant déclenché l'opération
* La liste des fichiers importés
* Les informations détaillées (configuration appliquée, statut, logs)

### Rafraîchir un dataset issu de Dataflow

Pour rafraîchir un dataset créé depuis un Dataflow, vous pouvez, si vous avez les autorisations :

* Exécuter manuellement le Dataflow source
* Définir une récurrence d'exécution
* Configurer un trigger événementiel à l'ajout d'un fichier dans les Données de travail

Pour plus d'informations, consultez la page [Exécuter, déployer et automatiser](/docs/v4.7/projet-data-and-ia/dataflow/executer-deployer-et-automatiser.md).

## Surveiller les rafraîchissements

Chaque rafraîchissement génère une fiche détaillée accessible depuis la fiche du dataset > Onglet Rafraichissement > Clic sur la ligne du Rafraîchissement.

Vous pourrez y retrouver les informations suivantes :

* Le **Mode de rafraichissement** : Append ou Replace
* Nombre de **lignes** et **colonnes** traitées par étape (ingestion / transformation)
* **Configuration appliquée** : rappel des paramètres utilisés
* **Statut** :
  * ✅ **Succès** : toutes les données ont été traitées
  * ⚠️ **Attention** :
    * au moins un fichier présente un problème, mais certaines données ont été importées
    * toutes les données ont déjà été traitées
  * ❌ **Échec** : l'import n'a pas pu être réalisé
* **Logs** : détails techniques pour investiguer en cas de problème
* Liste des fichiers traités dans le cas d'un source fichier. En cas de problème sur un fichier, vous verrez apparaître <i class="fa-triangle-exclamation">:triangle-exclamation:</i> avec plus d'informations au survol de l'icone :
  * Schéma incompatible : le fichier n'a pas été importé
  * Fichier déjà traité

En cas de statut **Échec** ou **Attention**, vous pouvez afficher les logs de l'étape d'ingestion pour identifier la cause du problème.

{% hint style="info" %}
Les dates de rafraîchissement incluent désormais l'heure en plus de la date, et sont harmonisées sur tous les types de connecteurs (API, Fichier, SQL).
{% endhint %}

{% hint style="info" %}
**Bon à savoir** : Pour des raisons de performance, seule la première erreur détectée est identifiée et loguée. Le fichier complet n'est pas scanné.
{% endhint %}

<figure><img src="https://content.gitbook.com/content/Lve2h8CdCFZ7rIwwaoUU/blobs/9R07Z4HHdIzi8HpamqCS/image.png" alt=""><figcaption></figcaption></figure>

### S'abonner aux alertes

1. Depuis la liste des Datasets de votre projet ou du Catalogue
2. Cliquez sur <i class="fa-bell">:bell:</i> `S'abonner` et choisir Qualité et/ou Rafraîchissement

![](https://content.gitbook.com/content/Lve2h8CdCFZ7rIwwaoUU/blobs/MypjdbFTKkd6jX70sIZ5/image.png)

Vous recevrez alors une notification in-app et mail à la remonté d'une alerte ou à l'échec d'un rafraîchissement. Vous pouvez retrouver l'ensemble de vos souscriptions dans l'onglet <i class="fa-gear">:gear:</i> `Gestion des notifications`.

{% hint style="info" %}
Gestion des notifications

* L'option d'abonnement aux échecs de rafraîchissement est proposée automatiquement à la création d'un Dataset
* L'abonnement aux règles de Qualité n'est proposé que si au moins une règle qualité est définie sur le dataset
* À la création d'une règle de Qualité, une invitation à s'abonner est affichée si vous n'êtes pas encore abonné
* Le propriétaire d'un Dataset peut désactiver son abonnement automatique aux règles Qualité depuis la Gestion des notifications
  {% endhint %}

## Ajouter un Dataset à la bibliothèque depuis le catalogue <a href="#ajouter-un-dataset-depuis-le-catalogue" id="ajouter-un-dataset-depuis-le-catalogue"></a>

Pour ajouter un Dataset depuis le catalogue, il faut se rendre dans le menu `Datasets`. Cliquez sur le bouton `Ajouter un Dataset` puis sur `Depuis le catalogue`. Vous pouvez rechercher un Dataset dans le catalogue en renseignant un ou plusieurs mots-clés dans la barre de recherche ou en utilisant les filtres.

* Pour les Datasets de sensibilité **Interne** cliquez sur `Ajouter` pour l'ajouter au projet.
* Pour les Dataset de sensibilité **Sensible** ou **Restreint** cliquez sur `Demander l'accès` pour demander l'accès au Dataset puis expliquez votre demande dans le champ `Commentaire` et cliquez sur `Envoyer`.

Au traitement de votre demande par un platform manager, vous recevrez une notification.

## Exporter un Dataset

Lors de l'export d'un dataset au format CSV, une fenêtre de configuration s'affiche avant le téléchargement. Vous pouvez y choisir le séparateur de colonnes et activer l'encadrement des valeurs texte par des guillemets.

**Options disponibles à l'export**

* **Séparateur** : choisissez le caractère qui séparera les colonnes dans le fichier exporté (virgule par défaut, point-virgule, tabulation, pipe, etc.).
* **Guillemets** : si activé, toutes les valeurs de type texte sont encadrées par des guillemets doubles. Les guillemets présents dans les valeurs sont automatiquement doublés (conformément à la norme RFC 4180).

**Format des valeurs exportées**

* Les dates et heures **avec fuseau horaire** sont exportées en UTC au format ISO 8601 (ex. `2026-03-15T03:30:00.123456Z`) ; celles **sans fuseau** conservent leur heure telle quelle (ex. `2026-03-15 09:00:00.123456`). Les microsecondes sont conservées.
* Les colonnes de type tableau, structure ou clés/valeurs sont exportées en **JSON**, toujours entre guillemets.
* Les données binaires sont exportées en **Base64**.
