Diseño de aplicaciones

Modelado de datos para Couchbase con erwin DM NoSQL

Lectura de 6 minutos

Dada la arquitectura y el diseño de los sistemas NoSQL, especialmente las bases de datos de la familia de documentos como Couchbase que no imponen un esquema en la escritura, el modelado de datos para NoSQL suele ser un desafío al migrar de sistemas relacionales a NoSQL o al construir aplicaciones desde cero usando NoSQL. De hecho, el modelado de datos suele ser un factor crítico de éxito para las implementaciones de Couchbase, y optimizar progresivamente los modelos de datos puede ser un gran impulsor del rendimiento de las aplicaciones 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, lo que sentaba las bases para un buen diseño de bases de datos. El modelado para NoSQL, por otro lado, explora 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 deben admitirse y se centra en la mejor manera de organizar los datos para optimizar el rendimiento. Estas consideraciones nos llevan a cambiar nuestro enfoque de modelado de datos desde las restricciones tradicionales de los RDBMS (esquema al escribir) hacia el modelado de datos para la aplicación específica (esquema al leer).

Otro diferenciador entre los sistemas RDBMS y NoSQL que impacta en los paradigmas de modelado es el concepto de normalización y desnormalización de datos. Si bien los sistemas RDBMS enfatizaban la normalización de datos para comprender relaciones estrictas y cumplir con limitaciones rígidas de almacenamiento en el pasado, los sistemas NoSQL flexibles tienden hacia la desnormalización de 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, según el caso de uso.

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

Ahora, profundicemos en el modelado utilizando erwin DM NoSQL. erwin DM NoSQL ofrece tres funcionalidades principales:

Ingeniería directa

El proceso de convertir sus modelos relacionales en modelos JSON compatibles con Couchbase.

Transformación

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

Ingeniería inversa

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

La siguiente es la guía paso a paso para modelar datos para Couchbase Data Platform utilizando erwin DM NoSQL:

Configuración:

Paso 1:

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

Paso 2:

Importe un modelo Entidad-Relación generado en erwin DM o en cualquier otra herramienta de modelado relacional en formato “XML” utilizando la opción de importación en erwin DM NoSQL.

Paso 3:

Visualiza tus diagramas ER en el entorno de erwin.

Transformación

Paso 1:

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

Paso 2:

Transformación normalizada:

La normalización suele ser el proceso de organizar los datos en la base de datos creando tablas separadas y estableciendo relaciones para eliminar la duplicación. Por lo general, se hace referencia a los objetos o entidades en este proceso. Al crear modelos JSON, las tablas referenciadas normalmente serían documentos separados.

b. Transformación desnormalizada:

En este proceso, los objetos de datos suelen estar incrustados. Dado que se incrustan objetos similares en muchos documentos, esta organización presenta redundancia. A menudo se recurre a la desnormalización para mejorar significativamente el rendimiento, ya que no necesitamos uniones para recuperar los datos necesarios. Esto se adopta con frecuencia 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 del pedido son objetos incrustados, mientras que la editorial, el nombre de la tienda y la devolución de libro son objetos referenciados.

c. Transformación personalizada:

Erwin DM NoSQL normalmente analiza la organización de los datos utilizando su diagrama E-R y transforma sus modelos en modelos JSON compatibles con Couchbase basándose en ciertas reglas. Sin embargo, dado que usted, como desarrollador o propietario de una aplicación, es quien mejor la conoce, le ofrecemos la capacidad de personalizar sus modelos. Tiene la opción de referenciar ciertos objetos incrustados y le proporcionamos algunas pautas dentro de la herramienta para ayudarle a tomar la decisión correcta.

Nota: Puedes clonar cualquiera de estos modelos y modificarlos agregando o eliminando atributos, propiedades, etc.,

Ingeniería directa

Paso 1:

Descarga el modelo creado en tu sistema local.

Paso 2:

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


Paso 3:

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

Sintaxis (OSX): scp -i path to key -r path to directory ec2-user@hostname:~

Ej: scp -i /Users/chaitra.ramarao/Downloads/US_East.pem -r /Users/chaitra.ramarao/Downloads/Cl_De_EMOVIES r9.64_20180329185059 ec2-user@ec2-54-152-108-80.compute-1.amazonaws.com:~

Paso 4:

Inicia sesión en tu instancia de AWS usando ssh

Sintaxis (OSX):ssh -i ruta/al/key.pair ec2-user@ip.remota

Ex: ssh -i /Users/chaitra.ramarao/Downloads/US_East.pem ec2-user@ec2-34-203-230-73.compute-1.amazonaws.com

Paso 5:

Verifica si los archivos se copiaron listándolos usando “ls”

Paso 6:

Navegue al archivo bulkInsert.sh

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

Paso 7:

Haz que el archivo bulkInsert sea ejecutable y establece la ruta

Chmod +x bulkInsert.sh

PATH=/opt/couchbase/bin:$PATH

Paso 8:

Ejecutar el script bulkInsert con la siguiente sintaxis

./bulkInsert.sh    

Ej : ./bulkInsert.sh localhost 8091 Administrator password sample

Puedes ver los datos de muestra modelados cargados en Couchbase con el nombre del bucket especificado por ti.

El script suele crear modelos con datos basura, y los desarrolladores de la aplicación pueden modificarlo para crear modelos con muestras de datos reales y usarlos para implementarlos en Couchbase utilizando los scripts de implementación proporcionados.

También puede consultar los datos una vez cargados en Couchbase utilizando N1QL (SQL para JSON) y probar la precisión y eficiencia de sus modelos mediante el banco de trabajo de consultas y el planificador de consultas.

Ingeniería inversa

Paso 1:

Establezca la conexión con Couchbase usando el administrador de conexiones como se muestra a continuación:

Paso 2:

Elegir ingeniería inversa en Couchbase

Paso 3:

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

Paso 4:

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

Continúe ajustando sus modelos periódicamente para garantizar que estén optimizados y ofrezcan el mejor rendimiento.

El modelado de datos con erwin lo 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. Unos mejores modelos de datos garantizan un mejor rendimiento y un mayor éxito con Couchbase.

Comparta sus comentarios aquí o comuníquese con nosotros en forums.couchbase.com

Compartir este artículo

Autor

Chaitra Ramarao es gerente senior de productos en Couchbase, una empresa de bases de datos NoSQL, donde lidera las herramientas de bases de datos, la replicación entre centros de datos y las integraciones de socios. Sus puestos anteriores incluyen la gestión de productos de análisis de datos para Kaiser Permanente y el desarrollo de software para Hewlett Packard. Tiene una licenciatura en ingeniería en electrónica y comunicaciones y una maestría de Carnegie Mellon en gestión de ingeniería e innovación tecnológica.

Deja un comentario

¿Listo para comenzar con Couchbase Capella?

Comenzar a construir

Visita nuestro portal para desarrolladores para explorar NoSQL, consultar recursos y comenzar con los tutoriales.

Usa Capella gratis

Empieza a usar Couchbase en tan solo unos clics. Capella DBaaS es la forma más fácil y rápida de comenzar.

Ponte en contacto

¿Quieres saber más sobre las ofertas de Couchbase? Permítenos ayudarte.