python - 如何使用 cqlengine 在 Cassandra 中定义冻结列?
问题描述
我正在尝试在 Cassandra 中创建一个冻结列表,以便我可以将该列用作主键,如果我手动运行查询,我可以这样做,
some_field frozen <list<int>>
但我很难弄清楚如何在 Python 中使用 cqlengine 来做到这一点,
some_field = columns.List(columns.Integer(), primary_key=True)
我怎样才能使用 cqlengine 完成同样的事情?
编辑:最终代码片段如下所示,
from cassandra.cqlengine import columns
from cassandra.cqlengine.models import Model
class MyModel(Model):
__table_name__ = 'my_table'
__options__ = {'compaction': {'class': 'DateTieredCompactionStrategy',
'base_time_seconds': 3600,
'max_sstable_age_days': 1}}
keys = columns.Set(columns.Integer(), primary_key=True)
columns.BaseCollectionColumn._freeze_db_type(keys)
time_stamp = columns.DateTime(primary_key=True, clustering_order="DESC")
...
解决方案
正如我在源代码中看到的,您需要_freeze_db_type
在创建集合类型的实例后调用函数 - 这会将类型更改为frozen<...>
.
推荐阅读
- r - Simulate a dataset for replication
- c++ - how to use binary search on string
- sql - 雪花 - 用“关键变化”分组
- c# - 读取 customdocumentproperties 的公共值并使其在功能区中被选中
- hibernate - Spring JPA 规范一对多连接 3 个表
- python - 成功构建映像后尝试运行 docker 容器
- html - 为什么根容器中没有 `max-width` 子元素中的 `display: flex` 会使根容器占据 100% 的宽度?
- mysql - Mysql`SET FOREIGN_KEY_CHECKS = ON`在游标循环内打印注释时出错
- winforms - C# 桌面应用程序
- docker - docker-compose up `require':无法加载此类文件 -- pg (LoadError)