A medida que la plataforma de datos Couchbase evolucionó, servicios como N1QL y GSI Indexing manejaron los casos de uso que Couchbase VIEWS solía manejar y mucho más. Es lógico hacer la pregunta comparativa entre ellos. He aquí una tabla comparativa entre ambos. Esto está pensado para desarrolladores y arquitectos familiarizados con ambos y no como un artículo introductorio. Utiliza los enlaces aquí para aprender más y jugar con las características respectivas.

 Tema
Vistas de Couchbase Map-Reduce
Couchbase N1QL+GSI
Acérquese a Basado en funciones map() y reduce() definidas por el usuario que operan sobre los datos en segundo plano. Como map() y reduce() están escritas en Javascript, se puede codificar lógica compleja dentro de esas funciones. Basado en la consulta declarativa N1QL (SQL para JSON). Utiliza índices apropiados para optimizar la ejecución y se ejecuta dinámicamente orquestando servicios de consulta-índice-datos. N1QL permite realizar consultas fácilmente escribibles y legibles para JSON. Porque está inspirado en SQL, es flexible, componible. Al estar extendido para JSON, funciona con datos JSON enriquecidos. Utiliza lógica booleana de 4 valores (true, false,NULL, MISSING)
Más información Documentos de Couchbase: http://bit.ly/2jQrY11
  1. http://query.couchbase.com
  2. https://www.couchbase.com/blog/n1ql-practical-guide-second-edition/

 

Consulta de Consulta basada en

  1. Llave única
  2. Juego de llaves
  3. Tecla Inicio-Fin
  4. Teclas de inicio-fin de documento
  5. Agrupar por, Agregación
  6. Paginación

 

Declaraciones de consulta

  1. SELECCIONE
  2. INSERTAR
  3. ACTUALIZACIÓN
  4. BORRAR
  5. FUSIONAR
  6. INFER
  7. EXPLICAR

Operaciones de consulta:

  1. Llave única
  2. Juego de llaves
  3. Teclas de rango
  4. Gama de teclas de documento
  5. Predicados arbitrariamente complejos
  6. INNER JOIN, LEFT OUTER JOIN
  7. NEST, UNNEST
  8. GRUPO POR
  9. Agregación
  10. Paginación (OFFSET, LIMIT)
  11. Optimización
  12. ORDENAR POR
  13. TENIENDO
  14. Subconsultas (correlacionadas, no correlacionadas)
  15. Tablas derivadas
  16. Operaciones SET: UNIÓN, UNIÓN TODO, EXCEPTO, EXCEPTO TODO, INTERSECCIÓN
  17. Consultas altamente componibles, lo que significa que estas operaciones pueden combinarse simplemente entre sí para expresar fácilmente preguntas y operaciones empresariales complejas.
Indexación Índice simple para vistas.
  1. Índice primario
  2. Índice primario con nombre
  3. Índice secundario
  4. Índice compuesto secundario
  5. Índice funcional
  6. Índice de matrices
  7. matriz ALL
  8. matriz ALL DISTINCT
  9. Índice parcial
  10. Índice adaptativo
  11. Índices duplicados
  12. Índice de cobertura
Particionamiento Alineado con la partición de datos. Servicios independientes.

Las escalas N1QL y GSI son independientes del servicio Data y entre sí.

Escala Escalas con servicio de datos Escalado independiente mediante escalado multidimensional (MDS)
Búsqueda con clave de documento Dado que los datos están particionados en función de la clave del documento, obtiene el documento directamente del nodo Especifique la consulta mediante la cláusula USE KEYS.

Dado que los datos están particionados en función de la clave del documento, obtiene el documento directamente del nodo

Búsqueda con clave de índice Dispersión-Recogida Cada exploración de índice en un único nodo; Datos en varios nodos.

Postprocesamiento en el nodo Consulta

Exploración de la gama Dispersión-Recogida Exploración de índices en un único nodo.

Postprocesamiento en el nodo Consulta

Agrupación, agregación Integrado con Views API Integrado en N1QL
Almacenamiento en caché Sistema de archivos Grupo de búferes de índice

Caché de datos

Almacenamiento Tienda de sofás Motor de almacenamiento de plasma (5.0 y superior)

Índice optimizado para memoria (4.5 y superior)

ForestDB (comunidad)

Disponibilidad Basado en réplicas 5.0: Réplicas

4.x: Índices equivalentes

Latencia de la consulta

(Consultas simples)

10 milisegundos a 100 milisegundos 5 milisegundos+
Rendimiento de las consultas

(Consultas simples)

De 3.000 a 4.000 consultas por segundo 40.000 consultas por segundo
Escalabilidad Moderado (escalado vinculado al servicio de datos) Alta (escalado independiente de los servicios de índice y consulta: MDS)
Aplicabilidad Agregaciones, lo mejor de las agregaciones a gran escala para requisitos de latencia baja y moderada. Las operaciones map-reduce sobre los datos se realizan en segundo plano a medida que estos se modifican. Lo mejor para búsquedas basadas en atributos, escaneos de rangos, select-join-project-array complejos

Operaciones. Admite agrupación, agregación y ordenación: estas operaciones se realizan dinámicamente como parte de la ejecución de la consulta.

Requisitos de la solicitud Informar sobre métricas bien definidas

Agregaciones a gran escala

Sensible a la latencia

Búsqueda de claves secundarias

Exploraciones de la gama

Agregaciones operativas

Consultas filtradas

Consultas ad hoc con predicados complejos, uniones, agregaciones, búsqueda de aplicaciones, paginación, actualizaciones basadas en claves secundarias.

Espacial Con vistas espaciales No directamente.

https://dzone.com/articles/speed-up-spatial-search-in-couchbase-n1ql

Coherencia Stale = UPDATE_AFTER

Caducado = OK

Anticuado = FALSE

Sin límites (antiguo = OK)

AT_PLUS (lea sus propios escritos)

REQUEST_PLUS (lectura después de las actualizaciones del índice hasta now(). Stale = False).

Herramientas Consola web Consola web, Workbench para desarrolladores, Supervisión de consultas, Perfiles de consultas, Visual explain, INFER.

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