Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 29 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
29
Dung lượng
98,62 KB
Nội dung
MỤC LỤC MỞ ĐẦU .1 CHƯƠNG I – Thuật ngữ NOSQL NoSQL gì? a) Thuật ngữ b) Lịch sử đời NoSQL Tại lại sử dụng NoSQL? .2 c) Định nghĩa d) Một số thuật ngữ liên quan Phân loại NoSQL a) Dạng Column Families Stores b) Dạng Key-Values Stores c) Dạng Document Stores .7 d) Dạng Graph Databases .7 CHƯƠNG II – Kiến trúc NoSQL Sơ lược Kiến trúc lưu trữ NoSQL a) NoSQL Column Families b) NoSQL Document Stores 10 c) NoSQL Key-Values Stores 10 Đặc điểm chung 10 NoSQL với ngơn ngữ lập trình bậc cao 11 a) Framework Thrift 11 b) NoSQL với Java .11 c) NoSQL với Python 13 d) NoSQL với PHP 13 Ưu, nhược điểm NoSQL .14 a) Ưu điểm NoSQL 14 b) Nhược điểm NoSQL 15 CHƯƠNG III – Cassandra 17 Đặc điểm Cassandra .17 Kiến trúc .19 a) Kết nối nút (giao thức Gossip) 19 b) Các thành viên cụm nút hạt giống 20 c) Trạng thái dò thất bại phục hồi 20 d) Phân vùng liệu Cassandra 20 e) Nhân Cassandra .21 f) Snitches 22 Mơ hình liệu Cassandra 22 a) Keyspaces .22 b) Column-Families .22 c) Columns 23 Cài đặt Cassandra .24 Demo Cassandra 24 TÀI LIỆU THAM KHẢO 26 MỞ ĐẦU Chúng ta sống thời đại Web 2.0 bùng nổ, mạng dịch vụ liệu cho phép người chia sẻ hàng tỷ nội dung Web Khối lượng xử lý liệu lớn nhanh chóng vượt qua giới hạn phần cứng cần để giải Tuy hệ sở liệu quan hệ (RDBMS) sử dụng để giải lượng liệu tỏ có nhiều mối nguy hại cho xử lý Hầu hết liệu lưu trữ phân tán nhiều máy chủ khác Các RDBMS xử lý tốt nhiệm vụ lưu trữ liệu tập trung, tính tập trung lại tạo khó khăn cho hệ thống muốn mở rộng Việc người sử dụng thường xun tìm cách phi chuẩn hố liệu (bằng cách giảm số join cần thiết bảng) vô hình chung phá vỡ thiết kế sở liệu (CSDL) ban đầu Hơn nữa, giao dịch phân tán RDBMS thường dễ sinh tượng nút cổ chai, việc xử lý chúng gặp tương đối nhiều khó khăn RDBMS khơng có hỗ trợ trực tiếp cho tình Rất nhiều giải pháp đưa ra, NoSQL giải pháp NoSQL hệ sở liệu mới, giảm thiểu tối đa phép tính tốn, tác vụ đọc-ghi liên quan kết hợp với xử lý theo lô đảm bảo yêu cầu xử lý liệu khối lượng lớn lớn Hệ CSDL lưu trữ, xử lý từ lượng nhỏ đến hàng petabytes liệu với khả chịu tải tốt, khả chịu lỗi cao lại khơng địi hỏi tài ngun phần cứng q cao Hiện nay, có khoảng 150 hệ sở liệu phân tán NoSQL (2) tiếp tục tăng Một số hệ quản trị sở liệu đại diện cho NoSQL gồm có: Cassandra, MongoDB, SimpleDB, BigTable, CouchDB… Để tìm hiểu rõ NoSQL, nhóm xin trình bày hệ sở liệu phân tán bật, bắt đầu Facebook tiếp tục phát triển Apache ngày – Cassandra CHƯƠNG I – Thuật ngữ NOSQL NoSQL gì? a) Thuật ngữ NoSQL sử dụng thuật ngữ chung cho tất sở liệu không tuân theo quy tắc sở liệu quan hệ (RDBMS) phổ biến thường liên quan đến việc xử lý thao tác với lượng lớn liệu NoSQL sản phẩm hay cơng nghệ nhất, đại diện cho lớp sản phẩm liên quan đến việc lưu trữ xử lý liệu không theo quy tắc RDBMS b) Lịch sử đời NoSQL Tại lại sử dụng NoSQL? Cơ sở liệu NoSQL khơng Ngay từ máy tính đời, từ có lưu trữ xử lý liệu máy tính sở liệu NoSQL manh nha Nhưng liệu chưa thực lớn, đòi hỏi xử lý liệu chưa thật nhiều hệ sở liệu quan hệ thể mạnh NoSQL chưa thực quan tâm Việc NoSQL thừa nhận gần phát triển ạt ứng dụng Internet thời đại Web 2.0, dẫn đến việc gia tăng nhanh kích thước liệu ngày yêu cầu cao khả truy xuất liệu Với việc gia tăng nhanh kích thước liệu nên hầu hết liệu lưu trữ phân tán nhiều máy chủ khác hạn chế thiết bị lưu trữ Các RDBMS xử lý tốt nhiệm vụ lưu trữ liệu tập trung, tính tập trung lại tạo khó khăn cho hệ thống muốn mở rộng Việc người sử dụng thường xun tìm cách phi chuẩn hố liệu (bằng cách giảm số join cần thiết bảng) vơ hình chung phá vỡ thiết kế sở liệu (CSDL) ban đầu Hơn nữa, giao dịch phân tán RDBMS thường dễ sinh tượng thắt nút cổ chai, việc xử lý chúng gặp tương đối nhiều khó khăn RDBMS khơng có hỗ trợ trực tiếp cho tình Đa số hệ sở liệu NoSQL hình thành giới việc xử lý song song tránh tượng Vì vậy, hệ sở liệu NoSQL lên giải pháp sáng giá đáp ứng tình Khởi đầu từ tập đồn cổ phần Inktomi với cơng cụ tìm kiếm HotBot, sở liệu NoSQL bắt đầu hình thành nhiều chất lượng Đỉnh cao việc phát triển NoSQL việc Google thức sử dụng NoSQL BigTable vào cơng cụ tìm kiếm tiếng Vào năm 2009, Eric Evans, nhân viên Rackspace giới thiệu lại thuật ngữ NoSQL hội thảo sở liệu nguồn mở phân tán Thuật ngữ NoSQL đánh dấu bước phát triển hệ database mới: distributed (phân tán) + non-relational (không ràng buộc) c) Định nghĩa Thế hệ hệ sở liệu hệ sở liệu non-relational (không ràng buộc), distributed (phân tán), open source, horizontal scalable (khả mở rộng theo chiều ngang) lưu trữ, xử lý từ lượng nhỏ hàng petabytes liệu hệ thống có độ chịu tải, lỗi cao với địi hỏi tài nguyên phần cứng thấp Một số đặc điểm nhận dạng cho hệ database bao gồm: schema-free, hỗ trợ mở rộng (dọc/ngang) dễ dàng, API đơn giản, eventual consistency (nhất quán cuối) và/hoặc transactions hạn chế thành phần liệu đơn lẻ, không giới hạn không gian liệu, Cơ sở liệu NoSQL đặc biệt phổ dụng thời kỳ Web 2.0 (1) bùng nổ, nơi mạng dịch vụ liệu cộng đồng cho phép người dùng tạo hàng tỷ nội dung web Do đó, liệu lớn nhanh vượt qua giới hạn phần cứng cần phải giải toán phân tán Số lượng hệ sở liệu theo NoSQL ngày nhiều Hiện có tất 150 hệ sở liệu NoSQL (2) Một số hệ sở liệu tiêu biểu như: MongoDB, CouchDB, BigTable, Cassandra… d) Một số thuật ngữ liên quan Non-relational: relational - ràng buộc - thuật ngữ sử dụng đến mối quan hệ bảng sở liệu quan hệ (RDBMs) sử dụng mơ hình khóa gồm loại khóa: khóa khóa phụ (primary key + foreign key) để ràng buộc liệu nhằm thể tính quán liệu từ bảng khác Non-relational khái niệm không sử dụng ràng buộc liệu cho quán liệu NoSQL database Distributed storage: mơ hình lưu trữ phân tán file liệu nhiều máy tính khác mạng LAN Internet kiểm soát phần mềm Eventual consistency (nhất quán cuối): tính quán liệu không cần phải đảm bảo tức khắc sau phép write Một hệ thống phân tán chấp nhận ảnh hưởng theo phương thức lan truyền sau khoảng thời gian (không phải tức khắc), thay đổi đến điểm hệ thống, tức cuối (eventually) liệu hệ thống trở lại trạng thái quán Vertical scalable (khả mở rộng chiều dọc): Khi liệu lớn lượng, phương pháp tăng cường khả lưu trữ xử lý việc cải tiến phần mềm cải thiện phần cứng máy tính đơn lẻ gọi khả mở rộng chiều dọc Ví dụ việc tăng cường CPUs, cải thiện đĩa cứng, nhớ máy tính, cho DBMs nằm phạm trù Khả mở rộng chiều dọc cịn có thuật ngữ khác scale up Horizontal scalable (khả mở rộng chiều ngang): Khi liệu lớn lượng, phương pháp tăng cường khả lưu trữ xử lý dùng nhiều máy tính phân tán Phân tán liệu hỗ trợ phần mềm tức sở liệu Trong giá thành phần cứng ngày giảm, tốc độ xử lý, nhớ ngày tăng horizontal scalable lựa chọn đắn Hàng trăm máy tính nhỏ chập lại tạo thành hệ thống tính tốn mạnh nhiều so với vi xử lý RISC truyền thống đơn lẻ Mơ hình tiếp tục hỗ trợ cơng nghệ kết nối Myrinet InfiniBand Từ quản lý, bảo trì từ xa, xây dựng batch procession (xử lý đồng loạt tập lệnh) tốt Do đòi hỏi tốc độ xử lý I/O cao, lượng cực lớn liệu, scale horizontally thúc đẩy công nghệ lưu trữ phát triển giống object storage devices (OSD) Deployment Flexibility (Triển khai linh hoạt): việc bổ sung thêm/loại bỏ node, hệ thống tự động nhận biết để lưu trữ mà không cần phải can thiệp tay Hệ thống khơng địi hỏi cấu hình phần cứng mạnh, đồng Durability (Lưu trữ tốt): liệu tồn nhớ máy tính đồng thời lưu trữ lại đĩa cứng Phân loại NoSQL Tính có 150 sở liệu NoSQL (http://nosql-database.org/) Dựa theo đặc điểm thuộc tính số loại sở liệu NoSQL, chia chúng làm loại Thực chất việc chia chúng làm loại mang tính tương đối, dựa đặc điểm khác biệt tổng thể, chúng mang tính chất giống a) Dạng Column Families Stores Google’ BigTable khởi xướng mơ hình mà liệu lưu trữ định hướng cột Điều trái ngược với định hướng dòng RDBMs Lưu trữ theo cách định hướng cột cho phép liệu lưu trữ cách hiệu Phương pháp tránh lãng phí khơng gian lưu trữ lưu trữ giá trị null cách không lưu trữ cột giá trị cột khơng tồn (bằng null) Mỗi đơn vị liệu coi tập hợp cặp khoá – giá trị, đơn vị xác định định danh chính, giống khố chính, có xu hướng gọi row-key Các đơn vị xếp dẫn dựa row-key Dưới ví dụ row-key: Thơng tin cá nhân cho sau: first_name: John last_name: Doe zip_code: 10001 gender: male Thông tin cá nhân khác: first_name: Jane zip_code: 94303 Row-key người thứ người thứ Dữ liệu lưu xếp theo thứ tự, có nghĩa liệu có row-key lưu trước liệu có row-key Hai liệu lưu liên tiếp Chỉ có cặp khố – giá trị hợp lệ lưu trữ Một column-family ‘name’ với hàng first_name last_name Một column-family khác ‘location’ với zip_code Column-family ‘profile’ với hàng gender Trong lưu trữ hướng cột Bigtable, liệu lưu sở column-family Column-family định nghĩa cấu hình lúc bắt đầu chạy Bản thân cột khơng cần định nghĩa trình bày Ngồi ra, cột có khả lưu trữ loại liệu liệu tồn mảng bytes Một lưu trữ gồm loại: name, location profile Mỗi loại cặp khoágiá trị với giá trị hợp lệ lưu trữ Column-family ‘name’ với giá trị : For row-key: first_name: John last_name: Doe For row-key: first_name: Jane Column-family ‘location’ với giá trị : For row-key: zip_code: 10001 For row-key: zip_code: 94303 Column-family ‘profile’ với giá trị : For row-key: gender: male Trên thực tế, column-family phân tách cho hàng định Tất liệu liên quan đến row-key lưu trữ với Column-family hoạt động khố cho cột chứa row-key khoá cho liệu Dữ liệu lưu trữ theo trình tự liên tiếp Một liệu điền vào node, chia làm nhiều node Các liệu xếp dẫn không node mà khắp node, cung cấp tập hợp liệu lớn liên tục có trình tự Dữ liệu tồn chịu lỗi cách tạo liệu trì Hầu hết mơ hình tận dụng hệ thống tập tin có phân phối để lưu liệu vào không gian lưu trữ Hệ thống cho phép liệu lưu trữ cụm máy Cấu trúc xếp có dẫn làm cho việc tìm kiếm liệu hiệu Truy cập liệu ngẫu nhiên, thời đồng thời tìm kiếm đơn giản việc tìm kiếm node chuỗi chứa liệu Dữ liệu chèn vào cuối danh sách Cập nhật liệu thường thêm phiên đè lên liệu có Điều có nghĩa vài phiên ô trì thời điểm Đặc điểm phiên cấu hình Một số sở liệu NoSQL tiêu biểu cho dạng này: Hadoop/Hbase, Cassandra, Hypertable, Cloudata,… b) Dạng Key-Values Stores Một bảng băm hay danh sách liên kết cấu trúc liệu đơn giản chứa tập hợp cặp khoá – giá trị (key-values) Cấu trúc liệu phổ biến chúng cung cấp không gian lưu trữ cách hiệu quả, độ phức tạp trung bình O(1) thuật tốn truy cập liệu Khoá cặp keyvalues giá trị dễ dàng tìm kiếm để truy cập liệu Cặp key-values có nhiều kiểu: số giữ liệu nhớ RAM số cung cấp khả để trì liệu disk Cặp key-values phân phối tổ chức cụm nút Một kiểu lưu trữ key-values khác sử dụng phổ biến lưu trữ nhớ cache Một nhớ cache cung cấp ảnh chụp nhớ liệu sử dụng nhiều ứng dụng Mục đích nhớ cache giảm thao tác đọc-ghi trực tiếp sở liệu lưu trữ “cứng” ổ đĩa Bộ nhớ đệm cache chiến lược phổ biến sử dụng cấp phần mềm máy tính để tăng hiệu suất Hệ điều hành, sở liệu, thành phần trung gian ứng dụng sử dụng nhớ đệm Một số sở liệu NoSQL tiêu biểu cho dạng này: DynamoDB, Redis, FoundationDB, BerkeleyDB, Voldermort,… c) Dạng Document Stores Document Stores (hay Document Databases) hệ thống quản lý văn Các nhà phát triển bắt đầu với NoSQL thường nhầm lẫn sở liệu văn với hệ thống quản lý nội dung Các giá trị Document Stores bao gồm cấu trúc key-values lỏng lẻo, điển hình JSON (JavaScript Object Notatin) khơng có tài liệu hay bảng tính (mặc dù chúng lưu trữ) Document Stores xử lý toàn ghi lúc tránh việc cắt nhỏ ghi thành giá trị key-values cấu thành nên Ở mức độ cao hơn, cho phép đặt ghi có chung đặc điểm vào liệu Document Stores cho phép lập mục cho ghi sở khơng đích danh khố mà tất mục bên Một số sở liệu NoSQL tiêu biểu cho dạng này: MongoDB, CouchDB, Couchbase,… d) Dạng Graph Databases Các dạng liệt kê phía dạng sở liệu NoSQL có Số cịn lại sở liệu dạng biểu đồ sở liệu lưu trữ dạng XML Chúng coi sở liệu NoSQL Một số sở liệu NoSQL thuộc dạng tiêu biểu như: Neo4j FlockDB CHƯƠNG II – Kiến trúc NoSQL Sơ lược Các RDBMs bộc lộ yếu việc đánh mục lượng lớn liệu, phân trang, phân phối luồng liệu media (phim, ảnh, nhạc, ) Cơ sở liệu quan hệ thiết kế cho mơ hình liệu nhỏ thường xun đọc viết Social Network Services lại có lượng liệu cực lớn cập nhật liên tục số lượng người dùng nhiều thời điểm Thiết kế Distributed NoSQL giảm thiểu tối đa phép tính tốn, I/O liên quan kết hợp với batch processing đủ đảm bảo yêu cầu xử lý liệu mạng dịch vụ liệu cộng đồng Facebook, Amazon ví dụ điển hình Về bản, thiết kế NoSQL lựa chọn mơ hình lưu trữ tập liệu theo cặp giá trị key-value Khái niệm node sử dụng quản lý liệu phân tán Với hệ thống phân tán, việc lưu trữ có chấp nhận trùng lặp liệu Một yêu cầu truy vấn tới data gửi tới nhiều máy lúc, máy bị chết khơng ảnh hưởng nhiều tới tồn hệ thống Để đảm bảo tính thời gian thực hệ thống xử lý lượng lớn, thông thường người ta tách biệt sở liệu làm nhiều sở liệu Một sở liệu nhỏ đảm bảo vào liên tục, đạt tới ngưỡng thời gian dung lượng, sở liệu nhỏ gộp (merge) vào sở liệu lớ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 - nguyên nhân khiến performance trở nên tốt so với SQL truyền thống Kiến trúc lưu trữ NoSQL a) NoSQL Column Families Trước tiên, sở liệu dạng Column Families thường áp đặt lược đồ (schema) đơn giản trước dễ dàng tạo thêm cột Trong NoSQL Column Families điển hình, người dùng thường có giới hạn trước column-family thường khơng phải cột Một column-family tập hợp cột nhỏ hơn, thường cột nhỏ có quan hệ logic với Chúng lưu trữ vật lý Trong NoSQL Column Families, column-family giống cột hệ thống RDBMS Chúng định nghĩa trước liệu lưu trữ thường thay đổi trình cập nhật Điểm khác biệt chúng khai báo cột bên hệ thống RDBMS phải khai báo loại liệu lưu trữ (INT, VARCHAR, TEXT,…), NoSQL Column Families khơng có giới hạn Hơn nữa, NoSQL Column Families khơng lưu trữ giá trị null, cịn bên hệ thống RDBMS có c) NoSQL với Python Python ngơn ngữ lập trình mạnh mềm dẻo Ta hồn tồn sử dụng Python việc truy vấn đến sở liệu NoSQL thư viện mà sở liệu hỗ trợ Ví dụ với NoSQL Apache Cassandra, sử dụng thư viện Pycassa để thực truy vấn Thư viện cung cấp trực tiếp trang http://github.com/ pycassa/pycassa Sau tải cài đặt vào thư viện Python, ta dễ dàng sử dụng thư viện cách: import pycassa Một số câu lệnh truy vấn khác, như: Tạo kết nối đến sở liệu connection = pycassa.connect(‘database’) Sử dụng column-families ‘people’ column_family = pycassa.ColumnFamily(connection, ‘post’) Lấy liệu column_family.get() Còn nhiều truy vấn khác nữa, đọc thêm tài liệu địa d) NoSQL với PHP PHP ngôn ngữ sử dụng nhiều thiết kế phát triển ứng dụng Web Ngoài việc tương thích tốt với sở liệu quan hệ RDBMS, PHP nhiều sở liệu NoSQL hỗ trợ, ví dụ Apache Cassandra Giống Python, Apache Cassandra hỗ trợ PHP với thư viện có tên phpcassa Thư viện phân phối dạng mã nguồn mở địa http://github.com/hoan/phpcassa Với phpcassa, việc truy vấn lấy toàn liệu sở liệu trình bày đây: 13 phpcassa_examle.php Ưu, nhược điểm NoSQL a) Ưu điểm NoSQL Dễ dàng mở rộng quy mô liệu: Với dạng RDBMS, cần tăng quy mô liệu cần phải nâng cấp máy chủ - máy chủ có dung lượng khả xử lý cao Việc đòi hỏi chi phí lớn Trong với NoSQL, nâng cấp cần mở rộng thêm hàng ngang, tức thêm máy chủ (có tốc độ xử lý dung lượng dạng trung bình, có giá thành rẻ nhiều) vào hệ thống lưu trữ Giải tốt sở liệu có kích thước truy cập lớn: Trong “cuộc cách mạng công nghiệp liệu” (O’Reilly), lực RDBMS gia tăng nhiều, việc xử lý giao dịch, truy vấn dần trở thành gánh nặng với RDBMS truyền thống NoSQL hồn tồn xử lý “khối liệu khổng lồ” này, vượt xa hoàn tồn RDBMS truyền thống Khơng thực cần DBAs (Database Administrators): Những hệ thống RDBMS lớn muốn trì cần hỗ trợ lớn từ DBAs chuyên nghiệp, giàu kinh nghiệm đào tạo kỹ lưỡng Những người có quan hệ mật thiết với việc thiết kế, lắp đặt điều chỉnh hệ thống RDBMS cách liên tục NoSQL thiết kế từ lên để giảm nhu cầu quản lý: tự động sửa chữa, phân phối liệu Hơn nữa, mơ hình liệu đơn giản nên theo lý thuyết, nhu cầu quản lý NoSQL thấp Tất nhiên cần người đóng vai trị tương-tự-như-DBAs, họ khơng cần q ưu việt 14 Có hiệu kinh tế cao: Cơ sở liệu NoSQL thường sử dụng cụm máy chủ đại trà giá rẻ để quản lý lưu trữ liệu, RDBMS có xu hướng dựa máy chủ hệ thống lưu trữ độc quyền đắt tiền Kết chi phí cho gigabyte giao dịch/giây cho NoSQL thấp chi phí cho RDBMS nhiều lần , cho phép bạn lưu trữ xử lý liệu với mức giá thấp nhiều Mơ hình liệu linh hoạt: Do khơng có cấu trúc (hoặc ít) nên việc thay đổi cấu trúc sở liệu NoSQL trở nên dễ dàng so với RDBMS nhiều Việc thay đổi cấu trúc liệu RDBMS địi hỏi q trình tính tốn cẩn thận, xảy khả hệ thống phải “chết” khoảng thời gian ngắn hiệu sử dụng hệ thống giảm đôi chút Tất nhiên thay đổi NoSQL cần địi hỏi chút tính tốn để tránh xảy tác dụng phụ không mong muốn tránh việc vi phạm tính tồn vẹn liệu b) Nhược điểm NoSQL Tuy có nhiều ưu điểm ưu việt, khơng khơng có thách thức riêng NoSQL Khả tin cậy: RDBMS có lịch sử lâu dài thành công Những người ủng hộ NoSQL cho “tuổi thọ” cao RDBMS nguyên nhân dẫn đến lạc hậu Nhưng với đa số doanh nghiệp người sử dụng điều giúp họ yên tâm ổn định đa dạng chức Trong lựa chọn NoSQL đưa phiên bước đầu, số tính quan trọng chưa thực Sự hỗ trợ bên phía nhà sản xuất: Đa số RDBMS có hỗ trợ từ nhà sản xuất cho doanh nghiệp xảy cố với hệ thống họ Trong hầu hết sở liệu NoSQL dạng mã nguồn mở Mặc dù số có hậu thuẫn cơng ty đơn vị hầu hết có quy mơ nhỏ thành lập có hỗ trợ nguồn lực (chủ yếu kinh phí) từ tổ chức lớn Oracle, IBM hay Microsoft… Tính tương thích: Hầu hết NoSQL đời hoàn cảnh ứng dụng Web 2.0 đời (mạng xã hội, mạng kết nối, mạng chia sẻ…) Do tính NoSQL phát triển với xu hướng đáp ứng nhu cầu ứng dụng Việc tổng hợp, phân tích liệu để nâng cao khả hiệu cạnh tranh lĩnh vực kinh doanh thực chưa quan tâm nhiều NoSQL, hệ thống RDBMS hồn tồn làm điều Trong khoảng thời gian gần đây, số tổ chức 15 HIVE PIG cố phát triển ứng dụng phân tích tổng hợp hệ thống NoSQL để tăng tính cạnh tranh cho hệ thống NoSQL Quản trị: Một mục tiêu thiết kế NoSQL cung cấp giải pháp khơng địi hỏi quản trị, thực tế cịn khoảng cách xa thực điều NoSQL ngày đòi hỏi nhiều kỹ để cài đặt nhiều nỗ lực để trì hệ thống Chun mơn người quản lý: Có nhiều người có đầy đủ khả việc quản lý hệ thống RDBMS RDBMS đời lâu sử dụng thường xuyên Trong đó, người phát triển NoSQL trạng thái “đang tìm hiểu”, “đang nghiên cứu” Tất nhiên tình trạng dần giải theo thời gian, bây giờ, vị trí nhà tuyển dụng, việc tìm chuyên gia NoSQL thực khó khăn nhiều với so với việc tìm chuyên gia RDBMS 16 CHƯƠNG III – Apache Cassandra Apache Cassandra mã nguồn mở, phân tán, khơng tập trung hóa, khả mở rộng cao, tính sẵn sàng cao, chịu lỗi, tính quán, sở liệu hướng cột dựa sở thiết kế phân tán Dynamo Amazon mơ hình liệu Bigtable Google Được tạo Facebook, sử dụng phổ biến số sites Web Đặc điểm Cassandra - - Tính phân tán khơng tập trung hố: Cassandra có khả chạy nhiều máy xuất trước mặt người dùng thể thống nhất, gọi cluster Một cluster bao gồm nhiều nút Tất nút hoạt động nhau, làm việc nhau, khơng có máy chủ đặc biệt điều phối hoạt động với mơ hình chủ/tớ MySQL, Bigtable nhiều hệ sở liệu khác Ưu điểm đặc điểm đơn giản mơ hình chủ tớ giúp tránh việc hệ thống ngừng hoạt động Các node giống nên việc thao tác trì lưu trữ dễ dàng so với mơ hình chủ/tớ Việc cài đặt nhiều nút không khác nhiều so với thiết lập nút Nói ngắn gọn, Cassandra phân phối khơng tập trung, khơng có điểm lỗi hỗ trợ sẵn sàng cao Khả mở rộng mềm dẻo Khả mở rộng đề cập đến tính mở rộng theo chiều ngang - thêm nhiều máy chứa tất phần liệu để khơng có máy phải chịu toàn gánh nặng yêu cầu phục vụ Nhưng sau phần mềm thân phải có chế nội để giữ liệu đồng với nút khác cluster Cluster mở rộng quy mơ giảm quy mơ xuống cách liền mạch Để làm điều này, cụm phải có khả chấp nhận nút bắt đầu tham gia cách nhận số tất liệu bắt đầu phục vụ yêu cầu người sử dụng mà khơng có gián đoạn lớn cấu hình lại tồn cluster Người dùng khơng cần phải khởi động lại q trình, khơng cần thay đổi truy vấn ứng dụng, tự cân lại liệu Chỉ cần thêm máy - Cassandra tìm thấy làm hoạt động 17 - - - Mở rộng quy mô xuống, tất nhiên, có nghĩa loại bỏ số khả xử lý cluster Người dùng phải làm điều di chuyển phần ứng dụng sang tảng khác, ứng dụng bị giảm số lượng người dùng cần phải bắt đầu bán bớt phần cứng.Chúng ta hy vọng điều khơng xảy Nhưng có, người dùng khơng cần phải phá vỡ tồn hệ thống để có quy mơ nhỏ lại Tính sẵn sàng cao khả chịu lỗi Tính sẵn sàng hệ thống đánh giá dựa khả đáp ứng yêu cầu hệ thống Một hệ thống đánh giá có tính sẵn sàng cao, thường phải bao gồm nhiều máy tính nối mạng,và phần mềm mà họ chạy phải có khả điều hành cluster có vài chế nhận diện lỗi node thông qua yêu cầu tới phần khác hệ thống Cassandra có tính sẵn sàng cao Người dùng thay nút lỗi cluster mà khơng gây thời gian chết, chép liệu đến nhiều trung tâm liệu cung cấp cải thiện hiệu giảm thời gian dừng trung tâm liệu phải đối mặt với thảm họa hỏa hoạn lũ lụt Tính qn cuối Tính qn có nghĩa thao tác đọc trả giá trị ghi Tuy nhiên, việc mở rộng quy mô lưu trữ liệu nghĩa phải đánh đổi tính quán, tính sẵn sàng khả chịu lỗi ( lựa chọn đặc điểm này) Và Cassandra ưu tiên tính sẵn sàng tính quán Vì thế, Cassandra có đặc điểm “tùy chỉnh tính quán”, tức cho phép người dùng điều chỉnh mức độ quán theo yêu cầu, cân nhắc với mức độ sẵn sàng Mức độ quán thiết lập mà client phải thao tác cho phép định bao nhiên cluster phải nhận biết thao tác ghi hay đáp ứng lại thao tác đọc để xem thành cơng Hướng cột Cassandra khơng có quan hệ, thể cấu trúc liệu hashtable đa chiều rải rác Rải rác nghĩa với dịng bất kỳ, người dùng có nhiều cột, dịng khơng cần phải có tất cột giống sở liệu quan hệ Mỗi dịng có khóa riêng làm cho liệu truy cập 18