Artículo
Federico Coda Z... · Jun 10, 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, puede usar la Object Synchronization Feature 

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

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

La global ^OBJ.DSTIME es la que hace posible la magia.

Fue creada para permitir la sincronización de datos con DeepSee. Lleva un registro muy simple de los cambios de 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 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 sus cambios donde los necesite, en base a la versión recuperada

Y a medida que hace la sincronización mediante SQL puro, su 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.

00
2 0 0 45
Log in or sign up to continue