Nghiên Cứu và Xây Dựng Mô Hình Xử Lý Dữ Liệu Lớn Trên Nền Hadoop-HBase

Luận văn thạc sĩ về nghiên cứu, xây dựng mô hình xử lý dữ liệu lớn trên nền tảng Hadoop-HBase. Tìm hiểu xu hướng NoSQL và ứng dụng thực tế.

Chuyên ngành

Khoa Học Máy Tính

Người đăng

Ẩn danh

Thể loại

Luận Văn Thạc Sĩ

2012

75
1
0

Phí lưu trữ

30 Point

Tóm tắt

I. Tổng Quan Về Nghiên Cứu Xử Lý Dữ Liệu Lớn Với Hadoop 57 ký tự

Trong bối cảnh dữ liệu ngày càng tăng, nhu cầu xử lý dữ liệu lớn trở nên cấp thiết. Các mạng xã hội, trang thương mại điện tử và lĩnh vực khoa học đòi hỏi khả năng xử lý khối lượng dữ liệu khổng lồ, vượt quá khả năng của các hệ quản trị cơ sở dữ liệu quan hệ (RDBMS) truyền thống. Các hệ thống NoSQL, như HadoopHBase, ra đời để giải quyết những hạn chế này. Luận văn này tập trung vào nghiên cứu và xây dựng mô hình xử lý dữ liệu lớn trên nền tảng Hadoop-HBase, nhằm cung cấp một giải pháp hiệu quả cho việc lưu trữ, xử lý và phân tích dữ liệu quy mô lớn. Theo luận văn thạc sĩ của Đào Vân Hằng, "NoSQL là một xu hướng xử lý dữ liệu lớn phát triển trong khoảng bốn năm trở lại đây chủ yếu trong cộng đồng mã nguồn mở..." Điều này nhấn mạnh tính cấp thiết và tiềm năng phát triển của công nghệ NoSQL trong tương lai.

1.1. Tầm Quan Trọng của Xử Lý Dữ Liệu Lớn Phân Tán

Khối lượng dữ liệu khổng lồ từ các ứng dụng web, mạng xã hội, và nghiên cứu khoa học tạo ra nhu cầu cấp thiết về xử lý dữ liệu lớn phân tán. Các hệ thống cơ sở dữ liệu quan hệ truyền thống (RDBMS) không đáp ứng được yêu cầu về khả năng mở rộng, hiệu năng, và chi phí. Dữ liệu phải được lưu trữ và xử lý phân tán trên nhiều máy tính thông thường, giảm chi phí phần cứng và bản quyền. Các công nghệ như HadoopHBase mang đến giải pháp lưu trữ và xử lý hiệu quả cho Big Data.

1.2. Tổng Quan về Hệ Thống Hadoop và HBase

Hadoop là một framework mã nguồn mở để lưu trữ và xử lý dữ liệu lớn một cách phân tán. Nó bao gồm hệ thống tệp phân tán HDFS và mô hình lập trình MapReduce. HBase là một cơ sở dữ liệu NoSQL phân tán, cột hướng, chạy trên đỉnh HDFS, cung cấp khả năng truy cập ngẫu nhiên, thời gian thực vào dữ liệu lớn. Kết hợp HadoopHBase tạo ra một nền tảng mạnh mẽ để xây dựng các ứng dụng xử lý dữ liệu lớn.

II. Vấn Đề Và Thách Thức Khi Xử Lý Dữ Liệu Lớn 54 ký tự

Việc xử lý dữ liệu lớn đặt ra nhiều thách thức đáng kể. Các bài toán như lưu trữ dữ liệu với dung lượng cực lớn, đảm bảo hiệu năng truy vấn, quản lý tính toàn vẹn dữ liệu, và xử lý dữ liệu theo thời gian thực đòi hỏi các giải pháp chuyên biệt. Các hệ thống truyền thống không thể đáp ứng được yêu cầu này. Hơn nữa, việc lựa chọn công nghệ phù hợp, xây dựng mô hình xử lý dữ liệu hiệu quả, và triển khai hệ thống trên môi trường phân tán cũng là những khó khăn cần vượt qua. Theo báo cáo, "Các cơ sở dữ liệu quan hệ tỏ ra không hiệu quả khi làm việc với lượng dữ liệu lớn và nhanh chóng phình to như thế này...Hơn nữa các DBMS quan hệ vẫn không đáp ứng được yêu cầu về tính phân bố và khả năng mở rộng dữ liệu."

2.1. Hạn Chế Của Các Hệ Cơ Sở Dữ Liệu Truyền Thống

Các hệ cơ sở dữ liệu quan hệ (RDBMS) gặp khó khăn trong việc xử lý dữ liệu lớn do giới hạn về khả năng mở rộng, hiệu năng, và chi phí. Việc nâng cấp phần cứng và trả tiền bản quyền trở nên quá đắt. Các RDBMS cũng không đáp ứng được yêu cầu về tính phân bố và khả năng mở rộng dữ liệu. Một số tính năng của RDBMS không cần thiết đối với dữ liệu lớn, như yêu cầu về dạng chuẩn, transactional, và truy vấn theo kiểu join.

2.2. Yêu Cầu Về Tính Toàn Vẹn và Tính Sẵn Sàng Dữ Liệu

Trong môi trường dữ liệu lớn, việc đảm bảo tính toàn vẹn và tính sẵn sàng của dữ liệu là rất quan trọng. Dữ liệu có thể bị lỗi, mất mát, hoặc bị tấn công. Các hệ thống cần có khả năng phục hồi dữ liệu, phát hiện lỗi, và bảo vệ dữ liệu khỏi các mối đe dọa. Theo Luận văn, "Nguy cơ hỏng hóc phần cứng là thường xuyên nhưng dịch vụ cung cấp không thể ngưng trong bất cứ thời gian nào."

2.3. Thách Thức Về Xử Lý Dữ Liệu Theo Thời Gian Thực

Nhiều ứng dụng Big Data đòi hỏi khả năng xử lý dữ liệu theo thời gian thực để đưa ra quyết định nhanh chóng. Ví dụ, trong lĩnh vực tài chính, việc phát hiện gian lận cần được thực hiện ngay lập tức. Các hệ thống truyền thống không đáp ứng được yêu cầu này do độ trễ cao trong việc xử lý dữ liệu. Các công nghệ như Spark StreamingFlink được sử dụng để giải quyết vấn đề này.

III. Phương Pháp Xây Dựng Mô Hình Xử Lý Với Hadoop HBase 57 ký tự

Xây dựng mô hình xử lý dữ liệu lớn với Hadoop-HBase đòi hỏi sự kết hợp giữa các kỹ thuật lưu trữ, xử lý, và phân tích dữ liệu. Đầu tiên, dữ liệu được thu thập và lưu trữ trong HDFS hoặc HBase. Sau đó, MapReduce được sử dụng để xử lý dữ liệu song song trên nhiều máy tính. Cuối cùng, kết quả được phân tích và trực quan hóa để đưa ra các quyết định. Việc lựa chọn cấu trúc dữ liệu phù hợp, tối ưu hóa truy vấn, và quản lý tài nguyên hiệu quả là rất quan trọng để đạt được hiệu năng cao. Theo tác giả luận văn, "Hướng giải quyết chung là dữ liệu được lưu trữ trong HBase để dễ thêm, bớt, xóa, sửa. Dữ liệu cũ import vào HBase qua file text dùng MapReduce. MapReduce cũng được dùng để viết công cụ phân tích dữ liệu."

3.1. Thiết Kế Cấu Trúc Dữ Liệu Cho HBase

Thiết kế cấu trúc dữ liệu phù hợp cho HBase là rất quan trọng để đảm bảo hiệu năng truy vấn. Các yếu tố cần xem xét bao gồm lựa chọn row key, column family, và các thuộc tính dữ liệu. Row key nên được thiết kế để cho phép truy vấn dữ liệu một cách hiệu quả. Column family nên được nhóm các thuộc tính dữ liệu liên quan lại với nhau. Cần chú ý đến kích thước của các cell, vì HBase có giới hạn về kích thước cell.

3.2. Tối Ưu Hóa Truy Vấn MapReduce Trên Hadoop

Tối ưu hóa truy vấn MapReduce là rất quan trọng để đạt được hiệu năng cao. Các kỹ thuật tối ưu hóa bao gồm giảm thiểu số lượng dữ liệu được đọc, sử dụng combiners để giảm lượng dữ liệu được truyền, và sử dụng partitioners để phân phối dữ liệu đều trên các reducers. Cần sử dụng các công cụ profiling để xác định các điểm nghẽn cổ chai và tối ưu hóa mã.

IV. Ứng Dụng Hadoop HBase Phân Tích Dữ Liệu Âm Nhạc 58 ký tự

Một ứng dụng thực tiễn của Hadoop-HBase là phân tích dữ liệu từ các trang web âm nhạc. Dữ liệu về lượt nghe, lượt tải, và bình luận của người dùng có thể được thu thập và lưu trữ trong HBase. Sau đó, MapReduce có thể được sử dụng để phân tích dữ liệu này, ví dụ như xếp hạng các bài hát, album, và nghệ sĩ theo lượt nghe. Kết quả có thể được sử dụng để gợi ý các bài hát cho người dùng, hoặc để đưa ra các quyết định về sản xuất âm nhạc. Như luận văn đã đề cập, "Người dùng Internet truy cập vào các trang web về âm nhạc để nghe nhạc online hoặc tải bài hát. Mỗi lần user chọn bài hát hệ thống sẽ ghi lại tên user, bài hát, ca sĩ trình bày, tên album...Dữ liệu được tổng hợp lại để phân tích ra những kết quả như xếp hạng bài hát, album, nghệ sĩ trong khoảng thời gian cho trước."

4.1. Thu Thập và Lưu Trữ Dữ Liệu Người Dùng trên HBase

Dữ liệu về lượt nghe, lượt tải, và bình luận của người dùng được thu thập từ trang web âm nhạc và lưu trữ trong HBase. Row key có thể là ID của bài hát, và column family có thể chứa các thuộc tính như số lượt nghe, số lượt tải, và danh sách các bình luận. Dữ liệu được lưu trữ một cách phân tán trên nhiều máy tính, đảm bảo khả năng mở rộng và hiệu năng cao.

4.2. Phân Tích và Xếp Hạng Bài Hát với MapReduce

MapReduce được sử dụng để phân tích dữ liệu và xếp hạng các bài hát theo lượt nghe. Mapper đọc dữ liệu từ HBase, và reducer tính tổng số lượt nghe cho mỗi bài hát. Kết quả được sắp xếp theo thứ tự giảm dần và lưu trữ lại trong HBase hoặc HDFS. Các kết quả này có thể được sử dụng cho mục đích gợi ý, quảng cáo, và phân tích xu hướng.

4.3. Sử Dụng Dữ Liệu Phân Tích Cho Gợi Ý và Quảng Cáo

Dữ liệu phân tích về lượt nghe, lượt tải, và bình luận có thể được sử dụng để xây dựng các hệ thống gợi ý âm nhạc. Người dùng sẽ nhận được các gợi ý về các bài hát, album, và nghệ sĩ phù hợp với sở thích của họ. Dữ liệu cũng có thể được sử dụng để hiển thị quảng cáo mục tiêu cho người dùng, tăng hiệu quả quảng cáo.

V. Đánh Giá So Sánh Hadoop HBase Với MySQL Server 59 ký tự

Để đánh giá hiệu quả của Hadoop-HBase, cần so sánh với các hệ thống khác, ví dụ như MySQL. Trong trường hợp dữ liệu nhỏ, MySQL có thể hoạt động tốt hơn. Tuy nhiên, khi dữ liệu tăng lên, Hadoop-HBase sẽ vượt trội về khả năng mở rộng và hiệu năng. Quan trọng là phải hiểu rõ bài toán và lựa chọn công nghệ phù hợp. Báo cáo đã chỉ rõ: "Do giải pháp Hadoop, HBase dành cho dữ liệu lớn mới có hiệu quả nên dữ liệu sẽ được thực thi trên MySQL để so sánh và rút ra kết luận với kích thước data từ mức nào thì Hadoop-HBase là hiệu quả và không thay thế được."

5.1. Mô Hình Thử Nghiệm và Các Tiêu Chí So Sánh

Mô hình thử nghiệm bao gồm việc chạy các truy vấn tương tự trên cả Hadoop-HBaseMySQL. Các tiêu chí so sánh bao gồm thời gian truy vấn, khả năng mở rộng, và chi phí. Kết quả cho thấy rằng Hadoop-HBase hoạt động tốt hơn khi dữ liệu lớn, trong khi MySQL hoạt động tốt hơn khi dữ liệu nhỏ.

5.2. Kết Quả So Sánh Hiệu Năng Giữa Hai Hệ Thống

Kết quả so sánh cho thấy rằng Hadoop-HBase có khả năng mở rộng tốt hơn MySQL. Khi dữ liệu tăng lên, thời gian truy vấn trên MySQL tăng lên đáng kể, trong khi thời gian truy vấn trên Hadoop-HBase vẫn ổn định. Hadoop-HBase cũng có chi phí thấp hơn do sử dụng phần cứng thông thường.

VI. Kết Luận Về Tiềm Năng Phát Triển Của Hadoop HBase 57 ký tự

Hadoop-HBase là một nền tảng mạnh mẽ để xây dựng các ứng dụng xử lý dữ liệu lớn. Với khả năng mở rộng, hiệu năng cao, và chi phí thấp, Hadoop-HBase đang được sử dụng rộng rãi trong nhiều lĩnh vực khác nhau. Trong tương lai, Hadoop-HBase sẽ tiếp tục phát triển và trở thành một công nghệ quan trọng cho việc xử lý dữ liệu. Luận văn nhấn mạnh rằng, "Việc nghiên cứu NoSQL là rất quan trọng để nắm bắt các xu hướng công nghệ của thế giới và áp dụng vào thực tế Việt Nam trong thời gian tới khi dịch vụ web và khoa học phát triển hơn."

6.1. Hướng Phát Triển Của Hadoop và HBase Trong Tương Lai

HadoopHBase sẽ tiếp tục phát triển để đáp ứng nhu cầu ngày càng tăng về xử lý dữ liệu lớn. Các hướng phát triển bao gồm cải thiện hiệu năng, tích hợp với các công nghệ mới, và đơn giản hóa việc sử dụng. Cộng đồng mã nguồn mở sẽ đóng vai trò quan trọng trong việc thúc đẩy sự phát triển của HadoopHBase.

6.2. Ứng Dụng Mới Của Hadoop HBase Trong Các Lĩnh Vực

Hadoop-HBase có thể được ứng dụng trong nhiều lĩnh vực khác nhau, bao gồm phân tích dữ liệu, Machine Learning, Internet of Things (IoT), và tài chính. Các ứng dụng tiềm năng bao gồm dự đoán gian lận, phân tích hành vi người dùng, và quản lý chuỗi cung ứng.

29/04/2025

Trích đoạn nội dung tài liệu

Mở đầu 1.1 Nhu cầu xử lý dữ liệu lớn trong môi trường phân tán Trong khoảng thời gian gần đây nhu cầu làm việc với dữ liệu lớn ngày càng tăng cao. Sự ra đời và phát triển của các mạng xã hội như Facebook, Lastfm, Twitter .v…đòi hỏi xử lý lượng dữ liệu cực lớn. Ví dụ Facebook cần phải xử lý hơn 135 tỉ thông điệp mỗi tháng do đó kho dữ liệu của họ phải vào khoảng nhiều petabyte , Yahoo cũng đạt đến hơn một terabyte/ngày. Trong lãnh vực khoa học thì ngành sinh học phân tử đòi hỏi xử lý một lượng rất lớn kết quả từ các phòng thí nghiệm khác nhau, hay các dữ liệu về thời tiết, địa chấn ở các trạm quan trắc khác nhau trên khắp thế giới.

Các cơ sở dữ liệu quan hệ tỏ ra không hiệu quả khi làm việc với lượng dữ liệu lớn và nhanh chóng phình to như thế này. Chi phí bỏ ra để nâng cấp phần cứng và trả tiền bản quyền trở nên quá đắt đối với các mạng xã hội hay với nhu cầu tổng hợp và phân tích dữ liệu của khoa học. Hơn nữa các DBMS quan hệ vẫn không đáp ứng được yêu cầu về tính phân bố và khả năng mở rộng dữ liệu. Một số tính năng của các DBMS quan hệ không cần thiết đối với các dữ liệu kể trên như yêu cầu về dạng chuẩn, transactional, cách truy vấn theo kiểu join, .v… Nhu cầu về hệ cơ sở dữ liệu mới là cấp thiết để đáp ứng nhu cầu xuất phát từ thực tế.

Có rất nhiều nghiên cứu và thử nghiệm theo hướng này gọi chung là NoSQL như Hadoop, MapReduce, Cassandra, Hbase, MongoDB .v…Đây là một nhánh mới mở rộng của DBMS dành cho dữ liệu lớn và phân bố. Trong tình hình hiện nay khi điện toán đám mây đang phát triển mạnh thì NoSQL hứa hẹn là phần nền dữ liệu cho xu hướng này. NoSQL hiện vẫn còn phát triển ở giai đoạn đầu, có rất nhiều sản phẩm khác nhau chủ yếu trong cộng đồng mã nguồn mở nhưng chưa có sản phẩm thương mại. Các công ty web hay các viện nghiên cứu tự lựa chọn sản phẩm thích hợp để sử dụng, điều này giúp giảm chi phí bản quyền nhưng đòi hỏi đội ngũ phần mềm phải giỏi vì không có công ty hỗ trợ.

Ở Việt Nam NoSQL chưa được sử dụng nhiều do chi phí nghiên cứu của các công ty thương mại và các viện khoa học rất ít, số người tích cực trong cộng đồng mã nguồn mở chưa nhiều, các mạng xã hội ở Việt Nam chưa lớn đến mức DBMS quan hệ không đáp ứng nổi. Tuy vậy việc nghiên cứu NoSQL là rất quan trọng để nắm bắt các xu hướng công nghệ của thế giới và áp dụng vào thực tế Việt Nam trong thời gian tới khi dịch vụ web và khoa học phát triển hơn.2 Mô tả bài toán dữ liệu lớn trong đề tài Trên môi trường Internet khi các trang web ngày càng lớn mạnh, lượng dữ liệu sinh ra từ việc tương tác với người dùng trở nên rất lớn. Việc lưu trữ, cập nhật, phân 4 tích lượng dữ liệu này là bài toán cần giải quyết. Dữ liệu lưu trữ có thể ở nhiều dạng như text, graph, .v…Đề tài chọn dạng lưu trữ cơ bản là text để nghiên cứu.

Dữ liệu lưu có thể coi như các record trong các database thông thường. Trong số rất nhiều sản phẩm thử nghiệm NoSQL hiện nay, đề tài chọn hệ thống Hadoop-HBase là môi trường để giải quyết vấn đề vì các lý do sau: - Hadoop có framework MapReduce rất hữu hiệu để giải quyết nhiều vấn đề trong môi trường phân bố trong đó có việc viết các chương trình phân tích dữ liệu. Nhiều sản phẩm NoSQL khác cố gắng tích hợp với Hadoop để tận dụng MapReduce. - Hadoop có hệ thống file phân bố đơn giản và hiệu quả thích hợp cho dữ liệu lớn.

- Hadoop làm việc với các file mà không phải với các record nên không giải quyết được các tác vụ transaction của một database thông thường như tạo, thêm, xóa, sửa record. Các vấn đề này sẽ do HBase đảm nhận. HBase được phát triển trên nền Hadoop nên kế thừa rất tốt các tính chất của file phân bố và có các lớp riêng tích hợp với MapReduce. - Hadoop-HBase có một cộng đồng rất tích cực nơi mọi người có thể trao đổi kinh nghiệm và giúp đỡ nhau.

Đây là vấn đề rất quan trọng vì trong các dự án mã nguồn mở chỉ có thể tìm trợ giúp từ cộng đồng chứ không có công ty chịu trách nhiệm. Lớp các bài toán này khác nhau về chi tiết nhưng có chung mô hình lời giải. Ví dụ về các bài toán của lớp này như thu thập dữ liệu thường xuyên từ các file log của hệ thống máy tính ở những nơi khác nhau để phân tích theo một số tiêu chí, dữ liệu từ trang web nghe nhạc online được cập nhật, thêm, xóa và xếp hạng theo bài hát, album, nghệ sĩ v.3 Đề xuất cách giải quyết Hướng giải quyết chung là dữ liệu được lưu trữ trong HBase để dễ thêm, bớt, xóa, sửa. Dữ liệu cũ import vào HBase qua file text dùng MapReduce.

MapReduce cũng được dùng để viết công cụ phân tích dữ liệu. Bài toán cụ thể đề tài thực hiện như sau: Người dùng Internet truy cập vào các trang web về âm nhạc để nghe nhạc online hoặc tải bài hát. Mỗi lần user chọn bài hát hệ thống sẽ ghi lại tên user, bài hát, ca sĩ trình bày, tên album. User cũng có thể đăng nhập để ghi nhận xét về bài hát, album, nghệ sĩ.

Các comment sẽ được hiển thị lại cho người dùng xem trước khi đăng tiếp comment khác. Dữ liệu được tổng hợp lại để phân tích ra những kết quả như xếp hạng bài hát, album, nghệ sĩ trong khoảng thời gian cho trước. Dữ liệu sẽ được thiết kế theo table của HBase và lưu trữ phân bố trên một cluster gồm 3 máy tính. Các truy cập thời gian thực như insert, delete, create, tìm 5 kiếm sẽ do HBase đảm nhiệm.

Các tác vụ phân tích data (số lượng lượt chọn một bài hát, ca sĩ được nghe nhiều nhất, v.v…) sẽ dùng MapReduce để hiện thực. Dữ liệu khoảng 4GB lấy từ trang web âm nhạc last.fm dùng để test chương trình (dữ liệu này là hợp pháp vì last.fm cho phép lấy data qua một số hàm API của trang cho mục đích nghiên cứu). Do giải pháp Hadoop, HBase dành cho dữ liệu lớn mới có hiệu quả nên dữ liệu sẽ được thực thi trên MySQL để so sánh và rút ra kết luận với kích thước data từ mức nào thì Hadoop-HBase là hiệu quả và không thay thế được. Ngôn ngữ sử dụng để lập trình là Java.

Nội dung báo cáo chia làm 5 phần. Phần 1 giới thiệu đề tài. Phần 2 tóm tắt nền tảng Hadoop-HBase. Phần 3 là chi tiết cách tiếp cận để giải quyết vấn đề.

Phần 4 là đánh giá kết quả và so sánh với MySQL. Phần 5 là kết luận và đưa ra hướng phát triển. 6 Chương 2: Mô hình Hadoop-HBase 2.1 Giới thiệu các loại NoSQL 2.1 Khái niệm về NoSQL Cùng với sự phát triển của Internet là một loạt các ứng dụng web mới được xây dựng trên nền Internet như mạng xã hội, thương mại điện tử. Các ứng dụng này có một số đặc điểm sau: - Khối lượng dữ liệu phải lưu trữ và xử lý khổng lồ.

Ví dụ trong một ngày có hàng tỉrecord được tạo mới trên Facebook hay lượng dữliệu to lớn của Google cần lưu trữ để phục vụ nhu cầu tìm kiếm hiện nay trên thếgiới. - Độ co giãn lớn. Ví dụ một website bán hàng có lượng giao dịch tăng nhanh cần phải mở rộng Cơ sở dữ liệu trong thời gian ngắn nhất và với chi phí rẻ nhất. Với các CSDL như Oracle, SQL Server, v.v… việc nâng cấp tốn kém tiền bản quyền cho phiên bản cao hơn và chi phí nâng cấp phần cứng.

- Tính sẵn sàng cao: Nguy cơ hỏng hóc phần cứng là thường xuyên nhưng dịch vụ cung cấp không thể ngưng trong bất cứ thời gian nào. Ví dụ các đơn đặt hàng online của Amazon không được để mất bất cứ đơn nào. - Vấn đề nhất quán dữ liệu:không cần thỏa mãn ngay tức khắc mà có thể thỏa mãn sau một thời gian dài, ngắn tùy theo tính chất của bài toán. Ví dụ các đơn đặt hàng online sẽ được đáp ứng 3 giờ sau khi gửi đi thành công.

Các hệ cơ sở dữ liệu quan hệ truyền thống tỏ ra không hiệu quả khi thực hiện các yêu cầu này. Với các hệ CSDL quen thuộc như Oracle, MS SQL Server, DB2,… tính nhất quán được đặt lên hàng đầu vì chúng áp dụng cho các trường hợp cần độ chính xác và tính tức thời cao như ngân hàng, các dữ liệu về nhân thân, an ninh .v…Trong khi đó tính nhất quán yêu cầu trong các ứng dụng web thế hệ mới như mạng xã hội và thương mại điện tử mang tính chất “nhất quán cuối cùng” (eventually consistency) tức là sau một thời gian nào đó tùy theo yêu cầu của từng ứng dụng tính nhất quán sẽ đạt được. Ngoài ra chi phí để mở rộng và bảo trì dữ liệu của các hệ cơ sở dữ liệu truyền thống quá đắt đỏ do dữ liệu được lưu tập trung. Từ các tính chất trên, nảy sinh các vấn đề cần giải quyết để các ứng dụng web thế hệ mới có thể phát triển: - Dữ liệu cần được lưu trữ phân tán trên các máy tính thông thường tại các nơi khác nhau về mặt địa lý để giải quyết được bài toán về lượng dữ liệu rất lớn và giá thành rẻ.

- Cấu trúc của hệ cơ sở dữ liệu phải thay đổi theo hướng đơn giản và uyển chuyển hơn để thuận tiện cho việc truy vấn, tránh các câu hỏi dạng join làm chậm quá trình ra kết quả, các ràng buộc khắt khe về dạng chuẩn có thể bỏ qua. 7 - Khả năng đánh chỉ số một lượng dữ liệu lớn và phục vụ các trang web nhanh chóng là một yêu cầu bắt buộc. Nhiều hướng nghiên cứu đồng thời của cộng đồng nguồn mở, các trường đại học và các hãng thương mại lớn như Google, Amazon, v.v… để phục vụ cho việc xử lý dữ liệu trên các ứng dụng web 2.0 đã đưa đến một mô hình lưu trữ dữ liệu mới là NoSQL với các đặc điểm: - Phân bố. - Không cố gắng tuân theo mô hình ACID (atomicity, consistency, isolation, durability) một cách nghiêm ngặt.

ACID là các tính chất cơ bản của cơ sở dữ liệu quan hệ cổ điển. - Chấp nhận trùng lặp dữliệu. - NoSQL không phải là anti-RDBMS nhưng nó nhấn mạnh đến các ưu thế của mô hình lưu trữ Key-Value, mô hình cơ sở dữ liệu văn bản hay mô hình cơ sở dữ liệu graph.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ