1. Cassandra
Thông thường, các cơ sở dữ liệu loại NoSQL có khả năng tự động phân bố dự liệu giữa các node trong cluster (data distribution) và tạo bản sao dữ liệu (data replication). Cassandra cũng thừa hưởng những tính năng này của NoSQL. Trong bài viết này chúng ta sẽ tìm hiểu về Cassandra và cùng thử giao tiếp với Cassandra bằng Java nhé.
1.1. Những khái niệm chính
Chúng ta cùng bắt đầu bằng một số khái niệm chính của Cassandra:
- Cluster - tập hợp các nút hoặc Trung tâm dữ liệu được sắp xếp theo cấu trúc vòng. Tên phải được gán cho mỗi cụm.
- Keyspace - Nếu bạn đã biết đến một cơ sở dữ liệu quan hệ, thì Schema là keyspace tương ứng trong Cassandra. Keyspace là container ngoài cùng cho dữ liệu trong Cassandra. Các thuộc tính chính trên mỗi keyspace là Replication Factor, Replica Placement Strategy và Column Families
- Column Family - Column Families trong Cassandra giống như các bảng trong cơ sở dữ liệu quan hệ. Mỗi Column Family chứa một tập hợp các hàng được đại diện bởi một Map <RowKey, SortedMap <ColumnKey, ColumnValue >> . Khóa cung cấp khả năng truy cập dữ liệu liên quan cùng nhau
- Column - Cột trong Cassandra là cấu trúc dữ liệu gồm column name, value và timestamp. Các cột và số cột trong mỗi hàng có thể thay đổi ngược lại với cơ sở dữ liệu quan hệ nơi dữ liệu được cấu trúc tốt
2. Thao tác cơ bản với Cassandra trong Java
2.1. Maven Dependency
Chúng ta cần định nghĩa Cassandra dependency trong file pom.xml, version mới nhất các bạn có thể vào trang chủ của Cassandra để xem:
1
2
3
4
5
| < dependency > < groupId >com.datastax.cassandra</ groupId > < artifactId >cassandra-driver-core</ artifactId > < version >3.1.0</ version > </ dependency >
Để test code với một embedded database server , các bạn thêm cassandra-unit vào nữa nhé:
2.2. Kết nối Cassandra |
Để kết nối với Cassandra từ Java, chúng ta cần xây dựng một đối tượng Cluster .
Địa chỉ của một nút (node) cần được cung cấp dưới dạng contact point. Nếu chúng ta không cung cấp port, port mặc định (9042) sẽ được sử dụng.
Hãy xem cách cài đặt dưới đây:
2.3. Tạo một Keyspace
Thử tạo Keyspace với tên "library":
Ngoài keyspaceName chún ta cần define ra 2 parameters nữa là replicationFactor và replicationStrategy. Các tham số này xác định số lượng bản sao
và cách thức các bản sao sẽ được phân phối trên toàn bộ vòng tương ứng.
Lúc này chúng ta có thể kiểm tra keyspace đã được tạo thành công:
2.4. Tạo Column Family
Bây giờ ta sẽ thêm Column Family "books" và keyspace vừa tạo ở trên:
Code để test Column Family vừa mới tạo như sau:
|
Comments
Post a Comment