Hệ thống Dữ liệu lớn và NoSQL
Hệ thống dữ liệu lớn (Big Data) và NoSQL là các công nghệ quản lý dữ liệu được xây dựng để xử lý khối lượng, tốc độ và sự đa dạng mà các cơ sở dữ liệu quan hệ gặp khó khăn, đánh đổi các đảm bảo quan hệ nghiêm ngặt để lấy khả năng mở rộng theo chiều ngang, lược đồ linh hoạt và tính sẵn sàng cao.
Definition
Hệ thống dữ liệu lớn là các nền tảng quản lý dữ liệu được thiết kế cho các tập dữ liệu quá lớn, quá nhanh hoặc quá đa dạng đối với các cơ sở dữ liệu truyền thống một nút; hệ thống NoSQL là các kho lưu trữ phi quan hệ áp dụng các mô hình dữ liệu linh hoạt và tính nhất quán nới lỏng để đạt được khả năng mở rộng theo chiều ngang và tính sẵn sàng.
Scope
Lĩnh vực này bao gồm các hệ thống dữ liệu được thiết kế cho quy mô lớn: các kho lưu trữ NoSQL (key-value, document, wide-column và graph) và các mô hình dữ liệu linh hoạt của chúng; các khung xử lý song song dữ liệu phát triển từ MapReduce; các đánh đổi về tính nhất quán-tính sẵn sàng được thể hiện bởi định lý CAP và phổ các mô hình nhất quán; và kho dữ liệu (data warehousing) cùng OLAP cho phân tích quy mô lớn. Nó đề cập đến cách các hệ thống này nới lỏng hoặc tổ chức lại các giả định quan hệ để đạt được quy mô. Nó không bao gồm các chi tiết bên trong của cam kết phân tán và thực thi truy vấn song song, những điều này được đề cập trong lĩnh vực cơ sở dữ liệu phân tán và song song.
Sub-topics
Core questions
- Những nhu cầu về khả năng mở rộng và tính linh hoạt nào đã thúc đẩy sự chuyển đổi vượt ra ngoài các cơ sở dữ liệu quan hệ?
- Các mô hình dữ liệu nào mà các loại NoSQL chính cung cấp?
- Các khung xử lý song song dữ liệu xử lý các tập dữ liệu khổng lồ trên các cụm như thế nào?
- Định lý CAP mô tả những đánh đổi nào về tính nhất quán-tính sẵn sàng?
- Các kho dữ liệu và OLAP hỗ trợ các truy vấn phân tích quy mô lớn như thế nào?
Key concepts
- kho lưu trữ key-value, document, wide-column, graph
- khả năng mở rộng theo chiều ngang
- tính linh hoạt của lược đồ
- MapReduce và xử lý song song dữ liệu
- định lý CAP
- tính nhất quán cuối cùng
- BASE so với ACID
- kho dữ liệu và OLAP
Key theories
- Kho lưu trữ NoSQL có khả năng mở rộng theo chiều ngang
- Hệ thống NoSQL từ bỏ mô hình quan hệ một nút để ủng hộ các mô hình key-value, document, wide-column hoặc graph phân chia và sao chép trên các cụm hàng hóa, ưu tiên khả năng mở rộng và tính sẵn sàng hơn là khả năng truy vấn phong phú và tính nhất quán mạnh mẽ.
- Xử lý song song dữ liệu
- Các khung theo mô hình MapReduce thể hiện các tính toán quy mô lớn dưới dạng các pha map và reduce song song trên dữ liệu được phân vùng, che giấu sự phức tạp của phân phối, lập lịch và khả năng chịu lỗi khỏi lập trình viên.
- Đánh đổi CAP
- Định lý CAP phát biểu rằng một kho dữ liệu phân tán không thể đồng thời đảm bảo tính nhất quán, tính sẵn sàng và khả năng chịu phân vùng, buộc các nhà thiết kế phải lựa chọn, trong trường hợp phân vùng mạng, giữa tính nhất quán và tính sẵn sàng.
Clinical relevance
Hệ thống dữ liệu lớn và NoSQL cung cấp năng lượng cho cơ sở hạ tầng dữ liệu của web hiện đại: các kho lưu trữ key-value và wide-column hỗ trợ các dịch vụ có lưu lượng truy cập cao, các khung xử lý song song dữ liệu xử lý nhật ký và luồng nhấp chuột ở quy mô lớn, và các kho dữ liệu phục vụ phân tích kinh doanh, làm cho các hệ thống này trở nên trung tâm đối với kỹ thuật dữ liệu và các ứng dụng quy mô lớn.
History
Khối lượng công việc quy mô Internet vào những năm 2000 đã vượt quá khả năng xử lý của các cơ sở dữ liệu quan hệ một nút. MapReduce của Google (2004/2008) và hệ sinh thái Hadoop mã nguồn mở đã cho phép xử lý dữ liệu quy mô cụm; Dynamo của Amazon (2007) và Bigtable của Google đã truyền cảm hứng cho một làn sóng các kho lưu trữ NoSQL; và định lý CAP của Brewer đã định hình các đánh đổi về tính nhất quán-tính sẵn sàng mà các hệ thống này thể hiện.
Debates
- Tính nhất quán mạnh mẽ so với tính nhất quán cuối cùng
- Hệ thống NoSQL thường chọn tính sẵn sàng và tính nhất quán cuối cùng để duy trì khả năng phản hồi trong các phân vùng, nhưng điều này đẩy việc xử lý xung đột lên các ứng dụng; lĩnh vực này tranh luận khi nào tính nhất quán cuối cùng là chấp nhận được so với khi nào các hệ thống mới hơn nên khôi phục các đảm bảo mạnh mẽ hơn.
Key figures
- Jeffrey Dean
- Sanjay Ghemawat
- Eric Brewer
- Werner Vogels
Related topics
Seminal works
- dean2008
- decandia2007
- brewer2012
Frequently asked questions
- NoSQL có nghĩa là không có SQL nào cả không?
- Không. NoSQL thường được hiểu là 'không chỉ SQL'. Nó đề cập đến các kho dữ liệu không được xây dựng trên mô hình quan hệ và không tập trung vào SQL, nhưng nhiều hệ thống NoSQL cung cấp giao diện truy vấn giống SQL, và thuật ngữ này bao gồm một họ rộng lớn — cơ sở dữ liệu key-value, document, wide-column và graph — chứ không phải một công nghệ duy nhất.
- Khi nào tôi nên chọn hệ thống NoSQL thay vì cơ sở dữ liệu quan hệ?
- Hệ thống NoSQL hấp dẫn khi bạn cần mở rộng theo chiều ngang trên nhiều máy, lưu trữ dữ liệu linh hoạt hoặc phát triển nhanh chóng, hoặc tối đa hóa tính sẵn sàng cho các mẫu truy cập đơn giản. Cơ sở dữ liệu quan hệ vẫn được ưu tiên khi bạn cần các truy vấn phong phú, các phép nối phức tạp và tính nhất quán giao dịch mạnh mẽ trên dữ liệu có cấu trúc.