Este tema describe cómo usar el conector de Hologres para sincronizar datos en un despliegue de ingesta de datos YAML.
Contexto
Hologres es un motor de almacén de datos en tiempo real que admite escrituras, actualizaciones y análisis a gran escala en tiempo real. Hologres es compatible con el protocolo PostgreSQL y admite SQL estándar. Admite el procesamiento analítico en línea (OLAP) y consultas ad hoc sobre petabytes de datos, además de servir datos con alta concurrencia y baja latencia. Hologres se integra con MaxCompute, Realtime Compute for Apache Flink y DataWorks para ofrecer una solución completa de almacén de datos en línea y fuera de línea. A continuación se describen las capacidades del conector YAML de Hologres.
|
Elemento |
Descripción |
|
Tipo de tabla |
Sink |
|
Modo de ejecución |
Modos streaming y por lotes |
|
Formato de datos |
N/A |
|
Métrica |
Nota
Para más detalles, consulte Metrics. |
|
Tipo de API |
YAML |
|
Actualizaciones o eliminaciones en una tabla sink |
Compatible |
Funciones
|
Función |
Descripción |
|
Sincroniza datos completos e incrementales en tiempo real desde una base de datos completa o varias tablas hacia las tablas sink correspondientes. |
|
|
Sincroniza los cambios de esquema (como agregar, eliminar o renombrar columnas) desde las tablas de origen hacia las tablas sink correspondientes en tiempo real. |
|
|
Utilice una expresión regular para coincidir por nombre con las tablas de origen en varias bases de datos fragmentadas. Los datos de estas tablas se combinan y se sincronizan con las tablas sink descendentes que tengan el mismo nombre. |
|
|
Escribe los datos de una tabla ascendente en una tabla particionada de Hologres. |
|
|
Asigna los tipos de datos ascendentes a tipos de datos más amplios de Hologres mediante varias estrategias. |
Sintaxis
sink:
type: hologres
name: Hologres Sink
endpoint: <yourEndpoint>
dbname: <yourDbname>
username: ${secret_values.ak_id}
password: ${secret_values.ak_secret}
Parámetros
|
Parámetro |
Descripción |
Tipo |
Obligatorio |
Predeterminado |
Observaciones |
|
type |
El tipo de sink. |
String |
Sí |
Ninguna |
El valor debe ser |
|
name |
El nombre del sink. |
String |
No |
Ninguna |
N/A. |
|
dbname |
El nombre de la base de datos. |
String |
Sí |
Ninguna |
N/A. |
|
username |
El nombre de usuario para acceder a la base de datos. Use el AccessKey ID de su cuenta de Alibaba Cloud. |
String |
Sí |
Ninguna |
Para más información, consulte How do I view the AccessKey ID and AccessKey secret? Importante
Para evitar exponer su AccessKey, especifique sus valores mediante variables. Para más información, consulte Project variables. |
|
password |
La contraseña para acceder a la base de datos. Use el AccessKey Secret de su cuenta de Alibaba Cloud. |
String |
Sí |
Ninguna |
|
|
endpoint |
El endpoint del servicio Hologres. |
String |
Sí |
Ninguna |
Para más información, consulte Access endpoints. |
|
jdbcRetryCount |
El número de reintentos para las operaciones de escritura y consulta cuando falla una conexión. |
Integer |
No |
10 |
N/A. |
|
jdbcRetrySleepInitMs |
El tiempo de espera fijo para cada intento de reintento. |
Long |
No |
1000 |
Unidad: milisegundos. El tiempo de espera real de un reintento se calcula con la siguiente fórmula: |
|
jdbcRetrySleepStepMs |
El tiempo de espera incremental para cada intento de reintento. |
Long |
No |
5000 |
Unidad: milisegundos. El tiempo de espera real de un reintento se calcula con la siguiente fórmula: |
|
jdbcConnectionMaxIdleMs |
El tiempo máximo de inactividad de una conexión JDBC. |
Long |
No |
60000 |
Unidad: milisegundos. Si una conexión permanece inactiva más tiempo que esta duración, se desconecta y se libera. |
|
jdbcMetaCacheTTL |
El tiempo de expiración de la información de TableSchema almacenada en la caché local. |
Long |
No |
60000 |
Unidad: milisegundos. |
|
jdbcMetaAutoRefreshFactor |
Un factor que determina cuándo se activa la actualización de la caché. El sistema actualiza automáticamente la caché si su tiempo de vida restante es menor que el tiempo de activación. |
Integer |
No |
4 |
El tiempo de vida restante de la caché se calcula de la siguiente manera: Tiempo de vida restante de la caché = Tiempo de expiración de la caché - Tiempo que la caché ha estado activa. Después de una actualización automática, el tiempo activo de la caché se restablece a 0. El tiempo de activación se calcula con la fórmula: |
|
mutatetype |
El modo de escritura de datos. |
String |
No |
INSERT_OR_UPDATE |
Si se establece una clave principal para la tabla física de Hologres, el sink de Hologres garantiza la semántica exactly-once basada en dicha clave. Cuando llegan datos con una clave principal duplicada, el parámetro
|
|
createparttable |
Indica si se crean automáticamente las particiones inexistentes al escribir en una tabla particionada. |
Boolean |
No |
false |
N/A. |
|
sink.delete-strategy |
Especifica cómo procesar los mensajes de retracción. |
String |
No |
Ninguna |
Valores válidos:
|
|
jdbcWriteBatchSize |
En el modo JDBC, el número máximo de registros que se almacenan en búfer en el sink de Hologres antes de una escritura por lotes. |
Integer |
No |
256 |
Unidad: filas. Nota
Los parámetros jdbcWriteBatchSize, jdbcWriteBatchByteSize y jdbcWriteFlushInterval tienen una relación OR. Si configura los tres parámetros, los datos resultantes se escriben en cuanto se cumple cualquiera de las condiciones. |
|
jdbcWriteBatchByteSize |
En el modo JDBC, este parámetro especifica el tamaño máximo de datos en bytes que el sink de Hologres almacena en búfer antes de escribir el lote en el destino. |
Long |
No |
2,097,152 bytes (2 MB) |
Nota
Los parámetros jdbcWriteBatchSize, jdbcWriteBatchByteSize y jdbcWriteFlushInterval tienen una relación OR. Si configura los tres parámetros, los datos resultantes se escriben en cuanto se cumple cualquiera de las condiciones. |
|
jdbcWriteFlushInterval |
En el modo JDBC, este parámetro especifica el tiempo máximo que el sink de Hologres espera antes de escribir los datos almacenados en búfer en Hologres. |
Long |
No |
10000 |
Unidad: milisegundos. Nota
Los parámetros jdbcWriteBatchSize, jdbcWriteBatchByteSize y jdbcWriteFlushInterval tienen una relación OR. Si configura los tres parámetros, los datos resultantes se escriben en cuanto se cumple la condición de cualquiera de ellos. |
|
ignoreNullWhenUpdate |
Indica si se ignoran los valores nulos de los datos entrantes cuando |
Boolean |
No |
false |
Valores válidos:
|
|
jdbcEnableDefaultForNotNullColumn |
Indica si se inserta un valor predeterminado cuando se escribe un valor nulo en una columna NOT NULL que carece de un valor predeterminado definido. |
Boolean |
No |
true |
Valores válidos:
|
|
remove-u0000-in-text.enabled |
Indica si se quita el carácter nulo ( |
Boolean |
No |
false |
Valores válidos:
|
|
deduplication.enabled |
Indica si se realiza la deduplicación dentro de cada lote antes de escribir en los modos jdbc y jdbc_fixed. |
Boolean |
No |
true |
Valores válidos:
|
|
sink.type-normalize-strategy |
La estrategia de asignación de tipos de datos. |
String |
No |
STANDARD |
La estrategia que utiliza el sink de Hologres para convertir los tipos de datos ascendentes a tipos de Hologres.
|
|
sink.insert.legacy-put-handler |
Indica si se usa el Put Handler heredado para escribir datos en Hologres. |
Boolean |
No |
false |
Valores válidos:
|
|
table_property.* |
Las propiedades de la tabla física para Hologres. |
String |
No |
Ninguna |
Cuando crea una tabla de Hologres, puede establecer las propiedades de la tabla física en la cláusula WITH. Las propiedades de tabla adecuadas ayudan al sistema a organizar y consultar datos de manera eficiente. Aviso
El parámetro |
|
connection.ssl.mode |
Indica si se habilita el cifrado de transporte Secure Sockets Layer (SSL) y qué modo se utiliza. |
String |
No |
disable |
Nota
|
|
connection.ssl.root-cert.location |
Cuando el modo de cifrado de transporte requiere un certificado, especifica la ruta al archivo del certificado. |
String |
No |
Ninguna |
Cuando connection.ssl.mode se establece en verify-ca o verify-full, también debe configurar la ruta al certificado de CA. Puede cargar el certificado en la plataforma mediante la función File Management en la consola de Realtime Compute. Una vez cargado, el certificado se almacena en el directorio /flink/usrlib. Por ejemplo, si el archivo del certificado de CA se llama certificate.crt, el valor del parámetro debe ser Nota
Para obtener un certificado de CA, consulte Transport encryption - Download a CA certificate. |
|
connection.akv4.enabled |
Indica si se habilita el modo AKV4 para conectarse al servidor de Hologres. |
Boolean |
No |
false |
N/A. |
|
connection.akv4.region |
Cuando el modo AKV4 está habilitado, especifica la región donde se encuentra el servidor. |
String |
No |
Ninguna |
Por ejemplo, |
Reutilizar un Catalog existente
A partir de VVR 11.5, puede hacer referencia directamente a un Catalog de Hologres integrado creado en la página Data Management dentro de un trabajo de ingesta de datos de Flink CDC. Esto reduce la necesidad de especificar manualmente las propiedades de conexión.
sink:
type: hologres
using.built-in-catalog: my_holo_catalog
Los trabajos de ingesta de datos pueden reutilizar automáticamente los siguientes parámetros del Catalog de Hologres:
endpoint
username
password
dbname
Para anular estos parámetros que se reutilizan automáticamente, especifique de forma explícita los parámetros YAML correspondientes, los cuales tienen mayor prioridad.
Mapeo de tipos de datos
Utilice el parámetro sink.type-normalize-strategy para establecer la estrategia que convierte los datos de origen a tipos de Hologres.
Habilite
sink.type-normalize-strategycuando inicie un trabajo YAML por primera vez. Si lo habilita después de iniciar el trabajo, debe eliminar la tabla de destino y reiniciar el trabajo sin estado para que la configuración surta efecto.Actualmente, los tipos de arreglo solo admiten INTEGER, BIGINT, FLOAT, DOUBLE, BOOLEAN, CHAR y VARCHAR.
Hologres no admite el tipo numeric como clave principal. Si el tipo de una clave principal se asigna a
numeric, el sistema lo convierte al tipovarchar.
STANDARD
Cuando sink.type-normalize-strategy se establece en STANDARD, los tipos se mapean de la siguiente manera:
|
Tipo de Flink CDC |
Tipo de Hologres |
|
CHAR |
bpchar |
|
STRING |
text |
|
VARCHAR |
text (si longitud > 10485760) |
|
varchar (si longitud <= 10485760) |
|
|
BOOLEAN |
bool |
|
BINARY |
bytea |
|
VARBINARY |
|
|
DECIMAL |
numeric |
|
TINYINT |
int2 |
|
SMALLINT |
|
|
INTEGER |
int4 |
|
BIGINT |
int8 |
|
FLOAT |
float4 |
|
DOUBLE |
float8 |
|
DATE |
date |
|
TIME_WITHOUT_TIME_ZONE |
time |
|
TIMESTAMP_WITHOUT_TIME_ZONE |
timestamp |
|
TIMESTAMP_WITH_LOCAL_TIME_ZONE |
timestamptz |
|
ARRAY |
Arreglos de los tipos de elemento correspondientes |
|
MAP |
No compatible |
|
ROW |
No compatible |
BROADEN
Cuando sink.type-normalize-strategy se establece en BROADEN, los tipos de Flink CDC se convierten a tipos de Hologres con un rango más amplio. Los tipos se mapean de la siguiente manera:
|
Tipo de Flink CDC |
Tipo de Hologres |
|
CHAR |
text |
|
STRING |
|
|
VARCHAR |
|
|
BOOLEAN |
bool |
|
BINARY |
bytea |
|
VARBINARY |
|
|
DECIMAL |
numeric |
|
TINYINT |
int8 |
|
SMALLINT |
|
|
INTEGER |
|
|
BIGINT |
|
|
FLOAT |
float8 |
|
DOUBLE |
|
|
DATE |
date |
|
TIME_WITHOUT_TIME_ZONE |
time |
|
TIMESTAMP_WITHOUT_TIME_ZONE |
timestamp |
|
TIMESTAMP_WITH_LOCAL_TIME_ZONE |
timestamptz |
|
ARRAY |
Arreglos de los tipos de elemento correspondientes |
|
MAP |
No compatible |
|
ROW |
No compatible |
ONLY_BIGINT_OR_TEXT
Cuando sink.type-normalize-strategy se establece en ONLY_BIGINT_OR_TEXT, todos los tipos de Flink CDC se convierten a tipos BIGINT o STRING en Hologres. El mapeo de tipos de datos es el siguiente:
|
Tipo de Flink CDC |
Tipo de Hologres |
|
TINYINT |
int8 |
|
SMALLINT |
|
|
INTEGER |
|
|
BIGINT |
|
|
BOOLEAN |
text |
|
BINARY |
|
|
VARBINARY |
|
|
DECIMAL |
|
|
FLOAT |
|
|
DOUBLE |
|
|
DATE |
|
|
TIME_WITHOUT_TIME_ZONE |
|
|
TIMESTAMP_WITHOUT_TIME_ZONE |
|
|
TIMESTAMP_WITH_LOCAL_TIME_ZONE |
|
|
ARRAY |
Arreglos de los tipos de elemento correspondientes |
|
MAP |
No compatible |
|
ROW |
No compatible |
Escritura en tablas particionadas
Puede usar el sink de Hologres junto con una transformación para escribir los datos de origen en una tabla particionada de Hologres.
La
partition keydebe formar parte de laprimary key. Si utiliza una columna que no es clave principal de los datos de origen comopartition key, las claves principales de las tablas de origen y destino pueden volverse inconsistentes. Esto provoca discrepancias durante la sincronización de datos.Hologres admite columnas de los tipos de datos TEXT, VARCHAR y INT como
partition key. A partir de la versión 1.3.22, también se admiten columnas del tipo de dato DATE.Para crear automáticamente las tablas particionadas secundarias, establezca el parámetro
createparttableentrue. De lo contrario, deberá crearlas manualmente.
Consulte Writing data to a partitioned table para ver un ejemplo.
Sincronización del esquema de tabla
Un pipeline YAML de CDC emplea distintas estrategias para gestionar los cambios en el esquema de la tabla. Estas se configuran mediante el parámetro schema.change.behavior a nivel de pipeline. Los valores válidos para schema.change.behavior son IGNORE, LENIENT, TRY_EVOLVE, EVOLVE y EXCEPTION. Actualmente, el sink de Hologres no admite la estrategia TRY_EVOLVE. Las estrategias LENIENT y EVOLVE implican modificaciones en el esquema de la tabla. En las siguientes secciones se describe cómo estos dos modos gestionan distintos eventos de cambio de esquema.
LENIENT (predeterminado)
En el modo LENIENT, los cambios de esquema se gestionan de la siguiente manera:
Agregar una columna que acepta valores nulos: la columna correspondiente se agrega automáticamente al final de la tabla de destino y sus datos se sincronizan.
Eliminar una columna que acepta valores nulos: la columna no se elimina de la tabla de destino. En su lugar, se llena automáticamente con valores NULL.
Agregar una columna que no acepta valores nulos: se añade automáticamente una columna equivalente que acepta valores nulos al final de la tabla de destino, y sus datos se sincronizan. Para las filas existentes, esta nueva columna se llena de forma automática con NULL.
Cambiar el nombre de una columna: esta operación se trata como la eliminación de una columna y la adición de una nueva. Se agrega una columna con el nombre especificado al final de la tabla de destino, mientras que la columna con el nombre original se llena automáticamente con valores NULL. Por ejemplo, si se cambia el nombre de col_a a col_b, se añade la columna col_b al final de la tabla de destino y la columna col_a se rellena de forma automática con valores NULL.
Cambiar el tipo de dato de una columna: no compatible. Dado que Hologres no admite modificar el tipo de dato de una columna, debe utilizar el parámetro
sink.type-normalize-strategy.-
Los siguientes cambios de esquema no son compatibles:
Modificaciones en restricciones, como la clave principal o el índice.
Eliminación de una columna que no acepta valores nulos.
Cambio de una columna de NOT NULL a NULLABLE.
EVOLVE
En el modo EVOLVE, los cambios de esquema se gestionan de la siguiente manera:
Agregar una columna que acepta valores nulos: compatible.
Eliminar una columna que acepta valores nulos: no compatible.
Agregar una columna que no acepta valores nulos: se añade una nueva columna que acepta valores nulos a la tabla de destino.
Cambiar el nombre de una columna: compatible. La columna original se renombra en la tabla de destino.
Cambiar el tipo de dato de una columna: no compatible. Dado que Hologres no admite modificar el tipo de dato de una columna, debe utilizar el parámetro
sink.type-normalize-strategy.-
Los siguientes cambios de esquema no son compatibles:
Modificaciones en restricciones, como la clave principal o el índice.
Eliminación de una columna que no acepta valores nulos.
Cambio de una columna de NOT NULL a NULLABLE.
En el modo EVOLVE, reiniciar el trabajo sin estado y sin eliminar la tabla de destino puede provocar que el pipeline falle debido a inconsistencias de esquema entre los datos de origen y la tabla de destino. En ese caso, deberá ajustar manualmente el esquema de la tabla de destino.
Consulte Enabling the EVOLVE mode para ver un ejemplo.
Ejemplos de código
Ampliación de tipos
Utilice el parámetro sink.type-normalize-strategy para configurar la ampliación de tipos.
source:
type: mysql
name: MySQL Source
hostname: <yourHostname>
port: 3306
username: flink
password: ${secret_values.password}
tables: test_db.test_source_table
server-id: 5401-5499
sink:
type: hologres
name: Hologres Sink
endpoint: <yourEndpoint>
dbname: <yourDbname>
username: ${secret_values.ak_id}
password: ${secret_values.ak_secret}
# Map CDC data types to broader Hologres types.
sink.type-normalize-strategy: BROADEN
pipeline:
name: MySQL to Hologres Pipeline
Escritura en una tabla particionada
Convierta el campo de marca de tiempo create_time a un tipo de fecha y utilícelo como clave de partición para la tabla de Hologres.
source:
type: mysql
name: MySQL Source
hostname: <yourHostname>
port: 3306
username: flink
password: ${secret_values.password}
tables: test_db.test_source_table
server-id: 5401-5499
sink:
type: hologres
name: Hologres Sink
endpoint: <yourEndpoint>
dbname: <yourDbname>
username: ${secret_values.ak_id}
password: ${secret_values.ak_secret}
# Automatically create partitioned tables if they do not exist.
createparttable: true
transform:
- source-table: test_db.test_source_table
projection: \*, DATE_FORMAT(CAST(create_time AS TIMESTAMP), 'yyyy-MM-dd') as partition_key
primary-keys: id, create_time, partition_key
partition-keys: partition_key
description: add partition key
pipeline:
name: MySQL to Hologres Pipeline
Habilitación del modo EVOLVE****
source:
type: mysql
name: MySQL Source
hostname: <yourHostname>
port: 3306
username: flink
password: ${secret_values.password}
tables: test_db.test_source_table
server-id: 5401-5499
sink:
type: hologres
name: Hologres Sink
endpoint: <yourEndpoint>
dbname: <yourDbname>
username: ${secret_values.ak_id}
password: ${secret_values.ak_secret}
# Automatically create partitioned tables if they do not exist.
createparttable: true
pipeline:
name: MySQL to Hologres Pipeline
schema.change.behavior: evolve
Sincronización de una sola tabla
source:
type: mysql
name: MySQL Source
hostname: <yourHostname>
port: 3306
username: flink
password: ${secret_values.password}
tables: test_db.test_source_table
server-id: 5401-5499
sink:
type: hologres
name: Hologres Sink
endpoint: <yourEndpoint>
dbname: <yourDbname>
username: ${secret_values.ak_id}
password: ${secret_values.ak_secret}
# Map CDC data types to broader Hologres types.
sink.type-normalize-strategy: BROADEN
pipeline:
name: MySQL to Hologres Pipeline
Sincronización completa de la base de datos
source:
type: mysql
name: MySQL Source
hostname: <yourHostname>
port: 3306
username: flink
password: ${secret_values.password}
tables: test_db.\.*
server-id: 5401-5499
sink:
type: hologres
name: Hologres Sink
endpoint: <yourEndpoint>
dbname: <yourDbname>
username: ${secret_values.ak_id}
password: ${secret_values.ak_secret}
# Map CDC data types to broader Hologres types.
sink.type-normalize-strategy: BROADEN
pipeline:
name: MySQL to Hologres Pipeline
Fusión de tablas fragmentadas
source:
type: mysql
name: MySQL Source
hostname: <yourHostname>
port: 3306
username: flink
password: ${secret_values.password}
tables: test_db.user\.*
server-id: 5401-5499
sink:
type: hologres
name: Hologres Sink
endpoint: <yourEndpoint>
dbname: <yourDbname>
username: ${secret_values.ak_id}
password: ${secret_values.ak_secret}
# Map CDC data types to broader Hologres types.
sink.type-normalize-strategy: BROADEN
route:
# All sharded tables in the MySQL test_db database are merged into a single Hologres table named test_db.user.
- source-table: test_db.user\.*
sink-table: test_db.user
pipeline:
name: MySQL to Hologres Pipeline
Sincronización con un esquema específico
En Hologres, un esquema equivale a una base de datos en MySQL. Puede especificar el esquema para las tablas de destino.
source:
type: mysql
name: MySQL Source
hostname: <yourHostname>
port: 3306
username: flink
password: ${secret_values.password}
tables: test_db.user\.*
server-id: 5401-5499
sink:
type: hologres
name: Hologres Sink
endpoint: <yourEndpoint>
dbname: <yourDbname>
username: ${secret_values.ak_id}
password: ${secret_values.ak_secret}
# Map CDC data types to broader Hologres types.
sink.type-normalize-strategy: BROADEN
route:
# Synchronize all tables from the MySQL test_db database to the Hologres test_db2 schema while keeping the original table names.
- source-table: test_db.\.*
sink-table: test_db2.<>
replace-symbol: <>
pipeline:
name: MySQL to Hologres Pipeline
Sincronización de tablas nuevas sin reinicio
Para sincronizar en tiempo real las tablas recién agregadas mientras un trabajo está en ejecución, establezca scan.binlog.newly-added-table.enable = true.
source:
type: mysql
name: MySQL Source
hostname: <yourHostname>
port: 3306
username: flink
password: ${secret_values.password}
tables: test_db.\.*
server-id: 5401-5499
# Automatically captures new tables created while the job is running.
scan.binlog.newly-added-table.enabled: true
sink:
type: hologres
name: Hologres Sink
endpoint: <yourEndpoint>
dbname: <yourDbname>
username: ${secret_values.ak_id}
password: ${secret_values.ak_secret}
# Map CDC data types to broader Hologres types.
sink.type-normalize-strategy: BROADEN
pipeline:
name: MySQL to Hologres Pipeline
Adición de tablas existentes al reiniciar
Para incluir una tabla existente en la sincronización, establezca scan.newly-added-table.enabled en true y reinicie el trabajo.
No utilice scan.newly-added-table.enabled en un trabajo que previamente se ejecutó con scan.binlog.newly-added-table.enabled. Esta combinación provoca duplicación de datos al reiniciar.
source:
type: mysql
name: MySQL Source
hostname: <yourHostname>
port: 3306
username: flink
password: ${secret_values.password}
tables: test_db.\.*
server-id: 5401-5499
scan.startup.mode: initial
# On restart, the job scans for new tables matching the `tables` parameter and performs a snapshot.
# Note: This parameter must be used with scan.startup.mode: initial.
scan.newly-added-table.enabled: true
sink:
type: hologres
name: Hologres Sink
endpoint: <yourEndpoint>
dbname: <yourDbname>
username: ${secret_values.ak_id}
password: ${secret_values.ak_secret}
# Map CDC data types to broader Hologres types.
sink.type-normalize-strategy: BROADEN
pipeline:
name: MySQL to Hologres Pipeline
Exclusión de tablas
source:
type: mysql
name: MySQL Source
hostname: <yourHostname>
port: 3306
username: flink
password: ${secret_values.password}
tables: test_db.\.*
# Excludes tables that match this regular expression.
tables.exclude: test_db.table1
server-id: 5401-5499
sink:
type: hologres
name: Hologres Sink
endpoint: <yourEndpoint>
dbname: <yourDbname>
username: ${secret_values.ak_id}
password: ${secret_values.ak_secret}
# Map CDC data types to broader Hologres types.
sink.type-normalize-strategy: BROADEN
pipeline:
name: MySQL to Hologres Pipeline
Documentos relacionados
Para obtener más información sobre los módulos source, sink, transform y route, consulte Flink CDC Data Ingestion Job Development Reference.
Para desarrollar un trabajo YAML de ingesta de datos, consulte Flink CDC Data Ingestion Job Development.