问题标签 [cassandra-python-driver]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
347 浏览

python - 如何使用 cassandra python-driver 实现基于令牌的分页?

是的,迭代Query是件好事,但我需要分页结果并将它们与令牌一起发送到前端。

我也可以为上一页创建令牌吗?

我如何在模型或查询集中获取和使用。 ResponseFuture._paging_state

我搜索类似Manual paging (Node-JS) 的东西,但是在 python

0 投票
1 回答
1687 浏览

cassandra - Cassandra 无法为新主机创建连接池

我正在使用以下组件运行 Web 应用程序:

  • Python 3.5.2
  • uWSGI 2.0.11.2
  • 卡桑德拉驱动程序3.6.0
  • 卡桑德拉3.7

使用 Cassandra 集群(3 个节点):

  • 节点 1 - IP:172.17.0.4
  • 节点 2 - IP:172.17.0.5
  • 节点 3 - IP:172.17.0.6

使用配置NetworkTopologyStrategyGossipingPropertyFileSnitch

我遵循了cqlengine 的uWSGI 连接示例

但我在所有 cassandra 节点(172.17.0.4172.17.0.5172.17.0.6 )上都收到错误“无法为新主机 xxxx 创建连接池” :

根据日志,它能够连接到节点,但由于某种原因,它会断开连接并抛出先前的错误:

已编辑(添加了有关该问题的更多调试信息)

该应用程序可以 ping 端口 9042 上的任何节点,因此这不是连接问题。如果我nodetool status在集群中运行三个节点似乎没问题:

我已经尝试过 Cassandra 3.72.2.7,但得到了相同的结果。但是,如果我尝试仅使用Node1运行该应用程序,它就可以工作!

Cassandra 节点中的日志显示以下内容:

有人知道这里发生了什么吗?任何帮助将不胜感激。

0 投票
0 回答
234 浏览

python-3.x - 如何配置 Pyramid + Cassandra + uWSGI(分叉模式)

我正在使用 Python 3.5、 uWSGI 2.0.11和 SQLAlchemy 1.0.9开发 Pyramid 1.7 Web 应用程序。似乎在将 uWSGI 与多个 worker 一起使用时,我们应该使用 uWSGI postfork 函数来连接到 Cassandra 集群,以确保每个 fork 将使用与池的独立连接。我尝试了以下 Pyramid 实现(文件:my_app/__init__.py

但是在使用 uWSGI 在生产中运行应用程序时,我遇到了连接超时。如果您安装libev库,Cassandra 将默认检测该库并使用它。但我不知道是否需要在 uWSGI 中进行一些更改才能兼容(一定要禁用 Monkeypatching)。

这是使用uWSGI 分叉模式配置 Pyramid + Cassandra + uWSGI 的正确方法吗?还是我错过了什么?

0 投票
1 回答
85 浏览

cassandra - Schema 未完全从 Thrift 协议转换为 CQL 协议

我正在尝试在我的项目中从使用 pycassa 转移到本机协议(这将让我们升级 cassandra 的版本)。我的模式是使用 pycassa 定义的,因此它使用紧凑存储创建了一个列族,并且它有 3 个不属于复合主键的列(我知道 CQL 协议不允许这样做。)

我当前 Cassandra 集群的版本是 2.0.17。当我使用 thrift 协议“显示模式”时的模式是:


但是当我检查本机协议的架构时,它缺少“column3”和“value”列。结果如下:


现在,由于这种差异,我无法在客户端从 pycassa 转换到本机协议。我找不到任何东西来克服这个问题并确保本机协议看到正确的模式。你有什么可以建议我解决这个问题的吗?

0 投票
1 回答
333 浏览

python - 使用 cassandra 的 python 驱动程序创建新记录时如何设置服务器端时间戳

我有cassandra如下模型。

当我创建记录时,它会设置created_timestamp我的系统或我执行此代码的位置。

我的系统和cassandra服务器有不同的时间戳。

如果我在系统时间所在的位置执行此操作,2017-01-13 10:20:30那么它将时间戳设置为相同。如果我再次从另一个系统执行相同的timestamp操作2017-01-13 10:20:20,那么它设置相同。

当我运行查询时

它应该返回latest最后插入的(最后一个)记录,但由于系统时间戳与我插入记录的位置不同,它会给出最先插入的第一条记录。

0 投票
1 回答
1169 浏览

python - 如何从 python cassandra 驱动程序传递 cassandra 函数?

我有代码

中有一个now()功能cassandracurrent time可以创建记录。

我试图用INSERT查询创建记录。

但是当我尝试

它在验证中给出错误。

我试图覆盖TimeUUID列,并now()validate函数返回。

但它卡在插入记录中。

我尝试使用直接插入查询。

但这也给出了同样的错误:(。

有没有办法defaultpython驱动程序中传递 cassandra 函数?

0 投票
1 回答
2578 浏览

docker - Cassandra 连接空闲和超时

我正在尝试使用python 驱动程序从 Cassandra 加载和删除数据。我已经尝试过使用在 docker 容器中运行的 cassandra 以及在 docker 版本给我带来问题后再次在本地运行。这是我正在做的一个例子:

没什么疯狂的。加载/删除数据时,我经常看到以下消息:

以下是删除数据的一些日志。

以下是插入数据的一些内容:

我进行了一致性调整,甚至将其设置为 1,但这不起作用。与 docker 相比,在本地运行 cassandra 时插入往往会更好地工作,但它们仍然会超时。删除通常工作几秒钟,然后挂起/超时。

编辑:这是失败时来自 cassandra 的日志:

我也看到这样的消息:

0 投票
1 回答
22 浏览

cassandra - 过滤器()和保存()之间删除的Cassandra问题

我有一个问题,在加载项目和将其保存回 cassandra 之间删除会导致未更新的列被删除。

我希望 data_1 仍然存在。

这是预期的行为吗?我可以以某种方式更改我的代码,以使该项目被完全删除或与之前查询的所有值一起保存。

0 投票
1 回答
560 浏览

python - 使用 cassandra 的地址转换映射时如何进行端口转换?

我正在尝试使用地址转换映射连接到 compose 上的 scylladb 集群。

只有在实例化集群实例时对端口进行硬编码,才能使代码正常工作:

下一个用于翻译地址的类:

现在让我们连接:

似乎 cassandra python 库不支持使用translate 方法进行端口翻译?您可以在下面的调试输出中看到,传递给 translate 方法的 addr 是一个没有端口的字符串 ip 地址值:

我的环境:

0 投票
2 回答
630 浏览

python - Python Cassandra floating precision loss

I'm sending data back and forth Python and Cassandra. I'm using both builtin float types in my python program and the data type for my Cassandra table. If I send a number 955.99 from python to Cassandra, in the database it shows 955.989999. When I send a query in python to return the value I just sent, it is now 955.989990234375.

I understand the issue with precision loss in python, I just wanted to know if there's any built-in mechanisms in Cassandra that could prevent this issue.