Realtime Compute for Apache Flink es un servicio de cómputo en tiempo real que ofrece Alibaba Cloud. Se trata de un servicio totalmente administrado y desarrollado con base en Apache Flink. Hologres es altamente compatible con Flink totalmente administrado. En este entorno, puede usar tablas de origen, tablas de dimensiones, tablas de resultados y catálogos de Hologres. Esto le permite construir un almacén de datos en tiempo real integral mediante Flink totalmente administrado. Este tema describe cómo usar instancias de Hologres como servicios de almacenamiento ascendentes y descendentes para guardar datos en Flink totalmente administrado.
Tablas de origen, tablas de dimensiones y tablas de resultados de Hologres
Flink totalmente administrado es compatible con las tablas de origen, las tablas de dimensiones y las tablas de resultados de Hologres. Para obtener más información, consulte Hologres SQL connector.
Consumo de registros binarios en tiempo real
Realtime Compute for Apache Flink consume datos de registros binarios en tiempo real mediante el conector de Hologres. Las versiones de Realtime Compute for Apache Flink que usan Ververica Runtime (VVR) 6.0.3 o posteriores admiten tablas de origen de streaming en modo Java Database Connectivity (JDBC). En el modo JDBC, Realtime Compute for Apache Flink admite más tipos de datos que en el modo HoloHub, además de permitir cuentas personalizadas. Para obtener más información, consulte Consume binlog data with Flink.
Catálogo de Hologres
Realtime Compute for Apache Flink es compatible con los catálogos de Hologres. Puede leer metadatos de Hologres directamente desde la consola de desarrollo de Realtime Compute for Apache Flink, sin necesidad de registrar tablas de Hologres. Esto mejora la eficiencia del desarrollo de despliegues y garantiza la precisión del esquema de las tablas. Para obtener más información, consulte Manage Hologres catalogs.
Realtime Compute for Apache Flink admite la evolución de esquemas y la sincronización de bases de datos con base en los catálogos de Hologres. Para obtener más información, consulte CREATE TABLE AS (CTAS) statement (Retiring) y CREATE DATABASE AS (CDAS) statement (Retiring).
Conector DataStream de Hologres
Si usa conectores DataStream de Hologres para leer o escribir datos en Hologres, debe utilizar estos conectores para vincular Hologres con Realtime Compute for Apache Flink. Para obtener más información, consulte Hologres DataStream connector.
Asignaciones entre tipos de datos
Para obtener más información sobre las asignaciones entre los tipos de datos de Realtime Compute for Apache Flink y Hologres, consulte Data types overview.
Cuando despliega borradores SQL en Realtime Compute for Apache Flink, debe definir los tipos de datos según los que admite este servicio. Esta regla aplica sin importar si utiliza tablas de origen, tablas de dimensiones o tablas de resultados de Hologres en los despliegues SQL. Los tipos de datos compatibles con Hologres solo se pueden definir al crear una tabla interna en Hologres.
-
Si desea usar Realtime Compute for Apache Flink para escribir datos JSON en Hologres, defina el tipo de las columnas de la tabla de origen y de la tabla de resultados como VARCHAR en el despliegue SQL. Además, establezca el tipo de las columnas de la tabla interna de Hologres como JSONB.
-
Tabla interna de Hologres: establezca el tipo de datos de message como JSONB.
BEGIN ; DROP TABLE IF EXISTS holo_internal_table; CREATE TABLE IF NOT EXISTS holo_internal_table ( id BIGINT NOT NULL, message JSONB NOT NULL ); CALL set_table_property('holo_internal_table', 'distribution_key', 'id'); COMMIT ; -
Despliegue de Flink: establezca el tipo de datos de message en la tabla de origen y en la tabla de resultados como VARCHAR.
CREATE TEMPORARY TABLE randomSource ( id BIGINT, message VARCHAR ) WITH ('connector' = 'datagen'); CREATE TEMPORARY TABLE sink_holo ( id BIGINT, message VARCHAR ) WITH ( 'connector' = 'hologres', 'endpoint' = '', 'username' = '', 'password' = '', 'dbname' = '', 'tablename' = 'holo_internal_table' ); INSERT INTO sink_holo SELECT 1, '{"k":"v"}' FROM randomSource;
-
Notas de la versión del conector
Para obtener más información sobre las notas de la versión del conector, consulte Hologres connector release notes.
Preguntas frecuentes
Para obtener más información sobre los problemas comunes y sus soluciones cuando usa Realtime Compute for Apache Flink, consulte Troubleshoot Blink and Flink issues.