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: https://bit.ly/2jQrY11 |
1. https://query.couchbase.com 2. https://www.couchbase.com/blog/n1ql-practical-guide-second-edition/ |
| Consulta de | Consulta basada en
1. Tecla única |
Declaraciones de consulta
1. SELECCIONE |
| Indexación | Índice simple para vistas. |
1. Índice primario 2. Índice primario con nombre 3. Índice secundario 4. Índice secundario compuesto 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. |