2

Cassandra Query Language (CQL) にはsource、外部ファイルに格納された cql コマンドを実行できる便利なコマンドがあります。

SOURCE

Executes a file containing CQL statements. Gives the output for each
statement in turn, if any, or any errors that occur along the way.

Errors do NOT abort execution of the CQL source file.

Usage:
      SOURCE '<file>';

しかし、この外部ファイルが追加の入力引数を取ることができるかどうか疑問に思っています。たとえば、2 つの入力引数を使用して次の cql ファイルを開発するとします。

create keyspace $1 with
    strategy_class='SimpleStrategy' and
    strategy_options:replication_factor=$2;

そして、次のような方法で cqlsh でこの cql を実行したいと考えています。

source 'cql-filename' hello_world 3

上記の例の cql を開発し、それを というファイルに保存し、create-keyspace.cql思いつくコマンドをいくつか試しましたが、どれも機能しませんでした。

cqlsh> source 'create-keyspace.cql'
create-keyspace.cql:2:Invalid syntax at char 17
create-keyspace.cql:2:  create keyspace $1 with strategy_class='SimpleStrategy' and strategy_options:replication_factor=$2;
create-keyspace.cql:2:                  ^
cqlsh> source 'create-keyspace.cql' hello_world 3
Improper source command.
cqlsh> source 'create-keyspace.cql hello_world 3'
Could not open 'create-keyspace.cql hello_world 3': [Errno 2] No such file or directory: 'create-keyspace.cql hello_world 3'

CQl にこのタイプのサポートがあるかどうかを知ることはできますか? はいの場合、どうすれば適切に行うことができますか?

4

2 に答える 2

0

cqlsh は、CQL ステートメントを含むファイルという 1 つのパラメーターのみをサポートします。

http://docs.datastax.com/en/cql/3.1/cql/cql_reference/source_r.html

Python ベースのコマンドライン クライアントです。cqlsh.py公式の Cassandra リポジトリで次の名前のファイルを探すと、そのソース コードを確認できます。

http://git-wip-us.apache.org/repos/asf/cassandra.git

そして、SOURCEそのファイル内を検索して、それがどのように処理されているかを確認します。

于 2015-08-13T04:30:42.887 に答える