Điểm của các gia đình cột là gì?


9

Tôi đã thấy rằng các hệ thống cơ sở dữ liệu NoQuery như RocksDB cung cấp một tính năng được gọi là các họ cột . Tôi tin rằng tôi hiểu khái niệm này đề cập đến điều gì, nhưng lợi ích thực tế (thực tế) của việc sử dụng chúng là gì? Tôi cho rằng họ có thể cải thiện hiệu suất tra cứu trong một số trường hợp, hoặc ít nhất là không gian địa phương của các mục nhập giá trị khóa, ít nhất là? Nó dường như sẽ không ảnh hưởng đến ngữ nghĩa thực tế của việc truy cập cơ sở dữ liệu, tuy nhiên, theo như tôi hiểu. Điều này có đúng không? Có thiếu điều gì không?

Câu trả lời:


3

Tôi vừa phát hiện ra một số thông tin thú vị từ FAQ của RocksDB . (RocksDB là một cửa hàng KV.)

Dưới đây là một số chiết xuất có liên quan.

Q: Các họ cột được sử dụng để làm gì?

Trả lời: Các lý do phổ biến nhất của việc sử dụng họ cột: (1) sử dụng cài đặt nén, bộ so sánh, loại nén, toán tử hợp nhất hoặc bộ lọc nén khác nhau trong các phần khác nhau của dữ liệu; (2) thả một họ cột để xóa dữ liệu của nó; (3) một họ cột để lưu trữ siêu dữ liệu và một cột khác để lưu trữ dữ liệu.

Hỏi: Sự khác biệt giữa lưu trữ dữ liệu trong nhiều họ cột và trong cơ sở dữ liệu nhiều rockdb là gì?

A: Sự khác biệt chính sẽ là sao lưu, ghi nguyên tử và hiệu suất ghi. Ưu điểm của việc sử dụng nhiều cơ sở dữ liệu: cơ sở dữ liệu là đơn vị sao lưu hoặc điểm kiểm tra. Dễ dàng sao chép cơ sở dữ liệu sang máy chủ khác hơn là họ cột. Ưu điểm của việc sử dụng nhiều họ cột: (1) ghi các lô là nguyên tử trên nhiều họ cột trên một cơ sở dữ liệu. Bạn không thể đạt được điều này bằng cách sử dụng nhiều cơ sở dữ liệu RocksDB. (2) Nếu bạn phát hành đồng bộ hóa ghi vào WAL, quá nhiều cơ sở dữ liệu có thể ảnh hưởng đến hiệu suất.

Q: Tôi có nhiều không gian chính khác nhau. Tôi có nên tách chúng bằng tiền tố hoặc sử dụng các họ cột khác nhau không?

Trả lời: Nếu mỗi không gian khóa lớn một cách hợp lý, thì nên đặt chúng trong các họ cột khác nhau. Nếu nó có thể nhỏ, thì bạn nên xem xét để đóng gói nhiều không gian chính vào một họ cột, để tránh những rắc rối khi duy trì quá nhiều họ cột.


2

Tôi biết bạn không tìm kiếm song song với SQL nhưng bài viết này giải thích kế hoạch đơn giản là mục đích và lợi ích thiết thực của Cột gia đình.

Từ việc hiểu mô hình dữ liệu Cassandra từ góc nhìn SQL trên RubyScale:

Cột Gia đình để làm gì? Chỉ là một tiền tố bảng? Một họ cột có một số cài đặt đi kèm với nó thay đổi hành vi của nó. Có các cài đặt bộ đệm cho các khóa (UUID trong ví dụ này), cài đặt bộ đệm cho toàn bộ các hàng (toàn bộ bảng trong ví dụ này) và quan trọng nhất là sắp xếp. Trong Cassandra không có OFFSET, chỉ có GIỚI HẠN và tương đương với GIỮA . Trong ví dụ này, tên cột chỉ là các chuỗi nhưng chúng cũng có thể là số nguyên hoặc dấu thời gian và chúng luôn được lưu theo thứ tự sắp xếp. Một họ cột có thể có dữ liệu được sắp xếp dấu thời gian trong đó bạn truy vấn mọi thứ theo lát thời gian và một cột khác có thể là dữ liệu sổ địa chỉ nơi bạn truy vấn mọi thứ theo thứ tự bảng chữ cái. Cách sắp xếp duy nhất bạn có thể làm sau khi thực tế là đảo ngược một lát cắt cụ thể.


Hấp dẫn. Như bạn nói, nó không trả lời đầy đủ câu hỏi, nhưng nó cung cấp một gợi ý. Cảm ơn.
Noldorin
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.