Lindorm-cqlsh は、Lindorm チームが提供するコマンドラインシェルツールです。Cassandra cqlsh をベースにしており、Windows および UNIX オペレーティングシステムをサポートしています。ローカルマシンまたは ECS インスタンスに Lindorm-cqlsh をインストールして、LindormTable に接続し、アクセスします。
前提条件
-
クライアントの IP アドレスが Lindorm ホワイトリストに追加されていること。
-
Lindorm コンソールの [ワイドテーブルエンジン] タブの CQL Connection の横に表示される LindormTable エンドポイントを取得していること。詳細については、「エンドポイントの表示」をご参照ください。

-
ダウンロードし、Lindorm-cqlsh を解凍します。
ご利用のアプリケーションが ECS インスタンス上で実行されている場合、Lindorm インスタンスと ECS インスタンスがネットワーク接続に関する以下の要件を満たしていることを確認してください。ECS インスタンスの詳細の表示方法については、「インスタンス情報の表示」をご参照ください。
Lindorm インスタンスと ECS インスタンスが同じリージョンにデプロイされていること。ネットワーク遅延を削減するために、2つのインスタンスを同じゾーンにデプロイすることを推奨します。
ネットワークタイプが同じであること。
一般的なコマンド
Lindorm-cqlsh を使用して LindormTable に接続した後、次のコマンドを実行できます。
Documented shell commands:===========================
CAPTURE COPY DESCRIBE LOGIN DESC EXIT HELP PAGING SHOW
CQL help topics:================
CREATE_KEYSPACE TEXT ALTER_KEYSPACE TIME CREATE_ROLE
DROP_USER TIMESTAMP ALTER_TABLE CREATE_TABLE
GRANT ALTER_USER INSERT UPDATE
CREATE_USER INSERT_JSON USE ASCII
DATE INT UUID BATCH
DELETE JSON BEGIN KEYWORDS
BLOB DROP_COLUMNFAMILY LIST_PERMISSIONSBOOLEAN LIST_ROLES
COUNTER DROP_INDEX LIST_USERS DROP_KEYSPACE
PERMISSIONS CREATE_COLUMNFAMILY REVOKE DROP_ROLE
SELECT CREATE_INDEX DROP_TABLE SELECT_JSON
操作手順
-
次のコマンドを実行して、Lindorm-cqlsh を Lindorm に接続します。
bin/cqlsh <host> <port> -u <username> -p <password>説明bin/cqlsh があるパスの Python バージョンを 2.7.x に設定することを推奨します。
-
<host>:Lindorm コンソールから取得した LindormTable の CQL Connection エンドポイント。例:
ld-bp17j28j2y7pm****-proxy-lindorm.lindorm.rds.aliyuncs.com。 -
<port>:Lindorm ワイドテーブルエンジンの CQL Connection エンドポイントのポート番号。デフォルト値は 9042 です。
<username>:LindormTable への接続に使用するユーザー名。デフォルト値:root。
-
<password>:ユーザー名のパスワード。パスワードを忘れた場合は、クラスター管理システムでリセットしてください。詳細については、「パスワードのリセット」をご参照ください。
-
Lindorm は複数の Lindorm-cqlsh アクセスコマンドをサポートしています。詳細については、
bin/cqlsh -helpを実行してください。
-
Lindorm-cqlsh を使用してキースペースを作成します。Lindorm におけるキースペースの概念は、リレーショナルデータベースシステムのデータベースの概念に似ています。キースペースには、1つ以上のテーブルまたはカラムファミリーを含めることができます。
CREATE KEYSPACE test_keyspace WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 1};キースペースが作成された後、次のコマンドを実行してキースペースをクエリします。
DESCRIBE KEYSPACE test_keyspace; -
USE コマンドを実行してキースペースに切り替えます。
USE test_keyspace;次の情報が返されます。
cqlsh:test_keyspace> -
次のコード例は、Lindorm-cqlsh を使用して Lindorm ワイドテーブルにアクセスする方法を示しています。
-
Lindorm-cqlsh を使用して test_user という名前のテーブルを作成します。このテーブルには、TEXT データ型の2つの列 (first_name と last_name) が含まれています。first_name フィールドは、テーブルのプライマリキーです。
CREATE TABLE test_user(first_name text, last_name text, PRIMARY KEY (first_name));説明USE test_keyspace;を実行していない場合は、次の文を使用してテーブルを作成します。CREATE TABLE test_keyspace.test_user(first_name text, last_name text, PRIMARY KEY (first_name)); -
test_user テーブルに関する情報をクエリします。
DESCRIBE TABLE test_user;次の情報が返されます。
CREATE TABLE test_keyspace.test_user ( first_name text PRIMARY KEY, last_name text ) WITH bloom_filter_fp_chance = 0.01 AND caching = {'keys': 'ALL', 'rows_per_partition': 'NONE'} AND comment = '' AND compaction = {'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy', 'max_threshold': '32', 'min_threshold': '4'} AND compression = {'chunk_length_in_kb': '64', 'class': 'org.apache.cassandra.io.compress.LZ4Compressor'} AND crc_check_chance = 1.0 AND dclocal_read_repair_chance = 0.1 AND default_time_to_live = 0 AND gc_grace_seconds = 864000 AND max_index_interval = 2048 AND memtable_flush_period_in_ms = 0 AND min_index_interval = 128 AND read_repair_chance = 0.0 AND speculative_retry = '99PERCENTILE';説明DESCRIBE TABLE 文を実行して、テーブルの作成時に実行した文をクエリできます。返される情報には、カスタム設定とデフォルト設定がフォーマットされた形式で表示されます。Lindorm は、Cassandra でサポートされているテーブル属性と完全には互換性がありません。テーブル属性が Lindorm でサポートされていない場合でも、システムはその属性を返します。返される値は、Cassandra のデフォルトの属性値です。
-
Lindorm は次のテーブル属性を無視します:
crc_check_chance, gc_grace_seconds, read_repair_chance, speculative_retry, dclocal_read_repair_chance, crc_check_chance。 -
Lindorm は次の属性を完全にサポートしています:
compression, default_time_to_live。
-
-
test_user テーブルにデータを挿入します。
INSERT INTO test_user (first_name, last_name) VALUES ('test', 'LINDORM'); INSERT INTO test_user (first_name, last_name) VALUES ('Zhang', 'San'); INSERT INTO test_user (first_name) VALUES ('Wu'); -
データが期待どおりに挿入されたかどうかを確認します。大量のデータが挿入されるシナリオでは、次のコマンドを実行しないことを推奨します。
SELECT COUNT(*) FROM test_user;次の情報が返されます。
count ------- 3 (1 rows)次のコマンドを実行して、挿入されたデータの詳細をクエリできます。
SELECT * FROM test_user;次の情報が返されます。
first_name | last_name ------------+----------- test | LINDORM Wu | null Zhang | San (3 行) -
test_user テーブルの指定された行の last_name 列の値を削除し、テーブルをクエリして削除を検証します。
DELETE last_name FROM test_user WHERE first_name='test'; SELECT * FROM test_user WHERE first_name='test';次の情報が返されます。
first_name | last_name ------------+----------- test | null -
test_user テーブルから指定された行を削除し、テーブルをクエリして削除を検証できます。
DELETE FROM test_user WHERE first_name='test'; SELECT * FROM test_user WHERE first_name='test';次の情報が返されます。
first_name | last_name ------------+----------- (0 rows) -
テーブルを切り捨てるか、削除します。スーパーユーザーのみが
TRUNCATE、DROP TABLE、DROP KEYSPACEを実行できます。TRUNCATE test_user; DROP TABLE test_user; -
Lindorm で検索インデックスを使用する
Lindorm Cassandra Query Language (CQL) コマンドを実行して、LindormTable のワイドテーブルに検索インデックスを作成します。ワイドテーブルに検索インデックスを作成する前に、テーブルの属性が対応する要件を満たしていることを確認してください。要件の詳細については、チケットを送信してテクニカルサポートにご連絡ください。
CREATE TABLE test_keyspace.tb (cn1 text PRIMARY KEY, cn2 text, cn3 text) WITH extensions = {'CONSISTENCY_TYPE':'strong', 'MUTABILITY':'MUTABLE_LATEST'}; CREATE SEARCH INDEX tbidx ON test_keyspace.tb WITH COLUMNS (cn2, cn3); REBUILD SEARCH INDEX ON test_keyspace.tb ; INSERT INTO test_keyspace.tb (cn1, cn2, cn3) VALUES ('v11', 'v12', 'v13'); SELECT * FROM test_keyspace.tb WHERE cn2 like '%v1';説明この例では、
tbという名前のインデックステーブルにtbidxという名前のインデックスを作成し、データを挿入して、あいまい検索を実行します。 -
Lindorm でセカンダリインデックスを使用する
Lindorm CQL コマンドを実行して、LindormTable のワイドテーブルにセカンダリインデックスを作成します。ワイドテーブルにセカンダリインデックスを作成する前に、テーブルの属性が対応する要件を満たしていることを確認してください。要件については、「セカンダリインデックス」をご参照ください。
CREATE TABLE test_keyspace.tb (cn1 text PRIMARY KEY, cn2 text, cn3 text) WITH extensions = {'CONSISTENCY_TYPE':'strong', 'MUTABILITY':'MUTABLE_LATEST'}; CREATE INDEX tbidx ON test_keyspace.tb (cn2); INSERT INTO test_keyspace.tb (cn1, cn2, cn3) VALUES ('v11', 'v12', 'v13'); SELECT * FROM test_keyspace.tb WHERE cn2 = 'v12';
-