Lindorm-cqlsh は、Lindorm チームが Cassandra cqlsh をベースに開発したシェルツールです。Windows と Unix で利用できます。オンプレミスのマシンまたは Elastic Compute Service (ECS) インスタンスに Lindorm-cqlsh をインストールして、LindormTable に接続し、アクセスできます。
前提条件
クライアントの IP アドレスが Lindorm ホワイトリストに追加されていること。
Lindorm のワイドテーブルエンジンの [CQL 接続] エンドポイントを取得していること。詳細については、「エンドポイントの表示」をご参照ください。

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 接続] エンドポイント。例:
ld-bp17j28j2y7pm****-proxy-lindorm.lindorm.rds.aliyuncs.com。<port>: Lindorm の [CQL 接続] エンドポイントのポート番号。デフォルト値: 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 を使用して LindormTable に接続した後、必要に応じてサポートされているコマンドを実行します。次の例は、一般的なコマンドの実行方法を示しています。
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 rows)
first_name | last_name ------------+----------- test | LINDORM Wu | null Zhang | San (3 行)指定したデータ行から 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指定したデータ行のデータを削除し、そのデータ行をクエリします。
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を作成し、tb テーブルにデータを書き込み、あいまい検索を実行します。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';