我需要了解cqlsh如何进行自动完成,因为我想在create table语句的自动完成中包含自定义压缩策略。我通常通过在代码中的某处放置断点然后遵循流程来完成此操作。但是我不知道怎么用cqlsh做这个,因为我没有看到主要的方法。如何调试cqlsh以更好地了解我需要在哪里实现它? 可能不相关,但我使用的是v3.11。
答案 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
有时,这种级别的日志记录对于调试而言已足够。