您好,登錄后才能下訂單哦!
Cassandra Shell命令詳解
cqlsh 172.20.101.252 -u cassandra -p cassandra
Connected to cn-engage-dev at 172.20.101.252:9042.
[cqlsh 5.0.1 | Cassandra 3.11.4 | CQL spec 3.4.4 | Native protocol v4]
CREATE KEYSPACE <identifier> WITH <properties>
詳細:
CREATE KEYSPACE “KeySpace Name”
WITH replication = {'class': ‘Strategy name’, 'replication_factor' : ‘No.Of replicas’}
AND durable_writes = ‘Boolean value’;
CREATE KEYSPACE語句有兩個屬性:replication和durable_writes。
復制支持的策略
策略名稱 描述
簡單的策略 (SimpleStrategy) 為集群指定簡單的復制因子。
網絡拓撲策略(NetworkTopologyStrategy) 使用此選項,可以單獨為每個數據中心設置復制因子。
舊網絡拓撲策略 使用此選項,可以單獨為每個數據中心設置復制因子。
默認情況下,表的durable_writes屬性設置為true,但可以將其設置為false。
durable_writes參數用于設置寫數據時是否寫入commit log,如果設置為false,則寫請求不會寫commit log,會有丟失數據的風險。此參數默認為true,即要寫commit log,生產系統應該將該參數設置為true。
創建一個名為ptmind_test的KeySpace,使用網絡拓撲策略(NetworkTopologyStrategy),在數據中心1里面復制兩份,另外開啟寫commit log。
創建
cassandra@cqlsh> create keyspace ptmind_test with replication = {'class':'NetworkTopologyStrategy','dc1':2} and durable_writes = true;
查看創建語法
cassandra@cqlsh> desc keyspace ptmind_test;
CREATE KEYSPACE ptmind_test WITH replication = {'class': 'NetworkTopologyStrategy', 'dc1': '2'} AND durable_writes = true;
####Capture
此命令捕獲命令的輸出并將其添加到文件。例如,看看下面的代碼,它將輸出捕獲到名為Outputfile的文件。
當我們在終端中鍵入任何命令時,輸出將被給定的文件捕獲。下面給出的是使用的命令和輸出文件的快照。
cassandra@cqlsh> capture './cassandra.out'
Now capturing query output to './cassandra.out'.
關閉捕獲:
cqlsh:cqlsh> capture off;
此命令顯示當前的一致性級別,或設置新的一致性級別。
Consistency可以理解讀和寫操作的Consistency Level
寫操作的consistency level指定了寫操作在通知客戶端請求成功之前,必須確保已經成功完成寫操作的replica的數量。
詳細介紹:https://blog.51cto.com/michaelkang/2415292
cassandra@cqlsh> CONSISTENCY
Current consistency level is ONE.
此命令描述Cassandra及其對象的當前集群。此命令的變體說明如下。
Describe cluster -此命令提供有關集群的信息。
cassandra@cqlsh> DESCRIBE cluster;
Cluster: cn-engage-dev
Partitioner: Murmur3Partitioner
-此命令列出集群中的所有鍵空間。下面給出了這個命令的用法。
cassandra@cqlsh> DESCRIBE keyspaces;
system_schema system system_distributed
system_auth ptmind_test system_traces
創建帶有Set類型列的表
CREATE TABLE users (
user_id text PRIMARY KEY,
first_name text,
last_name text,
emails set<text>
);
插入數據
INSERT INTO users (user_id, first_name, last_name, emails) VALUES('2', 'kevin', 'kevin', {'kevin@ptmind.com', 'kevin@gmail.com'});
-此命令列出了鍵空間中的所有表。下面給出了這個命令的用法。
cassandra@cqlsh:ptmind_test> Describe tables;
users emp ptemp
-此命令提供表的描述。下面給出了這個命令的用法。
cqlsh:cqlsh> describe table emp;
此命令用于描述用戶定義的數據類型。下面給出了這個命令的用法。
cassandra@cqlsh:ptmind_test> DESCRIBE table users;
CREATE TABLE ptmind_test.users (
user_id text PRIMARY KEY,
emails set<text>,
first_name text,
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';
此命令列出所有用戶定義的數據類型。下面給出了這個命令的用法。假設有兩種用戶定義的數據類型:users和test_tables。
cassandra@cqlsh:ptmind_test> DESCRIBE TYPES;
users test_tables
此命令將數據從Cassandra復制到文件并從中復制。下面給出一個將名為emp的表復制到文件myfile的示例。
cassandra@cqlsh:ptmind_test> COPY users (user_id, first_name, last_name, emails) TO 'kevinfile';
Using 3 child processes
Starting copy of ptmind_test.users with columns [user_id, first_name, last_name, emails].
Processed: 2 rows; Rate: 1 rows/s; Avg. rate: 1 rows/s
2 rows exported to 1 files in 1.472 seconds.
驗證:
[root@kubm-01 ~]# more kevinfile
2,kevin,kevin,"{'kevin@gmail.com', 'kevin@ptmind.com'}"
frodo,Frodo,Baggins,"{'baggins@gmail.com', 'f@baggins.com'}"
此命令用于擴展輸出。在使用此命令之前,您必須打開expand命令。下面給出了這個命令的用法。
cqlsh:cqlsh> expand on;
cqlsh:cqlsh> select * from users;
cassandra@cqlsh:ptmind_test> select * from users;
@ Row 1
------------+-----------------------------------------
user_id | 2
emails | {'kevin@gmail.com', 'kevin@ptmind.com'}
first_name | kevin
last_name | kevin
@ Row 2
------------+-----------------------------------------
(2 rows)
使用以下命令關閉展開選項。
cqlsh:cqlsh> expand off;
Disabled Expanded output.
使用此命令,可以在文件中執行命令。假設我們的輸入文件如下:
然后可以執行包含命令的文件,如下所示。
[root@kubm-01 ~]# pwd
/root
[root@kubm-01 ~]# more cqshell.source
select * from users;
登陸執行;
cassandra@cqlsh:ptmind_test> SOURCE '/root/cqshell.source'
user_id | emails | first_name | last_name
---------+-----------------------------------------+------------+-----------
2 | {'kevin@gmail.com', 'kevin@ptmind.com'} | kevin | kevin
frodo | {'baggins@gmail.com', 'f@baggins.com'} | Frodo | Baggins
(2 rows)
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。