Bu soru, deneme ve uygulamanın ayrıntılarına girmeden önce mimari bir seçim yapmakla ilgilidir. Bu, belirli bir amaç için elasticsearch vs MongoDB'nin ölçeklenebilirliği ve performans açısından uygunluğu ile ilgilidir.
Varsayımsal olarak, hem alanlara hem de değerlere sahip veri nesnelerini depolar ve bu nesne gövdesinin sorgulanmasına izin verir. Bu nedenle, nesnelerin alt kümelerini geçici olarak seçilen alanlara göre filtrelemek, her ikisi için de uygun bir şeydir.
Uygulamam, ölçütlere göre nesne seçme etrafında dönecektir. Nesneleri aynı anda tek bir alandan daha fazla filtreleyerek seçer, farklı bir şekilde ifade eder, sorgu filtreleme kriterleri tipik olarak 1 ila 5 alan arasında, belki de bazı durumlarda daha fazla yer alır. Oysa filtre olarak seçilen alanlar çok daha büyük bir alanın alt kümesi olacaktır. Mevcut bazı 20 alan adlarını resmedin ve her sorgu, nesneleri toplam 20 alanın birkaç alanına göre filtreleme girişimidir (20 alan adından daha az veya daha fazla olabilir, bu sayıyı oranını göstermek için kullandım. alanlardan her ayrık sorguda filtre olarak kullanılan alanlara). Filtreleme, seçilen alanların varlığının yanı sıra alan değerleriyle de olabilir, örneğin A alanına sahip nesneleri filtrelemek ve B alanları x ile y arasında,
Uygulamam bu tür filtrelemeyi sürekli yapacaktır, oysa filtreleme için hangi alanların her an kullanıldığı konusunda hiçbir şey veya çok az sabit olmayacaktır. Belki de elasticsearch dizinleri tanımlanmalıdır, ancak belki dizin olmadan bile hız MongoDB ile eşittir.
Mağazaya giren verilere göre, bununla ilgili özel bir detay yok .. nesneler yerleştirildikten sonra neredeyse hiç değişmeyecekti. Belki de eski nesnelerin bırakılması gerekir, her iki veri deposu desteğinin süresinin dolmasını dahili olarak veya uygulama tarafından yapılan bir sorgu ile varsayalım. (Daha az sıklıkla, belirli bir sorguya uyan nesnelerin de bırakılması gerekir).
Ne düşünüyorsun? Ve bu yönü denediniz mi?
Bu tür bir görev için, iki veri deposunun her birinin performansı ve ölçeklenebilirliği ile ilgileniyorum. Bu bir tür mimari tasarım sorusudur ve mağazaya özgü seçeneklerin veya iyi tasarlanmış olması gereken sorgu köşe taşlarının ayrıntıları, tamamen düşünülmüş bir önerinin bir gösterimi olarak kabul edilir.
Teşekkürler!