c# cassandra DataStax驱动版本兼容性

Posted

技术标签:

【中文标题】c# cassandra DataStax驱动版本兼容性【英文标题】:c# cassandra DataStax driver version compatibility 【发布时间】:2017-01-24 21:24:41 【问题描述】:

是否可以通过 DataStax c# 驱动程序版本 3.0.8 使用 Cassandra 版本 3.6.0 ?如果是这样,为什么我会收到错误未配置的表“表名”错误。我还有什么其他选择?

编辑:

我认为问题是我将表创建为 TableName ,但是驱动程序搜索表表名(T 和 N 的小写),我的查询是 INSERT INTO TableName(Column1) Values(value1)

【问题讨论】:

在不查看代码的情况下很难帮助您解决错误。但卢克是对的,它必须是这两者之一。 @Aaron 请看我的编辑 您是否使用双引号创建了表名?就像 CREATE TABLE "TableName" (...); 一样,因为这是 Cassandra 对键空间或表名强制大小写的唯一方法。 否,但这通常意味着您必须在应用程序连接代码中包含(并转义)带有表名的引号。 您不必重新创建它,但是为了避免区分大小写的问题,重新创建不带引号的表/键空间可能更简单。 【参考方案1】:

是的,您可以针对 Cassandra 3.6(或者实际上,任何 3.x 版本)使用该版本的 C# 驱动程序。我怀疑您收到“未配置的表”错误,因为:

    您没有将驱动程序连接到已创建“表名”的键空间。 您尚未在驱动程序连接到的键空间中创建表。

更新:外壳

听起来像上面的 cmets 在创建表和键空间时使用了双引号。我的建议(如果可行的话)是在不带引号的情况下删除并重新创建它们,这样您就不必记住引用所有内容并在查询时使用正确的大小写。这种方式往往会简单得多。如果您想了解有关 CQL 中大小写如何工作的更多信息,请查看 CQL 文档的 Uppercase and lowercase section。

【讨论】:

以上是关于c# cassandra DataStax驱动版本兼容性的主要内容,如果未能解决你的问题,请参考以下文章

从 c#datastax 驱动程序关闭 cassandra 集群时出错

如何使用datastax java驱动程序将timeuuid插入cassandra或TimeUUID的版本无效

Cassandra C# TLS 版本选择?

Datastax Cassandra Java 驱动程序 WARN 消息

NoClassDefFoundError - Cassandra 的 datastax java 驱动程序

cassandra 数据库 - 获取时间高于 Netflix Astyanax 驱动程序而不是 datastax 驱动程序