Couchbase Views ile Couchbase N1QL & Indexing Karşılaştırması

Bu makalemizde NoSQL platformlarından Memory tabanlı Couchbase veritabanı sistemlerinde View ve Couchbase Query dili olan N1QL ve Index kullanımının karşılaştırmasını yapacağız.

Couchbase veri platformu geliştikçe, N1QL ve GSI İndeksleme gibi hizmetler, Couchbase view kullanımından  daha fazlasını yapmak için kullanılan query leri dele almaktadır. Couchbase kullanan geliştiricilerin takıldığı ve öğrenmek istediği performansa dayalı en önemli sorulardan bir tanesi View mi kullanalım yada N1QL ile index leme mi yapalım sorusu . Bu makalemizde bu sorunun cevabını bulmaya çalışacağız. Aiağıda her ikisininde karşılaştırdığımız bir tablo yer alacak.

Yukarıda ki şemada Couchbase in hem View yapısını hemde N1QL ile Index leme kullanımının mimarisini görmektesiniz.

Karşılaştırma tablosu aşağıda yer almaktadır.
TopicCouchbase ViewsCouchbase N1QL+GSI
QueryingQuery based on
Single key
Set of keys
Start-End key
Start-End document keys
Group BY, Aggregation
Pagination
Query Statements
SELECT
INSERT
UPDATE
DELETE
MERGE
INFER
EXPLAIN
Query Operations:

Single key
Set of keys
Range keys
Range of document keys
Arbitrarily complex predicates
INNER JOIN, LEFT OUTER JOIN
NEST, UNNEST
GROUP BY
Aggregation
Pagination (OFFSET, LIMIT)
Optimization
ORDER BY
HAVING
Subqueries (correlated, non-correlated)
Derived tables
SET operations: UNION, UNION ALL, EXCEPT, EXCEPT ALL, INTERSECT
Highly composable queries, meaning these operations can be simply combined with each other to express complex business questions and operations easily.
IndexingSimple index for views.Primary Index
Named primary index
Secondary index
Composite Secondary Index
Functional index
Array Index
ALL array
ALL DISTINCT array
Partial Index
Adaptive Index
Duplicate Indices
Covering Index
PartitioningVeri bölümlemeyle aynı hizaya getirildi.Bağımsız hizmetler
N1QL ve GSI Data servisinden ve birbirinden bağımsız ölçeklendirir.
ScaleVeri servisi olan ölçeklerÇok Boyutlu Ölçeklendirme (MDS) ile Bağımsız Ölçeklendirme
Fetch with document keyVeriler document key ile bölümlendiğinden, belgeyi doğrudan node dan alırSorgu, USE KEYS yan tümcesi aracılığıyla belirtin.Veriler document key ile bölümlendiğinden, belgeyi doğrudan node dan alır
Fetch with Index keyScatter-GatherEach index scan on a single node; Data on multiple nodes.
Post processing in Query node
Range scanScatter-GatherIndex scan on a single node.
Post processing in Query node
Grouping, aggregationBuilt-in with Views APIBuilt into N1QL
CachingFile systemIndex buffer pool
Data cache
StorageCouchstorePlasma storage engine (5.0 & above)
Memory Optimized Index (4.5 and above)

ForestDB (community)
AvailabilityReplica Based5.0: Replicas
4.x: Equivalent Indexes
Query Latency10 milliseconds to 100 milliseconds5 milliseconds+
Query Throughput3K to 4K queries per second40K queries per second
ScalabilityModerate (scaling tied to data service)High (independent scaling of index and query services: MDS)
ToolsWeb consoleWeb console, Developer workbench, Query monitoring, Query Profiling, Visual explain, INFER.
Teşekkürler.

Leave a Reply

Your email address will not be published. Required fields are marked *