CHƯƠNG 108. Apache Cassandra là một hệ quản trị cơ sở dữ liệu NoSQL phân tán, ban đầu được phát triển bởi Facebook và trở thành công cụ nguồn mở năm 2008. Sau đó được chuyển giao cho Apache từ năm 2009.Cassandra lưu trữ dữ liệu bằng cách phân tán dữ liệu ra các nút khác nhau trong một cụn để đảm bảo việc xử lý dữ liệu nhanh chóng và an toàn dù có một hoặc một số nút xảy ra lỗi.
CHƯƠNG 109. Apache Cassandra là một hệ quản trị cơ sở dữ liệu NoSQL, lưu trữ dữ liệu dưới dạng cột rộng bằng cách kết hợp cả dạng khóa-giá trị và dạng bảng. Thành phần chính của Cassandra là Keyspace với 3 thuộc tính sau:
- Yếu tố nhân bản: quy định số lượng nút trong cụm sẽ nhận bản copy của cùng một dữ liệu.
- Chiến lựơc nhân bản: quy định cách lưu trữ các bản sao, ví dụ như simple strategy, old network topology strategy, network topology strategy...
- Họ cột: dùng để mô tả cấu trúc của dữ liệu. Mỗi một họ cột có nhiều dòng và mỗi dòng lại có nhiều cột theo thứ tự nhất định (khác với CSDL quan hệ, người dùng có thể tự do thêm cột vào bất kỳ lúc nào và các dòng không nhất thiết phải có cùng các cột). Thông thường mỗi Keyspace thường có ít nhất một hoặc nhiều họ cột.
CHƯƠNG 110. Các đặc điểm nổi bật:
- Chấp nhận sai sót: dữ liệu được sao chép thành nhiều bản trên các máy chủ. Nếu chẳng may 1 máy chủ nào đó bị hỏng, thì vẫn có thể truy xuất dữ liệu trên các máy chủ khác.
- Tính co giãn: khả năng đọc/ghi tăng tuyến tính theo số lượng máy được thêm vào cụm máy mà không có thời gian chết hay sự gián đoạn ứng dụng đang chạy.
- Hướng cột: các RDBMS hướng dòng phải định nghĩa trước các cột trong các bảng. Đối với Cassandra không phải làm điều đó, đơn giản là thêm vào bao nhiêu cột cũng được tùy theo nhu cầu của bài toán.
- Tính sẵn sàng cao khi thực hiện tác vụ đọc/ghi, Cassandra có thể thực hiện trên bản sao gần nhất hoặc trên tất cả các bản sao. Điều này phụ thuộc vào thông số về mức độ nhất quán do thiết lập từ ban đầu.
- Tính điều hướng nhất quán: Đọc và ghi đưa ra một yêu cầu về tính nhất quán với việc "việc ghi không bao giờ bị lỗi".
- Hỗ trợ Map/Reduce: Cassandra có tích hợp thêm cả Hadoop đồng nghĩa với việc hỗ trợ map/reduce.
- Có truy vấn theo ngôn ngữ riêng: CQL (viết tắt của Cassandra Query Language) là một thay thể của SQL – giống với các giao thức RPC truyền thống. Nó được điều khiển bởi Java và Python