cqlsh

CQL対話型ターミナルを起動します。

CQL対話型ターミナルを起動します。

構文

cqlsh [options] [host [port]]
python cqlsh [options] [host [port]]

説明

Cassandraインストールには、Cassandraクエリ言語(CQL)コマンドを実行するためのpythonベースのコマンドライン・クライアントである、cqlshユーティリティが含まれています。cqlshコマンドは、LinuxまたはWindowsのコマンドラインでcqlshユーティリティを起動するために使用します。Windowsでは、PATH環境変数がpythonのインストールを参照していない場合、キーワード pythonが使用されます。

cqlshを使用することで、CQLコマンドを対話型で実行できます。cqlshはタブ補完をサポートしています。また、TRACEなどのcqlshコマンドを実行することもできます。

要件

Cassandra 2.1+のcqlshユーティリティは、ネイティブ・プロトコルを使用しています。Datastax pythonドライバーを使用するCassandra 2.1+のデフォルトのcqlshリッスン・ポートは9042です。

Cassandra 2.0のcqlshユーティリティは、Thriftトランスポートを使用しています。Cassandra 2.0.xのデフォルトのcqlshリッスン・ポートは9160です。Cassandra 2.0.x以前のバージョンのデフォルトでは、cassandra.yamlファイルでstart_rpcをtrueに構成することでThriftを有効にします。cqlshユーティリティはThrift RPCサービスを使用しています。また、Thriftポートを介したアクセスを可能にするファイアウォール構成も必要になることがあります。

構成の詳細については、Cassandra 2.2 cassandra.yamlまたはCassandra 2.0 cassandra.yamlファイルを参照してください。

Options

-C、--color
常に色出力を使用します。
--debug
詳細なデバッグ情報を表示します。
--cqlshrc path
cqlshrcの代替ファイル場所であるpathを使用します(Cassandra 2.1.1)。
-e cql_statement、--execute cql_statement
Cassandra 2.1以降で、CQLコマンドを受け付けて実行します。ファイルへのCQL出力の保存に便利です。
-f file_name、--file=file_name
file_nameからコマンドを実行して終了します。
-h、--help
これらのオプションに関するオンライン・ヘルプを表示して終了します。
-k keyspace_name
指定されたキースペースを使用します。cqlshの起動直後にUSE keyspaceコマンドを発行することと同じです。
--no-color
色出力を使用しません。
-p password
パスワードを使用して認証を行います。デフォルトはcassandraです。
-t transport_factory_name、--transport=transport_factory_name
提供されたThriftトランスポート・ファクトリ機能を使用します。
-u user_name
指定されたユーザーとして認証します。デフォルトはcassandraです。
--version
cqlshのバージョンを表示します。

cqlshrcファイルの作成と使用

ホーム・ディレクトリーの.cassandra隠しディレクトリーに存在するcqlshrcファイルを作成できます。ファイルが存在する場合は、そのファイルによってデフォルトの構成情報をcqlshに渡すことができます。サンプル・ファイルは以下のようになります。
; Sample ~/.cassandra/cqlshrc file.[authentication] username = fred password = !!bang!!
Cassandraをインストールすると、tarボール・インストールのconfディレクトリーにcqlshrc.sampleファイルが含まれます。Windowsの場合、コマンド・プロンプトでこのファイルを作成するには、cqlshrc.sampleファイルをconfディレクトリーから、自分のユーザー・ホーム・フォルダーである.cassandra隠しフォルダーにコピーし、cqlshrcという名前に変更します。

SSL_CERTFILE環境変数を繰り返しオーバーライドしなくても、cqlshrcファイルを使用してSSL暗号化を構成できます。ユーザーが認証オプションを使用する前に、Cassandra内部認証を構成する必要があります。

cqlshrcオプション

cqlshrcファイルを構成するには、ファイルの[authentication]、[ui]、または[ssl]セクションにこれらのオプションを設定します。

[authentication]オプションは以下のとおりです。

keyspace
指定されたキースペースを使用します。cqlshの起動直後にUSE keyspaceコマンドを発行することと同じです。
password
パスワードを使用して認証を行います。
username
指定されたユーザーとして認証します。

[connection] option (Cassandra 2.1.1+) is:

client_timeout
秒単位のcqlshタイムアウトを構成します。None、またはタイムアウトをトリガーする非アクティブである秒数に設定します。

[csv] option (Cassandra 2.0.15+, 2.1.5+) is:

field_size_limit
cqlshのフィールド・サイズを構成します。特定のフィールド・サイズに設定します。例:field_size_limit (1000000000)

[ssl]オプションについては、Cassandraのドキュメントで説明しています。

[ui]オプションは以下のとおりです。

color
常に色出力を使用します。
completekey
このキーをcqlshシェル・エントリーの自動補完に使用します。デフォルトはTabキーです。
float_precision
この小数点以下の桁数の精度を使用します。デフォルトは5です。
time_format
データベース・オブジェクトの出力形式をPython strftime構文を使用して構成します。

CQLコマンドの使用

起動時、cqlshによって、cqlshユーティリティへの接続に使用されるクラスターの名前、IPアドレス、およびポートが表示されます。cqlshの最初のプロンプトはcqlsh>です。使用するキースペースを指定すると、このプロンプトにキースペースの名前が付加されます。例:

cqlsh 1.2.3.4 9042 -u jdoe -p mypassword Connected to Test Cluster at 1.2.3.4:9042. [cqlsh 5.0.1 | Cassandra 2.2.0 | CQL spec 3.3.0 | Native protocol v4] Use HELP for help. cqlsh>USE mykeyspace; cqlsh:mykeyspace>
cqlshプロンプトでCQLコマンドを入力します。コマンドの終了にはセミコロンを使用します。改行はコマンドの終了を意味しないため、わかりやすくするためにコマンドを複数行にわたって記述することができます。
cqlsh> USE demo_cl; cqlsh:demo_cl> SELECT * FROM demo_table ...WHERE id = 0;
コマンドを正常に送信して実行すると、結果が標準出力に送信されます。

このリファレンスの前半で説明したコマンドの語彙構造では、コマンドでの大文字および小文字リテラルの扱い、文字列で引用符を使用する場合、および指数表記の入力方法について説明しています。

ファイルへのCQL出力の保存

cqlshコマンドに対して-eオプションに続けてCQL文を引用符で囲んで指定すると、CQL文が受け付けられて実行されます。たとえば、SELECT文の出力をmyoutput.txtに保存する場合は以下のようにします。

cqlsh -e "SELECT * FROM mytable" > myoutput.txt

ファイルを入力として使用

ファイル内のCQLコマンドを実行するには、オペレーティング・システムのコマンドラインで、-fオプションとそのファイルへのパスを指定します。または、cqlshを起動した後、cqlshコマンドラインでSOURCEコマンドとファイルへのパスを指定します。

cqlsh環境変数

デフォルトのcqlshホストおよびリッスン・ポートは、CQLSH_HOSTおよびCQLSH_PORT環境変数を設定することでオーバーライドできます。CQLSH_HOSTはホスト名またはIPアドレスに設定します。構成時には、cqlshはローカルホストおよびポート9042(Cassandra 2.1以降)または9160(Cassandra 2.0.x)のデフォルト値ではなく、これらの変数を使用します。コマンドラインで指定されたホストおよびポート番号は、構成されている変数よりも優先されます。