问题标签 [datastax-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 投票
1 回答
225 浏览

python - Cassandra 对多个客户端的写入限制

我有两个客户端(单独的 docker 容器)都写入 Cassandra 集群。

第一个是写入实时数据,以集群可以处理的速度摄取,尽管备用容量很少。这被视为高优先级数据,我们不想丢弃任何数据。摄取率每分钟变化很大。有时数据会在客户端读取的队列中备份,有时客户端已清除队列并(短暂地)等待更多数据。

第二个是来自在线商店的批量数据转储。我们希望以尽可能快的速度将其写入 Cassandra,以吸收写入实时数据后的任何空闲容量,但不会导致集群开始发出超时。

使用 DataStax Python 驱动程序并保持两个客户端分开(即它们不应该相互了解或交互),我如何限制来自第二个客户端的写入,以便在不影响的约束下最大化写入吞吐量第一个客户端的写入吞吐量?

0 投票
1 回答
2253 浏览

python - 关于 CQLENG_ALLOW_SCHEMA_MANAGEMENT 的 Cassandra 警告

当我运行使用 Cassandra 的 Python 脚本时,我收到以下警告:

听起来很合理,但我搜索了又搜索,无法弄清楚它是什么CQLENG_ALLOW_SCHEMA_MANAGEMENT或如何设置它。

它是什么,我应该把它设置成什么?

0 投票
1 回答
312 浏览

python - 在 Cassandra 中使用 DataStax 模型操作批量插入多个表

按照此处提到的 DataStax 的“每个查询模式大致使用一个表”的建议,我已经设置了同一个表两次,但键入不同的键以优化读取时间。

然后,我使用 DataStax 的 Python 驱动程序创建了 2 个模型,每个表一个。


问题

我似乎无法弄清楚如何在插入其中一个表以也插入另一个表时完全确保原子性。我唯一能想到的是

我正在寻找是否有另一种方法来确保插入一个表被反映到另一个表中 - 可能在模型或表定义中,以便希望防止错误插入到其中一个模型中。

如果需要,我也愿意完全重组或重新制作我的表格以适应这种情况。

0 投票
0 回答
427 浏览

cassandra - 尝试使用 datastax python 驱动程序在 cassandra 上创建一个键空间

我有这个奇怪的错误,我似乎无法解决,python 错误是我似乎无法弄清楚的,无法解决的联系点听起来像 ip 问题?当我查看下面的客户端时,cluster-ip没有

我要做的就是在 env 中传递以下参数:

以下

0 投票
0 回答
422 浏览

python-2.7 - Cassandra COPY FROM 查询错误,带有 CSV 文件

问题:

我正在尝试获取它,以便可以使用 Cassandra 正确使用 Python。我一直在使用玩具数据集来练习将 csv 文件上传到 Cassandra,但没有成功。当我不COPY FROM用于 csv 文件时,Cassandra 似乎工作正常。

我的目的是使用这个数据集作为测试,以确保我可以将 csv 文件的信息加载到 Cassandra 中,这样我就可以为我最初打算的项目加载 5 个总计 2 GB 的 csv 文件。

注意:每当我使用CREATE TABLE然后运行SELECT * FROM tvshow_data时,列不会按照我设置它们的顺序出现,这会影响任何事情,还是没关系?

关于我的安装和使用的信息:

  • 我已经尝试运行两者cqlshcassandra使用管理员 powershell。
  • apache-cassandra-3.11.6我在文件夹中安装了 Python 2.7 。
  • 我安装了 Cassandra 3.11.6 版。
  • 我安装了 cassandra-driver 3.18.0 和 conda。
  • 我使用 Python 3.7 安装除了 Cassandra 的目录之外的所有内容。
  • 我都试过了CREATE TABLE tvshowCREATE TABLE tvshow.tvshow_data

我的 Python 脚本:

结果python错误:

这是我在 powershell 中使用以下命令运行代码时遇到的错误,python cassandra_test.py.

结果cqlsh错误:

在目录中运行后在powershell中的变量中运行前面所述的cqlsh代码,会产生以下错误。create_and_add_file_to_tvshowcqlshapache-cassandra-3.1.3/bin/

注意:以下错误只是代码的前几行以及最后的新行,我选择不包含它,因为它有几百行。如有必要,我将包括它。

用于导入的 csv 文件的前 10 行示例

我已经尝试只用前两行创建一个 csv 文件,用于玩具的玩具测试,因为我无法得到任何其他工作。

0 投票
1 回答
431 浏览

python - Cassandra Python 驱动程序协议版本和连接限制不匹配

我正在使用 Datastax python 驱动程序版本:3.23

Cassandra 版本:DSE 版本 5.1.16

cqlsh 的输出如下:

[cqlsh 5.0.1 | Cassandra 3.11.3.5116 | DSE 5.1.16 | CQL spec 3.4.4 | Nativeprotocol v4]

输出:-

8 100

根据 DataStax 文档max_request_per_host in v4,应该是 32,786。

不确定问题出在哪里。

发现java驱动器的类似问题。

0 投票
1 回答
170 浏览

heroku - Cassandra Astra 安全部署到 heroku

我正在使用 python 和 Cassandra(Astra 提供程序)开发一个应用程序,并尝试将它部署在 Heroku 上。

问题是连接到数据库需要凭证 zip 文件在本地存在- https://docs.datastax.com/en/astra/aws/doc/dscloud/astra/dscloudConnectPythonDriver.html '/path/to/secure- connect-database_name.zip' 和 Heroku 不支持上传凭证文件。

我可以将用户名和密码配置为环境变量,但凭证 zip 文件不能配置为环境变量。

有什么方法可以使用 zip 文件作为环境变量,我想提取所有文件并将每个文件配置为 Heroku 中的环境变量。

但是如果我开始使用从环境变量中提取的文件,我不确定要指定什么而不是Cluster(cloud=cloud_config, auth_provider=auth_provider) ?

我知道我可以在我的私人 git 存储库中检查凭证 zip,但检查凭证似乎并不安全。

我想到的另一个想法是将其存储在 S3 中并在部署期间获取文件并将其提取到临时目录中以供使用。

非常感谢任何指示或帮助。

0 投票
0 回答
85 浏览

python-3.x - 与 Cassandra 的连接问题 python

我正在尝试从 Cassandra 集群中获取数据。有一个问题,它有时会获取几行,有时没有行。
我正在使用 Python 3.8.5 和最新的 DataStax Python 驱动程序。
下面是代码

整个语句有时会给出一些结果,但有时没有结果。
我已按照建议启用跟踪以查看下面的执行结果

0 投票
2 回答
178 浏览

python - How to fix problem "Unable to complete the operation against any hosts" in Cassandra?

I have a pretty simple AWS Lambda function in which I connect to an Amazon Keyspaces for Cassandra database. This code in Python works, but from time to time I get the error. How do I fix this strange behavior? I have an assumption that you need to make additional settings when initializing the cluster. For example, set_max_connections_per_host. I would appreciate any help.

ERROR:

lambda_function.py:

sessions.py:

0 投票
1 回答
76 浏览

python - 是否可以在成功创建记录的 INSERT 操作后从 Cassandra 获得回调?

我遇到了非常奇怪的行为,并试图了解在哪些情况下可能会发生这种情况。在我的Python应用程序中,我通过驱动程序访问Cassandra数据库。

正如你在下面看到的,首先,我做了一个INSERT操作,它在表中创建了一条记录。接下来,我执行一个SELECT操作,该操作应返回之前创建的最后一条消息。有时选择操作会向我返回空值。我假设 Cassandra 有一个内部调度程序来执行 INSERT 任务。但是,当我尝试通过 SELECT 操作获取最后一条记录时,该记录尚未创建。这可能吗?

问题

是否可以在成功创建记录的 INSERT 操作后从 Cassandra 获得回调?

片段