Lindorm-cqlsh adalah shell tool yang disediakan oleh tim Lindorm. Tool ini merupakan versi modifikasi dari Cassandra cqlsh dan tersedia untuk sistem operasi Windows maupun Unix-like. Anda dapat menginstal Lindorm-cqlsh di mesin lokal atau Instance ECS untuk mengakses LindormTable.
Prasyarat
-
Anda telah menambahkan alamat IP klien ke whitelist instans Lindorm Anda.
-
Anda telah memperoleh alamat CQL Connection untuk engine LindormTable dari Lindorm. Untuk informasi selengkapnya, lihat View connection strings. Pada halaman Detail Instans di Konsol Lindorm, pilih tab LindormTable, perluas bagian Cassandra-compatible Addresses, lalu peroleh alamat koneksi VPC atau jaringan publik untuk CQL connection. Username dan password default keduanya adalah
root. -
Anda telah mengunduh dan mengekstrak Lindorm-cqlsh.
Jika aplikasi Anda dideploy pada Instance ECS, pastikan instans Lindorm dan Instance ECS memenuhi kondisi berikut untuk memastikan konektivitas jaringan. Untuk informasi lebih lanjut tentang cara melihat informasi Instance ECS, lihat View instance information.
Instans Lindorm dan Instance ECS dideploy di wilayah yang sama. Kami merekomendasikan agar kedua instans dideploy di zona yang sama untuk mengurangi latensi jaringan.
Jenis jaringan instans Lindorm sama dengan jenis jaringan Instance ECS.
Perintah umum
Setelah Anda menggunakan Lindorm-cqlsh untuk terhubung ke LindormTable, Anda dapat menjalankan perintah-perintah berikut:
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
Prosedur
-
Jalankan perintah berikut untuk terhubung ke Lindorm.
bin/cqlsh <host> <port> -u <username> -p <password>CatatanKami merekomendasikan agar Anda mengatur versi Python pada path tempat bin/cqlsh berada ke versi 2.7.x.
-
<host>: Alamat CQL Connection untuk LindormTable, yang diperoleh dari Konsol Lindorm. Contoh:
ld-bp17j28j2y7pm****-proxy-lindorm.lindorm.rds.aliyuncs.com. -
<port>: Menentukan nomor port CQL Connection engine LindormTable dari Lindorm. Nilai default-nya adalah 9042.
<username>: username yang ingin Anda gunakan untuk terhubung ke LindormTable. Nilai default: root.
-
<password>: Password untuk username yang ditentukan. Jika Anda lupa password, Anda dapat reset password menggunakan sistem manajemen kluster.
-
Lindorm mendukung berbagai perintah akses Lindorm-cqlsh. Untuk informasi selengkapnya, Anda dapat menjalankan perintah
bin/cqlsh -help.
-
Gunakan Lindorm-cqlsh untuk membuat keyspace. Konsep keyspace di Lindorm mirip dengan konsep database dalam sistem database relasional. Keyspace dapat berisi satu atau beberapa tabel atau column family.
CREATE KEYSPACE test_keyspace WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 1};Setelah keyspace dibuat, jalankan perintah berikut untuk mengkueri keyspace tersebut:
DESCRIBE KEYSPACE test_keyspace; -
Jalankan perintah USE untuk beralih ke keyspace tersebut.
USE test_keyspace;Informasi berikut akan dikembalikan:
cqlsh:test_keyspace> -
Setelah Anda menggunakan Lindorm-cqlsh untuk terhubung ke LindormTable, jalankan perintah yang didukung sesuai kebutuhan bisnis Anda. Contoh berikut menunjukkan cara menjalankan perintah umum:
-
Gunakan Lindorm-cqlsh untuk membuat tabel bernama test_user. Tabel ini berisi dua kolom bertipe data TEXT: first_name dan last_name. Kolom first_name adalah primary key tabel tersebut.
CREATE TABLE test_user(first_name text, last_name text, PRIMARY KEY (first_name));CatatanJika Anda tidak menjalankan perintah
USE test_keyspace;sebelum membuat tabel, Anda dapat menjalankan perintah berikut untuk membuat tabel tersebut.CREATE TABLE test_keyspace.test_user(first_name text, last_name text, PRIMARY KEY (first_name)); -
Kueri informasi tentang tabel test_user.
DESCRIBE TABLE test_user;Informasi berikut akan dikembalikan:
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';CatatanAnda dapat menjalankan pernyataan DESCRIBE TABLE untuk mengkueri pernyataan yang Anda eksekusi saat membuat tabel. Informasi yang dikembalikan menampilkan pengaturan kustom dan default dalam format yang terstruktur. Lindorm tidak sepenuhnya kompatibel dengan atribut tabel yang didukung oleh Cassandra. Jika suatu atribut tabel tidak didukung oleh Lindorm, sistem tetap akan mengembalikan atribut tersebut dengan nilai default Cassandra.
-
Atribut tabel berikut tidak memiliki arti praktis untuk tabel Lindorm:
crc_check_chance, gc_grace_seconds, read_repair_chance, speculative_retry, dclocal_read_repair_chance. -
Atribut berikut sepenuhnya kompatibel:
compression, default_time_to_live.
-
-
Masukkan data ke dalam tabel 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'); -
Periksa apakah data telah dimasukkan sesuai harapan. Kami merekomendasikan agar Anda tidak menjalankan perintah berikut dalam skenario yang melibatkan volume data besar:
SELECT COUNT(*) FROM test_user;Informasi berikut akan dikembalikan:
count ------- 3 (1 rows)Anda dapat menjalankan perintah berikut untuk mengkueri detail data yang dimasukkan:
SELECT * FROM test_user;Informasi berikut akan dikembalikan:
first_name | last_name ------------+----------- test | LINDORM Wu | null Zhang | San (3 rows) -
Hapus nilai pada kolom last_name dari baris data tertentu dan kueri baris data tersebut.
DELETE last_name FROM test_user WHERE first_name='test'; SELECT * FROM test_user WHERE first_name='test';Informasi berikut akan dikembalikan:
first_name | last_name ------------+----------- test | null -
Hapus data dari baris data tertentu dan kueri baris data tersebut.
DELETE FROM test_user WHERE first_name='test'; SELECT * FROM test_user WHERE first_name='test';Informasi berikut akan dikembalikan:
first_name | last_name ------------+----------- (0 rows) -
Truncate atau drop tabel. Hanya superuser yang dapat menjalankan perintah
TRUNCATE, DROP TABLE, dan DROP KEYSPACE.TRUNCATE test_user; DROP TABLE test_user; -
Gunakan indeks pencarian di Lindorm.
Anda dapat menggunakan CQL untuk membuat indeks pencarian untuk tabel di LindormTable. Sebelum membuat indeks pencarian, pastikan properti tabel memenuhi persyaratan yang ditentukan. Untuk informasi selengkapnya mengenai persyaratan tersebut, submit a ticket.
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';CatatanKode di atas membuat indeks bernama
tbidxuntuk tabeltb, menulis data ke tabel, lalu melakukan pencarian fuzzy. -
Gunakan indeks sekunder di Lindorm.
Jalankan perintah CQL Lindorm untuk membuat indeks sekunder untuk tabel lebar di LindormTable. Sebelum membuat indeks sekunder untuk tabel lebar, pastikan atribut tabel memenuhi persyaratan yang sesuai. Untuk informasi selengkapnya mengenai persyaratan tersebut, lihat Secondary index.
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';
-