Eventos

Migración y transformación de datos basada en eventos con el servicio de eventos Couchbase

Las migraciones de datos modernas rara vez implican un simple traslado; requieren transformación, limpieza y enriquecimiento para que las aplicaciones puedan aprovechar inmediatamente las ventajas de la plataforma de destino. El servicio Eventing de Couchbase Capella permite realizar transformaciones en línea impulsadas por eventos a medida que llegan los datos, lo que permite a los equipos remodelar esquemas, normalizar valores, enriquecer con metadatos y preparar documentos para SQL++, búsqueda, análisis y sincronización móvil desde el principio.

Objetivos

      • Ofrece un patrón de migración repetible y basado en eventos desde cualquier base de datos relacional o no relacional a Couchbase Capella, que transforma los datos en tiempo real para su uso inmediato en aplicaciones y análisis.
        En este ejemplo, utilizaremos MongoDB Atlas como base de datos de origen.
      • Proporcionar una implementación de referencia mínima y lista para la producción utilizando cbimport y Capella Eventing para convertir esquemas de origen (por ejemplo, decimales, estructuras anidadas, identificadores) en modelos optimizados para consultas.
      • Describa las medidas de seguridad operativas, los requisitos previos y los pasos de validación para que los equipos puedan trabajar con confianza, con resultados predecibles y opciones de reversión si fuera necesario.

¿Por qué la migración basada en eventos?

      • La transformación en línea reduce el trabajo posterior a la migración al aplicar la normalización y el enriquecimiento del esquema a medida que llegan los documentos, lo que acelera la transición y reduce el riesgo.
      • Las funciones de eventos mantienen las transformaciones controladas por el código fuente y auditables, por lo que los cambios son coherentes, comprobables y repetibles en todos los entornos.
      • El resultado son datos listos para Capella que admiten SQL++, búsqueda de texto completo, búsqueda vectorial, análisis y servicios de aplicaciones sin fases de refactorización intermedias.

Requisitos previos

      • Instale Herramientas de base de datos MongoDB (incluye mongoexport, mongoimport, etc.)
      • Descargar Couchbase CLI
      • Cuenta Capella de pago y acceso al clúster, con las direcciones IP permitidas configuradas y el certificado raíz de Capella descargado y guardado como ca.pem
      • Cree los siguientes artefactos en Couchbase Capella:
          1. Un cubo con nombre: Prueba
          2. Alcance bajo cubeta: Prueba con nombre: muestra_airbnb
          3. Dos colecciones con nombres listadoYreseñasTemp y listado y reseñas
          4. Una función Javascript con nombre transformación de datos
            Haga clic para ver los videos a continuación y vea el Configuración de Capella y creación de acceso al clúster pasos.
      • Credenciales con acceso de lectura/escritura al bucket/ámbito/colecciones de destino y herramientas CLI instaladas para las utilidades de importación cbimport y exportación MongoDB.
      • Cadenas de conexión para MongoDB Atlas (fuente) y Couchbase Capella (destino), además de una colección temporal para la ingesta inicial antes de la transformación.

Ejemplo de código fuente utilizando MongoDB Atlas

Un documento representativo de Airbnb ilustra las necesidades de transformación más comunes: normalización decimal, manejo de identificadores, campos anidados y aplanamiento para mejorar el rendimiento de las consultas.

Algunos ejemplos de campos son: url_del_anuncio, metadatos del anfitrión, dirección con coordenadas y envoltorios decimales para campos como baños y precio utilizando el formato JSON extendido de MongoDB.

Patrón de transformación de eventos

      • Utilice una colección temporal como fuente de Eventing (listadoYreseñasTemp) y una colección de destinos (listado y reseñas) para que los documentos transformados mantengan la migración. idempotente y comprobable.
      • Convertir los decimales JSON extendidos de MongoDB a números nativos, renombrar campos para facilitar la lectura del dominio, derivar una clave Couchbase a partir de la original. _id, y sellar los documentos con migrado_en.

Paso 1: Exportar desde MongoDB

Exportar documentos a JSON utilizando mongoexport con –jsonArray para generar una lista limpia para la importación por lotes en Couchbase.

Siga este video sobre la ejecución del comando de exportación de Mongo:

Ejemplo de sintaxis:

Paso 2: Implementar Eventing

      • Configure la función Eventing con la colección temporal como fuente (listadoYreseñasTemp) y la colección de destino (listado y reseñas) como destino, y luego impleméntelo para transformar y escribir documentos automáticamente.
      • Supervise las métricas de éxito y los registros en Eventing; verifique los recuentos y las muestras aleatorias en Data Tools para confirmar la fidelidad y la conformidad con el esquema.
      • Ver el video para la configuración y la implementación

Código: Función de eventos (OnUpdate)

Paso 3: Importar a la colección temporal

Ingesta JSON exportado en una colección temporal (listadoYreseñasTemp) utilizando cbimport con formato de lista y certificado TLS de Capella.

Ejemplo de sintaxis:

Ver el Importación de datos de Couchbase pasos:

Mantenga vacía la colección de destino durante esta fase: Eventing la rellenará después de la transformación.


Lista de verificación de validación

      • El recuento de documentos entre el origen y el destino transformado se ajusta a las variaciones esperadas para los campos filtrados y las transformaciones.
      • Los campos numéricos analizados a partir de JSON extendido (por ejemplo, precio, baños) coinciden con los rangos numéricos esperados, y las claves se asignan uno a uno con los ID originales.
      • Las consultas representativas en SQL++ (búsqueda por host, proximidad geoespacial por coordenadas, filtros de rango de precios) devuelven los resultados esperados en los datos transformados.
      • Al importar documentos a Couchbase, el nuevo ID será UUID en la colección listingAndReviewsTemp.
      • El script de eventos proporcionado eliminará _id campo del identificador único de MongoDB, cambie el campo ID del documento de UUID al valor de _id tal y como estaba en MongoDB
      • Ver el validación de importación vídeo

Consejos operativos

      • Ejecutar primero en lotes pequeños para validar el rendimiento de Eventing y la postura de relleno; ampliar una vez que el rendimiento de la transformación sea estable.
      • Mantenga la función Eventing versionada; pruebe los cambios en entornos que no sean de producción con colecciones idénticas y una instantánea de los datos exportados antes de promocionarlos.
      • Aplicar TTL en la recopilación temporal listadoYreseñasTemp para ahorrar en costos de almacenamiento. Leer Más información sobre TTL en la documentación de Couchbase

Casos de uso ampliados

      • Comercio electrónico: normalice los precios y las divisas, enriquezca con el estado del inventario y desnormalice los atributos de las referencias para agilizar las consultas sobre los detalles de los productos.
      • Tuberías de IoT: agregue las lecturas de los sensores por dispositivo/ventana de tiempo y marque las anomalías en la ingesta para reducir la latencia del procesamiento posterior.
      • Perfiles de usuario: estandarice los correos electrónicos y números de teléfono, obtenga campos geográficos y adjunte metadatos de consentimiento y auditoría para obtener conjuntos de datos listos para el cumplimiento normativo.
      • Consolidación de múltiples bases de datos: armoniza esquemas heterogéneos en un modelo unificado que se adapta a las funciones SQL++, FTS y Vector Search de Capella.
      • Catálogos de contenido: aplana los metadatos multimedia anidados, extrae palabras clave buscables y calcula previamente facetas para experiencias de descubrimiento de baja latencia.
      • Registros financieros: convierta tipos decimales y de fecha, adjunte etiquetas de linaje y conciliación, y envíe las excepciones para su revisión manual en el momento de la ingesta.

¿Qué sigue?

      • Agregue sincronización incremental reutilizando la colección temporal como zona de aterrizaje para los deltas y permitiendo que Eventing realice inserciones y actualizaciones en el destino para una migración continua.
      • Aplique FTS e índices vectoriales sobre documentos transformados para habilitar patrones de búsqueda semánticos e híbridos después de la transición sin ciclos de reindexación.
      • Transmita continuamente los datos de diversas fuentes relacionales y no relacionales a Couchbase para escenarios de migración de datos en vivo utilizando tecnologías de transmisión de datos o ETL. Algunos ejemplos son:

Conclusión

La migración basada en eventos convierte una transferencia única en un canal de transformación duradero que genera datos limpios y listos para consultar en Capella con un trabajo de posprocesamiento mínimo. Al exportar desde MongoDB, importar a una colección temporal y aplicar una transformación Eventing controlada, el modelo de destino está listo para SQL++, Search, Analytics y App Services desde el primer día.

Empezar gratis

Inicie un entorno Capella y pruebe este patrón de principio a fin con una pequeña muestra para validar las asignaciones, el rendimiento y el comportamiento de las consultas antes de escalar.

Inicie su clúster de nivel gratuito Regístrese para obtener el nivel gratuito ¡para realizar su experimento hoy mismo!

Comparte este artículo
Recibe actualizaciones del blog de Couchbase en tu bandeja de entrada
Este campo es obligatorio.

Autor

Publicado por Kishor Deshpande - Ingeniero de soluciones

Deja un comentario

¿Listo para empezar con Couchbase Capella?

Empezar a construir

Consulte nuestro portal para desarrolladores para explorar NoSQL, buscar recursos y empezar con tutoriales.

Utilizar Capella gratis

Ponte manos a la obra con Couchbase en unos pocos clics. Capella DBaaS es la forma más fácil y rápida de empezar.

Póngase en contacto

¿Quieres saber más sobre las ofertas de Couchbase? Permítanos ayudarle.