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 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 |
— |
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 |
|
|
Sim |
Nome do external volume a criar. |
|
|
Sim |
Provedor de armazenamento. Defina como |
|
|
Sim |
Diretório do OSS onde os arquivos de dados estão armazenados. Formato: |
|
|
Não |
Define se o diretório do OSS será criado automaticamente caso não exista. Padrão: |
|
|
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 viarole_arn. Se o diretório já existir, o MaxCompute o utilizará diretamente.
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 |
|
|
Sim |
Nome do external volume. |
|
|
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 |
|
|
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
Para gerencie external volumes com o SDK, consulte Gerenciar external volumes usando SDKs.
Para exemplos completos de consulta e processamento de dados não estruturados com external volumes, consulte Usar external volumes do MaxCompute para processar dados não estruturados.