Todos los productos
Search
Centro de documentos

Hologres:CREATE FOREIGN TABLE

Última actualización: Sep 05, 2026

CREATE FOREIGN TABLE asigna una tabla externa en Hologres a una tabla en un origen de datos conectado, como MaxCompute, Object Storage Service (OSS), Data Lake Formation (DLF) u otra instancia de Hologres. Esto permite consultar dichos datos mediante SQL estándar sin necesidad de importarlos previamente.

El servidor externo odps_server viene preconfigurado en Hologres, por lo que no es necesario crearlo.

Sintaxis

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 obligatorios

Parámetro

Descripción

table_name

Nombre de la tabla externa que se creará en Hologres.

SERVER odps_server

Servidor externo que establece la conexión con MaxCompute. odps_server está preconfigurado en Hologres; no reemplace este valor. Para más detalles sobre la implementación subyacente, consulte Postgres FDW.

OPTIONS

Pares clave-valor que identifican la tabla de origen en MaxCompute. Consulte la sección OPTIONS a continuación para obtener más información.

OPTIONS

El formato de project_name depende de si el proyecto de MaxCompute utiliza el modelo de dos capas o el de tres capas.

Modelo de dos capas (proyecto → tabla):

Clave

Valor

project_name

Nombre del proyecto de MaxCompute. Ejemplo: 'my_project'

table_name

Nombre de la tabla de MaxCompute que se consultará. Ejemplo: 'my_table'

Modelo de tres capas (proyecto → esquema → tabla):

Clave

Valor

project_name

Nombre del proyecto y del esquema de MaxCompute, unidos mediante #. Ejemplo: 'my_project#my_schema'

table_name

Nombre de la tabla de MaxCompute que se consultará. Ejemplo: 'my_table'

Nota

Los tipos de datos de todas las columnas en la tabla externa de Hologres deben coincidir con los tipos de datos de las columnas correspondientes en la tabla de MaxCompute.

Notas de uso

  • El modelo de tres capas requiere Hologres V1.3 o posterior. Si la versión de su instancia es anterior a la V1.3, actualícela antes de crear tablas externas para proyectos con modelo de tres capas. Si la actualización presenta errores, consulte Common errors when you prepare for an upgrade o póngase en contacto con el equipo de soporte a través del grupo de DingTalk de Hologres.

  • Si se utiliza la sintaxis del modelo de dos capas en un proyecto con modelo de tres capas, se devuelve el siguiente error: failed to import foreign schema:Table not found - table_xxx

  • Si la tabla de MaxCompute contiene una columna con un tipo de dato no compatible, aún puede consultar las columnas restantes que sí son compatibles, siempre que no seleccione la columna no admitida.

  • DATETIME utiliza la zona horaria UTC+8. El rango de valores abarca desde el 1 de enero del año 0000 hasta el 31 de diciembre de 9999, con precisión de milisegundos.

  • TIMESTAMPTZ incluye un desplazamiento de zona horaria. El rango de valores va desde 4713 a.C. hasta 294276 d.C., con precisión de microsegundos.

Ejemplos

Consulta directa de datos desde una tabla externa

Cree una tabla externa y consulte datos de MaxCompute sin importarlos.

Modelo de dos capas:

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 tres capas:

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 obtener más información, consulte Accelerate queries on MaxCompute data based on foreign tables.

Importación y consulta posterior de datos

Importe primero los datos de MaxCompute a una tabla interna de Hologres y realice la consulta desde allí.

-- 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 obtener más información, consulte Import data from MaxCompute using SQL.

Asignación de tipos de datos

Para consultar la asignación completa entre los tipos de datos de MaxCompute y Hologres, consulte Data type mapping between MaxCompute and Hologres.

Temas relacionados