Các kiểu dữ liệu (Comparators và Validators)

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

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

3.6 Các kiểu dữ liệu (Comparators và Validators)

Trong cơ sở dữ liệu quan hệ, bạn phải chỉ rõ kiểu dữ liệu cho mỗi cột khi bạn định

nghĩa bảng. Kiểu dữ liệu ràng buộc các giá trị có thể được thêm vào cột đó. Ví dụ, nếu bạn có một cột định nghĩa kiểu dữ liệu integer, bạn sẽ khơng được phép đưa dữ liệu có giá trị char vào cột đó. Tên cột trong cơ sở dữ liệu quan hệ thường là các nhãn cố định được gán khi tạo bảng.

Trong Cassandra, kiểu dữ liệu cho một giá trị cột (hay khóa của dịng)được gọi là

validator. Kiểu dữ liệu cho một tên cột được gọi là comparator. Bạn có thể định nghĩa các kiểu dữ liệu khi tạo các lược đồ column family nhưng Cassandra không yêu cầu việc này. Về bên trong, Cassandra lưu tên cột và giá trị dưới dạng các mảng byte hexa (BytesType).

Đây là kiểu mã hóa mặc định được dùng nếu các kiểu dữ liệu không được định nghĩa trong lược đồ column family (hoặc không được chỉ ra bởi client yêu cầu).

Cassandra có sẵn một số kiểu dữ liệu có thể được dùng cho cả vadidator (kiểu dữ liệu cho khóa dịng và giá trị cột) và comparator (kiểu dữ liệu cho tên cột). Một ngoại lệ là CounterColumnType, chỉ được dùng là giá trị cột (không được dùng cho tên cột hay khóa dịng).

3.6.1 Validators

Với tất cả các column family, cách thực hành tốt nhất là định nghĩa một kiểu dữ liệu cho khóa dịng sử dụng thuộc tính key_validation_class.

Với các column family tĩnh, bạn nên định nghĩa một cột và kiểu dữ liệu tương ứng khi bạn định nghĩa column family sử dụng thuộc tính column_metadata.

Với các column family động (các tên cột không được biết trước), bạn nên chỉ ra một default_validation_class thay vìđịnh nghĩa kiểu dữ liệu cho từng cột.

Các validator cho khóa và cột có thể được thêm vào hoặc thay đổi trong định nghĩa column family bất cứ khi nào. Nếu bạn chỉ định một validator không hợp lệ trên column family, yêu cầu tới dữ liệu đó có thể bị nhầm lẫn, và việc thêm hay cập nhật dữ liệu khong

tuân theo validator đã chỉ định sẽ bị từ chối.

3.6.2 Comparators

Trong một dòng, các cột luôn được lưu trữ theo thứ tự sắp xếp theo tên cột. Comparator chỉ ra kiểu dữ liệu cho tên cột, cũng như thứ tự sắp xếp mà các cột được lưu trong một dịng. Khơng giống validator, comparator có thể khơng được thay đổi sau khi

column family được định nghĩa, nên đây là một xem xét quan trọng khi định nghĩa một

column family trong Cassandra.

Thường thì tên của column family tĩnh thường là kiểu chuỗi, và thứ tự sắp xếp của

cột không quan trọng. Với các column family động, thứ tự sắp xếp lại quan trọng. Ví dụ, trong một column family lưu trữ dữ liệu chuỗi thời gian (tên cột và nhãn thời gian), có dữ liệu theo thứ tự sắp xếp được cần đến để trích ra tập kết quả từ một dịng các cột.

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

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

(50 trang)