Este tópico descreve como migrar dados entre projetos do MaxCompute em regiões diferentes com o acesso a dados entre projetos. Esse recurso permite transferir dados entre projetos do MaxCompute na mesma conta Alibaba Cloud em regiões distintas ou entre contas Alibaba Cloud diferentes também em regiões distintas.
Limitações
Esta solução aplica-se apenas à migração de dados entre projetos do MaxCompute nas regiões da China continental.
Migrar dados entre projetos do MaxCompute na mesma conta Alibaba Cloud em regiões diferentes
Migre os dados da tabela do projeto de source projectA para o projeto de destino projectB. Ambos os projetos pertencem à mesma conta Alibaba Cloud.
-
Acesse diretamente o projeto de destino e crie a tabela de destino com a conta Alibaba Cloud.
Copiar dados durante a criação da tabela
-- Go to projectB. use projectB; set odps.namespace.schema=false; -- Create a table based on the source table in projectA and copy data from the source table to the new table. create table [if not exists] <table_name> [lifecycle <days>] as select * from projectA.<table_name>;Copiar dados após a criação da tabela
-- Go to projectB. use projectB; set odps.namespace.schema=false; -- Create a table that has the same schema as the source table but do not copy data. create table [if not exists] <table_name> like projectA.<table_name> [lifecycle <days>]; -- Write data from the source table to the new table in the destination project. insert {into|overwrite} table <table_name> [partition (<pt_spec>)] [(<col_name> [,<col_name> ...)]] select * from projectA.<table_name> [zorder by <zcol_name> [, <zcol_name> ...]];Para mais informações sobre como criar tabelas, consulte Operações de tabela.
-
Ao executar operações como usuário RAM ou função RAM, verifique se o status do projeto de source é normal e se o operador possui a permissão
SELECTna tabela de source, além das permissõesCreateInstanceeCreateTableno projeto de destino. Para saber mais sobre como conceder permissões . Utilize um dos métodos abaixo para conceder a permissão SELECT na tabela de source a um usuário RAM ou função RAM:Método 1: Adicione o usuário RAM ao projectA. Para mais detalhes, veja Planejamento e gerenciamento de usuários. Em seguida, conceda as permissões necessárias nos recursos. Consulte Gerencie permissões de usuário usando comandos para obter instruções.
Método 2: Acesse projetos em regiões diferentes pelo mecanismo de controle de acesso baseado em pacotes. Compacte os recursos do projectA no PackageA com uma conta Alibaba Cloud e permita a instalação do PackageA no projectB. Após instalar o PackageA no projectB, conceda permissão de leitura nele ao operador do projectB. Para mais informações, consulte Acesso a recursos entre projetos baseado em pacotes.
Migrar dados entre projetos do MaxCompute em contas Alibaba Cloud diferentes em regiões diferentes
Etapa 1: Conceder permissões de leitura nos dados do projeto de source à conta Alibaba Cloud proprietária do projeto de destino
O MaxCompute permite acessar projetos entre contas Alibaba Cloud pelos seguintes métodos:
-
Método 1: Adicione a conta Alibaba Cloud projectB_owner@aliyunid.com, proprietária do projectB, ao projectA. Para mais detalhes, veja Planejamento e gerenciamento de usuários. Depois, conceda à conta as permissões necessárias nos recursos. Consulte Gerencie permissões de usuário usando comandos para obter instruções. Assim, a conta projectB_owner@aliyunid.com poderá acessar o projectA.
Método 2: Acesse projetos entre contas Alibaba Cloud pelo mecanismo de controle de acesso baseado em pacotes. Use a conta Alibaba Cloud A (proprietária do projectA) para compactar os recursos do projectA no PackageA e permita que a conta Alibaba Cloud B (proprietária do projectB) instale o PackageA no projectB. Após a instalação, a conta B poderá acessar os recursos do PackageA. Para mais informações, consulte Acesso a recursos entre projetos baseado em pacotes.
Etapa 2: Migrar dados
Acesse diretamente o projeto de destino e crie a tabela de destino com a conta Alibaba Cloud.
Copiar dados durante a criação da tabela
-- Go to projectB.
use projectB;
set odps.namespace.schema=false;
-- Create a table based on the source table in projectA and copy data from the source table to the new table.
create table [if not exists] <table_name> [lifecycle <days>] as select * from projectA.<table_name>;
Copiar dados após a criação da tabela
-- Go to projectB.
use projectB;
set odps.namespace.schema=false;
-- Create a table that has the same schema as the source table but do not copy data.
create table [if not exists] <table_name> like projectA.<table_name> [lifecycle <days>];
-- Write data from the source table to the new table in the destination project.
insert {into|overwrite} table <table_name> [partition (<pt_spec>)] [(<col_name> [,<col_name> ...)]]
select * from projectA.<table_name> [zorder by <zcol_name> [, <zcol_name> ...]];
Para mais informações sobre como criar tabelas, consulte Operações de tabela.
Para garantir a segurança dos dados, remova a conta Alibaba Cloud proprietária do projeto de destino do projeto de source após concluir a migração. Para mais informações, consulte Remover uma conta Alibaba Cloud (nível de projeto).