如果我在Cassandra中为多个商家存储产品数据,并且希望能够为商家检索单个产品或所有产品,那么如何避免该表上的低基数分区键?例如,如何避免Cassandra中的低基数分区键?
CREATE TABLE products (
merchant_id uuid,
product_id text,
description text,
PRIMARY KEY (merchant_id, product_id)
);
据我了解,这样的作品,但它有问题,如果我有一个小的客商(几十个说吧)和大量的产品(百万)时,数据在节点间的分布不会很好。
的解决方法,我想出了是这样的:
CREATE TABLE products (
product_id text,
merchant_id uuid,
description text,
PRIMARY KEY (product_id)
);
CREATE INDEX ON products (merchant_id);
在这种情况下,产品ID在前面加上商家ID以使其唯一。这似乎很难。我还担心二级索引中的查找将返回数百万个主键。
在这里做什么是正确的事情?我很早就开始开发,所以如果有必要,我可以对模式进行重大更改,并且我想为Cassandra做正确的事情。
是的,这是正确的 - 该表的阅读模式是读取所有的产品,为商家(创建饲料)。 – Derecho