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 |
|
Consulta de | Consulta basada en
|
Declaraciones de consulta
Operaciones de consulta:
|
Indexación | Índice simple para vistas. |
|
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. |