Jobs de UDF e MapReduce no MaxCompute não acessam arquivos locais diretamente. Você deve carregá-los como recursos no nível do projeto. Após o upload, os recursos ficam disponíveis para todos os jobs sem necessidade de novo envio. Este tópico explica como adicionar, criar alias, baixe, visualize, listar e exclua recursos usando o cliente MaxCompute (odpscmd).
A tabela a seguir lista as operações compatíveis.
|
Operação |
Comando CLI |
Permissão necessária |
|
|
Permissão de escrita em recursos |
|
|
|
Permissão de escrita em recursos |
|
|
|
Permissão de escrita em recursos |
|
|
|
Permissão de leitura em recursos |
|
|
|
Permissão de listagem de objetos em um projeto |
|
|
|
Permissão de exclusão em recursos |
Pré-requisitos
Antes de começar, verifique se você tem:
Acesso ao cliente MaxCompute (odpscmd) ou ao Cloud Shell (odpscmd)
A permissão necessária para a operação (consulte a tabela acima)
Adicionar recursos
Adiciona um arquivo local a um projeto MaxCompute como recurso, tornando-o disponível para jobs de função definida pelo usuário (UDF) ou MapReduce.
Limitações:
Não é possível adicionar tabelas externas como recursos.
O tamanho máximo por arquivo de recurso é de 2.048 MB. O tamanho total dos recursos referenciados por um único job SQL ou MapReduce não pode exceder 2.048 MB.
Sintaxe:
add file <local_file> [as <alias>] [comment '<comment>'] [-f];
add archive <local_file> [as <alias>] [comment '<comment>'] [-f];
add table <table_name> [partition (<spec>)] [as <alias>] [comment '<comment>'] [-f];
add py|jar <local_file> [comment '<comment>'] [-f];
Parâmetros:
|
Parâmetro |
Obrigatório |
Descrição |
||||
|
|
archive |
table |
py |
jar` |
Sim |
|
|
|
Sim |
Caminho local do arquivo a adicionar. O nome do arquivo torna-se o nome do recurso, que o identifica exclusivamente no projeto. |
||||
|
|
Sim (tipo tabela) |
Nome da tabela MaxCompute a adicionar como recurso. |
||||
|
|
Sim (tabela particionada) |
Especificação da partição. Quando especificada, apenas essa partição é adicionada como recurso, e não a tabela inteira. |
||||
|
|
Não |
Nome personalizado para o recurso. Se omitido, o nome do arquivo será usado. Não compatível com recursos do tipo |
||||
|
|
Não |
Comentário descritivo para o recurso. |
||||
|
|
Não |
Substitui um recurso existente com o mesmo nome. Se omitido e houver conflito de nomes, a operação falhará. |
Exemplos:
Adicione um arquivo de texto como recurso:
add file banking.txt;
Saída esperada:
OK: Resource 'banking.txt' have been created.
Adicione uma partição de uma tabela como recurso com um alias:
add table sale_detail partition (ds='20150602') as sale.res comment 'sale detail on 20150602' -f;
Saída esperada:
OK: Resource 'sale.res' have been updated.
Adicione um arquivo Python como recurso:
add py python.py;
Saída esperada:
OK: Resource 'python.py' have been created.
Crie um alias para um recurso
Crie um alias que aponta para um recurso. Use aliases no código MapReduce ou UDF para alternar entre diferentes recursos por nome sem modificar o código.
Sintaxe:
alias <alias>=<real>;
Parâmetros:
|
Parâmetro |
Descrição |
|
|
Alias a atribuir. |
|
|
Nome real do recurso. |
Exemplo:
O exemplo a seguir execute dois jobs MapReduce que referenciam partições de datas diferentes por meio do mesmo alias resName. Reatribuir o alias entre os jobs elimina a necessidade de alterar o código.
-- Add resources for two different date partitions.
add table sale_detail partition (ds='20121208') as res_20121208;
add table sale_detail partition (ds='20121209') as res_20121209;
-- Point resName to the first partition and run the job.
alias resName=res_20121208;
jar -resources resName -libjars work.jar -classpath ./work.jar com.company.MainClass args ...;
-- Reassign resName to the second partition and run the job.
alias resName=res_20121209;
jar -resources resName -libjars work.jar -classpath ./work.jar com.company.MainClass args ...;
Visualize informações do recurso
Retorna os detalhes de um recurso especificado: nome, proprietário, tipo, comentário, hora de criação, hora da última modificação, último atualizador, tamanho do arquivo e checksum MD5.
Os nomes de recursos no MaxCompute não diferenciam maiúsculas de minúsculas. resource_A e resource_a referem-se ao mesmo recurso.
Plataformas compatíveis: Cliente MaxCompute (odpscmd), Cloud Shell (odpscmd), DataWorks, MaxCompute Studio
Sintaxe:
desc resource <resource_name>;
Parâmetros:
|
Parâmetro |
Obrigatório |
Descrição |
|
|
Sim |
Nome do recurso a inspecionar. |
Campos retornados:
|
Campo |
Descrição |
|
|
Nome do recurso. |
|
|
Conta proprietária do recurso. |
|
|
Tipo do recurso. |
|
|
Comentário do recurso. |
|
|
Hora em que o recurso foi criado. |
|
|
Hora da última atualização do recurso. |
|
|
Conta que realizou a última atualização. |
|
|
Tamanho do arquivo de recurso, em MB. |
|
|
Checksum MD5 do arquivo de recurso. |
Exemplo:
-- View details for topn_new.jar.
desc resource topn_new.jar;
Saída esperada:
Name topn_new.jar
Owner ALIYUN$****@test.aliyunid.com
Type JAR
Comment cloudopenapi
CreatedTime 2020-12-29 13:55:11
LastModifiedTime 2020-12-29 13:55:11
LastUpdator
Size 11438795
Md5sum 8bcf6aabf****56c0
Listar recursos
Lista todos os recursos em um projeto, incluindo nome, proprietário, hora de criação, hora da última modificação, tipo e tamanho de cada recurso.
Sintaxe:
list resources;
Exemplo:
list resources;
Saída esperada:
Resource Name Owner Creation Time Last Modified Time Type Last Updator Resource Size Source comment
getaddr.jar ALIYUN$**** 2020-06-18 15:47:28 2020-06-18 15:47:28 jar 1353716 cloudopenapi
ip.dat ALIYUN$**** 2020-06-18 15:49:46 2020-06-18 15:49:46 file 8525962 cloudopenapi
2 resources
Baixe recursos
Baixe um recurso de um projeto MaxCompute para sua máquina local.
Limitações: Apenas os tipos de recurso FILE, JAR, ARCHIVE e PY são compatíveis. Não é possível baixe recursos do tipo TABLE.
Sintaxe:
get resource <resource_name> <path>;
Parâmetros:
|
Parâmetro |
Obrigatório |
Descrição |
|
|
Sim |
Nome do recurso a baixe. |
|
|
Sim |
Caminho local onde salvar o recurso baixado. |
Exemplo:
get resource getaddr.jar D:\;
Exclua recursos
Exclua um recurso de um projeto MaxCompute. A operação solicita confirmação antes de entrar em vigor.
Sintaxe:
drop resource <resource_name>;
Parâmetros:
|
Parâmetro |
Obrigatório |
Descrição |
|
|
Sim |
Nome do recurso a exclua. |
Exemplo:
drop resource getaddr.jar;
Saída esperada:
Confirm to "drop resource getaddr.jar" (yes/no)? y
OK
Próximos passos
Funções definidas pelo usuário (UDFs) — consulte recursos nas definições de UDF.
MapReduce — utilize recursos em jobs MapReduce.