如何调试cqlsh?

问题描述 投票:1回答:3

我需要了解cqlsh如何执行自动完成,因为我想在create table语句的自动完成中包含自定义压缩策略。我通常通过在代码中的某处放置断点然后遵循流程来完成此操作。但我不知道如何用cqlsh做这个,因为我没有看到主要的方法。如何调试cqlsh以更好地了解我需要在哪里实现它?可能不相关,但我正在使用v3.11。

debugging autocomplete cassandra cqlsh
3个回答
2
投票

Cqlsh是一个python工具,它位于$CASSANDRA_HOME/bin/cqlsh.py

如果要向cqlsh添加自定义压缩策略,则必须编辑位于$CASSANDRA_HOME//pylib/cqlshlib/cqlhandling.py的依赖文件

找到available_compaction_classes字段并添加您的字段。

available_compaction_classes = (
    'LeveledCompactionStrategy',
    'SizeTieredCompactionStrategy',
    'DateTieredCompactionStrategy',
    'TimeWindowCompactionStrategy',
    'MyCompactionStrategy'
)

在这里,我添加了MyCompactionStrategy

现在保存更改并重新登录,您将获得自动完成以进行压缩

cassandra@cqlsh:titan> CREATE TABLE test (id int primary key, data text) WITH compaction = {'class': '
DateTieredCompactionStrategy  LeveledCompactionStrategy     MyCompactionStrategy          SizeTieredCompactionStrategy  TimeWindowCompactionStrategy

2
投票

cqlsh是使用python编写的,因此您可以使用任何python编辑器来调试代码。我正在使用的一个这样的python编辑器是JetBrains PyCharm你可以在这个编辑器中从“Cassandra installed directory \ bin”打开cqlsh.py脚本,并在调试模式下运行cqlsh.py。运行/调试时使用控制台视图来提供输入。顺便说一句,我正在使用PyCharm。


-1
投票
cqlsh:demo> TRACING ON
Now Tracing is enabled

有时这种级别的日志记录足以进行调试。

© www.soinside.com 2019 - 2024. All rights reserved.