Cuando necesita ejecutar búsquedas de texto completo o análisis complejos sobre datos de negocio en PolarDB for MySQL, operar directamente sobre la base de datos puede afectar la estabilidad del negocio principal.PolarDB La función AutoETL que proporciona el nodo PolarSearch sincroniza los datos de forma continua y automática desde el nodo de lectura/escritura hacia un nodo PolarSearch del clúster. De esta manera, ofrece un servicio de datos integral. Con las vistas de búsqueda o los procedimientos almacenados de ETL se crean vínculos de sincronización de datos sin desplegar ni mantener herramientas de ETL adicionales. Así se logra la sincronización y se aíslan las cargas de trabajo de búsqueda y análisis respecto a las de procesamiento de transacciones en línea.
Al usar AutoETL para crear un vínculo, usted autoriza de forma predeterminada que el motor de AutoETL acceda a los datos de PolarDB para sincronizarlos.
Descripción general
AutoETL es la capacidad integrada de sincronización de datos de PolarDB for MySQL. Permite el flujo automático de datos entre distintos tipos de nodos dentro del mismo clúster. La versión actual solo admite la sincronización desde PolarDB for MySQL hacia un nodo PolarSearch del mismo clúster para búsquedas y análisis de alto rendimiento.
AutoETL ofrece dos métodos para crear vínculos de sincronización de datos:
Vista de búsqueda: use la sintaxis
CREATE SEARCH VIEWpara definir la lógica de sincronización de datos en SQL estándar. Este método es adecuado para la mayoría de los escenarios de sincronización de una sola tabla y de agregación de varias tablas. El sistema gestiona automáticamente los detalles de conexión subyacentes.Procedimiento almacenado de ETL (
dbms_etl.sync_by_sql): utilice sintaxis compatible con Flink SQL para definir lógica compleja de limpieza, transformación y agregación de datos mediante procedimientos almacenados.
Ámbito de aplicación
Antes de usar AutoETL, asegúrese de cumplir con los siguientes requisitos:
-
Versión del clúster:
-
Vista de búsqueda:
MySQL 8.0.1. La versión de revisión debe ser 8.0.1.1.54 o posterior.
MySQL 8.0.2. La versión de revisión debe ser 8.0.2.2.34 o posterior.
-
Procedimiento almacenado de ETL (sync_by_sql):
MySQL 8.0.1. La versión de revisión debe ser 8.0.1.1.52 o posterior.
MySQL 8.0.2. La versión de revisión debe ser 8.0.2.2.33 o posterior.
-
Binlog: el clúster debe tener habilitado Enable binary logging.
Dirección de sincronización: solo se admite la sincronización desde PolarDB for MySQL hacia un nodo PolarSearch.
Límites de DDL: al ejecutar operaciones DDL en tablas de origen que tienen vistas de búsqueda o procedimientos almacenados de ETL, siga reglas específicas para evitar interrupciones en la sincronización. Algunos cambios incompatibles requieren reconstruir la vista de búsqueda. Para obtener más información, consulte DDL change rules and best practices.
Tipos de datos: no se admite la sincronización del tipo
BITni de los tipos de datos espaciales comoGEOMETRY、POINT、LINESTRING、POLYGON、MULTIPOINT、MULTILINESTRING、MULTIPOLYGONyGEOMETRYCOLLECTION.Límites de consulta de vistas de búsqueda: actualmente, las vistas de búsqueda solo permiten definir la semántica de sincronización y no admiten consultas de datos. Para consultar datos, conéctese directamente al nodo PolarSearch.
Recursos de cómputo: AutoETL utiliza CU como unidad de cómputo. De forma predeterminada, la cantidad de CU de un clúster equivale al doble de la suma de las CPU de todos los nodos PolarSearch. Consulte el uso actual de CU del clúster en la página , en la pestaña AutoETL.
Vistas de búsqueda
Una vista de búsqueda es un mecanismo declarativo de sincronización de datos que proporciona AutoETL. Cree una vista de búsqueda con sintaxis SQL estándar y el sistema establecerá automáticamente un vínculo continuo de sincronización de datos desde la tabla de origen hacia el nodo PolarSearch.
Crear una vista de búsqueda
Sintaxis
CREATE SEARCH VIEW view_name [(column_list, PRIMARY KEY (pk_column_list))]
[WITH (option_list)]
AS select_statement;
Parámetros
Parámetro | Obligatorio | Descripción |
| Sí | Nombre de la vista de búsqueda, que también corresponde al nombre del índice de destino en el nodo PolarSearch. |
| No | Defina manualmente las columnas de la vista de búsqueda. Separe varias columnas con Nota En la sincronización de una sola tabla, no es necesario especificar |
| No | Columnas de clave primaria de la vista de búsqueda. Su estructura corresponde a la asignación del índice del nodo PolarSearch, por lo que Si no se especifica, se usa de forma predeterminada la primera columna de |
| No | Configuración de sincronización especificada de forma explícita al crear la vista de búsqueda, como el paralelismo de sincronización, el uso de recursos de cómputo por cada worker de sincronización y el nombre del índice de destino. Separe varias configuraciones con |
| Sí | Instrucción |
Límites de uso y notas
La tabla de origen debe contener una clave primaria o una clave única.
Debe contar con el permiso
ALTERen todas las tablas de origen de la vista de búsqueda, así como con el permisoSELECTsobre las columnas relacionadas o sobre toda la tabla.Después de crear una vista de búsqueda, las nuevas columnas que se agreguen a la tabla de origen no se sincronizan automáticamente. Para sincronizar columnas nuevas, consulte Modify a search view.
Para usar una configuración personalizada del índice de destino, cree primero el índice en el nodo PolarSearch y defina su configuración de forma manual. Luego, cree la vista de búsqueda. Si el índice de destino no existe al momento de la creación, el sistema lo crea automáticamente.
Para configurar parámetros avanzados de sincronización en agregaciones de varias tablas o consultas complejas, como la conversión de campos JSON y los campos de enrutamiento, consulte AutoETL parameter configuration and best practices.
Preparación de datos
Cree los datos de prueba utilizados en los ejemplos siguientes mediante la ejecución de las instrucciones SQL que se muestran a continuación en PolarDB for MySQL.
CREATE DATABASE IF NOT EXISTS db1;
CREATE DATABASE IF NOT EXISTS db2;
USE db1;
CREATE TABLE IF NOT EXISTS t1 (
id INT PRIMARY KEY,
c1 VARCHAR(100),
c2 VARCHAR(100)
);
INSERT INTO t1(id, c1, c2) VALUES
(1, 'apple', 'red'),
(2, 'banana', 'yellow'),
(3, 'grape', 'purple');
USE db2;
CREATE TABLE IF NOT EXISTS t2 (id INT PRIMARY KEY, c2 INT);
INSERT INTO t2(id, c2) VALUES (1, 111), (2, 222), (4, 444);
Ejemplos
-
Sincronización completa de tabla: vincule
db1.t1a PolarSearch. El nombre de la vistaview_testtambién corresponde al nombre del índice de destino en PolarSearch.CREATE SEARCH VIEW view_test AS SELECT * FROM db1.t1; -
Sincronización de columnas específicas: sincronice únicamente las columnas
c1yc2, y defina de forma manual los tipos de columna y la clave primaria.CREATE SEARCH VIEW view_test1 AS SELECT c1, c2 FROM db1.t1; -
Parámetros de sincronización específicos: especifique la configuración de sincronización mediante la cláusula
WITHal crear una vista de búsqueda. El siguiente ejemplo sincroniza las columnasc1yc2dedb1.t1hacia PolarSearch y establece el paralelismo de sincronización en 2.CREATE SEARCH VIEW view_test6 WITH ('parallelism' = '2') AS SELECT c1, c2 FROM db1.t1; -
Sincronización con filtro condicional: sincronice solo los datos que cumplan con la condición
WHERE.CREATE SEARCH VIEW view_test2 AS SELECT id, c1, c2 FROM db1.t1 WHERE c1 > 10; -
JOIN de varias tablas: vincule
db1.t1ydb2.t2medianteidy sincronice el resultado hacia PolarSearch.CREATE SEARCH VIEW view_test3(id, c1, c2) AS SELECT t1.id, t1.c1, t2.c2 FROM db1.t1 AS t1 LEFT JOIN db2.t2 AS t2 ON t1.id = t2.id; -
UNION de varias tablas: combine varias tablas con la misma estructura y sincronícelas. Cada instrucción
SELECTdebe tener la misma cantidad y los mismos tipos de columnas.CREATE SEARCH VIEW view_test4(id, c2) AS SELECT id, c2 FROM db1.t1 UNION ALL SELECT id, c2 FROM db2.t2; -
Agregación por grupos: sincronice los datos después de aplicar la agregación por grupos. Al usar
GROUP BY, debe definir manualmente las columnas y la clave primaria.CREATE SEARCH VIEW view_test5 (id, max_c) AS SELECT t1.id, MAX(t1.c1) AS max_c FROM db1.t1 GROUP BY t1.id;
Comprobar los datos
Compruebe el estado de sincronización de la vista de búsqueda:
SHOW SEARCH VIEW STATUS;
Cuando el estado es active, la sincronización de datos de la vista de búsqueda funciona correctamente. Conéctese al nodo PolarSearch y use una API REST compatible con Elasticsearch para comprobar los datos:
# Replace <user>:<password> with the PolarSearch node credentials and <polarsearch_endpoint> with the PolarSearch node endpoint and port
curl -u <user>:<password> -X GET "http://<polarsearch_endpoint>/view_test/_search"
Gestionar vistas de búsqueda
Use los siguientes comandos para consultar las vistas de búsqueda creadas, o bien para detener, reiniciar o reconstruir la sincronización de datos. Todos los comandos deben ejecutarse en un cliente de base de datos después de conectarse al clúster.
Consultar el estado de todas las vistas de búsqueda
SHOW SEARCH VIEW STATUS;
El resultado es el siguiente. Cuando el estado es active, la sincronización de datos de la vista de búsqueda funciona correctamente.
+------------+--------+----------+---------+---------------------+---------------------+
| View Name | Type | Status | Message | Created_at | Updated_at |
+------------+--------+----------+---------+---------------------+---------------------+
| view_test | search | active | | 2026-03-18 18:44:12 | 2026-03-18 18:51:37 |
+------------+--------+----------+---------+---------------------+---------------------+
Consultar la instrucción CREATE de una vista de búsqueda específica
SHOW CREATE SEARCH VIEW view_test;
El resultado es el siguiente:
+-----------+------------------------------------------------------+
| View Name | Create Search View |
+-----------+------------------------------------------------------+
| view_test | CREATE SEARCH VIEW view_test AS SELECT * FROM db1.t1 |
+-----------+------------------------------------------------------+
Detener una vista de búsqueda
Cuando necesite modificar o reconstruir el índice de destino en el nodo PolarSearch, detenga primero la sincronización de datos de la vista de búsqueda para evitar errores de escritura durante la sincronización. Una vez finalizada la modificación del índice en el nodo PolarSearch, reinicie la vista de búsqueda.
ALTER SEARCH VIEW view_test STOP;
Reiniciar una vista de búsqueda
Reinicie una vista de búsqueda detenida o en ejecución.
ALTER SEARCH VIEW view_test RESTART;
Reconstruir una vista de búsqueda
Vuelva a leer todos los datos de la tabla de origen y escríbalos en el nodo PolarSearch.
Una reconstrucción vuelve a analizar todos los datos de la tabla de origen. Este proceso puede tardar mucho tiempo si el volumen de datos es grande.
La reconstrucción no elimina los datos de índice existentes en el nodo PolarSearch. Los datos se sobrescriben directamente.
ALTER SEARCH VIEW view_test REBUILD;
Eliminar una vista de búsqueda
Eliminar una vista de búsqueda es una operación de alto riesgo. Confirme antes de continuar. Esta operación detiene la sincronización de datos de la vista de búsqueda y limpia los recursos relacionados,pero no elimina los datos de índice en PolarSearch.
DROP SEARCH VIEW view_name;
El sistema gestiona la eliminación de manera distinta según el estado de la vista de búsqueda:
Vista de búsqueda en estado
active: el estado cambia primero adropping. Después de que el sistema termina de limpiar los recursos y eliminar los datos del índice de destino, el estado cambia adropped.Vista de búsqueda en estado
dropped: el sistema elimina por completo la información de la vista de búsqueda.Vistas de búsqueda en otros estados: el sistema no admite la eliminación.
Modificar una vista de búsqueda
Después de crear una vista de búsqueda, ajuste sus parámetros de ejecución o modifique su lógica de sincronización, por ejemplo, para agregar campos de sincronización o cambiar condiciones de consulta. AutoETL ofrece tres métodos de modificación:
Para ajustar únicamente parámetros de ejecución como el paralelismo y el uso de recursos de cómputo, use la modificación de parámetros. No se requieren cambios en el SQL de sincronización.
Al modificar la lógica de sincronización, prefiera la modificación de SQL en el lugar. Si las definiciones SQL son compatibles, la sincronización continúa desde el punto de control original sin necesidad de resincronizar todo. Consulte DDL change rules and best practices para determinar si las definiciones SQL son compatibles.
Si las definiciones SQL son incompatibles y no es posible la modificación en el lugar, use la modificación con "nuevo índice + nueva vista de búsqueda" para reconstruir.
Modificación de parámetros
Para una vista de búsqueda en ejecución, modifique sus parámetros de ejecución con la siguiente sintaxis. AutoETL lee automáticamente la nueva configuración y reinicia la vista de búsqueda.
Sintaxis
ALTER SEARCH VIEW view_name UPDATE WITH (new_option_list);
Ejemplos
Ajuste el paralelismo a 8, la CPU por worker a 4 y la concurrencia por worker a 8 para view_test:
ALTER SEARCH VIEW view_test UPDATE WITH ('parallelism' = '8', 'link.tm.cpu' = '4', 'link.tm.slots' = '8');
Modificación de SQL en el lugar
La modificación de SQL en el lugar cambia directamente el SQL de sincronización de una vista de búsqueda existente. No requiere crear un nuevo índice de PolarSearch ni una nueva vista de búsqueda, ni cambiar las consultas del negocio, lo que reduce el tiempo de sincronización completa. Si las definiciones SQL son compatibles, la sincronización continúa desde el punto de control original. De lo contrario, la modificación falla y el sistema revierte automáticamente a la definición previa y reinicia la vista de búsqueda.
Sintaxis
ALTER SEARCH VIEW view_name UPDATE
[TO (column_list, PRIMARY KEY (pk_column_list))]
AS new_select_statement;
Ejemplos
-
Sincronizar nuevas columnas de la tabla de origen: una vista de búsqueda de tabla completa no sincroniza automáticamente las columnas nuevas que se agregan a la tabla de origen después de crear la vista. Después de agregar nuevas columnas a la tabla de origen
db1.t1, ejecute la siguiente instrucción para sincronizar los datos de la nueva columna hacia PolarSearch.ALTER SEARCH VIEW view_test UPDATE; -
Ajustar las columnas sincronizadas: originalmente se sincronizaban las columnas
c1yc2. Cambie la configuración para sincronizar únicamente la columnac1.ALTER SEARCH VIEW view_test UPDATE AS SELECT c1 FROM db1.t1; -
Ajustar las condiciones de filtro: cambie la condición
WHEREdec1 > 10ac1 > 20.ALTER SEARCH VIEW view_test UPDATE AS SELECT id, c1, c2 FROM db1.t1 WHERE c1 > 20;
Modificación con "nuevo índice + nueva vista de búsqueda"
Si las definiciones SQL son incompatibles y no es posible la modificación en el lugar, use el método de "nuevo índice + nueva vista de búsqueda" para reconstruir. Así garantiza que las consultas del negocio no se vean afectadas.
Cree una nueva vista de búsqueda y sincronice los datos hacia un nuevo índice de PolarSearch.
Use
SHOW SEARCH VIEW STATUSpara comprobar el estado de la nueva vista de búsqueda. Cuando la latencia de sincronización baje a entre 0 y 1 segundo, cambie la lógica de consulta del negocio del índice antiguo al nuevo.Elimine la vista de búsqueda anterior.
Para conocer el impacto de los cambios DDL en la tabla de origen sobre las vistas de búsqueda y las prácticas detalladas de modificación, consulte DDL change rules and best practices.
Procedimiento almacenado de ETL (sync_by_sql)
Para escenarios que requieren transformaciones, agregaciones o cálculos complejos, use el procedimiento almacenado CALL dbms_etl.sync_by_sql para definir la lógica de sincronización de datos con sintaxis compatible con Flink SQL.
Crear un vínculo de sincronización
Sintaxis
Antes de llamar a dbms_etl.sync_by_sql, use las variables de sesión (como AutoETL parameter configuration and best practices) de esl_link_options y esl_sink_options para establecer la configuración de sincronización del vínculo. El motor de AutoETL lee estas variables automáticamente al crear el vínculo.
CALL dbms_etl.sync_by_sql("search", "<sync_sql>");
Ejemplos
El sistema configura automáticamente la información de conexión de las tablas de origen y de destino, como direcciones de host, puertos y credenciales. No es necesario especificarla de forma manual en la cláusula WITH.
CALL dbms_etl.sync_by_sql("search", "
-- Step 1: Define the PolarDB source table
CREATE TEMPORARY TABLE `db1`.`t1` (
`id` BIGINT,
`c1` STRING,
PRIMARY KEY (`id`) NOT ENFORCED
) WITH (
'connector' = 'mysql',
'database-name' = 'db1',
'table-name' = 't1'
);
-- Step 2: Define the PolarSearch destination table
CREATE TEMPORARY TABLE `dest` (
`id` BIGINT,
`max_c` STRING,
PRIMARY KEY (`id`) NOT ENFORCED
) WITH (
'connector' = 'opensearch',
'index' = 'dest'
);
-- Step 3: Define the computation and insert logic
INSERT INTO `dest`
SELECT
`t1`.`id`,
MAX(`t1`.`c1`)
FROM `db1`.`t1` AS `t1`
GROUP BY `t1`.`id`;
");
Comprobar los datos
Conéctese al nodo PolarSearch y use una API REST compatible con Elasticsearch para consultar y comprobar que los datos se hayan sincronizado.
# Replace <polarsearch_endpoint> with the PolarSearch node endpoint
curl -u <user>:<password> -X GET "http://<polarsearch_endpoint>/dest/_search"
Gestionar vínculos de sincronización
Use los siguientes comandos para consultar los vínculos de sincronización creados, o bien para detener, reiniciar o reconstruir la sincronización de datos. Todos los comandos deben ejecutarse en un cliente de base de datos después de conectarse al clúster.
Consultar todos los vínculos
CALL dbms_etl.show_sync_link();
Consultar un vínculo específico por ID
Sustituya <sync_id> por el ID devuelto cuando se creó el vínculo.
CALL dbms_etl.show_sync_link_by_id('<sync_id>')\G
Descripción del resultado devuelto:
*************************** 1. row ***************************
SYNC_ID: crb5rmv8rttsg
NAME: crb5rmv8rttsg
SYSTEM: search
SYNC_DEFINITION: db1.t1 -> dest
SOURCE_TABLES: db1.t1
SINK_TABLES: dest
STATUS: active -- Link status. active indicates normal operation
MESSAGE: -- If an error occurs, the error message is displayed here
CREATED_AT: 2024-05-20 11:55:06
UPDATED_AT: 2024-05-20 17:28:04
OPTIONS:...
Detener un vínculo
Cuando necesite modificar o reconstruir el índice de destino en el nodo PolarSearch, detenga primero el vínculo de sincronización para evitar errores de escritura durante la sincronización. Una vez finalizada la modificación del índice en el nodo PolarSearch, reinicie el vínculo.
CALL dbms_etl.stop_sync_link('<sync_id>');
Reiniciar un vínculo
Reinicie un vínculo de sincronización detenido o en ejecución.
CALL dbms_etl.restart_sync_link('<sync_id>');
Reconstruir un vínculo
Vuelva a leer todos los datos de la tabla de origen y escríbalos en el nodo PolarSearch. Una reconstrucción vuelve a analizar todos los datos de la tabla de origen. Este proceso puede tardar mucho tiempo si el volumen de datos es grande. La reconstrucción no elimina los datos de índice existentes en el nodo PolarSearch. Los datos se sobrescriben directamente.
CALL dbms_etl.rebuild_sync_link('<sync_id>');
Eliminar un vínculo de sincronización
Esta operación detiene la sincronización de datos y limpia los recursos relacionados.
Eliminar un vínculo de sincronización es una operación de alto riesgo. Confirme antes de continuar. Esta operación detiene la sincronización de datos del vínculo y limpia los recursos relacionados,pero no elimina los datos de índice en PolarSearch.
CALL dbms_etl.drop_sync_link('<sync_id>');
El sistema gestiona la eliminación con drop_sync_link de manera distinta según el estado del vínculo:
Vínculo en estado
active: el estado cambia primero adropping. Después de que el sistema termina de limpiar los recursos del vínculo y los datos del índice de destino, el estado cambia adropped.Vínculo en estado
dropped: el sistema elimina por completo la información del vínculo.Vínculos en otros estados: el sistema no admite la eliminación.
Modificar un vínculo de sincronización
Después de crear un vínculo de sincronización, ajuste sus parámetros de ejecución o modifique su SQL de sincronización. Al igual que con las vistas de búsqueda, AutoETL ofrece tres métodos de modificación:
Para ajustar únicamente parámetros de ejecución como el paralelismo y el uso de recursos de cómputo, use la modificación de parámetros. No se requieren cambios en el SQL de sincronización.
Al modificar el SQL de sincronización, prefiera la modificación de SQL en el lugar. Si las definiciones SQL son compatibles, la sincronización continúa desde el punto de control original sin necesidad de resincronizar todo. Consulte DDL change rules and best practices para determinar si las definiciones SQL son compatibles.
Si las definiciones SQL son incompatibles y no es posible la modificación en el lugar, use la modificación con "nuevo índice + nuevo vínculo" para reconstruir.
Modificación de parámetros
Para un vínculo de sincronización en ejecución, establezca primero la nueva configuración del vínculo mediante la variable de sesión esl_link_options y luego llame a dbms_etl.update_sync_link para aplicar la configuración. AutoETL lee automáticamente la nueva configuración de esl_link_options y reinicia el vínculo de sincronización.
Sintaxis
SET esl_link_options = "<new_option_list>";
CALL dbms_etl.update_sync_link('<sync_id>', '');
Ejemplos
Ajuste el paralelismo a 8, la CPU por worker a 4 y la concurrencia por worker a 8 para el vínculo 8f4228x2uq12z:
SET esl_link_options = "'parallelism' = '8', 'link.tm.cpu' = '4', 'link.tm.slots' = '8'";
CALL dbms_etl.update_sync_link('8f4228x2uq12z', '');
Modificación de SQL en el lugar
La modificación de SQL en el lugar cambia directamente el SQL de sincronización de un vínculo existente. No requiere crear un nuevo índice de PolarSearch ni un nuevo vínculo, ni cambiar las consultas del negocio, lo que reduce el tiempo de sincronización completa. Si las definiciones SQL antes y después de la modificación son compatibles, la sincronización continúa desde el punto de control original. Si no son compatibles, la modificación falla, el sistema revierte automáticamente a la definición de sincronización previa y reinicia el vínculo.
Sintaxis
<new_sync_sql> requiere el nuevo SQL de sincronización completo. Su estructura es la misma que la del SQL de sincronización utilizado en dbms_etl.sync_by_sql cuando se creó el vínculo.
CALL dbms_etl.update_sync_link('<sync_id>', '<new_sync_sql>');
Ejemplos
Cambie la condición de filtro a c1 > 20 para el vínculo 8f4228x2uq12z:
CALL dbms_etl.update_sync_link('8f4228x2uq12z', "
CREATE TEMPORARY TABLE `db1`.`t1` (
`id` BIGINT,
`c1` STRING,
PRIMARY KEY (`id`) NOT ENFORCED
) WITH (
'connector' = 'mysql',
'database-name' = 'db1',
'table-name' = 't1'
);
CREATE TEMPORARY TABLE `dest` (
`id` BIGINT,
`c1` STRING,
PRIMARY KEY (`id`) NOT ENFORCED
) WITH (
'connector' = 'opensearch',
'index' = 'dest'
);
INSERT INTO `dest` SELECT `id`, `c1` FROM `db1`.`t1` WHERE `c1` > 20;
");
Modificación con "nuevo índice + nuevo vínculo"
Si las definiciones SQL son incompatibles y no es posible la modificación en el lugar, use el método de "nuevo índice + nuevo vínculo" para reconstruir. Así garantiza que las consultas del negocio no se vean afectadas. Tome como ejemplo la modificación del vínculo A:
Cree el vínculo B con base en el nuevo SQL de sincronización y sincronice los datos hacia un nuevo índice de PolarSearch.
Use
CALL dbms_etl.show_sync_link_by_id('<sync_id>')para comprobar el estado del vínculo B. Cuando la latencia de sincronización del vínculo B baje a entre 0 y 1 segundo, cambie la lógica de consulta del negocio del índice antiguo al nuevo.Después de confirmar que el vínculo B funciona de manera estable, ejecute
CALL dbms_etl.drop_sync_link('<sync_id>')para eliminar el vínculo A anterior.