Utilice Realtime Compute for Apache Flink para acceder a tablas Iceberg en Alibaba Cloud Data Lake Formation (DLF) mediante el registro de un catálogo DLF en la consola de desarrollo de Flink. Una vez configurado el catálogo, puede gestionar bases de datos y tablas Iceberg directamente con SQL.
Requisitos previos
Antes de empezar, asegúrese de contar con lo siguiente:
Un espacio de trabajo de Flink que ejecute Ververica Runtime (VVR) 11.1 o posterior
Un catálogo DLF en la misma región que su espacio de trabajo de Flink. Consulte Quick start with DLF
Limitaciones
|
Función |
Compatible |
Notas |
|
Crear catálogo Iceberg |
Sí |
Se requiere VVR 11.1+; solo se admiten catálogos DLF |
|
Crear base de datos |
Sí |
Se crea automáticamente una base de datos |
|
Crear tabla |
Sí |
— |
|
Modificar esquema de tabla |
Sí |
Cambiar nombre, agregar o eliminar columnas, modificar el orden de las columnas y los comentarios |
|
Eliminar tabla |
Sí |
— |
|
Eliminar catálogo |
Sí |
Solo quita el registro del catálogo en Flink; no afecta los datos en DLF |
Crear un catálogo DLF de Iceberg
Al crear un catálogo Iceberg en Flink, se registra una asignación hacia su catálogo DLF existente. Esta acción no crea ni modifica datos en DLF. Todas las tablas creadas en el catálogo DLF mediante Iceberg REST son tablas Iceberg.
Inicie sesión en la consola de Realtime Compute for Apache Flink.
En la columna Actions de su espacio de trabajo, haga clic en Console.
En el menú de navegación izquierdo, vaya a Development > Scripts y cree un nuevo script.
-
En el editor SQL, pegue la siguiente sentencia. En la esquina inferior derecha, haga clic en Environment y seleccione un clúster de sesiones que ejecute VVR 11.2.0 o posterior. Luego, ejecute la sentencia.
CREATE CATALOG `catalog_name` WITH ( 'type' = 'iceberg', 'catalog-type' = 'rest', 'token.provider' = 'dlf', 'uri' = 'http://cn-hangzhou-vpc.dlf.aliyuncs.com/iceberg', 'warehouse' = 'iceberg_test', 'rest.signing-region' = 'cn-hangzhou', 'io-impl' = 'org.apache.iceberg.rest.DlfFileIO' );Reemplace los valores de
uri,warehouseyrest.signing-regioncon los suyos propios. Consulte Endpoint REST de Iceberg para ver la lista de URI disponibles por región. La siguiente tabla describe cada opción.Opción
Obligatorio
Descripción
Ejemplo
typeSí
Establezca este valor en
iceberg.icebergcatalog-typeSí
Establezca este valor en
rest.resttoken.providerSí
Establezca este valor en
dlf. Configura la autenticación basada en DLF.dlfuriSí
El endpoint REST de Iceberg para su catálogo DLF. La URI varía según la región. Consulte Endpoint REST de Iceberg.
http://ap-southeast-1-vpc.dlf.aliyuncs.com/icebergwarehouseSí
El nombre de su catálogo DLF.
iceberg_testrest.signing-regionSí
El ID de la región donde se despliega DLF.
cn-hangzhouio-implSí
Establezca este valor en
org.apache.iceberg.rest.DlfFileIO.org.apache.iceberg.rest.DlfFileIO
Consultar o eliminar un catálogo
En la consola de Realtime Compute for Apache Flink, haga clic en Console en la columna Actions de su espacio de trabajo.
-
Vaya a la página Data Management y abra Catalog List.
Para consultar las bases de datos y tablas de un catálogo, haga clic en View junto al nombre del catálogo.
-
Para eliminar un catálogo, haga clic en Delete en la columna Actions.
ImportanteLa eliminación de un catálogo solo quita su registro de Data Management en su proyecto de Flink. Los archivos de datos subyacentes de Iceberg en DLF no se ven afectados. Para reutilizar las tablas, registre el catálogo nuevamente.
Como alternativa, ejecute la siguiente sentencia en la página Data Query:
DROP CATALOG <catalog_name>;
Gestionar bases de datos Iceberg
Ejecute las siguientes sentencias en la página Data Query: seleccione el código y haga clic en Run.
Crear una base de datos
Al crear un catálogo Iceberg, se genera automáticamente una base de datos llamada default. Para agregar otra base de datos:
-- Replace my-catalog with your catalog name.
USE CATALOG `my-catalog`;
-- Replace my_db with the database name you want to create.
CREATE DATABASE `my_db`;
Eliminar una base de datos
No es posible eliminar la base de datos default de un catálogo DLF.
-- Replace my-catalog with your catalog name.
USE CATALOG `my-catalog`;
-- Delete a database only if it is empty.
DROP DATABASE `my_db`;
-- Delete a database and all tables inside it.
DROP DATABASE `my_db` CASCADE;
Gestionar tablas Iceberg
Una vez registrado un catálogo Iceberg, puede hacer referencia a sus tablas en un trabajo sin declarar lenguaje de definición de datos (DDL). Utilice el nombre completo de tres partes <catalog>.<database>.<table>, o bien ejecute primero USE CATALOG y USE <database>, y luego haga referencia a la tabla solo por su nombre.