Hace seis mil años, los sumerios inventaron la escritura para procesar transacciones - Gray & Reuter

Se mire por donde se mire, MongoDB es una popular base de datos JSON orientada a documentos. En la última docena de años, ha crecido desde sus humildes comienzos de un único bloqueo por base de datos a una moderna transacción multi-documento con aislamiento instantáneo. MongoDB University ha formado a un gran número de desarrolladores para que desarrollen en la base de datos MongoDB.

Actualmente existen muchas bases de datos JSON. Aunque es fácil empezar con MongoDB para aprender NoSQL y el esquema JSON flexible, muchos clientes eligen Couchbase por rendimiento, escala y SQL. A medida que avances en la evaluación y evolución de tu base de datos, deberías aprender sobre otras bases de datos JSON. Estamos trabajando en un curso de formación online para que los expertos en MongoDB aprendan Couchbase fácilmente. Hasta que lo publiquemos, tendrás que leer este artículo :-) 

Si conoces RDBMS como Microsoft SQL Server y Oracle, tenemos cursos fáciles de seguir para aprender a hacer el mapeo de tus conocimientos de bases de datos a Couchbase con estos dos cursos:

  1. CB116m - Introducción a Couchbase para expertos en MSSQL
  2. CB116o - Introducción a Couchbase para expertos de Oracle

RESUMEN

MongoDB y Couchbase tienen muchas cosas en común. Ambos son NoSQL bases de datos distribuidas; Ambos utilizan el modelo JSON; Ambos tienen lenguajes de consulta de alto nivel con soporte para operaciones select-join-project; Ambos tienen índices secundarios; Ambos tienen un optimizador que elige el plan de consulta automáticamente. Ambos soportan la replicación intra- e inter-cluster.

Como era de esperar, hay diferencias. Algunas son más significativas que otras. Couchbase está diseñado para ser distribuido desde el principio. Por ejemplo, el contenedor de datos Bucket está siempre distribuido - sin nada que fragmentar. Simplemente añade nuevos nodos y el sistema distribuirá automáticamente. La replicación dentro del clúster no requiere nuevos servidores: basta con establecer el número de réplicas y listo. Desde el punto de vista de la interacción del desarrollador, la gran diferencia es el lenguaje de consulta en sí: MongoDB tiene un lenguaje de consulta propio y Couchbase tiene N1QL - SQL para JSON. MongoDB también utiliza su índice basado en B-Tree para la búsqueda y recientemente ha publicado 1TP4Buscarbeta para el servicio Atlas utilizando Apache Lucene; Couchbase tiene una función integrada de Búsqueda de texto completo.

Con suerte, las diferencias en Couchbase son las que hacen tu vida más fácil. Vamos a profundizar.

TEMAS DE ALTO NIVEL

  1. Recursos
  2. Arquitectura
  3. Objetos de la base de datos
  4. Tipos de datos
  5. Modelo de datos
  6. SDK
  7. Lenguaje de consulta
  8. Índices
  9. Optimizador
  10. Transacciones
  11. Analítica

RECURSOS

ARQUITECTURA

Versión portátil: 

MongoDB:  Simplemente instale y utilice el Mongodb en su ordenador portátil con los parámetros adecuados; usted está listo y funcionando. Un solo proceso para manejar toda la base de datos. Esto ha cambiado un poco en 4.2 donde necesitarías mongos para ejecutar tus transacciones. Todas las características de MongoDB (datos, indexación, consulta) están disponibles aquí - excepto la búsqueda de texto completo disponible sólo en el servicio Atlas.

 

 

 

 

Couchbase: Couchbase es diferente. Se ha abstraído cada uno de los servicios (datos, índice, consulta, búsqueda, análisis, eventos) y usted tiene la opción de elegir cuál de las características que desea ejecutar en su instancia para optimizar los recursos. Una instalación típica tiene datos, índice y consulta. La búsqueda, los eventos y los análisis se ejecutarán en su portátil: instálelos y utilícelos según su caso de uso.

 

 

 

Despliegue en clúster: Como la mayoría de las bases de datos NoSQL, tanto MongoDB como Couchbase pueden escalarse. En MongoDB, puedes escalar mediante fragmentación la colección en varios nodos. Se puede dividir por hash o por rango. Sin una división explícita, cada colección permanece en una única división. Los servidores de configuración almacenan los metadatos y la configuración del cluster. MongoDB se distribuye uniformemente y Couchbase se distribuye multidimensionalmente. El proceso (servicio) de Mongodb gestiona los datos, el índice y la consulta en cada fragmento (nodo), mientras que Mongos realiza el procesamiento distribuido de la consulta y la fusión de los resultados intermedios y no gestiona ningún dato o índice. Mongos actúa como coordinador y mongodb es la abeja obrera. 

Couchbase puede desplegarse en una distribución uniforme en la que cada nodo gestiona los datos y todos los servicios: datos, índices, consultas, análisis y eventos. Cada servicio es una capa de la base de datos tradicional. Estos servicios están débilmente acoplados: se ejecutan en diferentes espacios de proceso y se comunican a través de una red. Por tanto, pueden desplegarse uniformemente en un único nodo o distribuirse multidimensionalmente en un clúster. La elección depende de la carga de trabajo y de los acuerdos de nivel de servicio. Los datos se almacenan en buckets. Todos los buckets están particionados por hash entre nodos determinados - esto es automático y no requiere ninguna especificación. Cuando la aplicación dispone de las claves de los documentos, puede operar directamente sobre los datos sin que intervenga ningún nodo. Esta es una de las principales diferencias arquitectónicas que contribuyen al alto rendimiento y escalabilidad de Couchbase. Además, no hay servidores de configuración. Los metadatos y su gestión están integrados en el núcleo de la base de datos. El servicio de datos gestiona los datos, el cluster y la replicación dentro de un cluster Couchbase. La replicación entre múltiples clusters de Couchbase es gestionada por XDCR. Lee este artículo para entender los mecanismos de replicación en MongoDB y Couchbase:  Replicación en bases de datos de documentos NoSQL (Mongo DB vs Couchbase)

Dentro del despliegue del clúster.

Se explican los componentes del clúster de MongoDB y su despliegue aquí y lo asumo como conocimiento previo. Evitaré repetirlo.

El despliegue de Couchbase comienza con el servicio de datos clave-valor. Este es el almacén de datos (consistente) de valor-clave distribuido por hash. También tiene replicación intracluster incorporada, eliminando la necesidad de servidores de réplica o servidores de configuración separados. El servicio de consultas orquesta la ejecución de N1QL consultas. Utiliza GSI (indexación secundaria global), FTS (Búsqueda de texto completo) según sea necesario. FTS gestiona el índice de texto completo y puede consultarse directamente o a través del N1QL servicio de consultaLa función Eventing permite desencadenar automáticamente una acción (mediante la ejecución de una función Javascript) en caso de mutación de los datos. La base de datos Couchbase Motor de análisis es un motor de datos y consultas MPP. Hace una copia de los datos y los redistribuye en sus nodos, ejecuta la consulta en paralelo para obtener el mejor rendimiento posible. Todo ello se puede utilizar sin problemas mediante el rico conjunto de API disponibles en nuestro SDKs disponible en todas las lenguas populares. 

OBJETOS DE BASE DE DATOS

MongoDB tiene una colección y una base de datos como los objetos lógicos con los que los usuarios tienen que trabajar. Couchbase tradicionalmente sólo tenía el Cubos. Bucket funcionaba tanto para la gestión de recursos (por ejemplo, la cantidad de memoria utilizada), la seguridad, así como el contenedor de datos. En 6.5, introdujimos la noción de recogida y alcance como vista previa para desarrolladores. Esta jerarquía bucket:scope:collection es análoga a database:schema:table de RDBMS. Esto hace que la base de datos sea más segura y mejor multi-tenant. En 6.5, sin la vista previa para desarrolladores, cada cubo utiliza un ámbito y una colección por defecto, lo que hace que la transición sea fluida.

RDBMS

MongoDB

Couchbase

Base de datos

Base de datos

Cubo

Cuadro

Colección

Cubo

Futuro: Colección

Fila

Documento (BSON)

Documento (JSON estándar)

Columna

Campo/Atributo

Campo/Atributo

Partición (Tabla/colección/cubo)

No particionado por defecto.

El particionamiento de hash y rango (sharding) es soportado manualmente.

Partición (hash automático)

Notas para los desarrolladores

En MongoDB, empiezas con tu instancia (despliegue) y creas bases de datos, colecciones e índices.

En Couchbase, empiezas con tu instancia y creas tus buckets e índices. Cada bucket puede tener múltiples tipos de documentos, por lo que cada documento debe tener un campo designado por la aplicación para reconocer su tipo. {"tipo": "parts"}. Dado que cada bucket puede tener cualquier número de tipos de documentos, debes evitar crear demasiados buckets. Esto también significa que, cuando cree un índice, le interesará crear un índice para cada tipo: cliente, piezas, pedidos, etc. Así, la creación del índice incluirá una cláusula WHERE para el tipo de documento.

CREATE INDEX ix_customer_zip ON customer(zip) WHERE type = "customer";

SELECT * FROM cliente WHERE código postal = 94040 AND tipo = "cliente"

Cada documento de MongoDB contiene un campo de id de documento _id proporcionado explícitamente o generado implícitamente.

En Couchbase, los usuarios deben generar e insertar una clave de documento inmutable para cada documento. Al insertar vía N1QL, puedes usar la función UUID() para generar una por ti. Pero, es una buena práctica tener una estructura regular de la clave del documento.

TIPOS DE DATOS

El modelo de datos de MongoDB es BSON y el modelo de datos de Couchbase es JSON. El tipo propietario BSON tiene algunos tipos, no en JSON. JSON tiene tipos de cadena, numérico, booleano (verdadero/falso), matriz, objeto. BSON tiene string, numérico, booleano, array, objeto, binario, UTC DateTime, timestamp, y muchas otras extensiones propietarias personalizadas, La diferencia más común es el DateTime y el timestamp. En Couchbase, todos los datos relacionados con el tiempo se almacenan como cadena en formato ISO 8601. Couchbase N1QL tiene una plétora de funciones para extraer, convertir, y calcular sobre el tiempo. Los detalles completos de las funciones son disponible en este artículo

Tipo de datos

MongoDB

Couchbase

JSON

Números

Número BSON

Número JSON

{ "id": 5, "saldo":2942.59 }

Cadena

BSON Cadena

Cadena JSON

{"nombre": "Joe", "ciudad": "Morrisville" }

booleano

Booleano BSON

Booleano JSON

{"prima": true, "pendiente": false}

datetime

Formato de datos personalizado

Cadena JSON ISO 8901 con funciones de extracción, conversión y aritmética

{ "soldate": “2017-10-12T13:47:41.068-07:00” }

MongoDB:

{ "soldate": ISODate(“2012-12-19T06:01:17.171Z”)}

datos espaciales

GeoJSON

Admite el vecino más próximo y la distancia espacial.

"geometría": {"tipo": "Punto", "coordenadas": [-104.99404, 39.75621]}

FALTA

Sin soporte

FALTA

NULL

JSON Nulo

JSON null

{ "última_dirección": null }

Objetos

Objetos JSON flexibles

Objetos JSON flexibles

{"dirección": {"calle": "1, Main street", "city": Morrisville, "zip": "94824″}

Matrices

Matrices JSON flexibles

Matrices JSON flexibles

{"hobbies": ["tenis", "esquí", "lego"]}

TODO SOBRE DESAPARECIDOS

MISSING es el valor de un campo ausente en el documento JSON o literal.

{"nombre": "joe"} En el documento falta todo menos el campo "nombre". También puede establecer el valor de un campo en DESAPARECIDO para que el campo desaparezca. Las bases de datos relacionales tradicionales utilizan lógica de tres valores con verdadero, falso y NULL. Con la adición de MISSING, N1QL utiliza la lógica de 4 valores

Tienes las siguientes expresiones con FALTA.  

FALTA

Devuelve true si el documento no tiene un campo de estado

FROM CLIENTE WHERE estado es FALTA;

NO FALTA

Devuelve true si el documento tiene un campo de estado

FROM CLIENTE WHERE estado es NO FALTA;

DESAPARECIDO Y NULO

MISSING es una cantidad desconocida

null es un UNKNOWN conocido. Puede comprobar un valor nulo de forma similar a MISSING con la expresión IS NULL o IS NOT NULL.

JSON válido: {"status": null}

valor FALTANTE

Simplemente haga desaparecer el campo de cualquier tipo configurándolo como DESAPARECIDO

UPDATE CUSTOMER SET status = MISSING WHERE cxid = "xyz232"

MODELIZACIÓN DE DATOS

Relación MongoDB Couchbase 
1:1
  • Objeto incrustado (implícito)
  • Referencia clave del documento
  • Objeto incrustado (implícito)
  • Referencia clave del documento
1:N
  • Matriz de objetos incrustados
  • Clave del documento Referencia
  • Consulta con el operador $lookup
  • Matriz de objetos incrustados
  • Clave del documento Referencia
  • Consulta con uniones INNER, LEFT OUTER, RIGHT OUTER, NEST, UNNEST
N:M
  • Matriz de objetos incrustados
  • Matrices de objetos con referencias
  • Dificultad de consulta con el operador $lookup
  • Matriz de objetos incrustados
  • Matrices de objetos con referencias
  • Consulta con uniones INNER, LEFT OUTER, RIGHT OUTER, NEST, UNNEST

GESTIÓN DEL ESPACIO FÍSICO

Tipo de índice MongoDB Couchbase 
Almacenamiento en mesa Directorio del sistema de archivos Directorio del sistema de archivos
Almacenamiento de índices Directorio del sistema de archivos Directorio del sistema de archivos
Particionamiento - Datos Se admite la fragmentación por rangos y por hash. Partición hash

Almacenado en 1024 vbuckets

Particionamiento - Índice Vinculado a la estrategia de fragmentación de colecciones, ya que todos los (sub) índices son locales a cada nodo mongod. Siempre separado del cubo

Índice global (puede utilizar una estrategia diferente a la del cubo/colección)

Admite la partición hash de los índices.

Partición de rangos, la indexación parcial es manual mediante índices parciales.

SDKs

Mi conocimiento personal de ambos SDK es limitado. Debería haber APIs, drivers y conectores equivalentes con los dos productos. Si no es así, por favor háganoslo saber.

SDK MongoDB Couchbase 
Java Controlador java de MongoDB SDK Java de Couchbase, 

Simba y CDATA JDBC

C Controlador C de MongoDB

Controlador ODBC

Couchbase C SDK,

Simba y CDATA ODBC

.NET, LINQ Proveedor Mongodb .NET. Proveedor .NET de Couchbase

Proveedor LINQ

PHP, Python, Perl, Node.js SDK de MongoDB en todos estos idiomas SDK de Couchbase en todos estos idiomas
golang Mongodb go sdk SDK de Couchbase Go

LENGUAJE DE CONSULTA

SELECCIONAR:   Mongo tiene múltiples APIs para seleccionar los documentos. find(), aggregate() pueden hacer el trabajo de simples sentencias SELECT. Veremos aggregate() más adelante en esta sección.

INSERTAR

En MongoDB, proporcionar _id es opcional. Si no proporcionas su valor, Mongo generará el valor del campo y lo guardará. Proporcionar document KEY es obligatorio en Couchbase.

ACTUALIZACIÓN

BORRAR

FUSIONARLa operación MERGE en un conjunto de documentos JSON es a menudo necesaria como parte de su proceso ETL o actualizaciones diarias. La sentencia MERGE puede involucrar fuentes de datos complejas con predicados complejos basados en reglas de negocio. Couchbase proporciona la operación MERGE estándar con la misma semántica. En MongoDB, tenías que escribir un largo programa para hacer esto, pero entonces algunas de las reglas de la operación MERGE (por ejemplo, cada documento SOLO debe ser actualizado una vez) son difíciles de hacer cumplir desde una aplicación. En Couchbase, puedes simplemente usar la función Declaración MERGEcomo los RDBMS.

DESCRIBE:

Los datos JSON son autodescriptivos y flexibles. MongoDB Schema helper está disponible a través de Visualización de la brújula sólo en la edición Enterprise.

Couchbase tiene INFER para analizar y entender el esquema. Tanto el servicio de consulta como el servicio analítico pueden inferir el esquema.

    1. Servicio de consulta Comando INFER
    2. El Servicio de Análisis ha array_infer_schema() función.

Este es el ejemplo de la salida INFER.

EXPLICAR

Explain te dice el plan de consulta para cada consulta - los índices elegidos, los predicados y otros pushdowns, tipos de join, orden de join, etc. Tanto MongoDB como Couchbase producen explain en forma JSON - algo natural para bases de datos JSON.

En Couchbase, simplemente precedes la sentencia con EXPLAIN. Puedes explicar cualquier sentencia en N1QL.

El banco de trabajo de consultas también tiene una explicación visual junto con la creación de perfiles. (para una consulta)

GRUPO POR

La cláusula "GROUP BY" de MongoDB forma parte de la API aggregate(). He aquí la comparación.

A diferencia de SQL y N1QL, la API de consulta de MongoDB tiene mucho significado implícito sin definiciones formales. Con N1QL, conoces las agrupaciones (b y c) y agregaciones (SUM(a)) explícitamente.

ORDENAR POR

OFFSET y LIMIT

Estos se utilizan comúnmente para el método de paginación offset. tanto Mongo y Couchbase apoyo. Sin embargo, paginación de teclas es un enfoque superior que utiliza menos recursos y rinde mejor. Mongo utiliza las cláusulas $skip y $limit y N1QL utiliza OFFSET y LIMIT. No estoy seguro de las optimizaciones de paginación realizadas en MongoDB.

Se une a

Las uniones suelen desaconsejarse en las bases de datos NoSQL y en MongoDB en particular. Pero el mundo real es complejo y no se puede desnormalizar en una sola colección. MongoDB tiene el operador $lookup para el join y hace un bucle anidado entre una colección (potencialmente sharded) a otra colección (no puede ser sharded). En Couchbase, todos los buckets están particionados (sharded). Operaciones JOINs (INNER JOIN, LEFT OUTER JOIN, RIGHT OUTER JOIN, joins con subconsultas, NEST y UNNEST) Tenemos un artículo detallado que muestra las operaciones equivalentes entre MongoDB y JSON. Le recomiendo que lea el artículo Uniendo JSON: Comparando Couchbase y MongoDB.

Tipo de JOIN MongoDB Couchbase 
INNER JOIN  No. $lookup es un join externo izquierdo limitado sólo en colecciones no separadas. Las aplicaciones tienen que hacer eso y luego eliminar los documentos sin los documentos coincidentes.   La cláusula ON requiere una referencia a la clave del documento. Sólo Equi-join
LEFT OUTER JOIN Búsqueda limitada 1TP4.  

No se pueden unir matrices. Es necesario aplanar las matrices manualmente antes de la unión.

Unión exterior izquierda completa que incluye predicados de matriz en la cláusula ON.
UNIÓN EXTERNA DERECHA No compatible. Debe gestionarse en la aplicación Compatibilidad limitada con RIGHT OUTER JOIN; se ha solucionado utilizando otros JOINs.
UNIÓN EXTERNA COMPLETA No compatible. Debe gestionarse en la aplicación Trabajado alrededor con el uso de otros JOINs.

CONCEDER y REVOCAR

ÍNDICES

A continuación se muestra una visión general de las capacidades de índice de MongoDB y Couchbase. Ambos tienen una gran variedad de índices. Los tipos de índices de Couchbase y su uso están bien documentados en el artículo: Cree el índice correcto y obtenga el rendimiento adecuado. Además, Couchbase cuenta con un asesor de índices integrado para la declaración individual así como el carga de trabajo y, además, tiene la Servicio Index Advisor que se actualiza mensualmente.

Tipo de índice MongoDB Couchbase 
Índice primario Escaneado de tablas, índice primario Índice primario
Índice secundario Índice secundario Índice secundario
Índice compuesto Índice compuesto Índice compuesto
Índice funcional 

(Índice de expresión)

No disponible Índice funcional, Índice de expresión
Índice parcial No disponible Índice parcial
Índice de rango particionado Rango particionado, Intervalo, Lista, Ref, Hash, Índice híbrido particionado Alcance manual particionado mediante Índice parcial
ARRAY Índice 1. Índice basado en árbol B con una clave de matriz por índice.

2. La clave de una matriz puede ser simple o compuesta (multiclave).

1. Índice basado en árbol B con una clave de matriz por índice.

2. La clave de la matriz puede ser compuesta

3. Uso de SEARCH(): Índice basado en árbol invertido con un número ilimitado de claves de matriz por índice.

Índice de matrices en expresiones No disponible
Objetos

BÚSQUEDA DE TEXTO COMPLETO

El producto MongoDB tiene incorporado búsqueda de texto y ahora está experimentando con la integración de Lucene en su servicio Atlas a través de la aplicación 1TP4Buscarbeta función. Couchbase tiene un indexación de búsqueda de texto completo que puedes ejecutar en tu portátil y en el clúster. De nuevo, tenemos un artículo detallado que compara el búsqueda de texto característica por característicacon ejemplos. Couchbase 6.5 integra el FTS con N1QL, haciendo que la consulta vaya aún más lejos.

OPTIMIZADOR

Un optimizador de consultas intenta reescribir la consulta para optimizarla mejor, elegir el índice más apropiado, decidir el pushdown del índice, el orden de unión, el tipo de unión y crea un plan que el motor puede ejecutar. Cada base de datos tiene un optimizador especializado que entiende las capacidades y peculiaridades del motor.

Característica MongoDB Couchbase 
Tipo de optimizador Consulta basada en la forma Basado en reglas

Basado en los costes (Vista previa en 6.5)

Selección del índice Consulta basada en la forma Basado en reglas

Basado en los costes (vista previa en 6.5)

Reescritura de consultas No Sí, limitado.
JOIN Orden Tal y como está escrito, procedimental utilizando el marco de agregación Especificado por el usuario (de izquierda a derecha)
Tipo de unión Bucle anidado Bucle anidado

Unión Hash

CONSEJOS Sí. $hint Sí.

USAR ÍNDICE, USAR HASH

EXPLICAR 1TP4Explicar EXPLICAR
Explicación visual Sí.
Perfiles de consulta

TRANSACCIONES

Las bases de datos NoSQL se inventaron para evitar el SQL y las transacciones. Con el tiempo, cada base de datos está añadiendo uno u otro, ¡o ambos! MongoDB ha añadido transacciones multidocumento con aislamiento de instantáneas. Couchbase ha añadido transacciones multidocumento con aislamiento de lectura comprometida. Las transacciones multidocumento siguen sin ser compatibles con N1QL.

Característica MongoDB Couchbase 
Actualizaciones del índice Los índices se actualizan de forma sincrónica Los índices se actualizan de forma asíncrona
Atomicidad Documento único

Multidocumento (en 4.2)

Documento único

Multidocumento (en 6.5)

Coherencia Los datos y los índices se actualizan de forma sincrónica. Por defecto, lectura sucia en Datos e índices.  El acceso a los datos es siempre coherente

Los índices tienen varios niveles de coherencia (UNBOUNDED, AT_PLUS, REQUEST_PLUS)

Aislamiento Por defecto: Lectura sucia

Transacción: Aislamiento de instantáneas

Bloqueo optimista con comprobación CAS

Transacciones: Aislamiento atómico monotónico

Durabilidad Duradero con opción mayoritaria de escritura. Durable con confirmación tras la replicación

ANÁLISIS

Análisis de Couchbase está diseñado para ofrecerle información sobre sus datos JSON sin ETL: NoETL para NoSQL. Los datos JSON en el almacén de datos clave-valor se copian en el servicio de análisis que distribuye los datos en su almacenamiento. El servicio de consulta Couchbase, servicio de datos está diseñado para manejar un gran número de operaciones concurrentes o consultas para ejecutar las aplicaciones. El servicio de análisis está diseñado para analizar un gran número de documentos con el fin de obtener información sobre el negocio. En términos tradicionales, el servicio de análisis está diseñado para OLAP y el resto para OLTP. MongoDB no tiene un servicio de análisis equivalente. Tendrías que sobrecargar tu cluster existente con cargas de trabajo tanto OLTP como OLAP. Como aprenderás, no hay almuerzo gratis. Los grandes escaneos necesarios para la carga de trabajo analítica afectarán a las latencias de sus consultas OLTP. A continuación, empiece a asignar nuevos nodos para sus copias secundarias y terciarias de los datos en los que puede realizar la carga de trabajo de lectura. ¿Qué ocurrirá o debería ocurrir en caso de conmutación por error? El secundario toma el relevo, pero de nuevo afecta a tu carga de trabajo OLTP.

Hay una segunda razón para tener un servicio distinto: el procesamiento de consultas para analítica requiere un enfoque diferente al de las consultas OLTP. Hay un gran conjunto de recursos para que usted aprenda acerca de este servicio, incluyendo el libro de Don Chamberlin, co-inventor de SQL.

  1. SQL++ para USUARIOS de SQL: UN TUTORIAL:  https://resources.couchbase.com/analytics/sql-book
  2. Couchbase Analytics: Under the Hood - Connect Silicon Valley 2018: https://www.youtube.com/watch?v=1dN11TUj58c
  3. De SQL a NoSQL
  4. NoETL para NoSQL - Análisis en tiempo real con Couchbase: https://www.youtube.com/watch?v=MIno71jTOUI
  5. N1QL: ¿Consultar o analizar?
  6. Parte 2: N1QL: ¿Consultar o analizar?

Resumen: Part Deux

Las bases de datos son extraordinariamente útiles. Son matizables y también pegajosas. Son esenciales para la civilización. Los sumerios inventaron la escritura para procesar transacciones: crear una base de datos con tablillas de arcilla para llevar la cuenta de los impuestos, las tierras, el oro y averiguar información. Siempre habrá bases de datos. Cada base de datos es diferente, ya sean bases de datos SQL o bases de datos NoSQL. No todas las bases de datos SQL son iguales. No todas las bases de datos NoSQL son iguales. Comprender las diferentes bases de datos aumenta la flexibilidad y la eficacia de su organización.

RECURSOS: Segunda parte

  1. SQL++ para USUARIOS de SQL: UN TUTORIAL:  https://resources.couchbase.com/analytics/sql-book
  2. N1QL Guías prácticas
  3. Blogs de Couchbase 6.5: https://www.couchbase.com/blog/tag/6.5/

 

 

 

Autor

Publicado por Keshav Murthy

Keshav Murthy es Vicepresidente de Couchbase R&D. Anteriormente, estuvo en MapR, IBM, Informix, Sybase, con más de 20 años de experiencia en diseño y desarrollo de bases de datos. Dirigió el equipo de I+D de SQL y NoSQL en IBM Informix. Ha recibido dos premios President's Club en Couchbase y dos premios Outstanding Technical Achievement en IBM. Keshav es licenciado en Informática e Ingeniería por la Universidad de Mysore (India), es titular de diez patentes estadounidenses y tiene tres pendientes.

Dejar una respuesta