web-dev-qa-db-ja.com

cqlsh内からcqlファイル(.cql)を実行する方法は?

私が抱えている問題は、次のコマンドを実行したいということです(できません)。

cqlsh < cql_directory/cql_create_stuff.cql

Cqlshにログインしていないためです。

だから私はログインしました:

cqlsh -u 'my_username' -p 'my_super_secret_password'

そして今、cqlshシェルでコマンドを実行しようとしましたが、構文エラーで応答します。

基本的に、cqlshにログインして、ファイルシステムで外部CQLスクリプトを実行するにはどうすればよいですか?

49
Pinocchio

SOURCEを使用します

http://www.datastax.com/documentation/cql/3.1/cql/cql_reference/source_r.html

-fオプションを使用して、ファイルからコマンドを実行することもできます

http://www.datastax.com/documentation/cql/3.1/cql/cql_reference/cqlsh.html

54
Mikhail Stepura

CQLコマンドを使用したファイルのパスが/mydir/myfile.cqlであると仮定すると、2つの方法があります。

Cqlshにログインしていない場合:

cqlsh -u 'my_username' -p 'my_password' -f /mydir/myfile.cql

Cqlshにログインしている場合:

SOURCE '/mydir/myfile.cql'

単一引用符に注意してください。 $HOME(たとえば、'~/mydir/myfile.cql')の短縮表記もサポートされています。

両方の方法は、(現在のディレクトリへの)相対パスでも機能します。

22
Esteban Herrera

これはウィンドウシステム用です

cassandra dirがC:\ Program Files\DataStax-DDC\Apache-cassandra\binであるとします

.cqlファイルOR cqlクエリファイルがparse\Womenカタログtemplate.cqlの後にD:\ ril\s\developement\new one\Excelであるディレクトリを想定します。

Cqlファイルをインポートするための以下の手順に従ってください

  1. コマンドプロンプトに進む(cmd
  2. Cqlファイルがあるディレクトリに移動します(cd "..\ril\sizeguide\developement\new one\Excel after parse"
  3. 以下のコマンドを実行します "c:\ Program Files\DataStax-DDC\Apache-cassandra\bin\cqlsh.bat" <"女性カタログtemplate.cql"

そしてその完了。

重要な注意点:

  • 列の値に一重引用符が含まれていないことを確認してください'のような文字(「完全に一致するものが見つからない場合、次の大きなサイズに進む」)は、失敗します。
  • 単一引用符を挿入する場合は、以下のように2回使用してください。Cassandraは1回として処理します(「完全に一致するものが見つからない場合は、次の大きなサイズに移動します」 )
  • すべてのテキスト列は、「販売カテゴリ」のように単一引用符 ''で囲む必要があります。空の値の場合は、2つの一重引用符''を使用してください。
0

ファイル名が「tables.cql」であり、次のように配置されていると仮定します:/files/tables.cql;

A-ローカル

cqlsh -f /files/tables.cql

B-Cassandraを実行するDockerコンテナーへの接続

Cassandraを実行しているDockerコンテナーの名前が「cas」であると仮定します(名前がない場合は、DockerコンテナーのハッシュIDも使用できることに注意してください)それに割り当てられます);

docker exec -it cas cqlsh -f /files/tables.cql

他の回答で述べたように、ユーザー名とパスワードの組み合わせを使用するために、-uおよび-pオプションを追加できます。

0