IMPORT FOREIGN SCHEMA cria tabelas externas em lote e mapeia automaticamente os esquemas de tabelas de uma fonte de dados remota para o Hologres. Use esta instrução em vez de criar cada tabela externa manualmente.
O Hologres oferece suporte a duas fontes de dados:
Tabelas do MaxCompute: importe tabelas externas dos modelos de duas ou três camadas do MaxCompute.
Tabelas Paimon no Data Lake Formation (DLF): importe tabelas externas de tabelas Paimon no DLF.
Sintaxe
IMPORT FOREIGN SCHEMA remote_schema
[ { LIMIT TO | EXCEPT } ( table_name [, ...] ) ]
FROM SERVER server_name
INTO local_schema
[ OPTIONS ( option 'value' [, ... ] ) ]
Parâmetros
|
Parâmetro |
Descrição |
|
|
O nome do esquema remoto a importar. Para o modelo de duas camadas do MaxCompute: o nome do projeto. Para o modelo de três camadas do MaxCompute: |
|
|
Os nomes das tabelas a importar. Use com |
|
|
O nome do servidor externo. Para o MaxCompute: use |
|
|
O nome do esquema do Hologres onde as tabelas externas são criadas, por exemplo, |
|
|
Controla o comportamento durante a importação. Consulte Opções abaixo. |
Opções
|
Opção |
Valores |
Descrição |
|
|
|
Ação executada quando já existe uma tabela externa com o mesmo nome. |
|
|
|
Ação executada quando uma tabela contém tipos de dados não suportados pelo Hologres. |
|
|
Qualquer string |
Prefixo adicionado aos nomes das tabelas externas criadas no Hologres. Requer o Hologres V1.1.26 ou posterior. |
|
|
Qualquer string |
Sufixo adicionado aos nomes das tabelas externas criadas no Hologres. Requer o Hologres V1.1.26 ou posterior. |
Notas de uso
Inclua sempre a cláusula
LIMIT TOpara especificar quais tabelas importar. Se omitida, o Hologres cria tabelas externas para todas as tabelas do projeto do MaxCompute de destino.O Hologres suporta apenas a criação de tabelas externas do MaxCompute. Os nomes das tabelas externas devem corresponder aos nomes das tabelas equivalentes no MaxCompute.
As opções
prefixesuffixexigem a versão V1.1.26 ou posterior do Hologres. Para versões anteriores, consulte Common errors when preparing for an upgrade ou entre em contato com o suporte online.-
O modelo de três camadas do MaxCompute exige a versão V1.3 ou posterior do Hologres. Usar a sintaxe de duas camadas em um modelo de três camadas retorna um erro semelhante a:
failed to import foreign schema:Table not found - table_xxxPara versões anteriores, consulte Common errors when preparing for an upgrade.
Para obter informações gerais sobre o modelo de três camadas do MaxCompute, consulte Schema operations.
Exemplos
Modelo de duas camadas do MaxCompute
Os exemplos a seguir importam tabelas externas do projeto public_data do MaxCompute para o Hologres.
Importe uma tabela e atualize-a se já existir:
IMPORT FOREIGN SCHEMA public_data LIMIT TO
(customer)
FROM SERVER odps_server INTO public
OPTIONS (if_table_exist 'update');
Importe várias tabelas em lote:
IMPORT FOREIGN SCHEMA public_data LIMIT TO (
customer,
customer_address,
customer_demographics,
inventory,
item,
date_dim,
warehouse
)
FROM SERVER odps_server INTO public
OPTIONS (if_table_exist 'update');
Importe para um esquema personalizado:
CREATE SCHEMA testdemo;
IMPORT FOREIGN SCHEMA public_data LIMIT TO (
customer,
customer_address,
customer_demographics,
inventory,
item,
date_dim,
warehouse
)
FROM SERVER odps_server INTO testdemo
OPTIONS (if_table_exist 'update');
SET search_path TO testdemo;
Retorne um erro se a tabela já existir:
IMPORT FOREIGN SCHEMA public_data LIMIT TO (
customer,
customer_address
)
FROM SERVER odps_server INTO public
OPTIONS (if_table_exist 'error');
Ignore tabelas que já existam:
IMPORT FOREIGN SCHEMA public_data LIMIT TO (
customer,
customer_address
)
FROM SERVER odps_server INTO public
OPTIONS (if_table_exist 'ignore');
Modelo de três camadas do MaxCompute
O modelo de três camadas adiciona uma camada de esquema entre o projeto e a tabela. Especifique remote_schema como odps_project_name#odps_schema_name.
O exemplo a seguir importa a tabela odps_region_10g do esquema tpch_10g no projeto odps_hologres do MaxCompute:
IMPORT FOREIGN SCHEMA "odps_hologres#tpch_10g" LIMIT TO (
odps_region_10g
)
FROM SERVER odps_server INTO public
OPTIONS (if_table_exist 'error', if_unsupported_type 'error');
Fonte de dados DLF
Para uma fonte de dados DLF, especifique o nome do metadatabase como remote_schema e o servidor externo do seu catálogo Paimon como server_name.
O exemplo a seguir importa a tabela customer do metadatabase github_events do DLF. Para as etapas de configuração, consulte Access a Paimon catalog based on DLF.
IMPORT FOREIGN SCHEMA github_events LIMIT TO (
customer
)
FROM SERVER paimon_server INTO public
OPTIONS (if_table_exist 'update');
Próximos passos
Postgres FDW — entenda os princípios do foreign-data wrapper usados pelo Hologres
Access a Paimon catalog based on DLF — configure o servidor externo do DLF antes de importar tabelas DLF
Schema operations — saiba como funciona o modelo de três camadas do MaxCompute