¡Bienvenido!

¡Comparta y comente sobre contenido e ideas acerca de Ignition! Este foro está dedicado a la comunidad hispana, con el objetivo de que exista un espacio en Español. 

Inscribirse

Esta pregunta ha sido marcada
1 Responder
235 Vistas

Para reducir el consumo de recursos de un proyecto que genera reportes con datos desde la base de datos se nos ha ocurrido separar los reportes a un motor de base de datos en la nube, pero no queremos duplicar los transaction groups ni los named query para que ambas bases de datos tengan la misma información.

¿Existe una plantilla o alguna documentación que me permita implementar una replicación de datos de la base de datos que utiliza un proyecto en particular hacia el mismo motor de base de datos pero en la nube?


Avatar
Descartar

Hola Néstor, un placer saludarte.

Después de analizar tu situación con la información generalizada brindada, puedo indicarte lo siguiente:

En base, lo que necesitas es un reflejo automatizado de los datos de la base de datos a nivel local hacia una base datos hosteada en la nube.

Bajo este contexto, darte una recomendación específica es difícil, ya que depende de las herramientas tecnológicas que estés implementando para dar una funcionalidad al sistema que posees. 

Sin embargo, a nivel conceptual, puedo brindarte una serie de recomendaciones que te brindarán un punto de partida para implementar esta funcionalidad en tu sistema:

1. En caso de que estés implementado el mismo tipo de servicios de bases de datos (por ejemplo MSSQL, MySQL, PostgreSQL, etc.) puedes verificar si se puede implementar el concepto de Database Mirroring, en el que suele configurarse una base de datos local y una base de datos remota para que sincronizen el contenido entre ambas y mantengan una coincidencia entre estas.

Este concepto se utilizaría en el caso de que se necesita una coincidencia completa entre los cambios realizados desde cualquiera de las bases de datos.

2. En caso de que estés implementando el mismo tipo de servicios de bases de datos (por ejemplo MSSQL, MySQL, PostgreSQL, etc.) puedes verificar si se puede implementar el concepto de Database Replication, en el que suele configurarse una base de datos local y una base de datos remota para que se realice una copia de los datos de la primera base a la segunda.

Este concepto se utilizaría en el caso de que se necesita una coincidencia de los cambios realizados desde de la base de datos local hacia la información base existente en la base de datos remota y que pueden realizarse cambios independientes en la segunda base de datos.

3. En caso de que estés implementando diferentes tipos de servicios de bases de datos (por ejemplo DBS usuales como MSSQL, MySQL, PostgreSQL, etc. con DBS usuales o de tipo servicio en la nube como AWS, Azure, Google Cloud, Snowflake, etc.) tendría que valorarse la implementación del concepto de servicios de DB API's o Database Injectors, que son servicios externos que permiten configurar la entrega de información para el almacenamiento de esta entre servicios distintos de bases de datos.

Esto suele utilizarse cuando se necesita un medio de sincronización entre distintos servicios de bases de datos, pero suelen ser productos personalizados hechos desde cero mediante codificación o productos más relacionados con Add Ons que se adquieren por aparte del servicio de base de datos.

Te adjunto algunos enlaces de interés para los distintos conceptos planteados:

En caso de Database Mirroring y Database Replication:

Database Mirroring (SQL Server)

SQL Server Replication

MySQL Replication

PostgreSQL Replication


Desarrollo de Database APIs:

How Does an API Work with A Database?


Database Injectors for Ignition:

AWS Cloud Injectors

Azure Cloud Injector

Google Cloud Injector

IoT Bridge for Snowflake


Además, adjunto en enlace complementario, que podría ser de interés, a un proyecto que utiliza IoT + Snowflake para subir los datos de un sistema IoT hasta un servidor en la nube MQTT y tener un flujo inmediato de datos hacia una DB en la nube de tipo Snowflake para obtener un dashboard completo:

Ignition + Cirrus Link IoT Bridge + Snowflake Dashboard


Cabe destacar que los conceptos propuestos inicialmente quedan por fuera del alcance general del soporte que brinda NV Tecnologías, ya que implican un uso de servicios de administradores de bases de datos o programas Third Party que no se encuentran entre nuestro catálogo de productos. Quedan excluidos de esta afirmación los módulos de Database injectors para Ignition, ya que son de nuestra pertinencia.

Déjame sabe si es de utilidad la información brindada.

Avatar
Descartar