Servidor Couchbase

Migración de datos de MongoDB a Couchbase, Parte 2

Prolog

En artículo anterior proporcionaba detalles sobre cómo migrar un conjunto de datos MongoDB a Couchbase Server. Este artículo muestra cómo usar el SDK de Couchbase para acceder a los datos a través de una aplicación de consola Java. Los fragmentos de código muestran cómo conectarse al clúster de Couchbase, realizar operaciones clave/valor y ejecutar búsquedas secundarias mediante consultas N1QL junto con el código correspondiente para hacer lo mismo con el SDK Java de Mongo.

Todo el código de este blog está disponible en el siguiente repositorio Git: mongodb-to-couchbase.

Requisitos previos

Un clúster Couchbase que contenga el conjunto de datos según los detalles del artículo anterior.

Crear un usuario de aplicación

Antes de que un cliente (aplicación) pueda conectarse al cluster del Servidor Couchbase es necesario definir un usuario de aplicación que se utiliza para la autenticación por parte del cliente. Couchbase Control de acceso basado en funciones le permite definir usuarios y asignarles las funciones adecuadas. Utilice la consola web para crear un usuario de aplicación denominado mflix_client como sigue.

Ir a la Seguridad en la consola web y haga clic en AÑADIR USUARIO:

Configure el mflix_client usuario de la siguiente manera y haga clic en Añadir usuario:

  1. Nombre de usuario: mflix_client
  2. Contraseña: contraseña (o cualquier contraseña de su elección).
  3. Verificar contraseñaigual que Contraseña valor de arriba.
  4. Funciones: Ampliar la sample_mflix y seleccione Acceso a la aplicación. Los usuarios con el Función de acceso a aplicaciones tienen acceso completo de lectura y escritura a todos los datos del bucket sample_mflix. El rol no permite el acceso a la Consola Web de Couchbase: está pensado para aplicaciones, más que para usuarios.

En el Seguridad verás el nuevo usuario mflix_client:

Creación de índices para consultas N1QL

Índices secundarios en Couchbase Server soportan la ejecución eficiente de consultas (o búsquedas secundarias) al igual que los índices en MongoDB. Los ejemplos de código en este artículo ejecutan Consultas N1QL que utilizan dos índices que crearás ejecutando consultas N1QL. Vaya a la página Consulta en la consola web:

El primer índice está en el atributo name de todos los documentos de comentarios del bucket sample_mflix. Introduzca la siguiente sentencia N1QL en el archivo Editor de consultas:

Haga clic en Ejecute y después de unos momentos el creación de índices está completo:

El segundo índice se basa en los atributos year, imdb.rating y title de todos los documentos de películas del bucket sample_mflix. Introduzca la siguiente sentencia N1QL en el archivo Editor de consultas:

Haga clic en Ejecute y al cabo de unos instantes se habrá completado la creación del índice:

Ir a la Índices en la consola web para verificar que los índices idx1 & idx2 existe:

Convertir llamadas API de MongoDB en llamadas API de Couchbase

El código de ejemplo de este artículo utiliza los SDK Java de Couchbase y MongoDB y se proporciona sólo como ejemplo de cómo utilizar algunas de las API del SDK. Consulta los siguientes enlaces para obtener la documentación completa del SDK de Couchbase para tu idioma:

Conectarse a Couchbase Server

Para acceder a los recursos del clúster, los clientes deben autentifique pasando las credenciales apropiadas a Couchbase Server. El código de ejemplo utiliza las credenciales de usuario de la aplicación mflix_client creadas anteriormente para autenticar.

El siguiente ejemplo de código se conecta al cluster de Couchbase que se ejecuta en el nodo especificado, obtiene una referencia al bucket mflix_client, y una referencia a la colección por defecto en ese bucket.

Couchbase

MongoDB

Recuperar un documento por ID

Utiliza el Colección.get() para recuperar documentos completos por ID. El siguiente ejemplo de código recupera dos documentos de la colección predeterminada del bucket sample_mflix.

Couchbase

MongoDB

Insertar un nuevo documento

Utiliza el Colección.insertar() para crear un nuevo documento con el ID y el contenido especificados si aún no existe. El siguiente ejemplo de código inserta este documento en la colección predeterminada del bucket sample_mflix:

Couchbase

MongoDB

Insertar varios documentos nuevos

Operaciones de dosificación le permite aprovechar mejor su red y acelerar su aplicación aumentando el rendimiento de la red y reduciendo la latencia. Las operaciones por lotes funcionan mediante pipelining a través de la red. Cuando las solicitudes se canalizan, se envían en un gran grupo al clúster. El clúster, a su vez tuberías al cliente.

El siguiente ejemplo de código utiliza este enfoque para insertar dos nuevos documentos en el bucket sample_mflix.

Couchbase

MongoDB

Actualizar un documento existente

Utiliza el Colección.reemplazar() para actualizar un documento existente con el ID especificado sólo si ya existe. Couchbase admite operaciones con subdocumentos que puede utilizarse para acceder eficazmente a piezas de documentos. Las operaciones con subdocumentos pueden ser más rápidas y eficientes en red que documento completo porque sólo transmiten por la red las secciones del documento a las que se ha accedido. Las operaciones con documentos completos y subdocumentos son atómicas, lo que permite realizar modificaciones seguras en los documentos con control de concurrencia incorporado.

El siguiente ejemplo de código utiliza operaciones de subdocumento para actualizar el atributo de texto de un documento especificado.

Couchbase

MongoDB

Actualizar varios documentos

Además del acceso primario mediante API de clave/valor, también puede ejecutar consultas N1QL a través de las API N1QL. N1QL es un lenguaje declarativo para consultar, transformar y manipular datos JSON - piensa en SQL para JSON.

El siguiente ejemplo de código ejecuta una consulta N1QL para actualizar los atributos de nombre y correo electrónico de todos los documentos de comentarios cuyo nombre sea Anat Chase. Esta consulta utiliza el atributo idx1 creado anteriormente.

Couchbase

MongoDB

Actualizar o insertar un documento

Utiliza el Colección.upsert() para insertar el documento si no existe, o sustituirlo si existe. Si no existe un documento con el ID especificado, upsert() creará un nuevo documento. Si existe un documento con el ID especificado, upsert() actualizará el documento existente. El siguiente ejemplo de código actualiza un documento existente en el bucket sample_mflix.

Couchbase

MongoDB

Borrar un documento

Utiliza el Colección.eliminar() para eliminar un documento completo con el ID especificado. El siguiente ejemplo de código elimina un documento existente del bucket sample_mflix.

Couchbase

MongoDB

Borrar varios documentos

También puede utilizar consultas N1QL para eliminar documentos. El siguiente ejemplo de código ejecuta una consulta N1QL para eliminar varios documentos del bucket sample_mflix. Se eliminarán todos los documentos de comentarios cuyo nombre sea Anita Chase. Esta consulta utiliza el método idx1 creado anteriormente.

Couchbase

MongoDB

Acceso a datos con N1QL

N1QL también puede utilizarse para realizar búsquedas secundarias de datos más complicadas. El siguiente ejemplo de código ejecuta una consulta N1QL de bloqueo para seleccionar el título, el año y la calificación imdb de todos los documentos de películas cuyo año esté comprendido entre 1970 y 1979, ordenados por la calificación imdb. La consulta utiliza el método idx2 creado anteriormente.

Similar a operaciones reactivas clave/valor por lotes, consultas reactivas y asíncronas para un mejor rendimiento.

Couchbase

MongoDB

El futuro

Explore las otras capacidades del SDK de Couchbase incluyendo Analítica y Búsqueda de texto completo. Aproveche nuestra formación gratuita en línea disponible en https://learn.couchbase.com para obtener más información sobre Couchbase.

Para obtener información detallada sobre las ventajas arquitectónicas de la plataforma de datos Couchbase sobre MongoDB, consulte este documento: Couchbase: Mejor que MongoDB en todos los sentidos.

Descubra por qué otras empresas eligen Couchbase en lugar de MongoDB:

 

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

Autor

Publicado por Douglas Bonser, Ingeniero principal de soluciones, Couchbase

Douglas Bonser es Ingeniero Principal de Soluciones en Couchbase y lleva trabajando en TI y tecnología desde 1991. Reside en el área de Dallas/Ft. Worth.

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.