如何调试cqlsh?

时间:2017-04-25 09:09:03

标签: debugging autocomplete cassandra cqlsh

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

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分: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 :(得分:-1)

cqlsh:demo> TRACING ON
Now Tracing is enabled

有时,这种级别的日志记录对于调试而言已足够。