Cassandra - Shell Komutları

Cassandra, CQL komutlarına ek olarak belgelenmiş kabuk komutları sağlar. Aşağıda Cassandra tarafından belgelenmiş kabuk komutları verilmiştir.

Yardım

HELP komutu bir özetini ve tüm cqlsh komutlarının kısa bir açıklamasını görüntüler. Aşağıda yardım komutunun kullanımı verilmiştir.

cqlsh> help

Documented shell commands:
===========================
CAPTURE COPY DESCRIBE EXPAND PAGING SOURCE
CONSISTENCY DESC EXIT HELP SHOW TRACING.

CQL help topics:
================
ALTER           CREATE_TABLE_OPTIONS       SELECT
ALTER_ADD       CREATE_TABLE_TYPES         SELECT_COLUMNFAMILY
ALTER_ALTER     CREATE_USER                SELECT_EXPR
ALTER_DROP      DELETE                     SELECT_LIMIT
ALTER_RENAME    DELETE_COLUMNS             SELECT_TABLE

Ele geçirmek

Bu komut, bir komutun çıktısını yakalar ve bunu bir dosyaya ekler. Örneğin, çıktıyı adlı bir dosyaya yakalayan aşağıdaki koda bir göz atın.Outputfile.

cqlsh> CAPTURE '/home/hadoop/CassandraProgs/Outputfile'

Terminale herhangi bir komut yazdığımızda, çıktı verilen dosya tarafından yakalanacaktır. Aşağıda, kullanılan komut ve çıktı dosyasının anlık görüntüsü verilmiştir.

cqlsh:tutorialspoint> select * from emp;

Aşağıdaki komutu kullanarak yakalamayı kapatabilirsiniz.

cqlsh:tutorialspoint> capture off;

Tutarlılık

Bu komut, mevcut tutarlılık düzeyini gösterir veya yeni bir tutarlılık düzeyi ayarlar.

cqlsh:tutorialspoint> CONSISTENCY
Current consistency level is 1.

Kopyala

Bu komut, Cassandra'ya ve Cassandra'dan verileri bir dosyaya kopyalar. Aşağıda verilen tablonun kopyalanması için bir örnek verilmiştir.emp dosyaya myfile.

cqlsh:tutorialspoint> COPY emp (emp_id, emp_city, emp_name, emp_phone,emp_sal) TO ‘myfile’;
4 rows exported in 0.034 seconds.

Verilen dosyayı açıp doğrularsanız, kopyalanan verileri aşağıda gösterildiği gibi bulabilirsiniz.

Tanımlamak

Bu komut geçerli Cassandra kümesini ve nesnelerini açıklar. Bu komutun çeşitleri aşağıda açıklanmıştır.

Describe cluster - Bu komut, küme hakkında bilgi sağlar.

cqlsh:tutorialspoint> describe cluster;

Cluster: Test Cluster
Partitioner: Murmur3Partitioner

Range ownership:
                  -658380912249644557 [127.0.0.1]
                  -2833890865268921414 [127.0.0.1]
                  -6792159006375935836 [127.0.0.1]

Describe Keyspaces- Bu komut, bir kümedeki tüm anahtar alanlarını listeler. Aşağıda bu komutun kullanımı verilmiştir.

cqlsh:tutorialspoint> describe keyspaces;

system_traces system tp tutorialspoint

Describe tables- Bu komut, bir anahtar alanındaki tüm tabloları listeler. Aşağıda bu komutun kullanımı verilmiştir.

cqlsh:tutorialspoint> describe tables;
emp

Describe table- Bu komut bir tablonun açıklamasını sağlar. Aşağıda bu komutun kullanımı verilmiştir.

cqlsh:tutorialspoint> describe table emp;

CREATE TABLE tutorialspoint.emp (
   emp_id int PRIMARY KEY,
   emp_city text,
   emp_name text,
   emp_phone varint,
   emp_sal varint
) WITH bloom_filter_fp_chance = 0.01
   AND caching = '{"keys":"ALL", "rows_per_partition":"NONE"}'
   AND comment = ''
   AND compaction = {'min_threshold': '4', 'class':
   'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy',
   'max_threshold': '32'}
	
   AND compression = {'sstable_compression':
   'org.apache.cassandra.io.compress.LZ4Compressor'}
	
   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 = '99.0PERCENTILE';
CREATE INDEX emp_emp_sal_idx ON tutorialspoint.emp (emp_sal);

Türü Tanımla

Bu komut, kullanıcı tanımlı bir veri türünü tanımlamak için kullanılır. Aşağıda bu komutun kullanımı verilmiştir.

cqlsh:tutorialspoint> describe type card_details;

CREATE TYPE tutorialspoint.card_details (
   num int,
   pin int,
   name text,
   cvv int,
   phone set<int>,
   mail text
);

Türleri Tanımlayın

Bu komut, tüm kullanıcı tanımlı veri türlerini listeler. Aşağıda bu komutun kullanımı verilmiştir. İki kullanıcı tanımlı veri türü olduğunu varsayalım:card ve card_details.

cqlsh:tutorialspoint> DESCRIBE TYPES;

card_details card

Genişlet

Bu komut çıktıyı genişletmek için kullanılır. Bu komutu kullanmadan önce, genişletme komutunu açmanız gerekir. Aşağıda bu komutun kullanımı verilmiştir.

cqlsh:tutorialspoint> expand on;
cqlsh:tutorialspoint> select * from emp;

@ Row 1
-----------+------------
    emp_id | 1
  emp_city | Hyderabad
  emp_name | ram
 emp_phone | 9848022338
   emp_sal | 50000
  
@ Row 2
-----------+------------
    emp_id | 2
  emp_city | Delhi
  emp_name | robin
 emp_phone | 9848022339
   emp_sal | 50000
  
@ Row 3
-----------+------------
    emp_id | 4
  emp_city | Pune
  emp_name | rajeev
 emp_phone | 9848022331
   emp_sal | 30000
  
@ Row 4
-----------+------------
    emp_id | 3
  emp_city | Chennai
  emp_name | rahman
 emp_phone | 9848022330
   emp_sal | 50000
(4 rows)

Note - Aşağıdaki komutu kullanarak genişletme seçeneğini kapatabilirsiniz.

cqlsh:tutorialspoint> expand off;
Disabled Expanded output.

çıkış

Bu komut cql kabuğunu sonlandırmak için kullanılır.

Göstermek

Bu komut, Cassandra sürümü, ana bilgisayar veya veri türü varsayımları gibi geçerli cqlsh oturumunun ayrıntılarını görüntüler. Aşağıda bu komutun kullanımı verilmiştir.

cqlsh:tutorialspoint> show host;
Connected to Test Cluster at 127.0.0.1:9042.

cqlsh:tutorialspoint> show version;
[cqlsh 5.0.1 | Cassandra 2.1.2 | CQL spec 3.2.0 | Native protocol v3]

Kaynak

Bu komutu kullanarak, komutları bir dosyada çalıştırabilirsiniz. Giriş dosyamızın aşağıdaki gibi olduğunu varsayalım -

Daha sonra komutları içeren dosyayı aşağıda gösterildiği gibi çalıştırabilirsiniz.

cqlsh:tutorialspoint> source '/home/hadoop/CassandraProgs/inputfile';

 emp_id |  emp_city | emp_name |  emp_phone | emp_sal
--------+-----------+----------+------------+---------
      1 | Hyderabad |   ram    | 9848022338 | 50000
      2 | Delhi     |   robin  | 9848022339 | 50000
      3 | Pune      |   rajeev | 9848022331 | 30000
      4 | Chennai   |   rahman | 9848022330 | 50000
(4 rows)