当前位置: 首页 > 知识库问答 >
问题:

Apache Cassandra 3.11.6:群集键错误,cass-stress写入后表中未定义列名

有骏奇
2023-03-14

我目前遇到了一个问题,即我试图从cassandra中选择或插入特定的列数据,并不断得到未定义的列名错误,尽管列名是查看表时的聚类键。但是,其他列的行为正常。

keyspace_name | table_name | column_name | clustering_order | column_name_bytes | kind          | position | type
---------------+------------+-------------+------------------+-------------------+---------------+----------+------
    keyspace1 |  standard1 |          C0 |             none |            0x4330 |        static |       -1 | blob
    keyspace1 |  standard1 |     column1 |              asc |  0x636f6c756d6e31 |    clustering |        0 | text
    keyspace1 |  standard1 |         key |             none |          0x6b6579 | partition_key |        0 | blob
    keyspace1 |  standard1 |       value |             none |      0x76616c7565 |       regular |       -1 | blob

cqlsh> SELECT  "column1" from keyspace1.standard1;
InvalidRequest: Error from server: code=2200 [Invalid query] message="Undefined column name column1"

cqlsh> SELECT  "C0" from keyspace1.standard1;

 C0
------------------------
 0xdc9e1bf05eab897f470a
 0x5ff08459ccd892a25f91
 0x85182fdfe7f86306cd58
 0x10f1dd6febff8cbcf3ad
 0xb8e05320cd1037d6e317

此外,在插入数据时,尽管column1是“未定义的”,但仍需要它作为集群

cqlsh> insert into keyspace1.standard1 (key) VALUES (0xcccc) ;
InvalidRequest: Error from server: code=2200 [Invalid query] message="Some clustering keys are missing: column1"
cqlsh> insert into keyspace1.standard1 (key, "C0") VALUES (0xcccc, 0xbbbb) ;  
cqlsh> SELECT  "C0" from keyspace1.standard1;

 C0                      key
 ----------------------- ------------------------
 0xdc9e1bf05eab897f470a 0x37373539364d4f323330
                 0xbbbb                 0xcccc
 0x5ff08459ccd892a25f91 0x4f503030314c35393330
 0x85182fdfe7f86306cd58 0x30503337373039503231
 0x10f1dd6febff8cbcf3ad 0x394e35344e4b34383631
 0xb8e05320cd1037d6e317 0x4f384c4b37394c4f3631

这是从3.11.4开始改变的预期行为吗?

共有1个答案

公孙胡媚
2023-03-14

看起来您正在处理一个紧凑的存储表。

您可以在cqlsh中验证这一点:

describe table keyspace1.standard1;

如果您看到具有紧凑存储,那么您就拥有了一个紧凑存储表。

ALTER TABLE keyspace1.standard1 DROP COMPACT STORAGE;
    null

更多信息可以在这里找到:https://docs.datastax.com/en/cql-oss/3.3/cql/cql_using/dropcompactstorage.html

 类似资料:
  • 我试图将一个新表添加到一个已经存在的数据库中,但它总是给我一个错误“外键定义中的未知列'PRODUCT_ID'”。 如有任何帮助,我将不胜感激

  • 问题内容: 关于create table命令上的重复键,我收到1022错误。看完查询后,我不知道在哪里进行复制。有人可以看到吗? 问题答案: 您很可能已经在名称或数据库中具有约束。如果是这样,只需重命名约束即可。 约束对于整个数据库必须是唯一的,而不仅仅是对要创建/更改的特定表。 要找出约束当前在哪里使用,可以使用以下查询:

  • 我是新的Python和工作在我的第一个项目。我试图让我的代码从一个电子表格中复制数据列,并将其附加到当前存在于主表中的数据中。我能够捕获每个工作表中的数据,并创建一个新的主列表,该列表结合了两个数据集,但我很难将其写入文件。当我测试打印组合列表时,它们看起来是正确的,但是当我添加代码将列表写入文件时,它会挂起。 你能提供的任何帮助都会非常有用! 下面是我的代码。这是我得到的错误 Traceback

  • 在将json写入我的Cosmos DB时,我一直面临这个问题。我可以读取数据,但在写入数据时出现问题 应用了以下版本的Cosmos db connectors https://docs . azuredatabricks . net/spark/latest/data-sources/azure/Cosmos db-connector . html,并尝试了不同的版本。这个问题仍然存在。 收到以下

  • 问题内容: 我正在学习python并出现此错误。我可以找出错误在哪里什么在代码中。 , 。 当我运行程序 它输出你叫什么名字?(我输入d) 这给出了错误 这是来自Python 3的Absolute Beginners的示例代码。 问题答案: 在Python 2.x中,期望的是Python表达式,这意味着如果你键入d它,它将把它解释为名为d 的变量。如果你输入,那就可以了。 你可能真正想要的2.x是

  • 问题内容: 我已经为客户创建了一个页面,最初是在Chrome中工作,却忘了检查它是否在Firefox中工作。现在,我遇到了一个大问题,因为整个页面基于无法在Firefox中运行的脚本。 它基于所有具有导致隐藏和显示正确页面的“链接” 。我不明白为什么这在Firefox中不起作用。 例如,页面具有id ,依此类推。所有链接都具有以下代码: 它在Chrome和Safari中完美运行。 这是代码: 问题