Mô hình dữ liệu, tạo và chỉnh sửa bảng trong Cassandra

Cassandra

Cassandra là một quản trị hệ cơ sở dữ liệu phân tán mã nguồn mở được thiết kế để xử lý một khối lượng lớn dữ liệu giàn trải trên nhiều node mà vẫn đảm bảo tính sẵn sàng cao (Highly Availability), khả năng mở rộng hay thu giảm số node linh hoạt (Elastic Scalability) và chấp nhận một số lỗi (Fault Tolerant). Nó được phát triển bởi Facebook và vẫn còn tiếp tục phát triển và sử dụng cho mạng xã hội lớn nhất thới giới này. Năm 2008, Facebook chuyển nó cho cộng đồng mã nguồn mở và được Apache tiếp tục phát triển đến ngày hôm nay. Cassandra được coi là sự kết hợp của Amazon’s Dynamo và Google’s BigTable.

Cassandra là gì?

Tạo user và cấp quyền

Keyspace là gì?

Keyspace là một kho chứa các Column Family. Tất cả dữ liệu của Cassandra được đặt trong Keyspace nên có thể tạo một Keyspace duy nhất cho tất các các Column Family. Nhưng ta hoàn toàn có thể tạo nhiều Keyspace cho mỗi dự án khác nhau.Tất cả dữ liệu trong Cassandra sẽ đặt trong một keyspace. Nó có thể được xem như là một cơ sở dữ liệu trong RDBMS, nó là một tập hợp các bảng. Trong trường hợp của Cassandra, một keyspace là một tập hợp hệ thống cột.

Mô hình dữ liệu Cassandra

Mô hình dữ liệu Cassandra tuân theo quy tắc hệ thống cột (the column family).

  • Column Famili: là một đối tượng của NOSQL nơi chứa các cột dữ liệu. Nó là một tập hợp dữ liệu chứa các cặp “khóa – giá trị”. Trong đó “khóa” được ánh xạ đến một giá trị gồm tập hợp các cột. Tương tự với RDBMS, column family là một bảng, mỗi cặp “khóa – giá trị” là một hàng.
  • Cột là một tập hợp dữ liệu (bộ 3) gồm tên cột, giá trị, và mốc thời gian.
  • Siêu cột một cột đặc biệt lưu trữ bản đồ (map) của các cột. Nó giúp lưu trữ cũng như truy xuất dữ liệu dễ dàng và nhanh chóng hơn.

Thao tác với cơ sở dữ liệu

Tạo Keyspace

Trước khi tạo Keyspace bạn phải đăng nhập vào Cassandra, cách đăng nhập các bạn có thể xem bài viết tạo user và cấp quyền nhé.

Cú pháp

Trong đó keyspace_name là tên Keyspace muốn tạo.

Thuộc tính của Keyspace
‘class’:’SimpleStrategy’ or ‘NetworkTopologyStrategy’ Bắt buộc có. “SimpleStrategy” dùng cho Single Datacenter. “Network…” dùng cho Multi Datacenter.
‘replication_factor’: <number of replicas> Cần thiết nếu “class” là SimpleStrategy. Số lượng bản sao của dữ liệu.
‘<first data center>’: <number of replicas> Cần thiết nếu “class” là NetworkTopologyStrategy. Bạn phải cung cấp tên của Datacenter và số lượng bản sao của dữ liệu.
‘<next data center>’: <number of replicas> Cần thiết nếu “class” là NetworkTopologyStrategy. Bạn phải cung cấp tên của Datacenter tiếp theo và số lượng bản sao của dữ liệu trên Datacenter  tiếp đó.
durable_writes: true/false Khi thiết lập giá trị “false” thì dữ liệu sẽ được khi nhưng bỏ qua việc ghi LOG. Do vậy hãy cẩn thận với tùy chọn này để tránh mất dữ liệu, tuyệt đối không thiết lập khi “class” là  SimpleStrategy.
Ví dụ
SimpleStrategy

NetworkTopologyStrategy

Liệt kê các Keyspace đã tạo:

Chọn Keyspace:

Tạo và chỉnh sửa bảng

Tạo bảng

Một bảng tương ứng với 1 cột trong Cassandra, để tạo bảng sử dụng lệnh CREATE TABLE.

Liệt kê danh sách bảng:

Xem cấu trúc bảng

Click vào ảnh để xem rõ hơn

Chỉnh sửa bảng

Ví dụ thêm class vào bảng student đã tạo sử dụng cú pháp:

Click vào ảnh để xem rõ hơn

Chèn và cập nhật dữ liệu trong bảng

Chèn dữ liệu sử dụng cú pháp sau:

Cập nhật dữ liệu:

Truy vấn dữ liệu

Để truy vấn dữ liệu sử dụng lệnh SELECT

Click vào ảnh để xem rõ hơn

 

Trên đây là một số thao tác cơ bản trong Cassandra. Chúc các bạn thành công.

 

Share:
Share