A instrução IMPORT FOREIGN SCHEMA cria tabelas externas em lote ao mapear automaticamente os schemas de tabelas de uma fonte de dados remota para o Hologres. Use esta instrução em vez de criar cada tabela externa manualmente.
O recurso oferece suporte a duas fontes de dados:
Tabelas do MaxCompute: importe tabelas externas de 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 |
|
|
Nome do schema remoto de origem da importação. Para o modelo de duas camadas do MaxCompute: nome do projeto. Para o modelo de três camadas do MaxCompute: |
|
|
Nomes das tabelas a importar. Use com |
|
|
Nome do servidor externo. Para MaxCompute: use |
|
|
Nome do schema do Hologres onde as tabelas externas serão criadas — por exemplo, |
|
|
Controla o comportamento durante a importação. Consulte a seção Opções abaixo. |
Opções
|
Opção |
Valores |
Descrição |
|
|
|
Ação quando já existe uma tabela externa com o mesmo nome. |
|
|
|
Ação quando uma tabela contém tipos de dados sem suporte no Hologres. |
|
|
Qualquer string |
Prefixo adicionado aos nomes das tabelas externas criadas no Hologres. Requer Hologres V1.1.26 ou posterior. |
|
|
Qualquer string |
Sufixo adicionado aos nomes das tabelas externas criadas no Hologres. Requer Hologres V1.1.26 ou posterior. |
Observações de uso
Sempre inclua a cláusula
LIMIT TOpara definir quais tabelas importar. Se omitida, o Hologres cria tabelas externas para todas as tabelas do projeto MaxCompute de destino.O Hologres oferece suporte apenas à criação de tabelas externas do MaxCompute. Os nomes das tabelas externas devem corresponder exatamente aos nomes das tabelas no MaxCompute.
As opções
prefixesuffixexigem Hologres V1.1.26 ou posterior. Para versões anteriores, consulte Erros comuns ao preparar uma atualização ou entre em contato com o suporte via suporte online.-
O modelo de três camadas do MaxCompute requer Hologres V1.3 ou posterior. O uso de sintaxe de duas camadas em um modelo de três camadas resulta em erro semelhante a:
failed to import foreign schema:Table not found - table_xxxPara versões anteriores, consulte Erros comuns ao preparar uma atualização.
Para mais detalhes sobre o modelo de três camadas do MaxCompute, consulte Operações de schema.
Exemplos
Modelo de duas camadas do MaxCompute
Os exemplos a seguir importam tabelas externas do projeto MaxCompute public_data para o Hologres.
Importar uma única tabela e atualizar caso já exista:
IMPORT FOREIGN SCHEMA public_data LIMIT TO
(customer)
FROM SERVER odps_server INTO public
OPTIONS (if_table_exist 'update');
Importar 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');
Importar para um schema 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;
Gerar 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');
Ignorar tabelas que já existem:
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
No modelo de três camadas, há uma camada adicional de schema entre o projeto e a tabela. Especifique remote_schema como odps_project_name#odps_schema_name.
O exemplo abaixo importa a tabela odps_region_10g do schema tpch_10g no projeto MaxCompute odps_hologres:
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.
Este exemplo importa a tabela customer do metadatabase DLF github_events. Para etapas de configuração, consulte Acessar um catálogo Paimon baseado em 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 — compreenda os princípios de foreign-data wrapper utilizados pelo Hologres
Acessar um catálogo Paimon baseado em DLF — configure o servidor externo DLF antes de importar tabelas DLF
Operações de schema — entenda o funcionamento do modelo de três camadas do MaxCompute