Todos os produtos
Search
Central de documentação

MaxCompute:Operações com External Volume

Última atualização: Jun 26, 2026

Um external volume é uma solução de sistema de arquivos distribuído e armazenamento de dados não estruturados do MaxCompute. Esse recurso mapeia um diretório do OSS para um projeto do MaxCompute e permite consultar e processar diretamente os arquivos armazenados no Object Storage Service (OSS), sem importar dados para tabelas do MaxCompute. Essa abordagem reduz a redundância de dados e a sobrecarga de transmissão.

Operações comuns

Operação

Descrição

Quem pode executar

Crie um external volume

Crie um external volume em um projeto

Proprietário do external volume; proprietário do projeto; usuários com a função Super_Administrator ou Admin

Listar external volumes e visualize a estrutura de diretórios

Lista todos os external volumes ou visualize a estrutura de diretórios de um volume específico

Exclua um external volume

Exclua um external volume

Pré-requisitos

Antes de começar, verifique se você tem:

  • Cliente do MaxCompute (odpscmd) V0.43.0 ou posterior. Para instruções de instalação, consulte Cliente do MaxCompute (odpscmd).

    Para executar comandos na página DataStudio ou SQL Query do console do DataWorks, o cliente integrado do MaxCompute deve ser V0.43.2 ou posterior. Execute Show version; para verificar a versão. Para mais informações, consulte Usar o MaxCompute no DataWorks .
  • SDK for Java V0.43.0 ou posterior, caso utilize o SDK para Java.

  • Conta Alibaba Cloud ou usuário RAM com permissões de acesso ao OSS. Para etapas de autorização, consulte Autorização STS para OSS.

Crie um external volume

Sintaxe

vfs -create <volume_name>
    -storage_provider oss
    -url <oss://oss_endpoint/bucket_name/directory_name>
    [-acd <true|false>]
    -role_arn <arn:aliyun:xxx/aliyunodpsdefaultrole>

Os parâmetros entre [ ] são opcionais.

Parâmetro

Obrigatório

Descrição

volume_name

Sim

Nome do external volume a criar.

storage_provider

Sim

Provedor de armazenamento. Defina como oss. O OSS é o único provedor compatível.

url

Sim

Diretório do OSS onde os arquivos de dados estão armazenados. Formato: oss://<oss_endpoint>/<bucket_name>/<directory_name>. O nome do bucket e o nome do diretório de nível 2 são obrigatórios. Consulte as notas abaixo sobre os requisitos de endpoint.

acd

Não

Define se o diretório do OSS será criado automaticamente caso não exista. Padrão: false. Consulte as notas abaixo para detalhes sobre o comportamento.

role_arn

Sim

Alibaba Cloud Resource Name (ARN) da função RAM com permissões de acesso ao OSS. Para obter o ARN, consulte Usar credenciais temporárias fornecidas pelo STS para acessar o OSS.

Notas sobre o parâmetro url:

  • Use um endpoint interno do OSS para evitar cobranças adicionais por tráfego de internet, por exemplo: oss://oss-cn-beijing-internal.aliyuncs.com/my-bucket/my-dir. Para obter a lista completa de endpoints internos, consulte Regiões e endpoints.

  • Implante o bucket do OSS na mesma região do projeto MaxCompute para evitar problemas de conectividade entre regiões.

Notas sobre o parâmetro acd:

  • false (padrão): Se o diretório especificado não existir, o comando falhará com um erro.

  • true: Caso o diretório não exista, o MaxCompute o criará automaticamente usando as permissões concedidas via role_arn. Se o diretório já existir, o MaxCompute o utilizará diretamente.

Importante

Quando acd está definido como true e o diretório é criado automaticamente, o MaxCompute não exclui o diretório se a criação do external volume falhar posteriormente.

Após a criação do external volume, o caminho segue o formato odps://<project_name>/<volume_name>. O mecanismo Spark e as tarefas MapReduce podem usar esse caminho.

Exemplo

Crie um external volume chamado test_ext_l:

vfs -create test_ext_l -storage_provider oss -url oss://oss-cn-hangzhou-internal.aliyuncs.com/test/ex_volume/ -role_arn acs:ram::xxxxxxx:role/aliyunodpsdefaultrole;

Listar external volumes e visualize a estrutura de diretórios

Sintaxe

-- List all external volumes in the project
vfs -ls /;

-- View the directory structure of a specific external volume
vfs -ls [-R] /<volume_name>;

Parâmetro

Obrigatório

Descrição

volume_name

Sim

Nome do external volume.

-R

Não

Lista subdiretórios recursivamente.

Exemplos

Listar todos os external volumes:

vfs -ls /;

Saída esperada:

Found 2 items
drwxrwxrwx - 0 2023-03-11 12:06 /test_ext_l -> oss://oss-cn-shanghai-internal.aliyuncs.com/test/ex_volume
drwxrwxrwx - 0 2023-03-21 07:33 /myfirst_volume4 -> oss://oss-cn-shanghai-internal.aliyuncs.com/paristech/data
External volumes sem permissão de acesso não aparecem na saída. Para conceder acesso a um usuário, execute o comando a seguir. As permissões disponíveis são Read, Write e CreateVolume.
grant Read on volume myfirst_volume4 to RAM$xxxxxx:dev01;

Visualize a estrutura de diretórios de test_ext_l:

vfs -ls -R /test_ext_l;

Saída esperada:

drwxrwxrwx - 0 2023-03-27 07:31 /test_ext_l/test -> oss://oss-cn-hangzhou-internal.aliyuncs.com/test/ex_volume/test

Exclua um external volume

Sintaxe

-- Syntax 1
vfs -rm -r /<volume_name>;

-- Syntax 2
vfs -rmv /<volume_name>;

Parâmetro

Obrigatório

Descrição

volume_name

Sim

Nome do external volume a excluir.

Exemplo

Exclua o external volume chamado test_ext_l:

vfs -rm -r /test_ext_l;

Próximos passos