A instrução CLONE TABLE copia dados de uma tabela de origem para uma tabela de destino na mesma região. Use essa instrução para migrar dados entre projetos do MaxCompute sob a mesma conta Alibaba Cloud ou entre contas diferentes.
Após a clonagem, verifique os dados na tabela de destino. Execute SELECT para inspecionar os dados ou DESC para conferir o esquema e o tamanho da tabela.
Sintaxe
CLONE TABLE <[<src_project_name>.]<src_table_name>> [PARTITION(<pt_spec>), ...]
TO <[<dest_project_name>.]<dest_table_name>> [IF EXISTS [OVERWRITE | IGNORE]];
Para obter a referência completa da sintaxe e exemplos adicionais, consulte CLONE TABLE.
Limitações
|
Limitação |
Descrição |
|
Compatibilidade de esquema |
O esquema da tabela de destino deve ser compatível com o esquema da tabela de origem. |
|
Tipos de tabela suportados |
Tabelas particionadas, não particionadas e clusterizadas. |
|
Limite de partições (tabela existente) |
É possível clonar no máximo 10.000 partições por vez se a tabela de destino já existir. |
|
Limite de partições (nova tabela) |
Ilimitado. Isso garante a atomicidade da operação de clonagem. |
|
Entre regiões |
Não suportado. |
|
Tabelas externas |
Não suportado. |
Migrar dados dentro da mesma conta Alibaba Cloud
Usar uma conta Alibaba Cloud
Execute a instrução CLONE TABLE diretamente no projeto de origem.
-- Run in the source project
SET odps.namespace.schema=false;
-- Clone the sales_data table from project_analytics to project_reporting
CLONE TABLE project_analytics.sales_data TO project_reporting.sales_data IF EXISTS OVERWRITE;
Usar um usuário RAM
Antes de executar CLONE TABLE como um usuário RAM, confirme se ele tem as seguintes permissões:
|
Permissão |
Escopo |
|
|
Tabela de origem no projeto de origem |
|
|
Projeto de destino |
|
|
Projeto de destino |
Um usuário RAM com essas permissões pode executar a instrução CLONE TABLE da mesma forma que uma conta Alibaba Cloud. Para mais informações sobre autorização, consulte .
Migrar dados entre contas Alibaba Cloud diferentes
Para clonar dados entre projetos pertencentes a contas Alibaba Cloud diferentes, adicione o proprietário do projeto de destino ao projeto de origem e conceda as permissões necessárias. Apenas contas Alibaba Cloud (não usuários RAM) podem realizar operações entre contas.
Pré-requisitos
Antes de começar, certifique-se de ter:
Os projetos de origem e de destino na mesma região
As credenciais das contas Alibaba Cloud dos proprietários dos projetos de origem e de destino
Procedimento
-
Conceda permissões no projeto de origem. Faça login com a conta proprietária do projeto de origem e execute os comandos a seguir. Para mais informações sobre como adicionar contas, consulte Adicionar uma conta Alibaba Cloud (nível de projeto). Para mais detalhes sobre concessão de permissões, veja Conceder permissões em um projeto específico a um usuário.
-- Run in the source project (project_analytics) USE project_analytics; -- Add the destination project owner to the source project ADD USER ALIYUN$destination_owner@aliyunid.com; -- Grant project-level permissions GRANT CreateTable, CreateInstance ON PROJECT project_analytics TO USER ALIYUN$destination_owner@aliyunid.com; -- Grant read access to the source table GRANT Select ON TABLE sales_data TO USER ALIYUN$destination_owner@aliyunid.com; -
Execute CLONE TABLE no projeto de destino. Faça login com a conta proprietária do projeto de destino. Como o proprietário já tem permissões totais sobre o projeto de destino, nenhuma concessão adicional é necessária.
-- Run in the destination project (project_reporting) USE project_reporting; -- Clone the table from project_analytics to project_reporting CLONE TABLE project_analytics.sales_data TO project_reporting.sales_data IF EXISTS OVERWRITE; -
Verifique os dados clonados. Execute
SELECTpara inspecionar os dados ouDESCpara conferir o esquema e o tamanho da tabela. Saída esperada (exemplo): Você também pode verificar o esquema e o tamanho da tabela:-- Check a sample of rows SELECT * FROM sales_data LIMIT 2;+----+------------+--------+ | id | order_date | amount | +----+------------+--------+ | 1 | 2024-01-15 | 299.00 | | 2 | 2024-01-16 | 450.50 | +----+------------+--------+-- Check the table structure and size DESC sales_data;
Limpar o acesso entre contas
Após concluir a migração, remova o proprietário do projeto de destino do projeto de origem para manter a segurança dos dados. Para mais informações, consulte Remover uma conta Alibaba Cloud (nível de projeto).