Cassandra'da birden çok satıcıya ait ürün verilerini saklıyorum ve bireysel bir ürünü veya bir satıcıya ait tüm ürünleri alabilmeyi istersek, bu tablodaki düşük kardinalite bölüm anahtarını nasıl önleyebilirim? Örneğin,Cassandra'da düşük kardinalite bölüm anahtarını nasıl önleyebilirim?
CREATE TABLE products (
merchant_id uuid,
product_id text,
description text,
PRIMARY KEY (merchant_id, product_id)
);
Bildiğim kadarıyla o çalışır, ancak ben tüccar az sayıda varsa (onlarca demek) sorunu ve ürünler (milyon) çok sayıda vardır, anladığımız kadarıyla, Veri düğümler arasında çok iyi dağıtılmayacaktır.
ben ile geldim geçici çözüm
şudur: Bu durumdaCREATE TABLE products (
product_id text,
merchant_id uuid,
description text,
PRIMARY KEY (product_id)
);
CREATE INDEX ON products (merchant_id);
, ürün kimliği özel olması için değerin başına tüccar kimliği vardır. Bu hacky gibi görünüyor. Ayrıca ikincil endekste yapılan bir aramanın milyonlarca birincil tuşa dönüşeceğinden endişe duyuyorum.
Burada yapılması gereken doğru şey nedir? Gelişim için oldukça erkenyim, bu yüzden gerekirse önemli şema değişikliklerine açığım ve Cassandra için Doğru Yolu bir şeyler yapmak istiyorum.
Evet, bu doğru kullanabilirsiniz - bu tablo için okunan desen (bir feed oluşturmak için) bir tüccar için tüm ürünleri okumaktır. – Derecho