Tous les produits
Search
Centre de documentation

DataWorks:Utilisation des jeux de données

Dernière mise à jour :Sep 24, 2026

Vous pouvez utiliser des jeux de données dans des nœuds (Shell, Python et Notebook) pour lire et écrire des données depuis et vers Object Storage Service (OSS) ou Apsara File Storage NAS (NAS) lors du développement de données. 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 savoir comment 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 antérieure 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 est possible uniquement via un groupe de ressources Serverless.

  • Objets pris en charge : Les jeux de données sont pris en charge uniquement dans les nœuds Shell, les nœuds Python, les Notebooks pour le développement de base et les environnements de développement personnels. 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 de ce type 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 adossé à 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. Une fois l'autorisation effectuée, DataWorks injecte automatiquement les identifiants d'accès dans le répertoire /etc/oss-secret/ du groupe de ressources serverless, et ossfs 2,0 lit le fichier AccessKeyId de ce répertoire pour obtenir les identifiants. L'ID AccessKey et la clé secrète AccessKey de l'utilisateur RAM (Resource Access Management) sont injectés via ce processus d'autorisation et ne nécessitent aucune configuration manuelle.

  • 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 sélectionnez 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. Vous pouvez spécifier les outils et les 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 par défaut ossfs 2,0 pour accéder aux données OSS situées dans le chemin de votre jeu de données. Vous pouvez utiliser la configuration avancée 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, vous pouvez spécifier 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, vous pouvez définir la configuration avancée 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înera 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, vous pouvez gérer 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 situé à 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 l'état 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 d'unités de calcul (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. Vous pouvez afficher 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 montre 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, vous pouvez le monter sur une instance d'environnement de développement personnel lors de la création ou de la modification de l'instance. Vous pouvez ensuite accéder 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'un 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 sélectionnez 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. Vous pouvez utiliser le format 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. Vous pouvez également consulter 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, vous pouvez définir la configuration avancée 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înera 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 de 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 de 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

Lors de la configuration d'un jeu de données, vous pouvez définir des configurations avancées pour personnaliser les paramètres pertinents au format JSON :

Montage d'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 séquentiel élevé en lecture/écriture et exploite pleinement la bande passante OSS. Il convient aux applications intensives en calcul nécessitant des performances d'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 DatasetsAdvanced Settings, vous pouvez définir des paramètres avancés. Séparez plusieurs options par une virgule (,). Pour obtenir des instructions sur l'utilisation des paramètres avancés et découvrir d'autres options de configuration, consultez les 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, vous pouvez définir 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 des 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 forte concurrence des tâches avec un grand nombre de fichiers ouverts simultanément peut provoquer des problèmes de mémoire insuffisante (OOM). Utilisez la configuration suivante pour atténuer la pression sur la mémoire.

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

Montage d'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 les options de montage ossfs 1,0.

Montage d'OSS avec JindoFuse

Vous pouvez utiliser 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 DatasetsAdvanced Settings, vous pouvez définir des paramètres avancés. Séparez plusieurs options par une virgule (,). Le code suivant présente uniquement un exemple. Pour obtenir des descriptions des paramètres et découvrir 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, vous pouvez spécifier 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, vous pouvez définir la configuration avancée sur {"nasOptions":"<ParameterName1=ParameterValue>, <ParameterName2=ParameterValue>,..."}.

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

FAQ

Que faire si l'erreur « FileNotFoundError: /etc/oss-secret/AccessKeyId » apparaît lors de la lecture des données d'un jeu de données OSS ?

Cette erreur indique généralement que le groupe de ressources DataWorks n'a pas pu obtenir les identifiants requis pour accéder à OSS. Pour résoudre le problème, procédez comme suit :

  1. Confirmez que vous avez effectué l'autorisation OSS dans le panneau de configuration du jeu de données. Une invite pour cette autorisation s'affiche lors de la première utilisation du jeu de données.

  2. Vérifiez que le groupe de ressources serverless est dans un état normal et n'est pas suspendu.

  3. Si l'autorisation et l'état du groupe de ressources sont normaux mais que l'erreur persiste, contactez le support technique pour résoudre le problème d'injection des identifiants ossfs.

Documentation connexe