【问题标题】:Cassandra refuses to run query with where clauseCassandra 拒绝使用 where 子句运行查询
【发布时间】:2017-10-31 15:56:31
【问题描述】:

我有 2 个 Cassandra 节点。我有一个包含 3 个文本字段(所有键)和 2 个计数器的表。射频为 2。

我在表格中添加了另一个计数器列。错误地,我在该列上发布了 drop 。我将应用程序恢复到旧版本以不使用该列。

我添加了另一个计数器列,用不同的名称替换掉掉的那个。我更改了应用程序以使用该新列。

现在,我所有具有 where 子句的查询都失败并出现此错误:

ReadFailure: 来自服务器的错误: code=1300 [Replica(s) failed to execute read] message="操作失败 - 收到 0 个响应和 2 个失败" info={'failures': 2, 'received_responses': 0, 'required_responses': 1, '一致性': 'ONE'}

我在debug.log看到这个:

java.lang.IllegalStateException: [payable, income, to_pay, value] 不是 [revenue to_pay value] 的子集

payable 是旧列,已被删除,to_pay 是新列。

发生了什么?

Cassandra 版本是 3.11。

附言。我尝试修复,它正在运行。会有帮助吗?

编辑:

表架构:

CREATE TABLE backend_platform_prod.stats_counters (
    date text,
    key text,
    revenue counter,
    to_pay counter,
    value counter,
    PRIMARY KEY (date, key)
) WITH CLUSTERING ORDER BY (key ASC)
    AND bloom_filter_fp_chance = 0.01
    AND caching = {'keys': 'ALL', 'rows_per_partition': 'NONE'}
    AND comment = ''
    AND compaction = {'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy', 'max_threshold': '32', 'min_threshold': '4'}
    AND compression = {'chunk_length_in_kb': '64', 'class': 'org.apache.cassandra.io.compress.LZ4Compressor'}
    AND crc_check_chance = 1.0
    AND dclocal_read_repair_chance = 0.1
    AND default_time_to_live = 0
    AND gc_grace_seconds = 864000
    AND max_index_interval = 2048
    AND memtable_flush_period_in_ms = 0
    AND min_index_interval = 128
    AND read_repair_chance = 0.0
    AND speculative_retry = '99PERCENTILE';

有一个payable counter 字段,已被删除。

我尝试使用copy to 备份数据,删除表并重新创建它,然后使用copy from 进行恢复。它现在可以工作了,虽然有些数据似乎丢失了(不是很重要)。

我在system_schema.dropped_columns 中看到payable 列,但在system_schema.columns 中没有。

【问题讨论】:

  • 您当前的架构是什么,您能否举例说明您尝试运行的查询之一?
  • @RebeccaNelson 请参阅编辑。
  • @vfsoraki 你能分享一下你发现了什么以及你是如何解决这个问题的吗?
  • @cacert 阅读最后一段。我导出数据,删除表并重新创建它。
  • @vfsoraki 您是否尝试过修复或压缩但没有帮助?

标签: cassandra


【解决方案1】:

请检查 System_schema 键空间。如果该列仍然存在,请删除该行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-18
    • 1970-01-01
    • 2014-06-25
    • 2017-01-04
    • 1970-01-01
    • 2017-02-25
    • 2021-08-19
    • 1970-01-01
    相关资源
    最近更新 更多