Todos os produtos
Search
Central de documentação

Hologres:CREATE FOREIGN TABLE

Última atualização: Jun 28, 2026

O comando CREATE FOREIGN TABLE mapeia uma tabela externa do Hologres para uma tabela em uma fonte de dados conectada, como MaxCompute, Object Storage Service (OSS), Data Lake Formation (DLF) ou outra instância do Hologres. Assim, é possível consultar esses dados com SQL padrão sem importá-los previamente.

O servidor externo odps_server já vem pré-configurado no Hologres. Não é necessário criá-lo.

Sintaxe

CREATE FOREIGN TABLE [ IF NOT EXISTS ] table_name (
  { column_name data_type }
  [, ... ]
)
SERVER odps_server
OPTIONS (
  project_name '<odps_project_name>[#<odps_schema_name>]',
  table_name '<odps_table_name>'
)

Parâmetros

Parâmetros obrigatórios

Parâmetro

Descrição

table_name

Nome da tabela externa a ser criada no Hologres.

SERVER odps_server

Servidor externo que conecta ao MaxCompute. O odps_server é pré-configurado no Hologres; não substitua este valor. Para detalhes sobre a implementação subjacente, consulte Postgres FDW.

OPTIONS

Pares chave-valor que identificam a tabela de origem no MaxCompute. Consulte a seção OPTIONS abaixo para mais detalhes.

OPTIONS

O formato de project_name varia conforme o modelo do projeto no MaxCompute: duas ou três camadas.

Modelo de duas camadas (projeto → tabela):

Chave

Valor

project_name

Nome do projeto no MaxCompute. Exemplo: 'my_project'

table_name

Nome da tabela do MaxCompute a ser consultada. Exemplo: 'my_table'

Modelo de três camadas (projeto → schema → tabela):

Chave

Valor

project_name

Nome do projeto e do schema no MaxCompute, unidos por #. Exemplo: 'my_project#my_schema'

table_name

Nome da tabela do MaxCompute a ser consultada. Exemplo: 'my_table'

Nota

Os tipos de dados de todas as colunas na tabela externa do Hologres devem corresponder exatamente aos tipos das colunas equivalentes na tabela do MaxCompute.

Observações de uso

  • O modelo de três camadas exige o Hologres V1.3 ou superior. Se a versão da sua instância for anterior à V1.3, atualize-a antes de criar tabelas externas para projetos desse modelo. Caso a atualização falhe, consulte Erros comuns durante a preparação para atualização ou entre em contato com o suporte pelo grupo do DingTalk do Hologres.

  • O uso da sintaxe do modelo de duas camadas em um projeto de três camadas retorna o seguinte erro: failed to import foreign schema:Table not found - table_xxx

  • Se a tabela do MaxCompute tiver uma coluna com tipo de dados não suportado, ainda será possível consultar as demais colunas compatíveis, desde que você não selecione a coluna incompatível.

  • O tipo DATETIME usa o fuso horário UTC+8. O intervalo de valores vai de 1º de janeiro de 0000 a 31 de dezembro de 9999, com precisão de milissegundos.

  • O tipo TIMESTAMPTZ inclui o deslocamento do fuso horário. Seu intervalo abrange de 4713 a.C. a 294276 d.C., com precisão de microssegundos.

Exemplos

Consultar dados diretamente de uma tabela externa

Crie uma tabela externa e consulte dados do MaxCompute sem importá-los.

Modelo de duas camadas:

CREATE FOREIGN TABLE src_pt (
  id text,
  pt text
)
SERVER odps_server
OPTIONS (project_name '<odps_project>', table_name '<odps_table>');

SELECT * FROM src_pt;

Modelo de três camadas:

CREATE FOREIGN TABLE src_pt (
  id text,
  pt text
)
SERVER odps_server
OPTIONS (project_name '<odps_project>#<odps_schema>', table_name '<odps_table>');

SELECT * FROM src_pt;

Para mais informações, consulte Acelerar consultas em dados do MaxCompute com tabelas externas.

Importar dados e depois consultar

Importe os dados do MaxCompute para uma tabela interna do Hologres e, em seguida, consulte-os.

-- Step 1: Create a foreign table pointing to the MaxCompute source
CREATE FOREIGN TABLE src_pt_odps (
  id text,
  pt text
)
SERVER odps_server
OPTIONS (project_name '<odps_project>', table_name '<odps_table>');

-- Step 2: Create an internal Hologres table to hold the imported data
BEGIN;
CREATE TABLE src_pt (
  id text,
  pt text
);
COMMIT;

-- Step 3: Import data from MaxCompute into the internal table
INSERT INTO src_pt SELECT * FROM src_pt_odps;

Para mais informações, consulte Importar dados do MaxCompute usando SQL.

Mapeamento de tipos de dados

Para ver o mapeamento completo entre os tipos de dados do MaxCompute e do Hologres, consulte Mapeamento de tipos de dados entre MaxCompute e Hologres.

Tópicos relacionados