1. Trang chủ >
  2. Kỹ thuật >
  3. Điện - Điện tử - Viễn thông >

9 Thiết kế mô hình dữ liệu

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.52 MB, 50 trang )


chỉ quan tâm đến dữ liệu của 6 tháng trước, những điều này nên là nhân tố trong thiết kế

mô hình dữ liệu cho Cassandra.

3.9.2 Phi chuẩn hóa để tối ưu

Trong thế giới quan hệ, mô hình dữ liệu thường được thiết kế với mục tiêu chuẩn

hóa dữ liệu để giảm thiểu tối đa dư thừa. Việc chuẩn hóa thường liên quan đến việc tạo ra

các bảng có cấu trúc chặt chẽ, nhở hơn và sau đó định nghĩa quan hệ giữa chúng. Trong

quá trình truy vấn, các bảng liên quan được kết nối với nhau để thỏa mãn yêu cầu.

Cassandra không có mối quan hệ khóa ngoại giống như cơ sở dữ liệu quan hệ,

nghĩa là bạn không thể kết nối nhiều column family với nhau để đáp ứng mọt yêu cầu truy

vấn cụ thể. Cassandra thực hiện tót nhất khi dữ liệu cần thỏa mãn một truy vấn nào đó

được đặt ở cùng một column family. Cố gắng thiết kế mô hình dữ liệu để một hoặc một

vài dòng trong một column family được dùng để trả lời mỗi truy vấn. Điều này hy sinh

không gian đĩa (một trong những tài nguyên rẻ nhất cho một server) để giảm số lượng tìm

kiếm trên đĩa và lưu lượng mạng.

3.9.3 Lập kế hoạch cho việc ghi trùng lặp

Trong một column family, mỗi dòng được xác định bởi khóa dòng của nó, một

chuỗi có độ dài gần như không giới hạn. Khóa này không có dạng cụ thể, nó phải là duy

nhất trong một column family. Không giống khóa chính trong cơ sở dữ liệu quan hệ,

Cassandra không bắt buộc tính duy nhất. Việc thêm vào một khóa dòng bị trùng sẽ upsert

(kết hợp của insert và update) các cột trong câu lệnh insert chứ không trả về lỗi vi phạm.

3.9.4 Sử dụng các khóa dòng tự nhiên hoặc thay thế

Một vấn đề cần xem xét là sử dụng các khóa tự nhiên hay thay thế cho một column

family. Một khóa thay thế là khóa được sinh ra (như UUID) xác định duy nhất một dòng,

nhưng không có quan hệ với dữ liệu thực tế trong dòng đó.

Với một số column family, dữ liệu có thể chứa các giá trị được đảm bảo là duy

nhất và thường không được cập nhật sau khi dòng được tạo ra. Ví dụ, username trong

column family user. Đây được gọi là khóa tự nhiên. Các khóa tự nhiên khiến cho dữ liệu

dễ đọc hơn, và loại bỏ nhu cầu các chỉ mục bổ sung hoặc phi chuẩn hóa. Tuy nhiên, trừ

khi ứng dụng của bạn đảm bảo tính duy nhất, thì vẫn có nguy cơ viết đè lên cột dữ liệu.

Và các dùng khóa tự nhiên không cho phép cập nhật khóa dòng một cách dễ dàng. Ví dụ,

nếu khóa dòng của bạn là một địa chỉ email và người dùng muốn thay đổi địa chỉ email

của mình, bạn có thể phải tạo ra một dòng mới với địa chỉ email mới và sao chép tất cả

các cột đang có từ dòng cũ sang dòng mới.

48



3.9.5 Các kiểu UUID cho tên cột

Kiểu UUID comparator (id duy nhất) được sử dụng để tránh xung đột trong tên cột. Ví

dụ, nếu bạn muốn xác định một cột (như blog entry hay tweet) theo nhãn thời gian của nó,

nhiều client viết cùng một khóa dòng đồng thời có thể gây ra xung đột về nhãn thời gian,

nguy cơ ghi đè dữ liệu không có ý định bị ghi đè. Sử dụng UUIDType để thể hiện một

kiểu UUID (dựa trên thời gian) có thể tránh những xung đột như vậy.



49



KẾT LUẬN

Trong tiểu luận này nhóm em đã trình bày khái quát về hệ cơ sở dữ liệu phân tán

Cassandra. Cassandra, hệ thống phân phối và quản lý cơ sở dữ liệu, vốn được phát triển bởi

Facebook, công bố mã nguồn mở vào tháng 07/2008 và chính thức gia nhập vào “đại gia

đình” Apache. Và trong cuối tháng 02/2010, Cassandra đã trở thành Apache Top-Level

Project (TLP). Mặc dù vẫn còn khá mới mẻ với cộng đồng người sử dụng, nhưng công nghệ

của Cassandra đã được ứng dụng rộng rãi trong những công ty và tổ chức có quy mô như

Cisco, Twitter và Digg.

Cassandra đã mở đầu cho một thế hệ database kế tiếp là một thế hệ cơ sở dữ liệu

non-relational (không quan hệ), distributed (phân tán), mã nguồn mở, horizontal scalable

(khả năng mở rộng theo chiều ngang) có thể lưu trữ, xử lý từ một lượng rất nhỏ cho tới

hàng petabytes dữ liệu trong hệ thống có độ chịu tải, lỗi cao với những đòi hỏi về tài

nguyên phần cứng thấp.

Tiểu luận đã giới thiệu về hệ cơ sở dữ liệu phân tán Cassandra, kiến trúc và mô hình

dữ liệu trong Cassandra. Đây là một tiểu luận khá mới, phần lớn là tham khảo từ tài liệu

nước ngoài, không thể tránh khỏi những thiếu xót. Chúng em mong thầy cô và các bạn góp

ý để kiến thức của chúng em ngày càng hoàn thiện hơn.

Xin chân thành cảm ơn.



TÀI LIỆU THAM KHẢO

1. Apache Cassandra™ Documentation (http://www.datastax.com/docsource/pdf/cassandra10.pdf )

2. Cassandra: The Definitive Guide – Eben Hewitt

3. Cassandra 2.0 Tutorial V1.0 Sébastien Jourdain, Fatiha Zeghir 2005/06/01

4. Cassandra – An Introduction Mikio L. Braun Leo Jugel TU Berlin, twimpact

LinuxTag Berlin, 13. May 2011



50



Xem Thêm
Tải bản đầy đủ (.pdf) (50 trang)

×