CREATE EXTERNAL TABLE crea una tabla externa en un esquema externo cuyo origen es Data Lake Formation 2.0 (DLF 2.0). Solo se admiten tablas con formato Apache Paimon.
Limitaciones
Requiere Hologres V3.0 o versiones posteriores.
Las tablas externas deben residir en un esquema externo cuyo origen sea DLF 2.0.
Solo es compatible el formato de tabla Apache Paimon.
Únicamente son compatibles los formatos de archivo ORC y Parquet.
Sintaxis
CREATE EXTERNAL TABLE [IF NOT EXISTS] <ext_db_name>.<ext_schema_name>.<ext_table_name>
(
[{
<col_name> <col_type> [<col_constraints> [, ...]] |
<table_constraints> [, ...]
}]
)
[LOGICAL PARTITION BY LIST(<col_name> [, ...])]
[
WITH
(
"<property>" = '<value>' [, ...]
)
];
Parámetros de la cláusula WITH
|
Parámetro |
Descripción |
Ejemplo |
|
|
Formato de la tabla externa. Solo es compatible |
|
|
|
Formato del archivo de la tabla externa. Valores válidos: |
|
|
|
Número de buckets. Los datos de una tabla sin particiones, o los de cada partición de una tabla particionada, se distribuyen entre los buckets para habilitar lecturas y escrituras simultáneas. Para más detalles, consulte Data Distribution. |
|
|
|
Columna que se utiliza para distribuir los datos en los buckets. |
|
|
|
Método para generar registros de cambios en la tabla. Estos registros capturan de forma completa las operaciones INSERT, DELETE y UPDATE, de manera similar a un registro binario en una base de datos, y permiten el consumo por streaming en sistemas descendentes. Para más detalles, consulte Changelog Producer. |
|
Ejemplos
Crear una tabla particionada en DLF 2.0
El ejemplo a continuación crea una tabla de solo anexión (append-only) de Apache Paimon con una partición lógica en created_at.
CREATE EXTERNAL TABLE ext_db_dlf.ext_schema_dlf.ext_par_table_dlf(
id TEXT,
created_at BIGINT, -- logical partition key
type TEXT,
actor_id TEXT,
actor_login TEXT,
repo_id TEXT,
repo_name TEXT,
org TEXT,
org_login TEXT
)
LOGICAL PARTITION BY LIST(created_at)
WITH (
"file_format" = 'orc',
"bucket" = 6,
"bucket-key" = 'id' -- distribute data by id across 6 buckets
);
Crear una tabla sin particiones en DLF 2.0
El ejemplo a continuación crea una tabla de clave primaria de Apache Paimon. El parámetro changelog-producer especifica el método para generar registros de cambios y permitir el consumo por streaming en sistemas descendentes.
CREATE EXTERNAL TABLE openlake_win.github_events.gh_event_ods(
id TEXT,
created_at BIGINT,
type TEXT,
actor_id TEXT,
actor_login TEXT,
repo_id TEXT,
repo_name TEXT,
org TEXT,
org_login TEXT,
PRIMARY KEY(id)
) WITH (
"changelog-producer" = 'input', -- generate changelogs for streaming consumers
"bucket" = 6,
"bucket-key" = 'id'
);
Más operaciones
Consultar la instrucción de creación de la tabla
SELECT * FROM hologres.hg_dump_script_external('<ext_db_name>.<ext_schema_name>.<ext_table_name>');
Consultar las propiedades de columnas y particiones
SELECT * FROM hologres.hg_external_columns('<ext_db_name>', '<ext_schema_name>', '<ext_table_name>');
Consultar todas las tablas de un esquema externo
SELECT * FROM hologres.hg_external_tables('<ext_db_name>', '<ext_schema_name>');
Actualizar los metadatos de una tabla externa
REFRESH CACHE FOR External TABLE <ext_db_name>.<ext_schema_name>.<ext_table_name> WITH( cache_level = 'metadata');