Column Families

Một phần của tài liệu hệ cơ sở dữ liệu phân tán cassandra (Trang 37 - 39)

3. Mô hình dữ liệu Cassandra

3.3 Column Families

Khi so sánh Cassandra với cơ sở dữ liệu quan hệ, column family giống như bảng trong đó nó chứa các cột và dòng. Tuy nhiên, một column family cần thay đổi lớn trong

suy nghĩ của những người quen thuộc với thế giới quan hệ.

Trong cơ sở dữ liệu quan hệ, bạn định nghĩa ra các bảng có các cột cố định. Bảng xác định tên cột, và kiểu dữ liệu của nó, và sau đó ứng dụng cung cấp các dòng để hoàn thiện schema đó: mỗi dòng chứa cùng một số cột cố định như nhau.

Trong Cassandra, bạn định nghĩa các column family. Các column family có thể (và nên) định nghĩa metadata về các cột, nhưng các cột thực sự tạp thành một dòng được xác định bởi ứng dụng. Mỗi dòng có thể có số lượng cột khác nhau.

Mặc dù các column family rất linh hoạt, nhưng trong thực thế mỗi column family không hoàn toàn không có lược đồ. Mỗi column family nên được thiết kế để chứa một

kiểu dữ liệu. Có 2 kiểu mẫu thiết kế column family phổ biến trong Cassandra: các column family động và tĩnh.

Một column family tĩnh sử dụng một tập tương đối cố định các tên cột cột và giống

với cơ sở dữ liệu quan hệ hơn. Ví dụ, một column family lưu trữ dữ liệu người dùng có thể có các cột tên người dùng, địa chỉ, email, số điện thoại… Mặc dù các dòng sẽ có cùng một tập cột, chúng không bắt buộc phải có giá trị xác định cho tất cả các cột. Column

family tĩnh thường có metadata được đĩnh nghĩa trước cho mỗi cột.

Một column family động tận dụng được ưu điểm trong khả năng của Cassandra để

dùng các tên cột bất kỳ mà ứng dụng cung cấp để lưu trữ dữ liệu. Một column family động cho phép bạn tính toán trước các tập kết quả và lưu chúng trong một dòng đơn để

truy vấn dữ liệu hiệu quả. Mỗi dòng là một snapshot của dữ liệu thỏa mãn một truy vấn cụ

thể.

Ví dụ, một column family theo dõi người sử dụng đăng kíxem một blog của người dùng nào đó.

Thay vì định nghĩa metadata cho các cột riêng lẻ, một column family động định

nghĩa kiểu thông tin cho các tên giá giá trị của cột, nhưng tên và giá trị thực sự của cột được đặt ởi ứng dụng khi một cột được thêm vào.

Với tất cả các column family, mỗi dòng là duy nhất và được xác định bằng khóa

của dòng đó, giống như khóa chính trong bảng quan hệ. Một column family luôn được

phân chia theo khóa dòng của nó, và khóa dòng luôn luôn được đánh chỉ mục ẩn. Khóa

dòng khôngđược phép để trống.

Một phần của tài liệu hệ cơ sở dữ liệu phân tán cassandra (Trang 37 - 39)

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

(50 trang)