Manejar DDL y Evolución del Esquema
Secuencia esperada
Cuando cambia una definición de tabla y la captura de DDL está activada, el flujo puede entregar el registro DDL y, a continuación, actualizar los metadatos de objeto y el esquema DML específico de la tabla antes de los registros posteriores que utilicen la nueva definición. Los lotes exactos y el orden en los mensajes WebSocket son los detalles de implementación; los consumidores deben manejar un registro de esquema o metadatos siempre que aparezca.
-
Almacene en caché los esquemas por su
id, no solo por nombre de tabla. -
Almacene en caché los metadatos de objetos mediante
qual_tabley sustitúyalos cuando llegue un registro más reciente. -
No suponga que el esquema recibido en el momento de la conexión sigue siendo válido mientras dure la conexión.
-
Pausar o interrumpir un registro DML si su esquema necesario es desconocido y el sistema descendente no puede aceptar datos sin esquema.
-
Aplique cambios compatibles automáticamente cuando la política lo permita; enrute cambios incompatibles a un flujo de trabajo de migración controlado.
Cambios compatibles e incompatibles
| Cambiar | Acción típica del consumidor |
|---|---|
| Agregar columna nula | Acepte el nuevo campo y actualice el esquema descendente de forma asíncrona o dinámica. |
| Agregar columna no nula | Confirme el comportamiento predeterminado o de reposición antes de aplicar los registros. |
| Borrar Columna | Deje de escribir el campo; conserve los datos históricos descendentes según la política de retención. |
| Renombrar columna | Tratar como borrado más agregar, a menos que una asignación regida indique lo contrario. |
| Cambiar el tipo primitivo de JSON o la precisión del origen | Valide la conversión, la precisión y la compatibilidad descendente antes de continuar. |
| Cambiar columnas de clave | Reconstruya la idempotencia, fusione y elimine la lógica antes de consumir registros bajo la nueva clave. |
Política de manejo de DDL
-
Registre el registro de hora de DDL
pos, la identidad de objeto, la sentencia y la operación en un log de auditoría. -
No ejecute DDL de origen sin revisar directamente en un sistema descendente a menos que dicho comportamiento esté explícitamente aprobado y protegido.
-
Utilice
maxDDLTextSizecon el tamaño suficiente para el DDL de la organización y alerte cuando se detecte o sospeche el truncamiento. -
Se esperan varias versiones de esquema para la misma tabla a lo largo del tiempo. Mantenga el identificador de esquema con eventos archivados.
Integración de registro de esquema
Un consumidor puede publicar registros de esquema JSON en banda en un registro de esquema de empresa. Conserve el archivo id original, asócielo al flujo de datos y al despliegue, y realice cambios de versión en lugar de sobrescribir las definiciones de esquema históricas. El registro complementa el esquema de tiempo de ejecución; no sustituye el punto de control ni la recuperación de la pista de origen.