Todos os produtos
Search
Central de documentação

AnalyticDB:IMPORT FOREIGN SCHEMA

Última atualização: Jun 27, 2026

Utilize IMPORT FOREIGN SCHEMA para criar tabelas externas do MaxCompute em lote no cluster AnalyticDB for MySQL.

Pré-requisitos

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

  • Um cluster AnalyticDB for MySQL executando a versão V3.2.2.0 ou posterior

    Para visualizar e atualizar a versão secundária, faça login no console do AnalyticDB for MySQL e acesse a seção Configuration Information na página Cluster Information.
  • Elastic Network Interface (ENI) ativada no cluster

    Importante

    Para ativar a ENI, faça login no console do AnalyticDB for MySQL, acesse a página de detalhes do cluster e escolha Cluster Management > Cluster Information no painel de navegação à esquerda. Na seção Network Information, ative a ENI. A ativação ou desativação da ENI interrompe as conexões com o banco de dados por aproximadamente 2 minutos. Nenhuma operação de leitura ou gravação pode ser realizada durante esse período.

  • Um projeto MaxCompute na mesma região do seu cluster AnalyticDB for MySQL

  • Os blocos CIDR da virtual private cloud (VPC) onde seu cluster está localizado adicionados à lista de permissões de endereços IP do projeto MaxCompute

    Para encontrar os blocos CIDR, visualize o ID da VPC na página Cluster Information do console do AnalyticDB for MySQL e, em seguida, localize a VPC no console da VPC . Para saber como configurar a lista de permissões no MaxCompute, consulte Gerenciar listas de permissões de endereços IP .
  • Um servidor externo criado para o cluster — consulte Criar um servidor externo neste tópico

Início rápido

O exemplo completo a seguir demonstra todo o fluxo de trabalho: crie um servidor externo e, em seguida, importe as tabelas externas.

Etapa 1: Criar um servidor externo.

CREATE SERVER maxcompute_server
TYPE = 'ODPS'
SERVER_PROPERTIES = '{
    "endpoint":"http://service.cn-hangzhou-vpc.maxcompute.aliyun-inc.com/api",
    "accessid":"STS.****************",
    "accesskey":"yourAccessKeySecret"
}';

Etapa 2: Importar todas as tabelas de um projeto MaxCompute.

IMPORT FOREIGN SCHEMA my_project
FROM maxcompute_server
INTO my_adb_schema;

Esse comando cria uma tabela externa no AnalyticDB for MySQL para cada tabela existente em my_project.

Sintaxe

IMPORT FOREIGN SCHEMA odps_project
[LIMIT TO (table_name[, ...])]
FROM server_name
INTO adb_schema
[OPTIONS (
  if_table_exist 'error|ignore|update',
  if_type_unsupport 'error|ignore',
  table_prefix 'table_prefix',
  table_suffix 'table_suffix')]

Parâmetros

Parâmetro

Obrigatório

Descrição

odps_project

Sim

Nome do projeto MaxCompute.

table_name[,...]

Não

Tabelas do MaxCompute a serem importadas. Se omitido, todas as tabelas do projeto serão importadas.

server_name

Sim

Nome do servidor externo.

adb_schema

Sim

Nome do banco de dados no cluster AnalyticDB for MySQL.

if_table_exist

Não

Define como tratar conflitos de nomes com tabelas existentes. Padrão: error. Consulte as opções abaixo.

if_type_unsupport

Não

Define como tratar tipos de dados não suportados. Padrão: error. Consulte as opções abaixo.

table_prefix

Não

Prefixo a ser adicionado ao nome de cada tabela externa. Por padrão, as tabelas externas usam o mesmo nome da tabela correspondente no MaxCompute.

table_suffix

Não

Sufixo a ser adicionado ao nome de cada tabela externa. Por padrão, as tabelas externas usam o mesmo nome da tabela correspondente no MaxCompute.

Opções de if_table_exist

Valor

Comportamento

Quando usar

error (padrão)

Relata um erro e lista as tabelas conflitantes. Nenhuma tabela é criada.

Quando você precisa de controle rigoroso e deve revisar os conflitos antes de prosseguir.

ignore

Ignora tabelas com nomes conflitantes; cria todas as outras tabelas.

Ao executar scripts idempotentes — a importação pode ser reexecutada com segurança sem sobrescrever tabelas existentes.

update

Sobrescreve tabelas com nomes conflitantes; cria todas as outras tabelas.

Para sincronizar alterações de esquema do MaxCompute — as tabelas externas existentes são atualizadas para corresponder ao esquema mais recente do MaxCompute.

Opções de if_type_unsupport

Valor

Comportamento

error (padrão)

Relata um erro e lista os tipos de dados não suportados, bem como as tabelas que os contêm.

ignore

Ignora tabelas que contêm tipos de dados não suportados; cria todas as outras tabelas.

Exemplos

Importar todas as tabelas de um projeto

Importe todas as tabelas de my_project para o banco de dados my_adb_schema:

IMPORT FOREIGN SCHEMA my_project
FROM maxcompute_server
INTO my_adb_schema;

Importar tabelas selecionadas com opções de nomenclatura

Importe apenas as tabelas customer e order, adicionando o prefixo pre_ e o sufixo _suf aos nomes das tabelas externas. Sobrescreva quaisquer tabelas existentes com o mesmo nome e ignore tabelas com tipos de dados não suportados:

IMPORT FOREIGN SCHEMA my_project
LIMIT TO (customer, order)
FROM maxcompute_server
INTO my_adb_schema
OPTIONS (
    if_table_exist 'update',
    if_type_unsupport 'ignore',
    table_prefix 'pre_',
    table_suffix '_suf'
);

Isso cria tabelas externas chamadas pre_customer_suf e pre_order_suf no AnalyticDB for MySQL.

Gerenciar servidores externos

Um servidor externo armazena a configuração de conexão para um projeto MaxCompute. Crie um antes de executar IMPORT FOREIGN SCHEMA.

Criar um servidor externo

Sintaxe

CREATE SERVER <server_name>
TYPE = 'ODPS'
SERVER_PROPERTIES = '{
    "endpoint":"<endpoint>",
    "accessid":"<accesskey_id>",
    "accesskey":"<accesskey_secret>"
}'

Parâmetros

Parâmetro

Obrigatório

Descrição

server_name

Sim

Nome do servidor externo. Até 64 caracteres; pode conter letras, dígitos e sublinhados (_); deve começar com uma letra ou sublinhado.

TYPE='ODPS'

Sim

Tipo do servidor externo. Defina como ODPS.

endpoint

Sim

Endpoint da VPC do MaxCompute. Apenas endpoints de VPC são suportados. Para valores de endpoint, consulte Endpoints.

accessid

Sim

AccessKey ID de uma conta Alibaba Cloud ou de um usuário do Resource Access Management (RAM) com acesso ao MaxCompute. Para obter um AccessKey ID e um AccessKey secret, consulte Contas e permissões.

accesskey

Sim

AccessKey secret da conta Alibaba Cloud ou do usuário RAM que possui permissões para acessar o MaxCompute. Para obter um AccessKey ID e um AccessKey secret, consulte Contas e permissões.

Exemplo

CREATE SERVER maxcompute_server
TYPE = 'ODPS'
SERVER_PROPERTIES = '{
    "endpoint":"http://service.cn-hangzhou-vpc.maxcompute.aliyun-inc.com/api",
    "accessid":"STS.****************",
    "accesskey":"yourAccessKeySecret"
}';

Consultar servidores externos

Liste todos os servidores externos:

SHOW SERVER

Consulte um servidor externo específico pelo nome:

SHOW SERVER WHERE SERVER_NAME='<server_name>';

Exemplo:

SHOW SERVER WHERE SERVER_NAME='maxcompute_server';

Consulte servidores externos por tipo:

SHOW SERVER WHERE SERVER_TYPE='<server_type>';

Para servidores MaxCompute, defina server_type como ODPS:

SHOW SERVER WHERE SERVER_TYPE='ODPS';

Renomear um servidor externo

Sintaxe

ALTER SERVER <server_name> RENAME <new_server_name>

Parâmetros

Parâmetro

Obrigatório

Descrição

server_name

Sim

Nome atual do servidor externo.

new_server_name

Sim

Novo nome do servidor externo.

Exemplo

ALTER SERVER maxcompute_server RENAME mc_server;

Excluir um servidor externo

A exclusão de um servidor externo desconecta a ligação entre o AnalyticDB for MySQL e o MaxCompute estabelecida por meio desse servidor.

Sintaxe

DROP SERVER <server_name>

Parâmetros

Parâmetro

Obrigatório

Descrição

server_name

Sim

Nome do servidor externo a ser excluído.

Exemplo

DROP SERVER maxcompute_server;