gpt4 book ai didi

python - 如何建模以有效地查询多列?

转载 作者:行者123 更新时间:2023-12-04 15:10:56 25 4
gpt4 key购买 nike

我很谦虚地来到这里寻求帮助,因为我目前对 Cassandra 建模的某些方面及其影响感到困惑。

我理解理想情况下,我们要过滤的每一列都有一个表格。 (我遇到了一些二级索引未更新的问题)。

让我们举个例子:

class Pet(Model):
pet_id = columns.UUID(partition_key=True, default=uuid.uuid4)
name = columns.Text()
age = colmuns.Text()

class PetByName(Model):
pet_id = columns.UUID(default=uuid.uuid4)
name = columns.Text(partition_key=True)
age = colmuns.Text()

class PetByAge(Model):
pet_id = columns.UUID(default=uuid.uuid4)
name = columns.Text()
age = colmuns.Text(partition_key=True)

如果我想查询一个属性,查询就很简单了,例如:

PetByName.filter(name="kitty")

所以我的第一个问题是:如果我们想查询一只名为“kitty”且年龄为“25 岁”的宠物,我们该怎么做。

现在,我有一个非常繁琐的实现,其中我执行两个查询,然后循环遍历结果以在 pet_id 属性上进行手动交集。

但在我看来,应该有一种批量查询的实现/类型可以同时运行两个查询,然后根据 intersect 等运算符合并结果集。

热烈欢迎任何帮助、意见和建议。

感谢您的阅读,祝您有美好的一天!

最佳答案

如果您想按姓名或年龄查询,您的表结构应如下所示:

CREATE TABLE pet_by_name (
id uuid,
name text,
age integer,
PRIMARY KEY (name, age)
);

在这种情况下,年龄是一个集群键。此表支持仅按姓名或按姓名和年龄查询。

关于python - 如何建模以有效地查询多列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65208203/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com