Báo cáo: Tìm hiểu về NoSQL Cassandra

28 2.5K 29
Báo cáo: Tìm hiểu về NoSQL Cassandra

Đ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

Chúng ta đang sống trong thời đại Web 2.0 bùng nổ, các mạng dịch vụ dữ liệu cho phép mọi người chia sẻ hàng tỷ nội dung trên nền Web. Khối lượng xử lý dữ liệu đang là rất lớn và nhanh chóng vượt qua giới hạn phần cứng cần để giải quyết. Tuy các hệ cơ sở dữ liệu quan hệ (RDBMS) vẫn được sử dụng để giải quyết lượng dữ liệu này nhưng nó tỏ ra có nhiều mối nguy hại cho những xử lý của nó.

MỤC LỤC 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 quyết. 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ý nó. Hầu hết liệu lưu trữ phân tán nhiều máy chủ khác nhau. 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 xuyên tìm cách phi chuẩn hoá 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 hỗ trợ trực tiếp cho tình này. 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 toá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 nguyên phần cứng 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 1. 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 mới. 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 xuyên tìm cách phi chuẩn hoá 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 hỗ trợ trực tiếp cho tình này. Đa số hệ sở liệu NoSQL hình thành giới việc xử lý song song tránh tượng này. Vì vậy, hệ sở liệu NoSQL lên giải pháp sáng giá đáp ứng tình này. Khởi đầu từ tập đoà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 hơn. Đỉ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 mình. 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 nhau. 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ù này. Khả mở rộng chiều dọc 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 toá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 hơn. 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 nhất. • 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. 2. 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 nhau. 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 quả. 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 khoá 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ứ 2. 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 2. Hai liệu lưu liên tiếp nhau. Chỉ có cặp khoá – 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. Ngoà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 nhau. Column-family hoạt động khoá 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 quả. 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 toá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 bả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) 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 nó. Ở mức độ cao hơn, cho phép đặt ghi có chung đặc điểm vào liệu nhất. Document Stores cho phép lập mục cho ghi sở không đích danh khoá mà tất mục bên 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ố 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 1. 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 xuyên đọ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 toá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 này. 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 toà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. 2. 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 mới. 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 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 nhau. Chúng lưu trữ vật lý nhau. 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 giới hạn vậy. Hơn nữa, NoSQL Column Families không lưu trữ giá trị null, bên hệ thống RDBMS có. Trong lưu trữ vật lý, liệu không lưu trữ theo “bảng” mà lưu thành nhiều column-family bảng. Cơ sở liệu thiết kế thích ứng với quy mô liệu cực lớn (hàng triệu cột * hàng tỉ hàng). Do kích thước nên bảng nằm nhiều máy chủ khác nhau, xác định row-key nhất. Ví dụ: Một bảng với số liệu sau: Table ‘people’ { } “row_key_1” : { “name” : { . }, “location” : { . }, “preferences” : { . } }, “row_key_2” : { “name” : { . }, “location” : { . }, “preferences” : { . } }, “row_key_3” : { “name” : { . }, “location” : { . }, “preferences” : { . } } 10 MongoDB thức hỗ trợ Java cách xây dựng thư viện. Thư viện tài liệu thư viện có sẵn địa http://mongodb.org/display/DOCS/Java+Language+Center. Thư viện đóng gói dạng .jar. Sau tải về, cần thêm đường dẫn tới thư viện vào classpath ứng dụng sử dụng. Dưới ví dụ đơn giản việc truy xuất tới sở liệu MongoDB với Java. javaMongoDBClient.java import com.mongodb.DB; import com.mongodb.DBCollection; import com.mongodb.DBCursor; import com.mongodb.Mongo; public class JavaMongoDBClient { Mongo m; DB db; DBCollection coll; public void init() throws Exception { m = new Mongo( “localhost” , 27017 ); db = m.getDB( “mydb” ); coll = db.getCollection(“logdata”); } public void getLogData() { DBCursor cur = coll.find(); while(cur.hasNext()) { System.out.println(cur.next()); } } public static void main(String[] args) { try { JavaMongoDBClient javaMongoDBClient; javaMongoDBClient = new JavaMongoDBClient(); javaMongoDBClient.init(); javaMongoDBClient.getLogData(); } catch(Exception e) { e.printStackTrace(); } } } 13 c) NoSQL với Python Python ngôn ngữ lập trình mạnh mềm dẻo. Ta hoàn toà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 trên. 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: 14 phpcassa_examle.php 5. Ư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 hoàn toàn xử lý “khối liệu khổng lồ” này, vượt xa hoàn toà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 hơn. Tất nhiên cần người đóng vai trò tương-tự-như-DBAs, họ không cần ưu việt. 15 • 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 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 trình tính toá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 toán để tránh xảy tác dụng phụ không mong muốn tránh việc vi phạm tính toàn vẹn liệu. b) Nhược điểm NoSQL Tuy có nhiều ưu điểm ưu việt, không 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 nó. 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 nó. Trong lựa chọn NoSQL đưa phiên bước đầu, số tính quan trọng chưa thực hiện. • 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 này. 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 hoàn toàn làm điều này. Trong khoảng thời gian gần đây, số tổ chức HIVE PIG cố phát triển ứng dụng phân tích 16 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ế 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. • Chuyên 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. 17 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. 1. Đặc điểm Cassandra - - Tính phân tán không tập trung hoá: 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, 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, đ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 để 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à gián đoạn lớn cấu hình lại toàn cluster. Người dùng không cần phải khởi động lại 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. 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 18 - - - 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 ra. Nhưng có, người dùng không cần phải phá vỡ toà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 quán cuối Tính quán có nghĩa thao tác đọc trả giá trị ghi nhất. 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 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 được. Cassandra lưu trữ liệu bảng băm đa chiều nên người dùng không cần phải định trước cấu trúc liệu nên nào, ghi cần trường gì… Điều có lợi người dùng vừa bắt đầu phát triển ứng dụng, 19 - - việc thêm vào loại bỏ chức thường xuyên. Tuy nhiên, điều nghĩa người dùng hoàn toàn suy nghĩ cấu trúc liệu. Thay thiết kế mô hình liệu ban đầu sau thiết kế truy vấn xung quanh mô hệ sở liệu quan hệ, người dùng tự nghĩ truy vấn trước, sau cung cấp liệu để trả lời truy vấn đó. Schema – Free (không bị ràng buộc lược đồ) Cassandra yêu cầu người dùng định nghĩa container gọi keyspace chứa column family. Keyspace thực chất namespace logic để giữ column family thuộc tính cầu hình cụ thể. Ngoài ra, bảng liệu rải rác cần đưa liệu vào đó, sử dụng cột mong muốn, không cần phải định nghĩa trước cột. Thay mô hình hóa liệu công cụ mô hình hóa đắt tiền, viết câu truy vấn. Hiệu cao Cassandra thiết kế nhằm mục đích tận dụng ưu điểm máy đa xử lý/ đa lõi, để chạy nhiều nhiều máy nhiều trung tâm liệu với khối lượng liệu khổng lồ. Cassandra hoạt động tốt chí tải công việc cao. Thao tác ghi Cassandra thực nhanh chóng. Khi người dùng thêm nhiều server, người dùng trì tất đặc tính mong muốn Cassandra mà hy sinh hiệu hoạt động. 2. Kiến trúc a) Kết nối nút (giao thức Gossip) Gossip giao thức truyền thông ngang hàng, nút định kỳ trao đổi thông tin trạng thái thân nút khác mà chúng biết. Trong Cassandra, trình Gossip chạy giây nút trao đổi thông báo trạng thái tối đa với nút khác cluster. Các nút thông tin trao đổi thân nút khác mà họ biết, đó, tất nút nhanh chóng tìm hiểu tất nút khác cụm (cluster). Một Gossip có phiên liên kết với nó, trình trao đổi tin đồn, với nút cụ thể thông tin cũ bị ghi đè trạng thái cập nhật nó. b) Các thành viên cụm nút hạt giống Khi nút bắt đầu, nhìn vào tập tin cấu hình để xác định tên cụm Cassandra chứa nút gọi hạt giống để liên hệ, có thông tin nút khác cluster. Điểm liên lạc cụm cấu hình file cassandra.yaml cho nút. 20 Để ngăn chặn đứt đoạn truyền thông tin đồn (gossip), tất nút cluster phải có danh sách nút hạt giống liệt kê tập tin cấu hình nó. Điều quan trọng nút khởi động. Theo mặc định, nút nhớ nút khác, có giao tiếp kể khởi động lại. c) Trạng thái dò thất bại phục hồi Dò thất bại thông qua trạng thái tin đồn (gossip), từ nút xác định xem nút khác hệ thống online hay offline. Thông tin dò thất bại sử dụng Cassandra để tránh định tuyến yêu cầu từ máy khách đến nút truy cập được. Node thất bại nhiều nguyên nhân khác thất bại phần cứng, mạng… Để thức thay đổi nút thành viên cluster, quản trị viên sử dụng tiện ích nodetool để thêm loại bỏ nút cụm Cassandra. Tốt thường xuyên chạy nodetool sửa chữa tất nút để đảm bảo chúng toàn vẹn liệu, chạy repair sau hồi phục nút offline thời gian dài. d) Phân vùng liệu Cassandra Khi khởi động cụm Cassandra, người dùng phải chọn cách thức liệu chia nút cluster. Điều thực cách chọn phân vùng cho cluster. Trong Cassandra, tổng số liệu quản lý cụm đại diện không gian vòng tròn. Vòng tròn chia tương ứng với phạm vi số lượng nút, nút chịu trách nhiệm cho nhiều vùng toàn liệu. Trước nút tham gia vòng, phải gán thẻ bài. Thẻ xác định vị trí nút vòng tròn phạm vi liệu chịu trách nhiệm. Các cột liệu phân chia qua nút dựa khóa hàng. Để xác định nút dòng sống, vòng tròn quay theo chiều kim đồng hồ định vị nút với giá trị thẻ lớn giá trị khóa hàng. Mỗi nút có trách nhiệm khu vực xác định vòng tròn thân nút chịu trách nhiệm khu vực liền kề nó.Với nút xếp theo thứ tự thẻ bài, nút cuối coi tiền thân nút 21 e) Nhân Cassandra Nhân trình lưu trữ liệu nhiều nút để đảm bảo độ tin cậy khả chịu lỗi. Khi người dùng tạo keyspace (không gian khóa) Cassandra, người dùng phải có sách định vị trí sao: số lượng cách phân phối nút cluster. Chiến lược nhân dựa cấu hình cụm để giúp xác định vị trí vật lý nút khoảng cách chúng. Tổng số cluster thường gọi nhân tố nhân bản. Một nhân tố nhân có nghĩa có hàng. Một nhân tố nhân có nghĩa có hai cho hàng. Tất quan trọng nhau, coi chính, phụ cách đọc ghi xử lý request. Như quy luật chung, nhân tố nhân không vượt số lượng nút cluster. Tuy nhiên, để tăng nhân tố nhân bản, sau thêm số lượng mong muốn nút sau đó. Khi nhân tố nhân vượt số lượng nút, lệnh ghi bị từ chối, lệnh đọc phục vụ miễn đáp ứng mức độ quán (consistency level). Chiến lược xác định vị trí nhân : - SimpleStrategy cách mặc định tạo keyspace cách sử dụng Cassandra CLI. SimpleStrategy đặt nút xác định partitioner(cách phân vùng). Bản bổ sung đặt nút vòng theo chiều kim đồng hồ mà không xem xét vị trí nút vị trí trung tâm liệu. - NetworkTopologyStrategy chiến lược nhân ưa thích người dùng có thông tin cách thức nút nhóm lại trung tâm liệu, 22 người dùng có (hoặc kế hoạch có) cluster triển khai nhiều trung tâm liệu. Chiến lược cho phép xác định có người dùng muốn trung tâm liệu. f) Snitches Snitch thành phần cấu hình cụm Cassandra sử dụng để xácđịnh nút nhóm lại với cấu trúc liên kết mạng tổng thể (rack nhóm trung tâm liệu). Cassandra sử dụng thông tin để định tuyến yêu cầu từ nút cách hiệu có thể. Snitch không ảnh hưởng đến yêu cầu ứng dụng khách hàng Cassandra (Nó không kiểm soát client kết nối đến nút nào). Snitches cấu hình cho cụm Cassandra file cấu hình cassandra.yaml. Tất nút cluster nên sử dụng cấu hình snitch. Khi gán thẻ bài, gán chúng luân phiên (so le) cho Rack, ví dụ: rack1, rack2, rack3, rack1, rack2, rack3 . 3. Mô hình liệu Cassandra Trong Cassandra, keyspace nơi chứa tất liệu ứng dụng, tương tự với sở liệu hay lược đồ sở liệu quan hệ. Bên keyspace nhiều đối tượng column family tương tự bảng. Các column family chứa cột tập cột xác định row key ứng dụng cung cấp. Mỗi dòng column family không thiết phải có cột. Cassandra không áp đặt quan hệ column family cách mà sở liệu quan hệ thực với bảng: khóa ngoại Cassandra, việc join column family truy vấn không hỗ trợ. Mỗi column family có tập cột tự chứa dự định để truy nhập để thỏa mãn truy vấn từ ứng dụng. a) Keyspaces Trong Cassandra, keyspace nơi chưa liệu cho ứng dụng, giống lược đồ sở liệu quan hệ. keyspace dùng để nhóm column family lại với nhau. Thường cluster có column family cho ứng dụng. Việc nhân điều khiển sở keyspace, liệu có yêu cầu nhân khác nên đặt keyspace khác nhau. Keyspace không thiết kế để sử dụng lớp đồ quan trọng mô hình liệu, mà cách để điều khiển việc nhân liệu cho tập column family. 23 b) Column-Families Trong Cassandra, người dùng định nghĩa column family. Các column family (và nên) định nghĩa metadata cột, cột thực tạo thành dòng xác định ứng dụng. Mỗi dòng có số lượng cột khác nhau. Mặc dù column family linh hoạt, thực column family không hoàn toàn lược đồ. Mỗi column family nên thiết kế để chứa kiểu liệu. Có kiểu mẫu thiết kế column family phổ biến Cassandra: column family động tĩnh. Một column family tĩnh sử dụng tập tương đối cố định tên cột cột giống với sở liệu quan hệ hơn. Ví dụ, column family lưu trữ liệu người dùng có cột tên người dùng, địa chỉ, email, số điện thoại… Mặc d ù dòng có tập cột, chúng không bắt buộc phải có giá trị xác định cho tất cột. Column family tĩnh thường có metadata đĩnh nghĩa trước cho cột. Một column family động tận dụng ưu điểm khả Cassandra để dùng tên cột mà ứng dụng cung cấp để lưu trữ liệu. Một column family động cho phép tính toán trước tập kết lưu chúng dòng đơn để truy vấn liệu hiệu quả. Mỗi dòng snapshot liệu thỏa mãn truy vấn cụ thể. c) Columns Cột đơn vị liệu nhỏ Cassandra. Nó gồm có tên, giá trị, nhãn thời gian. Một cột phải có tên, tên nhãn tĩnh (như “tên”, hay “email”) đặt tự động cột tạo ứng dụng. Cột đánh mục theo tên nó. Tuy nhiên, mọt hạn chế mục cột chúng không hỗ trợ truy vấn yêu cầu truy nhập đến liệu có thứ tự, liệu chuỗi thời gian. Trong trường hợp này, mục thứ cấp cột nhãn thời gian không đủ người dùng diều khiển thứ tự xếp cột với mục thứ cấp. Với trường hợp thứ tự xếp quan trọng, việc trì thủ công column family mục cách khác để tra cứu cột liệu xếp theo thứ tự. Một cột không thiết phải có giá trị. Đôi tất thông tin ứng dụng cần để thỏa mãn truy vấn lưu trữ tên cột. Ví dụ, người dùng sử dụng column family nhìn cụ thể hóa dể truy vấn dòng từ column family khác, tất người dùng cần lưu trữ khóa dòng mà người dùng tìm kiếm, giá trị trống. 24 Cassandra sử dụng cột nhãn thời gian để xác định cập nhật gần cột. Nhãn thời gian cung cấp ứng dụng. Nhãn thời gian gần đạt dược yêu cầu liệu, nhiều phiên cập nhật cột dòng lúc cập nhập cập nhật tồn tại. 4. Cài đặt Cassandra Cài đặt hệ điều hành Ubuntu 13.04 : Yêu cầu hệ thống : Cài đặt Java 7, tốt Oracle/Sun JVM. Cassandra chạy tốt với OpenJDK IBM JVM. Cassandra không chạy JRockit. Cách cài đặt : • Download phiên Cassandra trang chủ http://cassandra.apache.org/download/ • Giải nén gói tải về. • Cài đặt thư mục data_file_directories, commitlog_directory saved_caches_directory • Khởi động Cassandra câu lệnh 'bin/cassandra -f' command line. 5. Demo Cassandra 25 NHẬN XÉT CỦA THẦY HƯỚNG DẪN: ……………………………………….………………… ……………………………………….………………… ……………………………………….………………… ……………………………………….………………… ……………………………………….………………… ……………………………………….………………… ……………………………………….………………… ………………………………………. …………………………………………………………… ……. …………………………………………………………… …….… ………………………………………………………. …………………………………………………………. …………………………………………………………. …………………………………………………………. …………………………………………………………. …………………………………………………………… 26 TÀI LIỆU THAM KHẢO • • • • • • • Cuốn Professtional NoSQL, Shashank Tiwarri Cuốn Cassandra – The Definitive Guide, Eben Hewitt Trang web: http://nosql-database.org/ Trang web: http://cassandra.apache.org/ Trang web: http://mongodb.org/ Tài liệu pycassa, phpcassa trang http://github.com/ Một số nguồn internet khác 27 28 [...]... đó các nút định kỳ trao đổi thông tin trạng thái về bản thân và về các nút khác mà chúng biết Trong Cassandra, quá trình Gossip chạy mỗi giây và mỗi nút trao đổi các thông báo trạng thái của nó tối đa với 3 nút khác trong cluster Các nút thông tin trao đổi về bản thân và về các nút khác mà họ nó đã được biết, do đó, tất cả các nút nhanh chóng tìm hiểu về tất cả các nút khác trong cụm (cluster) Một Gossip... Oracle/Sun JVM Cassandra cũng chạy tốt với OpenJDK và IBM JVM Cassandra không chạy trên JRockit Cách cài đặt : • Download phiên bản Cassandra tại trang chủ http:/ /cassandra. apache.org/download/ • Giải nén gói tải về • Cài đặt các thư mục data_file_directories, commitlog_directory và saved_caches_directory • Khởi động Cassandra bằng câu lệnh 'bin /cassandra -f' trên command line 5 Demo Cassandra 25 NHẬN... cứu” Tất nhiên là tình trạng này sẽ dần được giải quyết theo thời gian, nhưng ngay bây giờ, trong vị trí của nhà tuyển dụng, việc tìm được những chuyên gia NoSQL thực sự khó khăn hơn rất nhiều với so với việc tìm những chuyên gia RDBMS 17 CHƯƠNG III – Apache Cassandra Apache Cassandra là một mã nguồn mở, phân tán, không tập trung hóa, khả năng mở rộng cao, tính sẵn sàng cao, chịu lỗi, tính nhất quán,... c) NoSQL với Python Python là một ngôn ngữ lập trình mạnh và khá mềm dẻo Ta hoàn toàn có thể sử dụng Python trong việc truy vấn đến các cơ sở dữ liệu NoSQL bằng các thư viện mà chính các cơ sở dữ liệu này hỗ trợ Ví dụ như với NoSQL Apache Cassandra, có thể sử dụng thư viện Pycassa để thực hiện truy vấn Thư viện này được cung cấp trực tiếp tại trang http://github.com/pycassa/pycassa Sau khi tải về và... NoSQL Tuy có rất nhiều ưu điểm ưu việt, nhưng không hẳn là nó không có những thách thức riêng của NoSQL • Khả năng tin cậy: RDBMS đã có một lịch sử rất lâu dài và thành công Những người ủng hộ NoSQL sẽ cho rằng “tuổi thọ” quá cao của RDBMS là nguyên nhân chính dẫn đến sự lạc hậu của nó Nhưng với đa số doanh nghiệp và người sử dụng thì điều này giúp họ yên tâm hơn về sự ổn định cũng như sự đa dạng về. .. ………………………………………………………… ………………………………………………………… …………………………………………………………… 26 TÀI LIỆU THAM KHẢO • • • • • • • Cuốn Professtional NoSQL, Shashank Tiwarri Cuốn Cassandra – The Definitive Guide, Eben Hewitt Trang web: http:/ /nosql- database.org/ Trang web: http:/ /cassandra. apache.org/ Trang web: http://mongodb.org/ Tài liệu về pycassa, phpcassa trên trang http://github.com/ Một số nguồn internet khác 27 28 ... cho đến khi thực hiện được điều đó NoSQL ngày nay đòi hỏi rất nhiều kỹ năng để cài đặt và rất nhiều nỗ lực để duy trì hệ thống • Chuyên môn của người quản lý: Có rất nhiều những người có đầy đủ khả năng trong việc quản lý các hệ thống RDBMS vì RDBMS ra đời rất lâu và được sử dụng thường xuyên Trong khi đó, những người phát triển NoSQL vẫn ở trong trạng thái “đang tìm hiểu , “đang nghiên cứu” Tất nhiên... vấn khác nữa, có thể đọc thêm trên tài liệu tại địa chỉ trên d) NoSQL với PHP PHP là một ngôn ngữ được sử dụng rất nhiều trong thiết kế và phát triển các ứng dụng Web Ngoài việc tương thích rất tốt với các cơ sở dữ liệu quan hệ RDBMS, PHP cũng được rất nhiều các cơ sở dữ liệu NoSQL hỗ trợ, ví dụ như Apache Cassandra Giống như Python, Apache Cassandra cũng hỗ trợ PHP với một thư viện có tên phpcassa Thư... là người dùng hoàn toàn không phải suy nghĩ gì về cấu trúc dữ liệu Thay vì thiết kế một mô hình dữ liệu ban đầu và sau đó thiết kế các truy vấn xung quanh mô hình đó như trong hệ cơ sở dữ liệu quan hệ, người dùng có thể tự do nghĩ về các truy vấn trước, và sau đó cung cấp dữ liệu để trả lời những truy vấn đó Schema – Free (không bị ràng buộc về lược đồ) Cassandra yêu cầu người dùng định nghĩa một container... cao Cassandra được thiết kế nhằm mục đích tận dụng được ưu điểm của các máy đa xử lý/ đa lõi, và để chạy trên nhiều nhiều máy ở nhiều trung tâm dữ liệu với khối lượng dữ liệu khổng lồ Cassandra có thể hoạt động tốt thậm chí dưới tải công việc cao Thao tác ghi trong Cassandra cũng được thực hiện rất nhanh chóng Khi người dùng thêm nhiều server, người dùng có thể duy trì tất cả đặc tính mong muốn của Cassandra

Ngày đăng: 11/09/2015, 12:18

Từ khóa liên quan

Mục lục

  • MỞ ĐẦU

  • CHƯƠNG I – Thuật ngữ NOSQL

    • 1. NoSQL là gì?

      • a) Thuật ngữ

      • b) Lịch sử ra đời của NoSQL. Tại sao lại sử dụng NoSQL?

      • c) Định nghĩa

      • d) Một số thuật ngữ liên quan

    • 2. Phân loại NoSQL

      • a) Dạng Column Families Stores

      • b) Dạng Key-Values Stores

      • c) Dạng Document Stores

      • d) Dạng Graph Databases

  • CHƯƠNG II – Kiến trúc NoSQL

    • 1. Sơ lược

    • 2. Kiến trúc lưu trữ các NoSQL

      • a) NoSQL Column Families

      • b) NoSQL Document Stores

      • c) NoSQL Key-Values Stores

    • 3. Đặc điểm chung

    • 4. NoSQL với các ngôn ngữ lập trình bậc cao

      • a) Framework Thrift

      • b) NoSQL với Java

      • c) NoSQL với Python

      • d) NoSQL với PHP

    • 5. Ưu, nhược điểm của NoSQL

      • a) Ưu điểm của NoSQL

      • b) Nhược điểm của NoSQL

  • CHƯƠNG III – Apache Cassandra

    • 1. Đặc điểm của Cassandra

    • 2. Kiến trúc

      • a) Kết nối giữa các nút (giao thức Gossip)

      • b) Các thành viên của cụm và các nút hạt giống

      • c) Trạng thái dò thất bại và phục hồi

      • d) Phân vùng dữ liệu trong Cassandra

      • e) Nhân bản trong Cassandra

      • f) Snitches

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

      • a) Keyspaces

      • b) Column-Families

      • c) Columns

    • 4. Cài đặt Cassandra

    • 5. Demo Cassandra

  • TÀI LIỆU THAM KHẢO

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan