CSV (Comma-seperated values) es un formato de archivo que se puede exportar desde una base de datos relacional (como Oracle o SQL Server). Puede ser importado a Couchbase Server con el comando cbimport utilidad.

Nota: cbimport viene con Couchbase Enterprise Edition. Para Couchbase Community Edition, puede utilizar la versión más limitada cbtransfer o utilice cbdocloader si JSON es una opción.

Un ETL relacional→CSV→Couchbase directo probablemente no va a ser la solución completa para la migración de datos. En un post posterior, escribiré sobre las decisiones de modelado de datos que tendrás que considerar. Pero es un punto de partida: considera estos datos como "por etapas".

Nota: para este post, estoy usando SQL Server y un cluster de Couchbase Server, ambos instalados localmente. Los pasos serán similares para SQL Server, Oracle, MySQL, PostgreSQL, etc.

Exportar a CSV

Lo primero que hay que hacer es exportar a CSV. Tengo una base de datos relacional con dos tablas: Facturas e InvoiceItems.

Relational tables example

Voy a exportar los datos de estas dos tablas a dos archivos CSV. Con SQL Server Management Studio, esto se puede hacer de diferentes maneras. Puede utilizar sqlcmd o bcp en la línea de comandos. O puede utilizar el comando de Powershell Invocar-Sqlcmd y canalizarlo a través de Exportar-Csv. También puede utilizar la interfaz de usuario de SQL Server Management Studio.

Export CSV from SQL Server Management Studio

Otras bases de datos relacionales dispondrán de utilidades de línea de comandos, herramientas de interfaz de usuario, etc. para exportar CSV.

A continuación se muestra un ejemplo de exportación a CSV de una tabla denominada "Facturas":

A continuación se muestra una exportación de una tabla relacionada denominada "InvoiceItems":

Cargar CSV en Couchbase

Vamos a importarlos a un bucket de Couchbase. Asumiré que ya has creado un bucket vacío llamado "staging".

En primer lugar, vamos a importar invoices.csv.

Carga de facturas

Nota: con Linux/Mac, en lugar de C:Archivos de programaCouchbase\Server\binel camino será diferente.

Vamos a desglosarlo:

  • cbimport: Esta es la utilidad de línea de comandos que está utilizando

  • csv: Estamos importando desde un archivo CSV. También puede importar desde archivos JSON.

  • -c localhost: La ubicación de su clúster de Couchbase Server.

  • -u Administrador -p contraseña: Credenciales para su cluster. Esperamos que sus credenciales sean más seguras que las de este ejemplo.

  • -b puesta en escena: El nombre del bucket de Couchbase en el que quieres que terminen los datos

  • -generar-clave-factura::%Id% La plantilla que se utilizará para crear claves únicas en Couchbase. Cada línea del CSV corresponderá a un único documento. Cada documento necesita una clave única. Decidí usar la clave primaria (entero) con un prefijo indicando que es un documento de factura.

El resultado final de importar un archivo de 3 líneas son 3 documentos:

CSV documents imported into Couchbase

En este punto, el cubo de puesta en escena sólo contiene documentos de factura, por lo que es posible que desee realizar transformaciones ahora. Puede que lo haga en ejemplos de modelado posteriores, pero por ahora pasemos al siguiente archivo.

Carga de partidas de factura

Esto es casi idéntico a la última importación. Una diferencia es que se trata de un nuevo fichero (invoice_items.csv). Pero la diferencia más importante es -generar-clave. Estos registros sólo contienen claves externas, pero cada documento en Couchbase debe tener una clave única. En última instancia, podemos decidir incrustar estos registros en sus documentos de factura padre. Pero por ahora he decidido utilizar UUID para generar claves únicas para los registros.

El resultado final de importar este archivo de 10 líneas son 10 documentos más:

More CSV documents imported into Couchbase

¿Y ahora qué?

Una vez que tienes un archivo CSV, es muy fácil introducir datos en Couchbase. Sin embargo, este tipo de traducción directa a menudo no va a ser suficiente por sí sola. He explorado algunos aspectos del modelado de datos en un entrada anterior sobre la migración desde SQL Serverpero pronto volveré sobre este ejemplo de Facturas en una entrada de actualización del blog.

Mientras tanto, no deje de visitar Cómo Couchbase supera a Oracle para obtener más información sobre por qué las empresas están sustituyendo a Oracle para determinados casos de uso. Y también eche un vistazo al Pasar de Relational a NoSQL: Cómo empezar libro blanco.

Si tiene alguna pregunta o comentario, no dude en dejarlos aquí, póngase en contacto conmigo en Twitter @mgroveso formule su pregunta en el Foros de Couchbase.

Autor

Publicado por Matthew Groves

A Matthew D. Groves le encanta programar. No importa si se trata de C#, jQuery o PHP: enviará pull requests para cualquier cosa. Lleva codificando profesionalmente desde que escribió una aplicación de punto de venta en QuickBASIC para la pizzería de sus padres, allá por los años noventa. Actualmente trabaja como Director de Marketing de Producto para Couchbase. Su tiempo libre lo pasa con su familia, viendo a los Reds y participando en la comunidad de desarrolladores. Es autor de AOP in .NET, Pro Microservices in .NET, autor de Pluralsight y MVP de Microsoft.

Dejar una respuesta