Chi tiết các lệnh tham khảo tại. Hiện tại version 2.0 vẫn còn đang phát triển và nó vẫn còn một vài hạn chế.
• Tạo một Keyspace
Ví dụ cho việc tạo keyspace Twissandra với thông số replication factor là 3 và
cqlsh> CREATE KEYSPACE twissandra WITH Strategy_class = 'NetworkTopologyStrategy AND strategy_options:DC1 = 3;
• Tạo một Column Family
Tạo column family users trong keyspace vừa mới tạo. Trước đó phải dùng USE để connect tới keyspace vừa tạo
cqlsh> USE twissandra;
cqlsh> CREATE COLUMNFAMILY users ... KEY varchar PRIMARY KEY, ... password varchar,
... gender varchar,
... session_token varchar, ... state varchar,
... birth_year bigint);
• Insert và Retrieve Columns
cqlsh> INSERT INTO users (KEY, password) VALUES ('jsmith', 'ch@ngem3a') USING TTL 86400;
cqlsh> SELECT * FROM users WHERE KEY='jsmith';
u'jsmith' | u'password',u'ch@ngem3a' | u'ttl', 86400 • Thêm Column với ALTER COLUMNFAMILY
Lênh ALTER COLUMNFAMILY sẽ cho bạn một cột mới cho một column
family. Ví dụ thêm cột coupon_code với value kiểu varchar vào users
cqlsh> ALTER TABLE users ADD coupon_code varchar;
Cái này sẽ tạo một cột metadata và thêm vào colum family schema nhưng không update những dòng đang tồn tại trong users
• Thay đổi metadata của column
Với ALTER COLUMNFAMILY bạn có thể thay đổi kiểu của cột tại thời điểm sau khi column family đó được định nghĩa. Ví dụ thay đổi value của cột từ varchar sang int. Chú ý rằng nhưng coupon code hiện tạo sẽ không được kiểm tra kiểu cho những kiểu mới. chỉ những giá trị insert sau này mới được kiểm tra
cqlsh> ALTER TABLE users ALTER coupon_code TYPE int;
• Xóa metadata của column
Nếu mục đích của bạn là xóa hoàn toàn cột metadata bao gồm tên cột và giá trị cột bạn có thể dùng
ALTER TABLE <columnFamily> DROP <column>.
Sau khi chạy lệnh này client vẫn có thế add cột mới tên coupon_code cho column family users. Nhưng chúng sẽ không có kiểm tra cho đến khi bạn add nó tường minh
• Tạo Index cho một Column
Cqlsh có thể được dùng để tạo secondary index hoặc index cho giá trị cột. Trong ví dụ này chúng ta sẽ tạo một index lên state và birth_year
cqlsh> CREATE INDEX state_key ON users (state);
cqlsh> CREATE INDEX birth_year_key ON users (birth_year); Bởi vì secondary index được tạo cho 2 cột nên giá trị của nó có thể được truy vấn trực tiếp như sau
... WHERE gender='f' AND ... state='TX' AND ... birth_year='1968';
u'user1' | u'birth_year',1968 | u'gender',u'f' | u'password',u'ch@ngem3' | u'state',u'TX'
• Xóa Column và Row
Cqlsh hỗ trợ lệnh DELETE để xóa cột hoặc hoặc row. Trong ví dụ này chúng ta sẽ xóa cột smith và sau đó xóa hoàn toàn row smith
cqlsh> DELETE session_token FROM users where KEY = 'jsmith'; cqlsh> DELETE FROM users where KEY = 'jsmith';
Chú ý rằng có một hiện tượng gọi là “range ghost” rằng key của dòng bị delete vẫn có thể được retrieve bởi lệnh SELECT. Nó chỉ thực sự mất định kì mỗi lần tác vụ compaction đc chạy
• Xóa Column Family và Keyspaces
Với lệnh cqlsh bạn có thể drop column family và key space giống như bảng và database trong DBMS
cqlsh> DROP COLUMNFAMILY users; cqlsh> DROP KEYSPACE twissandra;
Tham khảo
[1] Website http://www.datastax.com/docs/1.0/index. [2] Cassandra The Definitive Guide.