O AnalyticDB for MySQL permite criar tabelas externas do MaxCompute em lote com a instrução IMPORT FOREIGN SCHEMA.
Pré-requisitos
-
O cluster do AnalyticDB for MySQL deve estar na versão 3.2.2.0 ou superior.
NotaPara visualizar e atualizar a versão secundária, acesse a seção Configuration Information na página Cluster Information no console do AnalyticDB for MySQL.
-
A interface de rede elástica (ENI) deve estar ativada no cluster do AnalyticDB for MySQL.
ImportanteFaça login no console do AnalyticDB for MySQL. Na página Cluster Information, ative o switch de rede ENI na seção Network Information.
Ativar ou desativar a rede ENI interrompe as conexões com o banco de dados por cerca de dois minutos. Durante esse período, as operações de leitura e gravação ficam indisponíveis. Avalie o possível impacto antes de prosseguir.
O projeto do MaxCompute e o cluster do AnalyticDB for MySQL devem estar na mesma região.
-
O bloco CIDR da VPC do cluster do AnalyticDB for MySQL deve constar na lista de permissões de endereços IP do projeto do MaxCompute.
NotaFaça login no console do AnalyticDB for MySQL e localize o ID da VPC na página Cluster Information. Em seguida, faça login no console da VPC e encontre o bloco CIDR na página VPC com base no ID da VPC. Para mais informações sobre como configurar uma lista de permissões de endereços IP para o MaxCompute, consulte Gerenciar listas de permissões de endereços IP.
Crie um servidor externo no AnalyticDB for MySQL. Para obter detalhes sobre a sintaxe, consulte Gerenciar servidores externos.
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 |
|
|
Sim |
Nome do projeto do MaxCompute. |
|
|
Não |
Nomes das tabelas do MaxCompute a importar. Se você não especificar nomes de tabelas, o sistema importa todas as tabelas do projeto do MaxCompute especificado como tabelas externas para o AnalyticDB for MySQL. |
|
|
Sim |
Nome do servidor externo. Para obter detalhes sobre a sintaxe, consulte Gerenciar servidores externos. |
|
|
Sim |
Nome do banco de dados de destino no AnalyticDB for MySQL. |
|
|
Não |
Política para tratar conflitos de nomenclatura caso já exista uma tabela com o mesmo nome no banco de dados de destino do AnalyticDB for MySQL. Valores válidos:
|
|
|
Não |
Política para lidar com tipos de dados não suportados pelo AnalyticDB for MySQL. Valores válidos:
|
|
|
Não |
Prefixo a adicionar ao nome de cada tabela externa importada. Por padrão, as tabelas externas no AnalyticDB for MySQL recebem os mesmos nomes das tabelas de source no MaxCompute. |
|
|
Não |
Sufixo a adicionar ao nome de cada tabela externa importada. Por padrão, as tabelas externas no AnalyticDB for MySQL recebem os mesmos nomes das tabelas de source no MaxCompute. |
Exemplo
No AnalyticDB for MySQL, crie as tabelas externas do MaxCompute pre_customer_suf e pre_order_suf.
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'
);
Gerenciar servidores externos
Criar 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 |
|
|
Sim |
Nome do servidor externo. O nome deve começar com uma letra ou sublinhado (_), conter apenas letras, dígitos e sublinhados, e ter no máximo 64 caracteres. |
|
|
Sim |
Tipo do servidor externo. Defina o valor como ODPS. |
|
|
Sim |
Endpoint do MaxCompute. Nota
O acesso ao MaxCompute só é possível via endpoint de VPC. Para mais informações sobre endpoints do MaxCompute, consulte Endpoints. |
|
|
Sim |
AccessKey ID de uma conta Alibaba Cloud ou de um usuário do MaxCompute com permissão para acessar o MaxCompute. Para obter um AccessKey ID e um AccessKey secret, consulte Contas e permissões. |
|
|
Sim |
AccessKey secret de uma conta Alibaba Cloud ou de um usuário do MaxCompute com permissão 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
Consultar todos os servidores externos
SHOW SERVER
Consultar um servidor externo específico
Sintaxe
SHOW SERVER WHERE SERVER_NAME='<server_name>'
Parâmetros
|
Parâmetro |
Obrigatório |
Descrição |
|
|
Sim |
Nome do servidor externo. |
Exemplo
SHOW SERVER WHERE SERVER_NAME='maxcompute_server';
Consultar servidores externos por tipo
Sintaxe
SHOW SERVER WHERE SERVER_TYPE='<server_type>'
Parâmetros
|
Parâmetro |
Obrigatório |
Descrição |
|
|
Sim |
Tipo do servidor externo. Para o MaxCompute, o tipo é ODPS. |
Exemplo
SHOW SERVER WHERE SERVER_TYPE='ODPS';
Renomear servidor externo
Sintaxe
ALTER SERVER <server_name> RENAME <new_server_name>
Parâmetros
|
Parâmetro |
Obrigatório |
Descrição |
|
|
Sim |
Nome original do servidor externo. |
|
|
Sim |
Novo nome do servidor externo. |
Exemplo
ALTER SERVER maxcompute_server RENAME mc_server;
Excluir servidor externo
A exclusão de um servidor externo encerra a conexão entre o AnalyticDB for MySQL e o MaxCompute.
Sintaxe
DROP SERVER <server_name>
Parâmetros
|
Parâmetro |
Obrigatório |
Descrição |
|
|
Sim |
Nome do servidor externo. |
Exemplo
DROP SERVER maxcompute_server;