2017-04-25 64 views
1

我需要找出cqlsh如何執行自動完成,因爲我想在create table語句的自動完成中包含自定義壓縮策略。我通常通過在代碼中的某個地方放置一個斷點,然後按照流程來做到這一點。但我不知道如何用cqlsh做到這一點,因爲我沒有看到主要的方法。我如何調試cqlsh以更好地理解我需要實現的地方? 可能不相關,但我使用v3.11。如何調試cqlsh?

回答

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

現在保存更改並重新登錄,您將得到自動完成壓實

[email protected]:titan> CREATE TABLE test (id int primary key, data text) WITH compaction = {'class': ' 
DateTieredCompactionStrategy LeveledCompactionStrategy  MyCompactionStrategy   SizeTieredCompactionStrategy TimeWindowCompactionStrategy 
+0

哇哦,你救了我很多工作,因爲我不知道該如何與Python(還)工作。謝啦! –

2

cqlsh是使用python編寫的,因此您可以使用任何python編輯器來調試代碼。我正在使用的一個這樣的python編輯器是JetBrains PyCharm您可以在此編輯器中從「Cassandra installed directory \ bin」打開cqlsh.py腳本並以調試模式運行cqlsh.py。運行/調試時使用控制檯視圖來提供輸入。順便說一句,我正在使用PyCharm。