Command-Line Interface (CLI)

Một phần của tài liệu tìm hiểu hệ quản trị cơ sở dữ liệu phân tán cassandra (Trang 37 - 40)

Tiện ích này dùng để định nghĩa, thao tác với Cassandra sử dụng dòng lệnh ra đời từ phiên bản 0.7. Nó được cấp phapr trong bin/Cassandra-cli trong gói cài đặt của Cassandra. Để khởi động và sử dụng Cassandra ta phải connect tới nó bằng cách chạy dòng lệnh với các tham số -host cà –port. Ví dụ để connect tới localhost trên port 9160:

$ cassandra-cli -host localhost -port 9160 Để xem trợ giúp

[default@unknown] help;

Để xem trợ giúp của một lệnh

[default@unknown] help SET;

6.1.1. Tạo một Keyspace

Tạo một keyspace gọi là demo, với replication_factor là 1 sử dụng SimpleStrategy replica placement strategy

[default@unknown] CREATE KEYSPACE demo

with placement_strategy = 'org.apache.cassandra.locator.SimpleStrategy' and strategy_options = [{replication_factor:1}];

Show ra những chi tiết cấu hình của tất cả các keyspace đã tạo

SHOW KEYSPACES

6.1.2. Tạo một Column Family

Đầu tiên kết nối đến keyspace nơi bạn muốn định nghĩa column family [default@unknown] USE demo;

Tạo static column family users trong keyspace demo. Trong column family này chúng ta tạo một vài cột: full_name, state, gender, email, birth_year. Chú ý setting của comparator, key_validation_class, validation_class

[default@demo] CREATE COLUMN FAMILY users WITH comparator = UTF8Type

AND key_validation_class=UTF8Type AND column_metadata = [

{column_name: full_name, validation_class: UTF8Type}

{column_name: email, validation_class: UTF8Type}

{column_name: state, validation_class: UTF8Type}

{column_name: gender, validation_class: UTF8Type}

{column_name: birth_year, validation_class: LongType}

];

Tiếp theo tạo một dynamic column family gọi là blog_entry. Chú ý rằng ở đây chúng ta ko đặc tả định nghĩa cột. Vì tên cột sẽ được đặc tả bởi người dùng

[default@demo] CREATE COLUMN FAMILY blog_entry WITH comparator = TimeUUIDType

AND key_validation_class=UTF8Type

AND default_validation_class = UTF8Type;

6.1.3. Thêm Row và Column

Những câu lệnh sau minh họa cách dùng câu lênh SET để insert những cột với row key khác nhau trong column family users. Trong ví dụ này row key là bobbyjo và chúng ta đang cài đặt mỗi cột cho user này. Chú ý rằng bạn chỉ có thể set được 1 cột tại một thời điểm trong lệnh SET

[default@demo] SET users['bobbyjo']['full_name']='Robert Jones';

[default@demo] SET users['bobbyjo']['email']='bobjones@gmail.com';

[default@demo] SET users['bobbyjo']['state']='TX';

[default@demo] SET users['bobbyjo']['gender']='M';

[default@demo] SET users['bobbyjo']['birth_year']='1975';

In this example, the row key is yomama and we are just setting some of the columns for this user.

[default@demo] SET users['yomama']['full_name']='Cathy Smith';

[default@demo] SET users['yomama']['state']='CA';

[default@demo] SET users['yomama']['gender']='F';

[default@demo] SET users['yomama']['birth_year']='1969';

In this example, we are creating an entry in the blog_entry column family for row key yomama:

[default@demo] SET blog_entry['yomama'][timeuuid()] = 'I love my new shoes!';

Chú ý rằng Cassandra CLI sử dụng consistency level mặc định là 1 cho tất cả các tác vụ đọc ghi. Đặc tả consistency level không hỗ trợ trong Cassandra CLI

6.1.4. Đọc Rows và Columns

Dùng lệnh GET để lấy những row khác nhau từ column family. Dùng LIST để trả về một nhóm row và những cột kết hợp với chúng

[default@demo] LIST users;

Cassandra lưu trữ tất cả dữ liệu bên trong mặc định bằng hex byte. Nếu bạn không đặc tả một row key validation class, column comparotor và column validation class khi bạn định nghĩa column family, Cassandra sẽ lưu trữ tất cả dưới dạng hex byte

Để truyền và lấy giá trị mà dưới dạng con người có thể đọc hiểu , bạn có thể truyền giá trị đó thông qua một hàm encode như ascii, bytes, integer (a generic variable-length integer type), lexicalUUID, long, utf8

Ví dụ để trả về dạng UTF-8

[default@demo] GET users[utf8('bobby')][utf8('full_name')];

6.1.5. Index một Column

CLI có thể tạo secondary index. Bạn có thể tạo secondary index cho 1 cột khi bạn tạo một column family hoặc thêm nó sau dùng lệnh UPDATE COLUMN FAMILY

Ví dụ thêm secondary index cho cột birth_year của users

[default@demo] UPDATE COLUMN FAMILY users WITH comparator = UTF8Type

AND column_metadata = [{column_name: birth_year, validation_class:

LongType, index_type: KEYS}];

Bởi được index trên birth_year, giá trị của nó có thể được truy vấn trực tiếp dựa theo năm

[default@demo] GET users WHERE birth_date = 1969;

6.1.6. Xóa Rows và Columns

Cassandra hỗ trợ lênh DEL để xóa một dòng hoặc cột

[default@demo] DEL users ['yomama']['coupon_code'];

[default@demo] GET users ['yomama'];

6.1.7. Drop một Column Families và Keyspaces

Bạn có thể DROP column family và keyspace giống như cách mà RDBMS đã làm

[default@demo] DROP COLUMN FAMILY users;

[default@demo] DROP KEYSPACE demo;

Một phần của tài liệu tìm hiểu hệ quản trị cơ sở dữ liệu phân tán cassandra (Trang 37 - 40)

Tải bản đầy đủ (DOC)

(44 trang)
w