我对每个插入查询(小查询)都有一个问题,它在异步中在芹菜任务中执行.在同步模式下,当我插入所有做得很好,但当它在apply_async()执行时我得到这个:
OperationTimedOut('errors=errors=errors={}, last_host=***.***.*.***, last_host=None, last_host=None',)
Run Code Online (Sandbox Code Playgroud)
追溯:
Traceback (most recent call last):
File "/var/nfs_www/***/env_v0/local/lib/python2.7/site-packages/celery/app/trace.py", line 240, in trace_task
R = retval = fun(*args, **kwargs)
File "/var/nfs_www/***/env_v0/local/lib/python2.7/site-packages/celery/app/trace.py", line 437, in __protected_call__
return self.run(*args, **kwargs)
File "/var/nfs_www/***/www_v1/app/mods/news_feed/tasks.py", line 26, in send_new_comment_reply_notifications
send_new_comment_reply_notifications_method(comment_id)
File "/var/nfs_www/***www_v1/app/mods/news_feed/methods.py", line 83, in send_new_comment_reply_notifications
comment_type='comment_reply'
File "/var/nfs_www/***/www_v1/app/mods/news_feed/models/storage.py", line 129, in add
CommentsFeed(**kwargs).save()
File "/var/nfs_www/***/env_v0/local/lib/python2.7/site-packages/cqlengine/models.py", line 531, in save
consistency=self.__consistency__).save()
File "/var/nfs_www/***/env_v0/local/lib/python2.7/site-packages/cqlengine/query.py", line 907, in save
self._execute(insert)
File "/var/nfs_www/***/env_v0/local/lib/python2.7/site-packages/cqlengine/query.py", line 786, in _execute
tmp = execute(q, consistency_level=self._consistency)
File "/var/nfs_www/***/env_v0/local/lib/python2.7/site-packages/cqlengine/connection.py", line …Run Code Online (Sandbox Code Playgroud) 我需要通过cqlengine使用TTL; 但是没有关于它的文档.有人可以帮我解决这个问题.谢谢
尝试使用在Windows 2012 Server R2 - 64位上运行的Python Cassandra-Driver客户端连接到Cassandra数据库时出现以下异常.我可以在我的个人笔记本电脑上工作,但不能在Azure上托管这台机器.我确信我错过了一些依赖,但只是不确定它们是什么.
文件"C:\ Python\Python35-32\lib\site-packages\cassandra\cqlengine\connection.py",第190行,在get_connection中引发CQLEngineException("连接名称'{0}'在注册表中不存在. ".format(name))Cassandra.cqlengine.CQLEngineException:连接名称''在注册表中不存在.
我正在学习cassandra,Python特别是Django 2使用cqlengine. 我正在尝试在数据库中搜索以搜索参数开头的字符串,但我想让它不区分大小写。所以如果我有以下数据
-------------------------------
| PKID | String |
-------------------------------
| 1234 | FOObar |
| 4321 | FoOBar |
| 5665 | IreALLy |
| 5995 | DontknoW |
| 8765 | WHatTOdo |
| 4327 | foobaR |
-------------------------------
Run Code Online (Sandbox Code Playgroud)
所以如果我想搜索以 开头的字符串foo,我应该得到所有三个记录。我搜索了解决方案,我在 stackoverflow 上发现了一条评论,即 cassandra 中的所有内容都是字节,因此这是不可能的,但我也发现了一些内容,说我需要编写自定义函数才能做到这一点。
对于 Django,我使用django-cassandra-engine创建模型。它是 django 的 cqlengine 实现。所以当我创建我的模型时,我需要添加什么吗?我的测试模型是
class TestModel(DjangoCassandraModel):
key_id = columns.UUID(primary_key=True, default=uuid.uuid4)
string = columns.Text()
Run Code Online (Sandbox Code Playgroud)
我在 cqlengine 文档中寻找它,但找不到任何有用的东西。所以我在stackoverflow上寻求帮助。
谢谢。
我正在尝试将cqlengine CQL 3 对象映射器与在 CherryPy 上运行的 Web 应用程序挂钩。尽管文档对查询非常清楚,但我仍然不知道如何对 cassandra 数据库中的现有表(和现有键空间)进行查询。例如,我已经有了包含标题、评级、年份字段的电影表。我想进行 CQL 查询
SELECT * FROM Movies
Run Code Online (Sandbox Code Playgroud)
建立连接后如何继续查询
from cqlengine import connection
connection.setup(['127.0.0.1:9160'])
Run Code Online (Sandbox Code Playgroud)
在KEYSPACE被称为“TEST1”。
我将使用以下Cassandra模型:-
class Automobile(Model):
manufacturer = columns.Text(primary_key=True)
year = columns.Integer(index=True)
model = columns.Text(index=True)
price = columns.Decimal(index=True)
Run Code Online (Sandbox Code Playgroud)
我需要以下查询:
q = Automobile.objects.filter(manufacturer='Tesla')
q = Automobile.objects.filter(year='something')
q = Automobile.objects.filter(model='something')
q = Automobile.objects.filter(price='something')
Run Code Online (Sandbox Code Playgroud)
这些都工作正常,直到我想要多列过滤,即当我尝试
q = Automobile.objects.filter(manufacturer='Tesla',year='2013')
Run Code Online (Sandbox Code Playgroud)
它抛出一个错误说 Cannot execute this query as it might involve data filtering and thus may have unpredictable performance.
我用重写了查询 allowed_filtering,但这不是最佳解决方案。
然后,在阅读更多内容后,我对模型进行了如下编辑:
class Automobile(Model):
manufacturer = columns.Text(primary_key=True)
year = columns.Integer(primary_key=True)
model = columns.Text(primary_key=True)
price = columns.Decimal()
Run Code Online (Sandbox Code Playgroud)
有了这个,我也能够过滤多个库仑,而无需任何警告。
当我这样做时DESCRIBE TABLE automobile,它表明这将创建复合键PRIMARY KEY ((manufacturer), year, model)。
所以,我的问题是,如果我将每个属性都声明为主键,该怎么办? …