Todos os produtos
Search
Central de documentação

DataWorks:Uso de datasets

Última atualização: Sep 24, 2026

No desenvolvimento de dados, é possível usar datasets em nós, como os nós Shell, Python e Notebook, para ler e gravar dados no Object Storage Service (OSS) ou no Apsara File Storage NAS (NAS). Além disso, ao criar uma instância de ambiente de desenvolvimento pessoal, você pode montar um dataset como armazenamento.

Importante

Consulte Gerencie datasets para saber como criar um dataset.

Visão geral

Os datasets permitem ler e gravar dados armazenados no OSS e no NAS diretamente no DataWorks. É possível criar várias versões de um dataset, acompanhar as alterações ao longo do tempo e reverter para uma versão anterior, se necessário.

Limitações

  • Os datasets são compatíveis apenas com a nova versão do DataStudio.

  • Grupo de recursos: É possível acessar datasets em nós de desenvolvimento de dados apenas por meio de um Serverless resource group.

  • Objetos compatíveis: Os datasets são compatíveis apenas com Shell nodes, Python nodes, Notebooks for basic development e personal development environments. Você pode montar no máximo 5 datasets em cada objeto.

  • Tipo de armazenamento: Os datasets são compatíveis com o Object Storage Service (OSS) e o Apsara File Storage NAS (NAS) usando o protocolo NFS.

  • Permissões: Se o destino de montagem de um dataset estiver definido como somente leitura, você não poderá modificar nem excluir as pastas ou arquivos dentro dele. Tentar fazer isso gera um erro de permissão.

Uso de datasets em nós

Esta seção explica como montar um dataset do OSS em um nó. Neste exemplo, você cria um dataset do DataWorks baseado no OSS, monta o caminho do OSS oss://datasets-oss.oss-cn-shanghai.aliyuncs.com/dataset01/v1/ no caminho de montagem do dataset /mnt/data/dataset01 e, em seguida, lê e grava dados no código do nó.

Pré-requisitos: crie um dataset

  1. Crie um bucket ou crie um sistema de arquivos.

    Este exemplo usa um dataset do OSS. Crie um bucket chamado datasets-oss na região China (Shanghai) e, em seguida, crie o diretório /dataset01/v1.

  2. Crie um dataset.

    Neste exemplo, crie um dataset do OSS chamado datasets-oss e monte o caminho do OSS oss://datasets-oss.oss-cn-shanghai.aliyuncs.com/dataset01/v1/ em /mnt/data/dataset01.

1. Configure o dataset para um nó

Na Debug Configuration de um nó Shell ou Python, configure o dataset datasets-oss.

Importante
  • Antes de publicar o nó, adicione também o dataset na seção Scheduling Settings.

  • Para usar um dataset, aloque pelo menos 0,5 unidades de computação (CUs) para o nó.

Parâmetro

Descrição

Datasets

Especifica o dataset que o código do nó atual pode acessar.

  • Se você usar um dataset baseado no OSS, conceda permissões ao grupo de recursos do DataWorks para acessar o bucket do OSS configurado para o dataset na primeira vez que ler dados dele. Após a autorização, o DataWorks injeta automaticamente as credenciais de acesso no diretório /etc/oss-secret/ do grupo de recursos serverless, e o ossfs 2.0 lê o arquivo AccessKeyId nesse diretório para obter as credenciais. O processo de autorização injeta o AccessKey ID e o AccessKey secret do usuário do Resource Access Management (RAM), sem necessidade de configuração manual.

  • Se você usar um dataset baseado no NAS, certifique-se de que a VPC do grupo de recursos do DataWorks esteja conectada à VPC do destino de montagem do NAS. Para obter detalhes de configuração, consulte Network connectivity solutions.

Neste exemplo, selecione o dataset do OSS datasets-oss criado no DataWorks e a versão V1.

Mount Path

O caminho que o código do nó usa para acessar o dataset. Este campo é preenchido automaticamente com o Default Mount Path configurado ao definir o dataset.

Importante

Se você montar vários datasets no mesmo nó, os caminhos de montagem não podem entrar em conflito.

Advanced Settings

Este parâmetro é opcional. Você pode especificar as ferramentas e os parâmetros para acessar dados do OSS ou as configurações para acessar sistemas de arquivos do NAS no formato JSON.

  • Se o dataset configurado for baseado no OSS, o DataWorks usa o ossfs 2.0 para acessar os dados do OSS no caminho do seu dataset por padrão. Use a Configuração Avançada para especificar outras ferramentas para acessar dados do OSS. Para obter detalhes sobre as ferramentas disponíveis, consulte Advanced configuration examples. O código a seguir mostra a configuração padrão:

    {"mountOssType":"ossfs", "upload_concurrency":64} 
  • Se você adicionar um dataset baseado no NAS, poderá especificar as configurações relevantes (o parâmetro nasOptions) para acessar um sistema de arquivos do Apsara File Storage NAS (NAS) usando o protocolo NFS. O código a seguir mostra a configuração padrão. Para personalizar os valores dos parâmetros, consulte Manually mount an NFS file system.

    Importante
    • É possível montar apenas sistemas de arquivos do NAS que usam o protocolo NFS.

    • Para o NAS, há suporte para apenas um parâmetro de configuração avançada: nasOptions. Para personalizar os parâmetros de montagem do NAS, defina a Configuração Avançada como {"nasOptions":"<ParameterName1=ParameterValue>, <ParameterName2=ParameterValue>,..."}.

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

Read Only

Por padrão, você pode ler e gravar no dataset no nó atual. Se o dataset estiver definido como somente leitura para este nó, você não poderá gravar dados em seu diretório de montagem a partir do código do nó. Qualquer tentativa de gravação gera um erro de permissão.

2. Usar o dataset em um nó

Este exemplo usa um nó Shell. Depois de anexar um dataset do OSS ao nó Shell, você pode gerenciar os dados do OSS no código do nó Shell como se fossem arquivos locais. O exemplo a seguir utiliza a ferramenta padrão ossfs 2.0 para gravar o arquivo file01.txt no caminho de montagem /mnt/data/dataset01 do dataset do OSS datasets-oss.

Código de exemplo:

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

No painel Debug Configurations à direita, abra a guia Dataset e selecione o dataset personalizado datasets-oss/V1. Confirme a mensagem de autorização bem-sucedida do grupo de recursos e certifique-se de que a opção Read-only esteja desativada. Depois de executar o nó, o log mostra que o arquivo file01.txt foi criado (12 bytes, permissões: rwxrwxrwx), o código de saída é 0, o tempo decorrido é 0,741s e o status é FINISH.

Nota

Se você receber a mensagem de erro Job Submit Failed! submit job failed directly! Caused by: execute task failed, exception: [103:ILLEGAL_TASK]:Task with dataset need 0.5cu at least! durante a execução, significa que a tarefa não tem CUs suficientes. Aumente a alocação de CUs para o grupo de recursos para pelo menos 0,5.

3. Verifique os dados no OSS

Depois da execução do código em 2. Use the dataset in a node, o arquivo é gravado automaticamente no caminho de armazenamento do OSS que corresponde ao caminho de montagem do dataset. Visualize o arquivo no caminho de armazenamento do OSS. Neste exemplo, o caminho de montagem /mnt/data/dataset01 do dataset do OSS datasets-oss corresponde a oss://datasets-oss.oss-cn-shanghai.aliyuncs.com/dataset01/v1/. A figura a seguir mostra um exemplo dos dados gravados no caminho do OSS.

Nesse caminho, você encontra o arquivo gravado file01.txt (0,012 KB, armazenamento Standard).

Uso de datasets em um ambiente de desenvolvimento pessoal

Depois de definir um dataset, você pode montá-lo em uma instância de ambiente de desenvolvimento pessoal ao criar ou modificar a instância. Em seguida, é possível acessar os dados do dataset diretamente no terminal ou em um Notebook dentro do seu diretório pessoal.

Pré-requisitos: crie um dataset

  1. Crie um bucket ou crie um sistema de arquivos.

  2. Crie um dataset.

    Este exemplo usa um dataset baseado no NAS. Crie um dataset do NAS chamado datasets-nas na região China (Shanghai) e monte o caminho do NAS nas://****.cn-shanghai.nas.aliyuncs.com/mnt/dataset02/v1/ em /mnt/data/dataset02.

1. Configure um dataset para o ambiente pessoal

Crie uma instância de um personal development environment e selecione o dataset do NAS existente datasets-nas.

Na página de configuração, selecione datasets-nas na lista suspensa Dataset e especifique o caminho de montagem correspondente.

Parâmetro

Descrição

Datasets

Especifica o dataset que o código da instância pode acessar. Certifique-se de que a VPC selecionada para a instância do ambiente de desenvolvimento pessoal possa se conectar ao destino de montagem do NAS.

Neste exemplo, selecione o dataset do NAS datasets-nas criado no DataWorks e a versão V1.

Mount Path

O caminho que o código da instância usa para acessar o dataset.

Neste exemplo, monte o caminho do dataset do NAS nas://****.cn-shanghai.nas.aliyuncs.com/mnt/dataset02/v1/ em /mnt/data/dataset02.

Importante

Se você montar vários datasets na mesma instância de um ambiente de desenvolvimento pessoal, os caminhos de montagem não devem entrar em conflito.

Advanced Settings

Este parâmetro é opcional. Você pode usar JSON para especificar as configurações (o parâmetro nasOptions) para acessar um sistema de arquivos do Apsara File Storage NAS (NAS) que usa o protocolo NFS. O código a seguir mostra a configuração padrão. Para personalizar os valores dos parâmetros, consulte também Manually mount an NFS file system.

Importante
  • É possível montar apenas sistemas de arquivos do NAS que usam o protocolo NFS.

  • Para o NAS, há suporte para apenas um parâmetro de configuração avançada: nasOptions. Para personalizar os parâmetros de montagem do NAS, defina a Configuração Avançada como {"nasOptions":"<ParameterName1=ParameterValue>,<ParameterName2=ParameterValue>,..."}.

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

Read Only

Por padrão, você pode ler e gravar no dataset na instância. Se o dataset estiver definido como somente leitura para a instância, você não poderá gravar dados em seu diretório de montagem a partir do código dentro da instância. Qualquer tentativa de gravação gera um erro de permissão.

2. Usar o dataset em um Notebook

  1. Na parte superior da página do DataStudio, mude para a instância do personal development environment instance e, em seguida, crie um Notebook for basic development.

  2. No Notebook, adicione o seguinte conteúdo.

    1. Grave dados no caminho especificado no dataset.

      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. Leia dados do caminho especificado no dataset.

      file_path = "/mnt/data/dataset02/file02.txt"
      with open(file_path, "r") as file:
          content = file.read()
      content
  3. Execute os dois trechos de código Python separadamente.

    Nota

    Antes de executar o código, ensure you have selected the correct Python kernel. Este exemplo usa o Python 3.11.9.

    Primeiro trecho de código: Grave dados no caminho especificado no dataset.

    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)}")

    Se a saída for The file is successfully written to /mnt/data/dataset02/file02.txt, a operação de gravação foi bem-sucedida. Segundo trecho de código: Leia dados do caminho especificado no dataset.

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

    Se a saída for 'Hello World!', a operação de leitura foi bem-sucedida.

3. Configure o agendamento

À direita do nó Notebook, clique em Scheduling Settings e adicione as opções do dataset. Use os mesmos parâmetros configurados para a instância do ambiente de desenvolvimento pessoal.

Exemplos de configuração avançada

Ao configurar um dataset, é possível definir configurações avançadas para personalizar os parâmetros relevantes no formato JSON:

Montar o OSS com o ossfs 2.0

O ossfs 2.0 é um cliente que monta o OSS para acesso de alto desempenho. Ele oferece alto throughput de leitura/gravação sequencial e utiliza totalmente a largura de banda do OSS. É ideal para aplicações de uso intensivo de computação que exigem alto desempenho de E/S sequencial, como treinamento de IA e processamento de big data. Esses cenários de carga de trabalho envolvem principalmente leituras sequenciais e aleatórias e gravações sequenciais (apenas anexação), e não exigem semântica POSIX completa.

Na seção Datasets > Advanced Settings, defina os parâmetros avançados. Separe várias opções com uma vírgula (,). Para obter instruções sobre como usar parâmetros avançados e mais opções de configuração, consulte ossfs 2.0 mount options. Os exemplos a seguir mostram vários cenários comuns:

  • Fonte de dados imutável: Se nenhum dos arquivos lidos for modificado durante uma tarefa, defina um tempo de cache longo para reduzir o número de solicitações de metadados. Um cenário típico é ler um lote de arquivos existentes e gerar um novo lote de arquivos após o processamento.

    {"mountOssType":"ossfs", "attr_timeout": "7200"}
  • Operações rápidas de leitura e gravação: Use um tempo de cache de metadados curto para equilibrar a eficiência do cache e a atualidade dos dados.

    {"mountOssType":"ossfs", "attr_timeout": "3", "negative_timeout":"0"}
  • Visualização consistente para tarefas distribuídas: Por padrão, o ossfs atualiza os dados do arquivo com base no cache de metadados. Use a configuração a seguir para obter uma visualização sincronizada em vários nós.

    { "mountOssType":"ossfs","negative_timeout": "0", "close_to_open":"false"}
  • OOM causado pela abertura de muitos arquivos: A alta simultaneidade de tarefas com muitos arquivos abertos ao mesmo tempo pode causar problemas de falta de memória (OOM). Use a configuração a seguir para aliviar a pressão sobre a memória.

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

Montar o OSS com o ossfs 1.0

O ossfs 1.0 monta um bucket do OSS como um sistema de arquivos local em um sistema Linux. Em comparação com o ossfs 2.0, o ossfs 1.0 oferece suporte mais abrangente para operações de arquivos. Se você encontrar incompatibilidades em operações de arquivos com o ossfs 2.0, tente usar o ossfs 1.0.

Para obter mais informações sobre os parâmetros necessários para a montagem com o ossfs 1.0, consulte ossfs 1.0 mount options.

Montar o OSS com o JindoFuse

Você pode usar o componente JindoFuse para montar um dataset do OSS em um caminho especificado em um contêiner. Essa ferramenta é ideal para os seguintes cenários:

  • Você deseja ler dados do OSS como se fossem um dataset local, ou o dataset é pequeno o suficiente para se beneficiar da aceleração de cache local do JindoFuse.

  • Você precisa gravar dados no OSS.

Na seção Datasets > Advanced Settings, defina parâmetros avançados. Separe várias opções com uma vírgula (,). O código a seguir mostra apenas um exemplo. Para descrições de parâmetros e mais opções de configuração, consulte JindoFuse User Guide e Use JindoFuse to mount and access data.

Nota

Atualmente, o DataWorks aceita apenas parâmetros no formato 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
}

Usar um dataset do NAS

Para datasets baseados no NAS, especifique as configurações (usando o parâmetro nasOptions) para acessar um sistema de arquivos do Apsara File Storage NAS (NAS) baseado em NFS. O código a seguir mostra a configuração padrão. Para personalizar os valores dos parâmetros, consulte Manually mount an NFS file system.

Importante
  • É possível montar apenas sistemas de arquivos do NAS que usam o protocolo NFS.

  • Para o NAS, há suporte para apenas um parâmetro de configuração avançada: nasOptions. Para personalizar os parâmetros de montagem do NAS, defina a Configuração Avançada como {"nasOptions":"<ParameterName1=ParameterValue>, <ParameterName2=ParameterValue>,..."}.

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

Perguntas frequentes

O que devo fazer se o erro "FileNotFoundError: /etc/oss-secret/AccessKeyId" aparecer ao ler dados de um dataset do OSS?

Esse erro geralmente indica que o grupo de recursos do DataWorks não conseguiu obter as credenciais necessárias para acessar o OSS. Para solucionar o problema, execute as seguintes etapas:

  1. Confirme se você concluiu a autorização do OSS no painel de configuração do dataset. O prompt dessa autorização aparece na primeira vez que você usa o dataset.

  2. Confirme se o grupo de recursos serverless está em estado normal e não suspenso.

  3. Se a autorização e o status do grupo de recursos estiverem normais, mas o erro persistir, entre em contato com o suporte técnico para investigar o processo de injeção de credenciais do ossfs.

Documentos relacionados