Diseño de aplicaciones

Modelado de datos para Couchbase con erwin DM NoSQL

Dada la arquitectura y el diseño de los sistemas NoSQL, especialmente la familia de bases de datos de documentos como Couchbase que no imponen el esquema en la escritura, el modelado de datos para NoSQL a menudo puede ser un reto al migrar de sistemas relacionales a NoSQL o al construir aplicaciones desde cero utilizando NoSQL. De hecho, el modelado de datos es a menudo un factor crítico de éxito para los despliegues de Couchbase, y la optimización progresiva de los modelos de datos puede ser un gran impulsor del rendimiento de la aplicación dada la naturaleza de rápida evolución de las aplicaciones de big data.

Tradicionalmente, el modelado de datos para sistemas relacionales era la ciencia de identificar los objetos de datos, sus relaciones entre sí y su representación precisa, que sentaba las bases para un buen diseño de la base de datos. El modelado para NoSQL, por otro lado, explora los patrones de acceso específicos de la aplicación, por ejemplo, "¿cuáles son los tipos de preguntas que a los usuarios les gustaría responder con estos datos?". Esto a su vez dicta el tipo de consultas que necesitan ser soportadas y se centra en la mejor manera de disponer los datos para la optimización del rendimiento. Estas consideraciones nos llevan a cambiar nuestro enfoque de modelado de datos, pasando de las restricciones tradicionales de los RDBMS (esquema en escritura) al modelado de datos para la aplicación específica (esquema en lectura).

Otra diferencia entre los sistemas RDBMS y NoSQL que afecta a los paradigmas de modelado es el concepto de normalización y desnormalización de los datos. Mientras que los sistemas RDBMS hacían hincapié en la normalización de los datos para comprender las relaciones estrictas y cumplir con las rígidas limitaciones de almacenamiento de antaño, los sistemas NoSQL flexibles se inclinan por la desnormalización de los datos, ya que los datos se distribuyen en clústeres y la redundancia puede facilitar el escalado de las lecturas de datos. A menudo, el modelo de datos ideal es una combinación de ambos enfoques, dependiendo del caso de uso.

Por lo tanto, el modelado preciso de los datos sigue siendo una disciplina fundamental para el éxito con las bases de datos NoSQL.

Ahora, vamos a sumergirnos en el modelado utilizando erwin DM NoSQL. erwin DM NoSQL ofrece tres funcionalidades principales:

Ingeniería avanzada

El proceso de convertir tus modelos relacionales a modelos JSON compatibles con Couchbase.

Transformación

Posibilidad de elegir la forma de transformación deseada (normalizada, desnormalizada, personalizada) para sus modelos.

Ingeniería inversa

Posibilidad de importar el esquema de datos de producción en Couchbase al entorno erwin.

La siguiente es la guía paso a paso para modelar datos para la Plataforma de Datos Couchbase usando erwin DM NoSQL:

Preparados:

Primer paso:

Solicitud de cuenta aquí e inicie sesión en erwin DM NoSQL utilizando sus credenciales.

Segundo paso:

Empujar un modelo Entidad-Relación generado desde erwin DM o cualquier otra herramienta de modelado relacional en formato "XML" utilizando la opción de importación a erwin DM NoSQL.

Paso 3:

Visualice sus diagramas ER en entorno erwin.

Transformación

Primer paso:

Elija transformar los modelos utilizando una transformación normalizada, desnormalizada o personalizada.

Segundo paso:

a.Transformación normalizada:

La normalización suele ser el proceso de organización de los datos en la base de datos mediante la creación de tablas separadas y el establecimiento de relaciones para eliminar duplicaciones. Los objetos o entidades de este proceso suelen estar referenciados. Al crear modelos JSON, las tablas referenciadas suelen ser documentos independientes.

b.Transformación desnormalizada:

En este proceso, los objetos de datos suelen estar incrustados. Dado que objetos similares están incrustados en muchos documentos, esta organización presenta redundancia. La desnormalización suele mejorar significativamente el rendimiento, ya que no se necesitan uniones para obtener los datos necesarios. Esto se adopta a menudo en los sistemas NoSQL. En esta herramienta, el modelo transformado generado mediante la desnormalización es una combinación de objetos incrustados y referenciados.

En la figura anterior, la orden de compra y el artículo de la orden son objetos incrustados, mientras que Publisher, Store name y BookReturn son objetos referenciados.

c.Transformación personalizada:

El erwin DM NoSQL típicamente analiza la organización de datos usando tu diagrama E-R y transforma tus modelos a modelos JSON compatibles con Couchbase basados en ciertas reglas. Sin embargo, dado que tú, como desarrollador o propietario de una aplicación, eres quien mejor conoce tu aplicación, te ofrecemos la posibilidad de personalizar tus modelos. Tienes la opción de hacer referencia a ciertos objetos incrustados y te proporcionamos algunas directrices dentro de la herramienta para ayudarte a tomar la decisión correcta.

Nota: Puede clonar cualquiera de estos modelos y modificarlos añadiendo o eliminando atributos, propiedades, etc,

Ingeniería de avance:

Primer paso:

Descargue el modelo creado en su sistema local.

Segundo paso:

Configurar clústeres de Couchbase en AWS y acceder a la consola web mediante el puerto 8091


Paso 3:

Utiliza la copia segura y copia el archivo descargado desde tu máquina local a tu instancia EC2 de Couchbase.

Sintaxis (OSX): scp -i ruta a la clave -r ruta al directorio ec2-user@hostname:~

Ejemplo: scp -i /Usuarios/chaitra.ramarao/Descargas/US_East.pem -r /Usuarios/chaitra.ramarao/Descargas/Cl_De_EMOVIES\ r9.64_20180329185059 ec2-user@ec2-54-152-108-80.compute-1.amazonaws.com:~

Paso 4:

Inicie sesión en su instancia de AWS mediante ssh

Sintaxis(OSX):ssh -i ruta a key.pair ec2-user@remote ip

Ej: ssh -i /Usuarios/chaitra.ramarao/Descargas/US_East.pem ec2-user@ec2-34-203-230-73.compute-1.amazonaws.com

Paso 5:

Comprueba si los archivos se han copiado listándolos con "ls".

Paso 6:

Vaya al archivo bulkInsert.sh

Ej:Cd /De_peliculas../scripts/5.x para localizar bulkInsert.sh

Paso 7:

Convierte el archivo bulkInsert en un ejecutable y establece la ruta

Chmod +x bulkInsert.sh

PATH=/opt/couchbase/bin:$PATH

Paso 8:

Ejecute el script bulkInsert con la siguiente sintaxis

./bulkInsert.sh

Ej : ./bulkInsert.sh localhost 8091 Ejemplo de contraseña de administrador

Puede ver los datos de muestra modelados cargados en Couchbase con el nombre de bucket especificado por usted.

El script típicamente crea modelos sobre datos basura, puede ser modificado por los desarrolladores de aplicaciones para crear modelos para muestras de datos reales y usarlos para desplegar a Couchbase usando los scripts de despliegue proporcionados.

También puedes consultar los datos una vez cargados en Couchbase usando N1QL (SQL para JSON) y probar la precisión y eficiencia de tus modelos usando Query workbench y query planner.

Ingeniería inversa:

Primer paso:

Configure la conexión a Couchbase utilizando el gestor de conexiones como se muestra a continuación:

Segundo paso:

Elija Couchbase mediante ingeniería inversa

Paso 3:

Importación de esquemas de datos de producción de Couchbase

Paso 4:

Visualizar los modelos Couchbase de ingeniería inversa en entorno erwin  

Siga ajustando sus modelos periódicamente para asegurarse de que están optimizados para ofrecer el mejor rendimiento.

El modelado de datos mediante erwin le ayudará a acelerar su tiempo de comercialización, le proporcionará la interfaz para visualizar su proceso de modelado y mejorará enormemente la precisión de sus modelos. Mejores modelos de datos garantizan un mejor rendimiento y un éxito más sólido con Couchbase.

Comparta aquí sus comentarios o póngase en contacto con nosotros en forums.couchbase.com.

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

Autor

Publicado por Chaitra Ramarao, Sr. Director de producto, Couchbase Inc.

Chaitra Ramarao es gestora sénior de productos en Couchbase, una empresa de bases de datos NoSQL que lidera las herramientas de bases de datos, la replicación entre centros de datos y las integraciones de socios. Anteriormente trabajó en la gestión de productos de análisis de datos para Kaiser Permanente y en el desarrollo de software para Hewlett Packard. Es licenciada en ECE y tiene un máster de Carnegie Mellon en Ingeniería y Gestión de la Innovación Tecnológica.

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.