1. Trang chủ
  2. » Luận Văn - Báo Cáo

TIỂU LUẬN MÔN CƠ SƠ DỮ LIỆU NÂNG CAO Tìm hiểu Hệ quản trị CSDL Phân Tán và hệ QTCSDLPT Apache Cassandra

30 1,7K 10

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 30
Dung lượng 2,49 MB

Nội dung

Hơn nữa, đối với các hệ thống không chia sẻ gì, các mạng hợp nhất thường được thiết kế để có thể tăng quy mô, sao cho khả năng truyền của chúng tăng khi các nút mới được thêm vào.- Phân

Trang 1

ĐẠI HỌC QUỐC GIA HÀ NỘI

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

Sinh viên thực hiện :

Nguyễn Quang Dương Phạm Ngọc Hải

Trang 2

Hà Nội – 04/2012

MỤC LỤC:

1.Giới thiệu chủ đề: 3

2.Các vấn đề liên quan: 3

2.1, Mô hình Xử lí song song và phân tán dữ liệu: 3

2.2, Hệ quản trị CSDL Phân Tán: 6

2.3, Các kiến trúc của Hệ quản trị CSDL Phân Tán: 8

2.3.1, Mô hình kiến trúc của hệ phân tán khách/đại lý – client/server: 8

2.3.2, Mô hình kiến trúc của hệ phân tán Ngang Hàng: 10

sở dữ liệu 11

3.Bài toán và Mô hình Hệ QTCSDL Apache Cassandra: 11

3.1, Bài toán đề ra: 11

3.2, Mô hình NoSQL phân tán, không ràng buộc: 12

3.3, Hệ quản trị CSDL Phân Tán Apache Cassandra : 14

3.3.1, Mô hình dữ liệu: 15

a Gia đình Cột : 17

b Cột 18

c Chỉ mục trong Apache Cassandra 19

3.3.2, Kiến trúc của Apache Cassandra: 19

a Giao thức Gossip: 19

b Clustering (cụm trong Apache Cassandra ) và Seed Node: 20

c Phân vùng dữ liệu: (Partitioning): 20

d Sao lưu dữ liệu (nhân bản- Replication) trong Cassandra: 22

e Các yêu cầu phía máy khách (client request) trong Cassandra : 23

f Quản lí và truy cập dữ liệu trong Apache Cassandra : 25

g Tính Nhất quán dữ liệu trong Apache Cassandra : 26

h Rà soát lỗi và Phục hồi trong Apache Cassandra: 27

5.Nhận xét: 28

5.1 Về Hệ quản trị CSDL phân tán Apache Cassadra : 28

5.2 Kết luận: 29

Trang 3

1.Giới thiệu chủ đề:

Những năm gần đây, hệ CSDL phân tán được phát triển dựa trên CSDL và mạng máy tính CSDL phân tán gồm nhiều CSDL kết hợp với nhau thông qua mạng máy tính để trao đổi dữ liệu, thông tin CSDL được tổ chức và lưu trữ ở những vị trí khác nhau trong mạng máy tính và chương trình ứng dụng làm việc trên cơ sở truy cập dữ liệu ở những điểm khác nhau đó

Mỗi CSDL cần có chương trình quản lý, xắp xếp, duy trì dữ liệu gọi là hệ quản trị CSDL (DBMS - Database Management System) Hệ quản trị CSDL phân tán

(Distributed Database Management System-DBMS) được định nghĩa là một hệ thống phần mềm cho phép quản lý các hệ CSDL (tạo lập và điều khiển các truy nhập cho các hệCSDL phân tán) và làm cho việc phân tán trở nên trong suốt với người sử dụng

Đặc tính trong suốt muốn nói đến sự tách biệt về ngữ nghĩa ở cấp độ cao của một hệ thống với các vấn đề cài đặt ở cấp độ thấp Sự phân tán dữ liệu được che dấu với người

sử dụng làm cho người sử dụng truy nhập vào CSDL phân tán như hệ CSDL tập trung

Sự thay đổi việc quản trị không ảnh hưởng tới người sử dụng

Hệ quản trị CSDL phân tán gồm 1 tập các phần mềm (chương trình) sau đây:

 Các chương trình quản trị các dữ liệu phân tán

 Chứa các chương trình để quản trị việc truyền thông dữ liệu

 Các chương trình để quản trị các CSDL địa phương

 Các chương trình quản trị từ điển dữ liệu

2.Các vấn đề liên quan:

2.1, Mô hình Xử lí song song và phân tán dữ liệu:

Chúng ta cần phân biệt giữa mô hình xử lí song song và việc phân tán dữ liệu

Các hệ song song cải tiến tốc độ xử lý và tốc độ I/O bằng cách sử dụng nhiều CPU, bộ nhớ và nhiều đĩa cứng song song Trong xử lý song song, nhiều hoạt động được thực hiệnđồng thời Một máy song song "hạt thô" (coarse-grain) gồm một số nhỏ các bộ xử lý mạnh Một máy song song đồ sộ (massively parallel) hay "hạt mịn" (fine-grain) sử dụng hàng ngàn bộ xử lý nhỏ hơn

Các hệ song song (Parallel Systems)

Có một vài mô hình kiến trúc cho các máy song song:

- Chia sẻ Bộ Nhớ ( Shared memory ): Tất cảc các processor chia sẻ một bộ nhớ chung

Trong mô hình này các processor và các đĩa cứng truy xuất một bộ nhớ chung, thường thông qua một bus hoặc một mạng hợp nhất Thuận lợi : dữ liệu trong bộ nhớ chia sẻ có thể được truy xuất bởi bất kỳ processor nào Tuy nhiên, các máy bộ nhớ chia sẻ không

Trang 4

thể hỗ trợ nhiều hơn 64 processor vì nếu nhiều hơn, bus hoặc mạng hợp nhất sẽ trở nên

dễ bị nghẽn ( bottle-neck )

Kiến trúc bộ nhớ chia sẻ thường có những cache lớn cho mỗi processor, như vậy việc tham khảo bộ nhớ chia sẻ có thể tránh được mỗi khi có thể

- Chia sẻ Đĩa Cứng ( Shared disk ): Tất cả các processor chia sẻ đĩa cứngchung Mô hình

này còn được gọi là cụm (cluster) Trong mô hình này tất cả các processor có thể truy xuất trực tiếp đến tất cả các đĩa cứngthông qua một mạng hợp nhất, nhưng mỗi processor

- Không chia sẻ ( Shared nothing ): Các processor không chia sẻ bộ nhớ chung, cũng

không chia sẻ đĩa cứngchung Trong hệ thống này mỗi nút của máy có một processor, bộ nhớ và một vài đĩa cứng

Trang 5

Các processor ở mỗi nút có thể liên lạc với các processor khác qua mạng hợp nhất tốc độ cao Chức năng của một nút, như server, dữ liệu được chứa trên các đĩa cứngcủa nó Mô hình không chia sẻ gì chỉ có vấn đề về việc truy xuất các đĩa cứngkhông cục bộ và việc truyền các quan hệ kết quả qua mạng Hơn nữa, đối với các hệ thống không chia sẻ gì, các mạng hợp nhất thường được thiết kế để có thể tăng quy mô, sao cho khả năng truyền của chúng tăng khi các nút mới được thêm vào.

- Phân cấp ( hierarchical ): Mô hình này là một sự lai kiểu của các kiến trúc trước.

Kiến trúc này tổ hợp các đặc trưng của các kiến trúc chia sẻ bộ nhớ, chia sẻ đĩa cứngvà không chia sẻ gì Ở mức cao nhất, hệ thống bao gồm những nút được nối bởi mạng hợp nhất và không chia sẻ đĩa cứngcũng như bộ nhớ với nút khác Như vậy, mức cao nhất là kiến trúc không chia sẻ gì Mỗi nút của hệ thống có thể là hệ thống chia sẻ bộ nhớ với một vài processor Kế tiếp, mỗi nút có thể là một hệ thống chia sẻ đĩa cứng Mỗi một hệ thống chia sẻ đĩa cứnglại có thể là một hệ thống chia sẻ bộ nhớ Như vậy, hệ thống có thể được xây dựng như một sự phân cấp

Các hệ thống phân tán (Distributed Systems)

Trong một hệ thống CSDL phân tán, CSDL được lưu trữ trên một vài máy tính Các máy tính trong một hệ thống phân tán liên lạc với một máy khác qua nhiều dạng phương tiện liên lạc khác nhau: mạng tốc độ cao, đường điện thoại Chúng không chia sẻ bộ nhớ cũng như đĩa cứng Các máy tính trong hệ thống phân tán có thể rất đa dạng về kích cỡ cũng như chức năng: từ các workstation đến các mainframe Các máy tính trong hệ thốngphân tán được tham chiếu bởi một số các tên khác nhau: site , node (phụ thuộc vào ngữ cảnh mà máy được đề cập)

Sự sai khác chính giữa CSDL song song không chia sẻ gì và hệ thống phân tán là CSDL phân tán được tách biệt về mặt địa lý, được quản trị tách biệt và có một sự hợp nhất chậm Hơn nữa, trong hệ thống phân tán người ta phân biệt giữa các giao dịch cục bộ (local) và toàn thể (global) Giao dịch cục bộ là một giao dịch truy xuất dữ liệu trong một node (site) tại đó giao dịch đã được khởi xướng Giao dịch toàn thể là một giao dịch mà

nó hoặc truy xuất dữ liệu trong một node từ một node khác tại đó nó được khởi xướng hoặc truy xuất dữ liệu trong một vài node khác nhau

Trang 6

Tuy nhiên, nhiều lý thuyết cũng như phương pháp tính toán song song được áp dung vào

hệ phân tán cũng như CSDL phân tán

2.2, Hệ quản trị CSDL Phân Tán:

Hệ CSDL phân tán (Distributed DataBase System) được xây dựng dựa

trên hai công nghệ cơ bản là CSDL và mạng máy tính Hệ CSDL phân tán được mô tả như là tập hợp nhiều CSDL có liên quan logic đến nhau và được phân bố trên mạng máy tính

Trong khái niệm được mô tả về CSDL phân tán ở trên có hai đặc trưng cơ bản là “liên quan logic” và “phân bố trên mạng” Trong CSDL phân tán các tập tin dữ liệu được lưu trữ độc lập trên các nút của mạng máy tính và phải có liên quan đến nhau về mặt logic vàcòn hơn thế nữa còn đòi hỏi chúng phải được truy xuất đến qua một giao diện chung, thống nhất

Hiện nay khái niệm xử lý phân tán (Distributed procesing), tính toán phân tán

(Distributed computing) hoặc các thuật ngữ có từ “phân tán” hay được dùng để chỉ các hệ thống rải rác như các hệ thống máy tính có đa bộ xử lý (multiprocessor system) hay là các xử lý trên mạng máy tính CSDL phân tán là một khái niệm không bao gồm các trường hợp xử lý dữ liệu trong các hệ thống sử dụng bộ nhớ chung, kể cả bộ nhớ trong hay bộ nhớ thứ cấp (đĩa từ), nhất thiết phải là một hệ có sử dụng giao tiếp mạng vớicác trạm làm việc độc lập

Hình 1: Mô hình CSDL Phân tán (bên phải) và mô hình không phải CSDL Phân tán

Hệ Quản trị CSDL phân tán (Distributed DBMS) là hệ thống phần mềm cho phép quản lýcác hệ CSDL phân tán và làm cho sự phân tán trở nên “trong suốt” đối với người sử dụng

Trang 7

Khái niệm “trong suốt” – “transparent” để chỉ sự tách biệt ở cấp độ cao của hệ

thống với các vấn đề cài đặt ở cấp độ thấp của hệ thống Có các dạng “trong suốt” như sau:

+ “Trong suốt” về phân tán Do tính chất phân tán của hệ thống nên các dữ liệu

được lưu trữ tại các nút có vị trí địa lý khác nhau, phần mềm sẽ đáp ứng các yêu cầu của người sử dụng sao cho người sử dụng không cần phải biết vị trí địa lý của dữ liệu + “Trong suốt” về phân hoạch (Partition) Do dữ liệu phân tán và do nhu cầu

của công việc dữ liệu cần được phân hoạch và mỗi phân hoạch được lưu trữ tại một nút khác nhau (đây gọi là quá trình phân mảnh – fragmentation) Quá trình phân mảnh hoàn toàn tự động bởi hệ thống và người sử dụng không cần phải can thiệp

+ “Trong suốt” về Sao lưu (Replication) Vì lí do “hiệu năng”, “tin cậy” nên

dữ liệu còn được sao chép một phần ở những vị trí khác nhau

+ “Trong suốt” về độc lập dữ liệu

+ “Trong suốt” về kết nối mạng Người sử dụng không cần biết về sự có mặt

của giao tiếp mạng

Hình 2: Các tầng trong suốt của hệ thống

Ví dụ:

Một công ty có các văn phòng ở Paris, London, NewYork, Toronto

Công ty này có các CSDL sau đây:

CSDL về nhân viên: EMP (ENo, EName, Title)

CSDL về các dự án: PROJ (PNo, PName, Budget, Loc)

CSDL về lương: PAY (Title, Sal)

CSDL về phân công: ASG (ENo, PNo, Dur, Resp)

Giải thích về các thuộc tính: Sal: Lương; Title: Chức vụ; Budget: Ngân sách

của dự án; Loc: Địa điểm; Dur: Duration – Thời hạn; Resp: Responsibility – Trách nhiệm

Do tính phân tán của các văn phòng nên tại mỗi văn phòng có lưu trữ dữ liệu

tác nghiệp của chính các văn phòng đó, có thể là các nhân viên tại đó và các dự án mà văn phòng đó đang quản lý Ta có sơ đồ lưu trữ đã phân tán và phân mảnh giả định

Trang 8

như sau:

Hình3: Ví dụ Sơ hồ hệ Phân tán dữ liệu

2.3, Các kiến trúc của Hệ quản trị CSDL Phân Tán:

Chúng ta có 2 mô hình Hệ quản trị CSDL phổ biến:

- Mô hình Khách – Chủ (Client- Server)

- Mô hình Ngang Hàng (Peer to Peer)

2.3.1, Mô hình kiến trúc của hệ phân tán khách/đại lý – client/server:

Đặc trưng của hệ này là chức năng của hệ thống được chia làm hai lớp:

+ Chức năng đại lý – server function

+ Chức năng khách hàng – client function

Trong hệ thống khách/đại lý các thao tác xử lý dữ liệu đáp ứng yêu cầu của

khách hàng đều được thực hiện bởi các chức năng đại lý, chỉ có kết quả được gửi trảcho khách hàng Ta có mô hình chức năng như sơ đồ ở dưới

+ Các phần mềm mạng có chức năng truyền tin

+ Tầng kiểm soát ngữ nghĩa của dữ liệu (Semantic Data Controler)

+ Tầng tối ưu hóa câu hỏi (Query Optimizer)

+ Tầng quản lý các giao tác (Transaction Manager)

+ Tầng quản lý khôi phục (Recovery Manager)

+ Tầng hỗ trợ thực thi (Run – time Support Processor)

+ Hệ điều hành quản lý chung và giao tiếp với CSDL vật lý

Trang 9

Hình 4: Sơ đồ kiến trúc Hệ quản trị CSDL Phân Tán mô hinh Khách – Chủ

Hệ client/server có ưu điểm là xử lý dữ liệu tập trung, trên đường truyền chỉ có

các gói tin yêu cầu (câu hỏi) và các kết quả đáp ứng câu hỏi, giảm tải được khối lượng truyền tin trên mạng kết hợp với thiết bị tại đại lý rất mạnh sẽ tăng tốc độ xử lý dữ liệu của cả hệ thống

Trang 10

2.3.2, Mô hình kiến trúc của hệ phân tán Ngang Hàng:

Đặc điểm nổi bật của hệ thống này là dữ liệu được tổ chức ở các nút có chức

năng như nhau, đồng thời sự tổ chức dữ liệu ở các nút này lại có thể rất khác nhau, từ

đó cần phải có:

Hình 5: Sơ đồ kiến trúc của Hệ quản trị CSDL Phân Tán Ngang Hàng

Trang 11

+ Định nghĩa dữ liệu tại mỗi vị trí: tại mỗi nút phải xây dựng lược đồ dữ liệu

cục bộ LIS (Local Internal Schema)

+ Mô tả cấu trúc logic toàn cục: Lược đồ khái niệm toàn cục GCS (Global

Conceptual Schema)

+ Mô tả cấu trúc logic tại mỗi vị trí, điều nảy xảy ra do Sao lưu và phân mảnh,

gọi là lược đồ khái niệm cục bộ LCS (Local Conceptual Schema)

+ Mô tả cấu trúc dữu liệu của các ứng dụng gọi là lược đồ ngoại giới ES

(External Schema)

Cấu trúc của hệ thống bao gồm hai thành phần chính: Bộ phận tiếp nhận người

dùng (User Processor) và bộ phận xử lý dữ liệu (Data Processor) Hai modun này

được đặt chung trên mỗi máy chứ không tách biệt như hệ thống khách/đại lý

Các chức năng cơ bản của từng modun như sau:

+ User Interface Handler - Giao tiếp người sử dụng: Diễn dịch yêu cầu, định

dạng kết quả

+ Semantic Data Controler - Kiểm soát dữ liệu ngữ nghĩa: Dựa vào lược đồ

khái niệm toàn cục để kiểm tra câu vấn tin có thực hiện được hay không

+ Global Query Optimizer - Tối ưu hóa câu hỏi toàn cục: Định ra chiến lược

thực thi tốt nhất trên các nút

+ Global Execution Monitor – Điều khiển thực thi câu vấn tin toàn cục

+ Local Query Processor – Xử lý câu hỏi cục bộ

+ Local Recovery Manager – Quản lý khôi phục cục bộ: Quản lý sự nhất quán

khi có sự cố

+ Run-Time Support Processor - Bộ phận hỗ trợ thực thi: Quản lý truy xuất cơ

sở dữ liệu

3.Bài toán và Mô hình Hệ QTCSDL Apache Cassandra:

3.1, Bài toán đề ra:

Bài toán đề ra được gắn liền với việc tìm hiểu mô hình Hệ quản trị CSDL Apache

Cassandra, đó là việc phát triển của các mạng xã hội như Facebook, Twitter, các mạng với tương tác của người dùng qua internet là chủ yếu như các trang mua bán hàng trực tuyến Amazon hay kinh doanh các dịch vụ online như Google Làm thế nào để thiết kế (lựa chọn) được một mô hình CSDL và xây dựng được một Hệ quản trị CSDL có thể đáp ứng được số lượng lớn các dữ liệu người dùng liên tục được cập nhật ra mỗi ngày và luôn luôn có xu hướng “nở” ra ngày một nhiều

Hệ quản trị CSDL Apache Cassandra là một hệ Hệ quản trị CSDL dựa trên mô hình thiết

kế dữ liệu NoSQL, là một mô hình tiềm năng để cạnh tranh cũng như lấp đày được nhữngyếu điểm của hô hình CSDL Quan hệ truyền thống

Trang 12

3.2, Mô hình NoSQL phân tán, không ràng buộc:

NoSQL còn có nghĩa là Non-Relational (NoRel) - không ràng buộc Tuy nhiên, thuật ngữ

đó ít phổ dụng hơn và ngày nay người ta thường dịch NoSQL thành Not Only SQL - Không chỉ SQL NoSQL ám chỉ đến những CSDL không dùng mô hình dữ liệu quan hệ

để quản lý dữ liệu trong lĩnh vực phần mềm

Thuật ngữ NoSQL được giới thiệu lần đầu vào năm 1998 sử dụng làm tên gọi chung cho các lightweight open source relational database (CSDL quan hệ nguồn mở nhỏ) nhưng không sử dụng SQL cho truy vấn

Vào năm 2009, Eric Evans, nhân viên của Rackspace giới thiệu lại thuật ngữ NoSQL trong một hội thảo về CSDL nguồn mở phân tán Thuật ngữ NoSQL đánh dấu bước phát triển của thế hệ database mới: distributed (phân tán) + non-relational (không ràng buộc)

NoSQL storage đặc biệt phổ dụng trong thời kỳ Web 2.0 bùng nổ, nơi các mạng dịch vụ

dữ liệu cộng đồng cho phép người dùng tạo hàng tỷ nội dung trên web Do đó, dữ liệu lớnrất nhanh vượt qua giới hạn phần cứng và cần phải giải quyết bằng bài toán phân tán Nửa đầu năm 2009, người ta đã manh nha thuật ngữ NoSQL đánh dấu sự trưởng thành của thế hệ database mới trong khi những sản phẩm phần mềm có thể đã được phát triển

từ trước đó rất lâu

Các khái niệm trong mô hình CSDL NoSQL

Non-relational- khồng ràng buộc - thuật ngữ sử dụng đến các mối quan hệ giữa các bảng

trong CSDL quan hệ (RDBMs) sử dụng mô hình khóa gồm 2 loại khóa: khóa chính và khóa phụ (primary key + foreign key) để ràng buộc dữ liệu nhằm thể hiện tính nhất quán

dữ liệu từ các bảng khác nhau Non-relational là khái niệm không sử dụng các ràng buộc

dữ liệu cho nhất quán dữ liệu ở NoSQL database

Distributed storage: mô hình lưu trữ phân tán các file hoặc dữ liệu ra nhiều máy tính

khác nhau trong mạng LAN hoặc Internet dưới sự kiểm soát của phần mềm

Eventual consistency (nhất quán cuối): tính nhất quán của dữ liệu không cần phải đảm

bảo ngay tức khắc sau mỗi phép GHI Một hệ thống phân tán chấp nhận những ảnh hưởng theo phương thức lan truyền và sau một khoảng thời gian (không phải ngay tức khắc), thay đổi sẽ đi đến mọi điểm trong hệ thống, tức là cuối cùng (eventually) dữ liệu trên hệ thống sẽ trở lại trạng thái nhất quán

Vertical scalable (khả năng mở rộng chiều dọc): Khi dữ liệu lớn về lượng, phương

pháp tăng cường khả năng lưu trữ và xử lý bằng việc cải tiến phần mềm và cải thiện phầncứng trên một máy tính đơn lẻ được gọi là khả năng mở rộng chiều dọc Ví dụ việc tăng cường CPUs, cải thiện đĩa cứng, bộ nhớ trong một máy tính, cho DBMs nằm trong phạm trù này Khả năng mở rộng chiều dọc còn có một thuật ngữ khác scale up

Trang 13

Horizontal scalable (khả năng mở rộng chiều ngang): Khi dữ liệu lớn về lượng, phương

pháp tăng cường khả năng lưu trữ và xử lý là dùng nhiều máy tính phân tán Phân tán dữ liệu được hỗ trợ bởi phần mềm tức CSDL

Kiến trúc của NoSQL :

Về cơ bản, các thiết kế của NoSQL lựa chọn mô hình lưu trữ tập dữ liệu theo cặp giá trị key-value Khái niệm node được sử dụng trong quản lý dữ liệu phân tán Với các hệ thống phân tán, việc lưu trữ có chấp nhận trùng lặp dữ liệu Một request truy vấn tới data

có thể gửi tới nhiều máy cùng lúc, khi một máy nào nó bị chết cũng không ảnh hưởng nhiều tới toàn bộ hệ thống Để đảm bảo tính Thời gian thực trong các hệ thống xử lý lượng lớn, thông thường người ta sẽ tách biệt CSDL ra làm 2 hoặc nhiều CSDL Một CSDL nhỏ đảm bảo vào ra liên tục, khi đạt tới ngưỡng thời gian hoặc dung lượng, CSDL nhỏ sẽ được gộp (merge) vào CSDL lớn hơn có thiết kế tối ưu cho phép đọc (read operation) Mô hình đó cho phép tăng cường hiệu suất I/O truy xuất dữ liệu

Đặc điểm của hệ CSDL mô hình NoSQL:

- High Scalability: Gần như không có một giới hạn cho dữ liệu và người dùng trên hệ

thống

- High Availability: Do chấp nhận sự trùng lặp trong lưu trữ nên nếu một node

(commodity machine) nào đó bị Ngừng Kết Nối cũng không ảnh hưởng tới toàn bộ hệ thống

ACID :

- Atomicity: Mọi giao dịch phải hoàn thành hoặc không có giao dịch nào hoàn thành.

- Consistency: chấp nhận tính nhất quán yếu, cập nhật mới không đảm bảo rằng các truy

xuất sau đó thấy ngay được sự thay đổi Sau một khoảng thời gian lan truyền thì tính nhấtquán cuối cùng của dữ liệu mới được đảm bảo

- Isolation: Một giao dịch phải tách biệt với giao dịch khác khi hoạt động

- Durability: dữ liệu có thể tồn tại trong bộ nhớ máy tính nhưng đồng thời cũng được lưu

trữ lại đĩa cứng

Phân loại

Wide Column Store / Column Families

Hệ CSDL phân tán cho phép truy xuất ngẫu nhiên/tức thời với khả năng lưu trữ một lượng cực lớn data có cấu trúc Dữ liệu có thể tồn tại dạng bảng với hàng tỷ bản GHI và mỗi bản GHI có thể chứa hàng triệu cột Một triển khai từ vài trăm cho tới hàng nghìn commodity hardware dẫn đến khả năng lưu trữ hàng petabytes nhưng vẫn đảm bảo high performance Dưới đây là một số sản phẩm thông dụng: Hadoop/HBase – Apache, BigTable – Google, Cassandra - Facebook/Apache, Hypertable - Zvents Inc/Baidu, Cloudera, SciDB, Mnesia, Tablets,…

Trang 14

Key-Value Store/Tuple store :

Mô hình lưu trữ dữ liệu dưới cặp giá trị key-value trong đó việc truy xuất, xóa, cập nhật giá trị thực thông qua key tương ứng Với sự bổ trợ bởi các kỹ thuật BTree, B+Tree, Hash, dữ liệu có thể tồn tại trên RAM hoặc đĩa cứng, phân tán hoặc không phân tán Hầu hết các NoSQL database đều là key-value store

Document Store:

Thực chất là các document-oriented database - một thiết kế riêng biệt cho việc lưu trữ document Các cài đặt có thể là giả lập tương tác trên relational database, object database hay key-value store Một số sản phẩm tiêu biểu: Apache Jackrabbit, CouchDB, IBM Lotus Notes Storage Format (NSF), MongoDB, Terrastore, ThruDB, OrientDB,

RavenDB,

Graph Database:

Graph database là một dạng CSDL được thiết kế riêng cho việc lưu trữ thông tin đồ họa như cạnh, nút, properties Một số sản phẩm tiêu biểu: Neo4J, Sones, AllegroGraph, Core Data, DEX, FlockDB, InfoGrid, OpenLink Virtuoso,

3.3, Hệ quản trị CSDL Phân Tán Apache Cassandra :

Apache Cassandra là một hệ quản trị CSDL phân tán mở (Open Souce Distributed DBMS) Hệ quản trị này là một trong những dự án trọng điểm của Tổ chức phần mềm Apache nổi tiếng với phần mềm Webserver cùng tên Nó được thiết kế để thích nghi với một lượng lớn dữ liệu có thể được mở rộng nhanh chóng trong mô hình tính toán phân tán hoặc các máy chủ cung cấp dịch vụ phân tán

Hệ quản trị CSDL này dựa trên mô hình NoSQL Ban đầu, Apache Cassandra được

Facebook phát triển dựa trên nhu cầu về tín năng tìm kiếm trong Inbox Năm 2008 nó được biết đến như là một dự án phần mềm nguồn mở của Google Tháng 3 năm 2009 nó được Apache phát triên trong dự án Apache Incubator và trở thành dự án tiêu điểm của Apache vào năm 2010 Cũng vào năm này, Facebook quyết định phát triển Facebook Messaging của họ dựa trên Hbase nên đã từ bỏ Apache Cassandra

Apache Cassandra cung cấp kiến trúc key-value (Khóa-Dữ liệu) cùng với tính nhất quán uyển chuyển (tunable consistency) Mỗi giá trị khóa ứng với nhiều dữ liệu và được

nhóm vào thành các Gia Đình Cột (column families) Số lượng các Gia đình Cột là cố định trong Hệ quản trị CSDL Apache Cassandra khi khởi tạo, nhưng các cột trong đó được thêm vào gia đình bất kì lúc nào

Với mỗi Gia đình Cột có một khóa hàng (row key) tương ứng, điều đó làm cho Hệ quản

trị CSDL Apache Cassandra là 1 Hệ quản trị CSDL lai ghép giữa Hệ quản trị CSDL hướng cột (column-oriented) và lưu trữ theo hướng hàng (row-oriented)

Trang 15

3.3.1, Mô hình dữ liệu:

Một bảng trong Apache Cassandra là một bản đồ đa chiều phân tán (distributed

multidimensional map) với tính cấu trúc cao Những khóa hàng (row key( trong bảng là các chuỗi 64KB (cũng nối với tên cột, mặc dù tên cột thường là 16 đến 36 byte) Mỗ họatđộng dưới một khóa hàng là độc lập với mỗi sao chép không kể số cột đang được ĐỌC hay GHI vào Cột được nhóm lại thành các tập hợp cột và được gọi là Gia đình Cột (column families) khá giống với BigTable Apache Cassandra có 2 cột là loại Đơn Giản

và Siêu Lớn Loại Siêu Lớn có thể hình dung là có các cột nằm trong nhau Mô hình tổng thể phía trên cùng các cột Apache Cassandra được gọi là Keyspace

Vì vậy Apache Cassandra có thể xử lí được với 4 hoặc 5 hướng sau :

Map with four dimensions:

1 Keyspace → Column Family

2 Column Family → Column Family Row

3 Column Family Row → Columns

4 Column → Data value

Map with five dimensions:

1 Keyspace → Super Column Family

2 Super Column Family → Super Column Family Row

3 Super Column Family Row → Super Columns

4 Super Column → Columns

5 Column → Data value

So sánh với mô hình CSDL Quan hệ :

Apache Cassandra được thiết kế cho hệ thống dữ liệu có khả năng mở rộng lớn, vì vậy nórất khác so với CSDL quan hệ truyền thống Trong CSDL quan hệ, dữ liệu được lưư vào các bảng (table) và liên quan đến nhau, chúng cũng được tối ưu để giảm bớt thông tin dư thừa và thương dùng khóa chung để tiện lợi trong quá trình truy vấn SQL

Ví dụ dưới đây là một bảng CSDL quan hệ dùng để thiết kế một blog nhỏ, chúng ta có thể thấy mối quan hệ giữa chúng

Hình 6 : Mô hình CSDL Quan hệ truyền thống

Ngày đăng: 08/07/2015, 16:06

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w