Tous les produits
Search
Centre de documentation

DataWorks:Utilisation des jeux de données

Dernière mise à jour :Aug 10, 2026

Utilisez des jeux de données dans des nœuds (Shell, Python et Notebook) pour lire et écrire des données dans Object Storage Service (OSS) ou Apsara File Storage NAS (NAS) lors du développement. Vous pouvez également monter un jeu de données en tant que stockage lors de la création d'une instance d'environnement de développement personnel.

Important

Nous vous recommandons de consulter la rubrique Gestion des jeux de données pour apprendre à créer un jeu de données.

Présentation

Les jeux de données permettent de lire et d'écrire directement des données stockées dans OSS et NAS depuis DataWorks. Vous pouvez créer plusieurs versions d'un jeu de données, suivre les modifications au fil du temps et revenir à une version précédente si nécessaire.

Limites

  • Les jeux de données sont pris en charge uniquement dans la nouvelle version de DataStudio.

  • Groupe de ressources : L'accès aux jeux de données depuis les nœuds de développement de données s'effectue uniquement via un groupe de ressources Serverless.

  • Objets pris en charge : Les jeux de données sont compatibles uniquement avec les nœuds Shell, les nœuds Python, les Notebooks pour le développement de base et les environnements de développement personnel. Vous pouvez monter un maximum de 5 jeux de données sur chaque objet.

  • Type de stockage : Les jeux de données prennent en charge Object Storage Service (OSS) et Apsara File Storage NAS (NAS) via le protocole NFS.

  • Autorisations : Si la cible de montage d'un jeu de données est définie en lecture seule, vous ne pouvez ni modifier ni supprimer les dossiers ou fichiers qu'elle contient. Toute tentative entraîne une erreur d'autorisation.

Utilisation des jeux de données dans les nœuds

Cette section explique comment monter un jeu de données OSS sur un nœud. Dans cet exemple, vous créez un jeu de données DataWorks basé sur OSS, montez le chemin OSS oss://datasets-oss.oss-cn-shanghai.aliyuncs.com/dataset01/v1/ sur le chemin de montage du jeu de données /mnt/data/dataset01, puis lisez et écrivez des données dans le code du nœud.

Prérequis : création d'un jeu de données

  1. Créer un bucket ou créer un système de fichiers.

    Cet exemple utilise un jeu de données OSS. Créez un bucket nommé datasets-oss dans la région Chine (Shanghai), puis créez le répertoire /dataset01/v1.

  2. Créer un jeu de données.

    Dans cet exemple, créez un jeu de données OSS nommé datasets-oss et montez le chemin OSS oss://datasets-oss.oss-cn-shanghai.aliyuncs.com/dataset01/v1/ sur /mnt/data/dataset01.

1. Configuration du jeu de données pour un nœud

Dans la section Debug Configuration d'un nœud Shell ou Python, configurez le jeu de données datasets-oss.

Important
  • Avant de publier le nœud, ajoutez également le jeu de données dans la section Scheduling Settings.

  • Pour utiliser un jeu de données, allouez au moins 0,5 unité de calcul (CU) au nœud.

Paramètre

Description

Datasets

Spécifie le jeu de données accessible par le code du nœud actuel.

  • Si vous utilisez un jeu de données basé sur OSS, accordez au groupe de ressources DataWorks les autorisations d'accès au bucket OSS configuré pour le jeu de données lors de la première lecture des données.

  • Si vous utilisez un jeu de données basé sur NAS, assurez-vous que le VPC du groupe de ressources DataWorks est connecté au VPC de la cible de montage NAS. Pour plus de détails sur la configuration, consultez les Solutions de connectivité réseau.

Dans cet exemple, sélectionnez le jeu de données OSS datasets-oss créé dans DataWorks et la version V1.

Mount Path

Chemin utilisé par le code du nœud pour accéder au jeu de données. Ce champ est automatiquement renseigné avec le Default Mount Path configuré lors de la définition du jeu de données.

Important

Si vous montez plusieurs jeux de données sur le même nœud, leurs chemins de montage ne doivent pas entrer en conflit.

Advanced Settings

Ce paramètre est facultatif. Spécifiez les outils et paramètres d'accès aux données OSS ou les configurations d'accès aux systèmes de fichiers NAS au format JSON.

  • Si le jeu de données configuré est basé sur OSS, DataWorks utilise ossfs 2,0 par défaut pour accéder aux données OSS dans le chemin de votre jeu de données. Utilisez Advanced Configuration pour spécifier d'autres outils d'accès aux données OSS. Pour plus de détails sur les outils disponibles, consultez les Exemples de configuration avancée. Le code suivant affiche la configuration par défaut :

    {"mountOssType":"ossfs", "upload_concurrency":64} 
  • Si vous ajoutez un jeu de données basé sur NAS, spécifiez les configurations pertinentes (paramètre nasOptions) pour accéder à un système de fichiers Apsara File Storage NAS (NAS) via le protocole NFS. Le code suivant affiche la configuration par défaut. Pour personnaliser les valeurs des paramètres, consultez la rubrique Montage manuel d'un système de fichiers NFS.

    Important
    • Seuls les systèmes de fichiers NAS utilisant le protocole NFS peuvent être montés.

    • Pour NAS, un seul paramètre de configuration avancée est pris en charge : nasOptions. Pour personnaliser les paramètres de montage NAS, définissez Advanced Configuration sur {"nasOptions":"<ParameterName1=ParameterValue>, <ParameterName2=ParameterValue>,..."}.

    {"nasOptions":"vers=3,nolock,proto=tcp,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport"}

Read Only

Par défaut, vous pouvez lire et écrire des données dans le jeu de données depuis le nœud actuel. Si le jeu de données est défini en lecture seule pour ce nœud, vous ne pouvez pas écrire de données dans son répertoire de montage depuis le code du nœud. Toute tentative d'écriture entraîne une erreur d'autorisation.

2. Utilisation du jeu de données dans un nœud

Cet exemple utilise un nœud Shell. Après avoir attaché un jeu de données OSS au nœud Shell, gérez les données OSS dans le code du nœud comme s'il s'agissait de fichiers locaux. L'exemple suivant utilise l'outil ossfs 2,0 par défaut pour écrire le fichier file01.txt dans le chemin de montage /mnt/data/dataset01 du jeu de données OSS datasets-oss.

Exemple de code :

echo "Hello World" > /mnt/data/dataset01/file01.txt
ls -tl /mnt/data/dataset01

Dans le panneau Debug Configurations à droite, ouvrez l'onglet Dataset et sélectionnez le jeu de données personnalisé datasets-oss/V1. Confirmez le message d'autorisation réussie du groupe de ressources et assurez-vous que l'option Read-only est désactivée. Après l'exécution du nœud, le journal indique que le fichier file01.txt a été créé (12 octets, autorisations : rwxrwxrwx), le code de sortie est 0, le temps écoulé est de 0,741 s et le statut est FINISH.

Remarque

Si vous recevez le message d'erreur Job Submit Failed! submit job failed directly! Caused by: execute task failed, exception: [103:ILLEGAL_TASK]:Task with dataset need 0.5cu at least! pendant l'exécution, cela signifie que la tâche ne dispose pas d'assez de CU. Augmentez l'allocation de CU pour le groupe de ressources à au moins 0,5.

3. Vérification des données dans OSS

Après l'exécution du code décrit dans la section 2. Utilisation du jeu de données dans un nœud, le fichier est automatiquement écrit dans le chemin de stockage OSS correspondant au chemin de montage du jeu de données. Affichez le fichier dans le chemin de stockage OSS. Dans cet exemple, le chemin de montage /mnt/data/dataset01 du jeu de données OSS datasets-oss correspond à oss://datasets-oss.oss-cn-shanghai.aliyuncs.com/dataset01/v1/. La figure suivante illustre un exemple des données écrites dans le chemin OSS.

Dans ce chemin, vous trouverez le fichier écrit file01.txt (0,012 Ko, stockage Standard).

Utilisation des jeux de données dans un environnement de développement personnel

Une fois un jeu de données défini, montez-le sur une instance d'environnement de développement personnel lors de la création ou de la modification de l'instance. Accédez ensuite directement aux données du jeu de données depuis le terminal ou un Notebook de votre répertoire personnel.

Prérequis : création d'un jeu de données

  1. Créer un bucket ou créer un système de fichiers.

  2. Créer un jeu de données.

    Cet exemple utilise un jeu de données basé sur NAS. Créez un jeu de données NAS nommé datasets-nas dans la région Chine (Shanghai) et montez le chemin NAS nas://****.cn-shanghai.nas.aliyuncs.com/mnt/dataset02/v1/ sur /mnt/data/dataset02.

1. Configuration d'un jeu de données pour l'environnement personnel

Créez une instance d'environnement de développement personnel et sélectionnez le jeu de données NAS existant datasets-nas.

Sur la page de configuration, sélectionnez datasets-nas dans la liste déroulante Dataset et spécifiez son chemin de montage correspondant.

Paramètre

Description

Datasets

Spécifie le jeu de données accessible par le code de l'instance. Assurez-vous que le VPC sélectionné pour l'instance d'environnement de développement personnel peut se connecter à la cible de montage NAS.

Dans cet exemple, sélectionnez le jeu de données NAS datasets-nas créé dans DataWorks et la version V1.

Mount Path

Chemin utilisé par le code de l'instance pour accéder au jeu de données.

Dans cet exemple, montez le chemin du jeu de données NAS nas://****.cn-shanghai.nas.aliyuncs.com/mnt/dataset02/v1/ sur /mnt/data/dataset02.

Important

Si vous montez plusieurs jeux de données sur la même instance d'environnement de développement personnel, leurs chemins de montage ne doivent pas entrer en conflit.

Advanced Settings

Ce paramètre est facultatif. Utilisez JSON pour spécifier les configurations (paramètre nasOptions) d'accès à un système de fichiers Apsara File Storage NAS (NAS) utilisant le protocole NFS. Le code suivant affiche la configuration par défaut. Consultez également la rubrique Montage manuel d'un système de fichiers NFS pour personnaliser les valeurs des paramètres.

Important
  • Seuls les systèmes de fichiers NAS utilisant le protocole NFS peuvent être montés.

  • Pour NAS, un seul paramètre de configuration avancée est pris en charge : nasOptions. Pour personnaliser les paramètres de montage NAS, définissez Advanced Configuration sur {"nasOptions":"<ParameterName1=ParameterValue>,<ParameterName2=ParameterValue>,..."}.

{"nasOptions":"vers=3,nolock,proto=tcp,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport"}

Read Only

Par défaut, vous pouvez lire et écrire des données dans le jeu de données depuis l'instance. Si le jeu de données est défini en lecture seule pour l'instance, vous ne pouvez pas écrire de données dans son répertoire de montage depuis le code de l'instance. Toute tentative d'écriture entraîne une erreur d'autorisation.

2. Utilisation du jeu de données dans un Notebook

  1. En haut de la page DataStudio, basculez vers l'instance d'environnement de développement personnel, puis créez un Notebook pour le développement de base.

  2. Dans le Notebook, ajoutez le contenu suivant.

    1. Écrivez des données dans le chemin spécifié du jeu de données.

      import os
      # Define the destination path and file name
      file_path = "/mnt/data/dataset02/file02.txt"
      # Make sure that the directory exists. If the directory does not exist, create it.
      os.makedirs(os.path.dirname(file_path),exist_ok=True)
      # Write the content
      content = "Hello World!"
      try:
          with open(file_path, "w", encoding="utf-8") as file:
              file.write(content)
          print(f"The file is successfully written to {file_path}")
      except Exception as e:
          print(f"Failed to write the file: {str(e)}")
    2. Lisez des données depuis le chemin spécifié du jeu de données.

      file_path = "/mnt/data/dataset02/file02.txt"
      with open(file_path, "r") as file:
          content = file.read()
      content
  3. Exécutez les deux extraits de code Python séparément.

    Remarque

    Avant d'exécuter le code, assurez-vous d'avoir sélectionné le noyau Python approprié. Cet exemple utilise Python 3,11,9.

    Premier extrait de code : Écriture des données dans le chemin spécifié du jeu de données.

    import os
    # Define the destination path and file name
    file_path = "/mnt/data/dataset02/file02.txt"
    # Make sure that the directory exists. If the directory does not exist, create it.
    os.makedirs(os.path.dirname(file_path),exist_ok=True)
    # Write the content
    content = "Hello World!"
    try:
        with open(file_path, "w", encoding="utf-8") as file:
            file.write(content)
            print(f"The file is successfully written to {file_path}")
    except Exception as e:
        print(f"Failed to write the file: {str(e)}")

    Si la sortie est The file is successfully written to /mnt/data/dataset02/file02.txt, l'opération d'écriture a réussi. Deuxième extrait de code : Lecture des données depuis le chemin spécifié du jeu de données.

    file_path = "/mnt/data/dataset02/file02.txt"
    with open(file_path, "r") as file:
        content = file.read()
        content

    Si la sortie est 'Hello World!', l'opération de lecture a réussi.

3. Configuration de la planification

À droite du nœud Notebook, cliquez sur Scheduling Settings et ajoutez les options du jeu de données. Utilisez les mêmes paramètres que ceux configurés pour l'instance d'environnement de développement personnel.

Exemples de configuration avancée

Lorsque vous configurez un jeu de données, définissez des configurations avancées pour personnaliser les paramètres pertinents au format JSON :

Montage OSS avec ossfs 2,0

ossfs 2,0 est un client qui monte OSS pour un accès haute performance. Il offre un débit élevé en lecture/écriture séquentielle et exploite pleinement la bande passante OSS. Il convient aux applications intensives en calcul nécessitant des performances E/S séquentielles élevées, telles que l'entraînement IA et le traitement du big data. Ces scénarios de charge de travail impliquent principalement des lectures séquentielles et aléatoires ainsi que des écritures séquentielles (ajout uniquement) et ne requièrent pas la sémantique POSIX complète.

Dans la section Datasets > Advanced Settings, définissez des paramètres avancés. Séparez plusieurs options par une virgule (,). Pour savoir comment utiliser les paramètres avancés et découvrir d'autres options de configuration, consultez la rubrique Options de montage ossfs 2,0. Les exemples suivants illustrent plusieurs scénarios courants :

  • Source de données immuable : Si tous les fichiers que vous lisez ne sont pas modifiés pendant une tâche, définissez un temps de cache long pour réduire le nombre de requêtes de métadonnées. Un scénario typique consiste à lire un lot de fichiers existants et à générer un nouveau lot de fichiers après traitement.

    {"mountOssType":"ossfs", "attr_timeout": "7200"}
  • Opérations de lecture et d'écriture rapides : Utilisez un temps de cache de métadonnées court pour équilibrer l'efficacité du cache et l'actualité des données.

    {"mountOssType":"ossfs", "attr_timeout": "3", "negative_timeout":"0"}
  • Vue cohérente pour les tâches distribuées : Par défaut, ossfs met à jour les données de fichiers en fonction du cache de métadonnées. Utilisez la configuration suivante pour obtenir une vue synchronisée sur plusieurs nœuds.

    { "mountOssType":"ossfs","negative_timeout": "0", "close_to_open":"false"}
  • OOM causé par l'ouverture d'un trop grand nombre de fichiers : Une concurrence élevée des tâches avec un grand nombre de fichiers ouverts simultanément peut provoquer des problèmes de manque de mémoire (OOM). Utilisez la configuration suivante pour atténuer la pression sur la mémoire.

    {"mountOssType":"ossfs","readdirplus": "false", "inode_cache_eviction_threshold":"300000"}

Montage OSS avec ossfs 1,0

ossfs 1,0 monte un bucket OSS en tant que système de fichiers local sur un système Linux. Par rapport à ossfs 2,0, ossfs 1,0 offre une prise en charge plus complète des opérations sur les fichiers. Si vous rencontrez des incompatibilités d'opérations sur les fichiers avec ossfs 2,0, essayez d'utiliser ossfs 1,0 à la place.

Pour plus d'informations sur les paramètres requis pour le montage avec ossfs 1,0, consultez la rubrique Options de montage ossfs 1,0.

Montage OSS avec JindoFuse

Utilisez le composant JindoFuse pour monter un jeu de données OSS sur un chemin spécifié dans un conteneur. Cet outil convient aux scénarios suivants :

  • Vous souhaitez lire les données OSS comme s'il s'agissait d'un jeu de données local, ou le jeu de données est suffisamment petit pour bénéficier de l'accélération par cache local de JindoFuse.

  • Vous devez écrire des données dans OSS.

Dans la section Datasets > Advanced Settings, définissez des paramètres avancés. Séparez plusieurs options par une virgule (,). Le code suivant est donné à titre d'exemple. Pour les descriptions des paramètres et d'autres options de configuration, consultez le Guide d'utilisation de JindoFuse et la rubrique Utilisation de JindoFuse pour monter et accéder aux données.

Remarque

Actuellement, DataWorks prend en charge uniquement les paramètres au format key=value.

{ 
  "mountOssType":"jindofuse",
  "fs.oss.download.thread.concurrency": "2 × number of CPU cores",
  "fs.oss.upload.thread.concurrency": "2 × number of CPU cores",
  "attr_timeout": 3,
  "entry_timeout": 0,
  "negative_timeout": 0
}

Utilisation d'un jeu de données NAS

Pour les jeux de données basés sur NAS, spécifiez des configurations (à l'aide du paramètre nasOptions) pour accéder à un système de fichiers Apsara File Storage NAS (NAS) basé sur NFS. Le code suivant affiche la configuration par défaut. Pour personnaliser les valeurs des paramètres, consultez la rubrique Montage manuel d'un système de fichiers NFS.

Important
  • Seuls les systèmes de fichiers NAS utilisant le protocole NFS peuvent être montés.

  • Pour NAS, un seul paramètre de configuration avancée est pris en charge : nasOptions. Pour personnaliser les paramètres de montage NAS, définissez Advanced Configuration sur {"nasOptions":"<ParameterName1=ParameterValue>, <ParameterName2=ParameterValue>,..."}.

{"nasOptions":"vers=3,nolock,proto=tcp,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport"}

Documents connexes