Cassandra 單機入門例子——有索引


入門例子:

http://wiki.apache.org/cassandra/GettingStarted

添加環境變量並source生效,使得可以在任意位置執行cassandra/bin安裝目錄下的命令

1
2
export CASSANDRA_HOME="/Users/zhengqh/Soft/apache-cassandra-2.0.16"
export PATH="$CASSANDRA_HOME/bin:$PATH"

前台啟動Cassandra進程, sudo cassandra -f

啟動一個新的終端, 啟動客戶端查詢: cqlsh

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
CREATE KEYSPACE mykeyspace 
WITH REPLICATION = { 'class' : 'SimpleStrategy', 'replication_factor' : 1 };

USE mykeyspace;
CREATE TABLE users (
user_id int PRIMARY KEY,
fname text,
lname text
);

INSERT INTO users (user_id, fname, lname) VALUES (1745, 'john', 'smith');
INSERT INTO users (user_id, fname, lname) VALUES (1744, 'john', 'doe');
INSERT INTO users (user_id, fname, lname) VALUES (1746, 'john', 'smith');

CREATE INDEX ON users (lname);
SELECT * FROM users WHERE lname = 'smith';

 

輸出:

cqlsh:mykeyspace> SELECT * FROM users WHERE lname = 'smith';

 user_id | fname | lname
---------+-------+-------
    1745 |  john | smith
    1746 |  john | smith

(2 rows)
cqlsh:mykeyspace>  SELECT * FROM users;

 user_id | fname | lname
---------+-------+-------
    1745 |  john | smith
    1744 |  john |   doe
    1746 |  john | smith

(3 rows)

 

觀察服務端的輸出: 

1
2
3
4
INFO 09:29:21,981 Create new Keyspace: mykeyspace, rep strategy:SimpleStrategy{}, strategy_options: {replication_factor=1}, durable_writes: true
INFO 09:29:45,822 Initializing mykeyspace.users
INFO 09:31:21,102 Initializing mykeyspace.users.users_lname_idx
INFO 09:31:21,230 Index build of users.users_lname_idx complete

然后看目錄文件:

ls mykeyspace/users

結果:

 mykeyspace-users-jb-1-CompressionInfo.db
 mykeyspace-users-jb-1-Data.db
 mykeyspace-users-jb-1-Filter.db
 mykeyspace-users-jb-1-Index.db
 mykeyspace-users-jb-1-Statistics.db
 mykeyspace-users-jb-1-Summary.db
 mykeyspace-users-jb-1-TOC.txt
 mykeyspace-users.users_lname_idx-jb-1-CompressionInfo.db
 mykeyspace-users.users_lname_idx-jb-1-Data.db
 mykeyspace-users.users_lname_idx-jb-1-Filter.db
 mykeyspace-users.users_lname_idx-jb-1-Index.db
 mykeyspace-users.users_lname_idx-jb-1-Statistics.db
 mykeyspace-users.users_lname_idx-jb-1-Summary.db
 mykeyspace-users.users_lname_idx-jb-1-TOC.txt

如果是針對沒有建立索引的字段搜索則會提示:

cqlsh:mykeyspace> SELECT * FROM users WHERE fname = 'smith';
InvalidRequest: Error from server: code=2200 [Invalid query] message="Cannot execute this query as it might involve data filtering and thus may have unpredictab le performance. If you want to execute this query despite the performance unpredictability, use ALLOW FILTERING"

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM