Artículo
· 10 jun, 2020 Lectura de 2 min

Sincronizar datos con el DSTIME

¡Hola Comunidad!

Para la sincronización de datos dentro de Caché/IRIS, existen varias formas de sincronizar objetos y tablas. A nivel de la base de datos se puede usar Shadowing o Mirroring 

Esto funciona perfectamente, y si solo necesitas sincronizar una parte de tus datos, puedes partir tus datos en conjuntos más pequeños usando Global mapping. O, si necesitas sincronización bidireccional a nivel de clase/tabla, puedes usar la herramienta Object Synchronization.

El único límite de todos estos métodos es que sólo funcionan desde Caché/IRIS hacia Caché/IRIS. Si quieres sincronizar tus datos a alguna base de datos externa, necesitas alguna otra solución.

La solución está disponible en Caché/IRIS desde hace ya bastante y funciona a la perfección.

El global ^OBJ.DSTIME es el que hace posible la magia.

Fue creado para permitir la sincronización de datos con DeepSee. Lleva un registro muy simple de los cambios en Objetos/Tablas mediante la señalización de Modified,New,Deleted
Esto podría ser útil no solo para DeepSee, sino también para cualquier otro tipo de sincronización de datos.

El Global ^OBJ.DSTIME tiene dos funcionalidades adicionales:

  • Está envuelto en una clase persistente %SYSTEM.DSTIME, por lo que se puede usar como una tabla SQL normal, para seleccionar los cambios que haga  
  • Mantiene un ID de versión (llamado DSTIME) que permite controlar los residuos sincronizados. Lo que hace exactamente es:     
    • Toma el ID relativo a la última versión
    • Lo incrementa
    • y luego carga tus cambios donde los necesite, en base a la versión recuperada

Y a medida que haces la sincronización mediante SQL puro, tu objetivo puede ser cualquier base de datos que entienda SQL.

Extendí la clase %SYSTEM.DSTIME y coloqué un ejemplo en Open Exchange para probarlo en en el namespace SAMPLES.

Comentarios (0)0
Inicie sesión o regístrese para continuar