标签: cqlengine

对于Celery任务中的每个查询,Python cassandra-driver OperationTimeOut

我对每个插入查询(小查询)都有一个问题,它在异步中在芹菜任务中执行.在同步模式下,当我插入所有做得很好,但当它在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)

python cassandra celery cqlengine

7
推荐指数
1
解决办法
3026
查看次数

Cassandra - Cqlengine - TTL支持

我需要通过cqlengine使用TTL; 但是没有关于它的文档.有人可以帮我解决这个问题.谢谢

ttl cassandra cqlengine

6
推荐指数
1
解决办法
435
查看次数

CQL Engine有关注册表中不存在的连接名称的异常

尝试使用在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:连接名称''在注册表中不存在.

python azure cqlengine cassandra-3.0

5
推荐指数
1
解决办法
1131
查看次数

如何在不区分大小写的cassandra中搜索?

我正在学习cassandraPython特别是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上寻求帮助。

谢谢。

python django cassandra cqlengine

4
推荐指数
1
解决办法
935
查看次数

使用 cqlengine 查询

我正在尝试将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”。

cql cassandra object-object-mapping cql3 cqlengine

1
推荐指数
1
解决办法
2767
查看次数

Cassandra查询制作-无法执行此查询,因为它可能涉及数据过滤,因此性能可能无法预测

我将使用以下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)

所以,我的问题是,如果我将每个属性都声明为主键,该怎么办? …

python cassandra cassandra-cli cqlengine

1
推荐指数
1
解决办法
5429
查看次数