Si tienes una aplicación móvil o de cliente que genera un gran volumen de datos que deseas transmitir a MongoDB Atlas, puedes sincronizar datos unidireccionalmente utilizando Device Sync. Llamamos a la funcionalidad que permite esta sincronización unidireccional Data Ingest.
You might want to sync data unidirectionally in IoT applications, such as a weather sensor sending data to the cloud. Data Ingest is also useful for writing other types of immutable data where you do not require conflict resolution, such as creating invoices from a retail app or logging application events.
Data Ingest está optimizada para ofrecer mejoras de rendimiento en pesadas cargas de trabajo de lado del cliente centradas solo en inserciones. No puedes leer estos datos desde el realm donde los estás transmitiendo.
Actualmente, Data Ingest está disponible solo para los siguientes SDK de Realm:
SDK de C++
Kit de desarrollo de software .NET
Kotlin SDK
Node.js SDK
React Native SDK
Kit de desarrollo de software de Swift
Follow these high-level steps to get started:
Configurar Atlas Access
Crear una aplicación de Atlas App Services
La aplicación App Services es la puerta de entrada que permite que tu dispositivo cliente se conecte a MongoDB Atlas. Al crear una aplicación, debes ponerle nombre, vincularla a un clúster de Atlas y especificar el modelo de implementación y la región de implementación que mejor se adapten a tu aplicación.
Para saber cómo crear una aplicación de App Services,consulte Crear una aplicación.
Configure Device Sync and Data Ingest
Device Sync es el servicio que sincroniza los datos con Atlas y entre los dispositivos de sus clientes. Device Sync, junto con los SDK de Realm, gestiona automáticamente la conectividad de red, los permisos de usuario y la resolución de conflictos. La aplicación App Services proporciona la autenticación de usuario integrada que Device Sync y los SDK de Realm utilizan para proteger sus datos.
When you configure Device Sync, you specify the data source that the client devices can access as well as the permissions that determine what data a user can write.
Puede configurar la Sincronización de Dispositivos mediante la interfaz de usuario de Atlas, la interfaz de línea de comandos de los Servicios de Aplicaciones de Atlas o la API de administración de los Servicios de Aplicaciones. La primera vez que configure la Sincronización de Dispositivos, puede resultarle útil usar la interfaz de usuario de Atlas, ya que proporciona enlaces e información sobre diversas configuraciones y opciones.
Para habilitar la ingesta de datos para una o más colecciones, seleccione la colección o las colecciones en el Advanced Configuration Sección de la configuración de sincronización de dispositivos. Solo las colecciones con un esquema de servicios de aplicaciones están disponibles para seleccionar en este menú desplegable.
If you have not yet created a schema for the collection that you want to sync unidirectionally, you can either:
Genera un esquema de App Services a partir del modelo de objetos Realm. Consulta: Crea un esquema de App Services a partir de un modelo de objetos Realm.
Cree manualmente un esquema de App Services. Para obtener más información, consulte: Definir y aplicar un esquema.
Habilita un proveedor de autenticación
Your client devices must authenticate in order to access synced data. App Services provides several authentication providers, such as email/password or anonymous authentication, to enable your users to authenticate. Configure one or more of these authentication providers to enable authentication in your client application.
Puede configurar proveedores de autenticación dentro de la interfaz de usuario de App Services Authentication seleccionando en el menú de navegación izquierdo y, a continuación, haciendo clic en un proveedor para configurarlo. También puede configurar proveedores de autenticación editando la configuración de App Services con la interfaz de línea de comandos de Atlas App Services o con API de administración de servicios de aplicaciones.
Add Sync to the Client Application
Después de esto, tendrás todo lo que necesitas configurado en el lado de Atlas y podrás preparar tu aplicación cliente para sincronizar datos de forma unidireccional.
Conectar el cliente a un backend de App Services
In your client application code, initialize an App client to connect your client to your App Services backend. This lets your client use App Services features like authentication, and enables opening a synced realm.
Open a Synced Realm
Una vez que tenga un usuario autenticado, puede abrir una instancia sincronizada de Realm Database para usarla con ese usuario. Dado que la sincronización asimétrica es de solo escritura, no puede definir una consulta de sincronización flexible para leer datos en el dispositivo. Esto difiere de la sincronización flexible bidireccional, donde se crea una suscripción de consulta para determinar qué datos sincronizar con el dispositivo.
Crear objetos asimétricos y guardar datos
Los SDK de Realm proporcionan un tipo especial de objeto para la ingesta de datos: un objeto asimétrico. Consulte la documentación del SDK de Realm para obtener más información sobre cómo definir objetos asimétricos.
Crea y escribe objetos asimétricos en un Realm sincronizado, y los SDKs de Realm usan Device Sync para gestionar el proceso de transmisión de los datos de forma automática. Cuando el dispositivo cuenta con una conexión de red, los SDK transmiten los datos al backend de aplicación Services y a Atlas. Cuando el dispositivo no tiene una conexión de red, los datos persisten en el dispositivo y se suben automáticamente cuando se restablece la conexión de red.
Atlas Device Sync gestiona completamente el ciclo de vida de estos datos. Se mantiene en el dispositivo hasta que la sincronización de Data Ingest se completa y luego se elimina del dispositivo.