Todos os produtos
Search
Central de documentação

DataWorks:Uso de datasets

Última atualização: Jun 27, 2026

Use datasets em nós, como Shell, Python e Notebook, para ler e gravar dados no Object Storage Service (OSS) ou Apsara File Storage NAS (NAS) durante o desenvolvimento de dados. Também é possível montar um dataset como armazenamento ao criar uma instância de ambiente de desenvolvimento pessoal.

Importante

Recomendamos a leitura de Gerenciar datasets para aprender a criar um dataset.

Visão geral

Os datasets permitem ler e gravar dados armazenados no OSS e no NAS diretamente pelo DataWorks. Crie múltiplas versões de um dataset, rastreie alterações e reverta para uma versão anterior quando necessário.

Limitações

  • O suporte a datasets está disponível apenas na nova versão do DataStudio.

  • Grupo de recursos: Acesse datasets a partir de nós de desenvolvimento de dados exclusivamente por meio de um Grupo de recursos Serverless.

  • Objetos suportados: Datasets são compatíveis apenas com nós Shell, nós Python, Notebooks para desenvolvimento básico e ambientes de desenvolvimento pessoal. Cada objeto aceita a montagem de até 5 datasets.

  • Tipo de armazenamento: Há suporte para Object Storage Service (OSS) e Apsara File Storage NAS (NAS) via protocolo NFS.

  • Permissões: Se o ponto de montagem do dataset estiver definido como somente leitura, não será possível modificar ou excluir pastas e arquivos nele contidos. Essa ação resultará em erro de permissão.

Uso de datasets em nós

Esta seção descreve como montar um dataset do OSS em um nó. Neste exemplo, crie um dataset do DataWorks com base no OSS, monte o caminho do OSS oss://datasets-oss.oss-cn-shanghai.aliyuncs.com/dataset01/v1/ no caminho de montagem do dataset /mnt/data/dataset01 e realize operações de leitura e escrita nos dados dentro do código do nó.

Pré-requisitos: criação de um dataset

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

    Este exemplo utiliza um dataset do OSS. Crie um bucket chamado datasets-oss na região China (Shanghai) e 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. Configuração do 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

Define o dataset acessível pelo código do nó atual.

  • Ao usar um dataset baseado em 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.

  • Se usar um dataset baseado em NAS, garanta que a VPC do grupo de recursos do DataWorks esteja conectada à VPC do ponto de montagem do NAS. Para detalhes de configuração, consulte Soluções de conectividade de rede.

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

Mount Path

Caminho usado pelo código do nó para acessar o dataset. Este campo é preenchido automaticamente com o Default Mount Path definido durante a criação do dataset.

Importante

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

Advanced Settings

Parâmetro opcional. Permite especificar ferramentas e parâmetros para acesso a dados do OSS ou configurações para sistemas de arquivos NAS no formato JSON.

  • Para datasets baseados em OSS, o DataWorks usa ossfs 2,0 por padrão para acessar os dados no caminho do dataset. Use as Advanced Settings para definir outras ferramentas de acesso. Consulte Exemplos de configuração avançada para detalhes sobre as ferramentas disponíveis. O código abaixo mostra a configuração padrão:

    {"mountOssType":"ossfs", "upload_concurrency":64} 
  • Ao adicionar um dataset baseado em NAS, especifique as configurações relevantes (parâmetro nasOptions) para acessar um sistema de arquivos Apsara File Storage NAS (NAS) usando o protocolo NFS. O código a seguir exibe a configuração padrão. Para personalizar valores de parâmetros, consulte Montar manualmente um sistema de arquivos NFS.

    Importante
    • Apenas sistemas de arquivos NAS que usam o protocolo NFS podem ser montados.

    • Para NAS, há suporte a apenas um parâmetro de configuração avançada: nasOptions. Para personalizar parâmetros de montagem do NAS, defina a Advanced Configuration 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, o nó atual permite leitura e escrita no dataset. Se o dataset estiver definido como somente leitura para este nó, não será possível gravar dados em seu diretório de montagem pelo código. Tentativas de escrita gerarão erro de permissão.

2. Uso do dataset em um nó

Este exemplo usa um nó Shell. Após anexar um dataset do OSS ao nó Shell, gerencie os dados do OSS no código do nó como se fossem arquivos locais. O exemplo a seguir usa 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 aba Dataset e selecione o dataset personalizado datasets-oss/V1. Confirme a mensagem de autorização bem-sucedida do grupo de recursos e verifique se a opção Read-only está desativada. Após executar o nó, o log indicará que file01.txt foi criado (12 bytes, permissões: rwxrwxrwx), com código de saída 0, tempo decorrido de 0,741s e status FINISH.

Nota

Caso receba 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, isso indica CUs insuficientes para a tarefa. Aumente a alocação de CU para o grupo de recursos para pelo menos 0,5.

3. Verificação dos dados no OSS

Após a execução do código em 2. Uso do dataset em um nó, o arquivo é gravado automaticamente no caminho de armazenamento do OSS correspondente 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 mapeia para oss://datasets-oss.oss-cn-shanghai.aliyuncs.com/dataset01/v1/. A figura a seguir ilustra os dados gravados no caminho do OSS.

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

Uso de datasets em um ambiente de desenvolvimento pessoal

Depois de definir um dataset, monte-o em uma instância de ambiente de desenvolvimento pessoal durante a criação ou modificação da instância. Em seguida, acesse os dados do dataset diretamente no terminal ou em um Notebook dentro do seu diretório pessoal.

Pré-requisitos: criação de um dataset

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

  2. Crie um dataset.

    Este exemplo usa um dataset baseado em 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. Configuração de um dataset para o ambiente pessoal

Crie uma instância de ambiente de desenvolvimento pessoal e selecione o dataset existente do NAS 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 acessível pelo código da instância. Certifique-se de que a VPC selecionada para a instância do ambiente de desenvolvimento pessoal possa se conectar ao ponto de montagem do NAS.

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

Mount Path

Caminho usado pelo código da instância 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

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

Advanced Settings

Parâmetro opcional. Use JSON para especificar as configurações (parâmetro nasOptions) destinadas ao acesso de um sistema de arquivos Apsara File Storage NAS (NAS) que usa o protocolo NFS. O código abaixo apresenta a configuração padrão. Consulte também Montar manualmente um sistema de arquivos NFS para personalizar valores de parâmetros.

Importante
  • Somente sistemas de arquivos NAS que usam o protocolo NFS podem ser montados.

  • Para NAS, apenas um parâmetro de configuração avançada é suportado: nasOptions. Para personalizar parâmetros de montagem do NAS, defina a Advanced Configuration 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, a instância permite leitura e escrita no dataset. Se o dataset estiver configurado como somente leitura para a instância, não será possível gravar dados em seu diretório de montagem via código. Qualquer tentativa de escrita resultará em erro de permissão.

2. Uso do dataset em um Notebook

  1. No topo da página do DataStudio, alterne para a instância de ambiente de desenvolvimento pessoal e crie um Notebook para desenvolvimento básico.

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

    1. Grave dados no caminho especificado do 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, certifique-se de ter selecionado o kernel Python correto. Este exemplo usa Python 3.11.9.

    Primeiro trecho de código: Grave dados no caminho especificado do 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 escrita 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. Configuração de agendamento

No lado direito 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, defina configurações avançadas para personalizar parâmetros relevantes no formato JSON:

Montagem do OSS com ossfs 2,0

O ossfs 2,0 é um cliente que monta o OSS para acesso de alto desempenho. Ele oferece alto throughput de leitura e escrita sequencial e aproveita totalmente a largura de banda do OSS. É ideal para aplicações intensivas em computação que exigem alta performance de E/S sequencial, como treinamento de IA e processamento de big data. Esses cenários envolvem principalmente leituras sequenciais e aleatórias, além de escritas sequenciais (append-only), sem necessidade de semântica POSIX completa.

Na seção DatasetsAdvanced Settings, defina parâmetros avançados. Separe múltiplas opções com vírgula (,). Para instruções sobre o uso de parâmetros avançados e mais opções de configuração, consulte Opções de montagem do ossfs 2,0. Os exemplos a seguir mostram alguns cenários comuns:

  • Fonte de dados imutável: Se todos os arquivos lidos não forem modificados durante uma tarefa, defina um tempo de cache longo para reduzir solicitações de metadados. Um cenário típico é a leitura de um lote de arquivos existentes e a geração de um novo lote após o processamento.

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

    {"mountOssType":"ossfs", "attr_timeout": "3", "negative_timeout":"0"}
  • Visão consistente para tarefas distribuídas: Por padrão, o ossfs atualiza dados de arquivos com base no cache de metadados. Use a configuração abaixo para obter uma visão sincronizada entre vários nós.

    { "mountOssType":"ossfs","negative_timeout": "0", "close_to_open":"false"}
  • OOM causado pela abertura excessiva de arquivos: Alta concorrência de tarefas com muitos arquivos abertos simultaneamente 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"}

Montagem do OSS com ossfs 1,0

O ossfs 1,0 monta um bucket do OSS como um sistema de arquivos local em sistemas Linux. Comparado ao ossfs 2,0, o ossfs 1,0 oferece suporte mais abrangente a operações de arquivos. Caso encontre incompatibilidades de operações de arquivo com o ossfs 2,0, tente usar o ossfs 1,0.

Para mais informações sobre os parâmetros necessários para montagem com ossfs 1,0, consulte Opções de montagem do ossfs 1,0.

Montagem do OSS com JindoFuse

Use o componente JindoFuse para montar um dataset do OSS em um caminho específico dentro de um container. Esta ferramenta é adequada para os seguintes cenários:

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

  • Necessidade de gravar dados no OSS.

Na seção DatasetsAdvanced Settings, defina parâmetros avançados. Separe múltiplas opções com vírgula (,). O código a seguir é apenas um exemplo. Para descrições de parâmetros e mais opções de configuração, consulte o Guia do Usuário do JindoFuse e Usar JindoFuse para montar e acessar dados.

Nota

Atualmente, o DataWorks suporta 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
}

Uso de um dataset do NAS

Para datasets baseados em NAS, especifique configurações (usando o parâmetro nasOptions) para acessar um sistema de arquivos Apsara File Storage NAS (NAS) baseado em NFS. O código abaixo mostra a configuração padrão. Para personalizar valores de parâmetros, consulte Montar manualmente um sistema de arquivos NFS.

Importante
  • Apenas sistemas de arquivos NAS que usam o protocolo NFS podem ser montados.

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

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

Documentos relacionados