Cassandra - Bộ sưu tập CQL

CQL cung cấp phương tiện sử dụng các kiểu dữ liệu Bộ sưu tập. Sử dụng các loại Bộ sưu tập này, bạn có thể lưu trữ nhiều giá trị trong một biến duy nhất. Chương này giải thích cách sử dụng Bộ sưu tập trong Cassandra.

Danh sách

Danh sách được sử dụng trong các trường hợp

  • thứ tự của các phần tử sẽ được duy trì, và
  • một giá trị sẽ được lưu trữ nhiều lần.

Bạn có thể lấy các giá trị của kiểu dữ liệu danh sách bằng cách sử dụng chỉ mục của các phần tử trong danh sách.

Tạo bảng với danh sách

Dưới đây là một ví dụ để tạo một bảng mẫu với hai cột, tên và email. Để lưu trữ nhiều email, chúng tôi đang sử dụng danh sách.

cqlsh:tutorialspoint> CREATE TABLE data(name text PRIMARY KEY, email list<text>);

Chèn dữ liệu vào danh sách

Trong khi chèn dữ liệu vào các phần tử trong danh sách, hãy nhập tất cả các giá trị được phân tách bằng dấu phẩy trong dấu ngoặc vuông [] như hình dưới đây.

cqlsh:tutorialspoint> INSERT INTO data(name, email) VALUES ('ramu',
['[email protected]','[email protected]'])

Cập nhật danh sách

Dưới đây là một ví dụ để cập nhật kiểu dữ liệu danh sách trong một bảng được gọi là data. Ở đây chúng tôi đang thêm một email khác vào danh sách.

cqlsh:tutorialspoint> UPDATE data
... SET email = email +['[email protected]']
... where name = 'ramu';

xác minh

Nếu bạn xác minh bảng bằng câu lệnh SELECT, bạn sẽ nhận được kết quả sau:

cqlsh:tutorialspoint> SELECT * FROM data;

 name | email
------+--------------------------------------------------------------
 ramu | ['[email protected]', '[email protected]', '[email protected]']

(1 rows)

BỘ

Tập hợp là một kiểu dữ liệu được sử dụng để lưu trữ một nhóm các phần tử. Các phần tử của một tập hợp sẽ được trả về theo thứ tự đã được sắp xếp.

Tạo bảng với bộ

Ví dụ sau tạo một bảng mẫu với hai cột, tên và điện thoại. Để lưu trữ nhiều số điện thoại, chúng tôi đang sử dụng bộ.

cqlsh:tutorialspoint> CREATE TABLE data2 (name text PRIMARY KEY, phone set<varint>);

Chèn dữ liệu vào một tập hợp

Trong khi chèn dữ liệu vào các phần tử trong một tập hợp, hãy nhập tất cả các giá trị được phân tách bằng dấu phẩy trong dấu ngoặc nhọn {} như được hiển thị bên dưới.

cqlsh:tutorialspoint> INSERT INTO data2(name, phone)VALUES ('rahman',    {9848022338,9848022339});

Cập nhật một tập hợp

Đoạn mã sau đây cho biết cách cập nhật một tập hợp trong bảng có tên là data2. Ở đây chúng tôi đang thêm một số điện thoại khác vào bộ.

cqlsh:tutorialspoint> UPDATE data2
   ... SET phone = phone + {9848022330}
   ... where name = 'rahman';

xác minh

Nếu bạn xác minh bảng bằng câu lệnh SELECT, bạn sẽ nhận được kết quả sau:

cqlsh:tutorialspoint> SELECT * FROM data2;

   name | phone
--------+--------------------------------------
 rahman | {9848022330, 9848022338, 9848022339}

(1 rows)

BẢN ĐỒ

Bản đồ là một kiểu dữ liệu được sử dụng để lưu trữ một cặp khóa-giá trị của các phần tử.

Tạo bảng với bản đồ

Ví dụ sau đây cho thấy cách tạo một bảng mẫu với hai cột, tên và địa chỉ. Để lưu trữ nhiều giá trị địa chỉ, chúng tôi đang sử dụng bản đồ.

cqlsh:tutorialspoint> CREATE TABLE data3 (name text PRIMARY KEY, address
map<timestamp, text>);

Chèn dữ liệu vào bản đồ

Trong khi chèn dữ liệu vào các phần tử trong bản đồ, hãy nhập tất cả key : value các cặp được phân tách bằng dấu phẩy trong dấu ngoặc nhọn {} như hình dưới đây.

cqlsh:tutorialspoint> INSERT INTO data3 (name, address)
   VALUES ('robin', {'home' : 'hyderabad' , 'office' : 'Delhi' } );

Cập nhật một tập hợp

Đoạn mã sau cho biết cách cập nhật kiểu dữ liệu bản đồ trong bảng có tên là data3. Ở đây chúng tôi đang thay đổi giá trị của văn phòng chính, tức là chúng tôi đang thay đổi địa chỉ văn phòng của một người tên là robin.

cqlsh:tutorialspoint> UPDATE data3
   ... SET address = address+{'office':'mumbai'}
   ... WHERE name = 'robin';

xác minh

Nếu bạn xác minh bảng bằng câu lệnh SELECT, bạn sẽ nhận được kết quả sau:

cqlsh:tutorialspoint> select * from data3;

  name | address
-------+-------------------------------------------
 robin | {'home': 'hyderabad', 'office': 'mumbai'}

(1 rows)