Chuyển đến nội dung chính
Khoa học Dữ liệu

Cơ sở dữ liệu NoSQL: Điều mọi Nhà khoa học Dữ liệu cần biết

Tìm hiểu NoSQL dùng để làm gì, vì sao nhà khoa học dữ liệu dùng chúng, và danh sách những cơ sở dữ liệu NoSQL tốt nhất hiện có.
Zoumana Keita 's photo
Zoumana Keita
Đã cập nhật · 12 phút đọc

Khám phá cùng AI

ChatGPTClaudePerplexity

Tạo tài khoản miễn phí của bạn

Luyện tập và Lộ trình tiến trình của bạn.

Tiếp Tục Với Google
Bằng cách tiếp tục, bạn chấp nhận Điều khoản sử dụng, Chính sách bảo mật và việc dữ liệu của bạn được lưu trữ tại Hoa Kỳ.

NoSQL Header

Chúng tôi đi sâu vào tổng quan toàn diện về NoSQL dành cho Nhà khoa học Dữ liệu.

Khoa học dữ liệu và cơ sở dữ liệu NoSQL

Là một nhà khoa học dữ liệu, bạn không chỉ xây dựng mô hình học máy mà còn cần có khả năng xử lý, phân tích và truyền đạt tốt hơn kết quả của mình từ dữ liệu ở nhiều định dạng khác nhau.

Cơ sở dữ liệu SQL truyền thống đã được dùng như loại cơ sở dữ liệu duy nhất trong nhiều năm. Tuy nhiên, do sự bùng nổ của internet vào giữa thập niên 1990 và chuyển đổi số, một loại dữ liệu mới trở nên nổi bật: cơ sở dữ liệu NoSQL. Chúng ra đời để khắc phục những điểm yếu của cơ sở dữ liệu SQL truyền thống. 

Cơ sở dữ liệu NoSQL có thể được sử dụng, chẳng hạn, bởi Nhà khoa học Dữ liệu và Kỹ sư Học máy để lưu trữ dữ liệu, siêu dữ liệu của mô hình, đặc trưng và tham số vận hành. Mặt khác, kỹ sư dữ liệu có thể tận dụng chúng để lưu trữ và truy xuất dữ liệu đã được làm sạch. 

Trong bài viết mang tính khái niệm này (không yêu cầu viết mã), trước hết chúng ta sẽ xây dựng hiểu biết về NoSQL, sau đó khám phá tầm quan trọng của NoSQL. Chúng ta cũng sẽ so sánh SQL và NoSQL, xem xét cách sử dụng và các nhóm của NoSQL. Cuối cùng, chúng ta điểm qua những cơ sở dữ liệu NoSQL phổ biến nhất cho nhà khoa học dữ liệu.

NoSQL là gì?

NoSQL là viết tắt của Not Only SQL, nghĩa là cơ sở dữ liệu NoSQL có đặc trưng là không quan hệ vì chúng có thể lưu trữ dữ liệu ở định dạng phi cấu trúc. Đồ họa sau đây nêu bật năm đặc điểm chính của NoSQL.

NoSQL Databases Explained

Vì sao NoSQL quan trọng?

NoSQL trở nên phổ biến trong ngành nhờ các lợi ích sau:

  • Dữ liệu đa mô hình: NoSQL linh hoạt hơn SQL truyền thống vì có thể lưu trữ dữ liệu có cấu trúc (ví dụ dữ liệu cảm biến), phi cấu trúc (hình ảnh, video, v.v.) và bán cấu trúc (XML, JSON, v.v.).
  • Dễ mở rộng: đơn giản nhờ kiến trúc ngang hàng, cho phép bổ sung nhiều máy vào kiến trúc.
  • Sẵn sàng toàn cầu: cho phép truy cập đồng thời cùng một dữ liệu từ nhiều máy ở các khu vực địa lý khác nhau do cơ sở dữ liệu được chia sẻ toàn cầu.
  • Linh hoạt: NoSQL có thể nhanh chóng thích ứng với yêu cầu thay đổi với các bản cập nhật thường xuyên và tính năng mới.

So sánh cơ sở dữ liệu NoSQL và SQL

 

Cơ sở dữ liệu SQL

Cơ sở dữ liệu NoSQL

Ngôn ngữ

SQL dùng ngôn ngữ truy vấn có cấu trúc để thao tác, yêu cầu sử dụng lược đồ định sẵn để tương tác hiệu quả với dữ liệu.

Ngược lại, NoSQL dùng lược đồ động để truy vấn dữ liệu. Ngoài ra, một số NoSQL dùng cú pháp giống SQL để thao tác tài liệu.

Lược đồ dữ liệu

SQL có định dạng cố định, được định nghĩa trước và không thể thay đổi cho dữ liệu mới.

NoSQL linh hoạt hơn. Nhờ đó, bản ghi có thể được tạo mà không cần cấu trúc định sẵn, và mỗi bản ghi có cấu trúc riêng.

Khả năng mở rộng

SQL chỉ mở rộng theo chiều dọc, nghĩa là một máy đơn phải tăng CPU, RAM, SSD đến một mức nào đó để đáp ứng nhu cầu.

NoSQL mở rộng theo chiều ngang, nghĩa là bổ sung máy mới vào hạ tầng hiện có để đáp ứng nhu cầu lưu trữ.

Hỗ trợ Dữ liệu Lớn

Mở rộng dọc khiến SQL khó lưu trữ dữ liệu rất lớn (petabyte).

Mở rộng ngang và lược đồ động khiến NoSQL phù hợp với dữ liệu lớn. NoSQL cũng được các công ty internet hàng đầu (Amazon, Google, Yahoo, v.v.) phát triển để đối mặt với lượng dữ liệu tăng nhanh.

Thuộc tính

SQL tuân theo thuộc tính ACID (Atomicity, Consistency, Isolation, Durability).

NoSQL sử dụng thuộc tính CAP (Consistency, Availability, Partition Tolerance).

Khi nào nên dùng NoSQL?

Trong môi trường tăng trưởng nhanh và cạnh tranh, các ngành cần thu thập càng nhiều dữ liệu càng tốt để đáp ứng mục tiêu kinh doanh. Thu thập dữ liệu là một chuyện, lưu trữ chúng trên hạ tầng phù hợp lại là thách thức khác. Khó khăn nảy sinh vì dữ liệu có thể thuộc nhiều loại như hình ảnh, video, văn bản và âm thanh. Dùng cơ sở dữ liệu quan hệ để lưu nhiều loại dữ liệu này không phải lúc nào cũng khôn ngoan. Tuy nhiên, câu hỏi vẫn là:

Khi nào dùng NoSQL thay vì SQL?

Hãy cân nhắc NoSQL khi bạn ở trong các tình huống sau:

  • Dữ liệu thay đổi liên tục: khi bạn không biết hệ thống/ứng dụng sẽ phát triển ra sao, có thể cần bổ sung loại dữ liệu, chức năng mới, v.v.
  • Rất nhiều dữ liệu: khi doanh nghiệp của bạn xử lý khối dữ liệu khổng lồ có thể tăng theo thời gian.
  • Không cần tính nhất quán tuyệt đối: khi tính nhất quán dữ liệu và toàn vẹn 100% không phải ưu tiên. Ví dụ, khi phát triển nền tảng mạng xã hội nội bộ, việc mọi nhân viên đồng thời thấy bài đăng của bạn có thể không quan trọng.
  • Mở rộng và chi phí: NoSQL mang lại linh hoạt cao và có thể kiểm soát chi phí khi nhu cầu dữ liệu thay đổi.

4 loại NoSQL chính

NoSQL được chia thành bốn nhóm chính. Mỗi nhóm có đặc thù riêng, nên bạn hãy chọn loại phù hợp nhất với bài toán của mình: Bên dưới là các ví dụ NoSQL tiêu biểu. Phần này nêu vai trò, danh sách (không đầy đủ) ưu/nhược điểm và trường hợp sử dụng của từng loại.

NoSQL Database Categories

1. Cơ sở dữ liệu tài liệu (Document)

Loại này được thiết kế để lưu trữ và truy vấn tài liệu JSON, XML, BSON, v.v. Mỗi tài liệu là một hàng hay bản ghi trong cơ sở dữ liệu và ở dạng khóa-giá trị. Một tài liệu lưu thông tin về một đối tượng và dữ liệu liên quan. Ví dụ, cơ sở dữ liệu sau có ba bản ghi, mỗi bản ghi là thông tin về một sinh viên. Với tài liệu đầu tiên, firstname là khóa và Franck là giá trị.

Ưu điểm của Document

  • Không lược đồ: không bị giới hạn về định dạng và cấu trúc lưu trữ. Điều này hữu ích đặc biệt khi cơ sở dữ liệu liên tục thay đổi.
  • Dễ cập nhật: có thể thêm/xóa thông tin mới mà không cần thay đổi các trường còn lại của tài liệu đó.
  • Hiệu năng cải thiện: mọi thông tin về một tài liệu nằm trong chính tài liệu đó. Không cần tham chiếu bên ngoài, trái với cơ sở dữ liệu quan hệ nơi người dùng có thể phải truy vấn bảng khác.

Hạn chế của Document

  • Vấn đề kiểm tra nhất quán: vì các tài liệu không nhất thiết có quan hệ với nhau và hai tài liệu có thể có các trường khác nhau.
  • Vấn đề tính nguyên tử: nếu cần thay đổi hai bộ sưu tập tài liệu, phải chạy truy vấn riêng cho từng tài liệu.

Khi nào dùng Document

  • Khuyến nghị khi lược đồ dữ liệu của bạn có thể thay đổi liên tục trong tương lai.

Ứng dụng của Document

  • Nhờ tính linh hoạt, document phù hợp với hồ sơ người dùng trực tuyến, nơi mỗi người dùng có loại thông tin khác nhau. Khi đó, hồ sơ mỗi người chỉ lưu các thuộc tính riêng của họ.
  • Có thể dùng cho quản lý nội dung, yêu cầu lưu trữ hiệu quả dữ liệu từ nhiều nguồn. Thông tin đó sau đó được dùng để tạo và tích hợp loại nội dung mới.

2. Cơ sở dữ liệu khóa-giá trị (Key-value)

Đây là loại NoSQL đơn giản nhất. Mỗi mục được lưu dưới dạng cặp khóa-giá trị. Có thể hình dung như một bảng đúng hai cột. Cột thứ nhất chứa khóa duy nhất. Cột thứ hai là giá trị cho mỗi khóa. Giá trị có thể thuộc các kiểu dữ liệu khác nhau như số nguyên, chuỗi, số thực, hoặc phức tạp hơn như hình ảnh và tài liệu.

Ví dụ sau minh họa cơ sở dữ liệu khóa-giá trị chứa thông tin khách hàng, trong đó khóa là số điện thoại và giá trị là khoản mua hàng hằng tháng.

Key/Value Database NoSQL example

Ưu điểm của Key-value

  • Đơn giản: cấu trúc khóa-giá trị rất trực quan. Không bắt buộc kiểu dữ liệu khiến việc sử dụng đơn giản.
  • Nhanh: định dạng dữ liệu đơn giản giúp thao tác đọc và ghi nhanh hơn.

Hạn chế của Key-value

  • Không thể lọc trên cột giá trị vì giá trị trả về là toàn bộ thông tin lưu trong trường value.
  • Tối ưu cho một khóa và một giá trị. Lưu nhiều giá trị sẽ cần bộ phân tích (parser).
  • Giá trị chỉ được cập nhật như một khối, đòi hỏi lấy toàn bộ dữ liệu, xử lý rồi lưu lại toàn bộ. Điều này có thể gây vấn đề hiệu năng khi xử lý tốn thời gian.

Khi nào dùng Key-value

  • Phù hợp cho ứng dụng dựa trên truy vấn theo khóa đơn giản.
  • Dùng cho ứng dụng đơn giản cần lưu tạm các đối tượng đơn giản như bộ nhớ đệm (cache).
  • Cũng có thể dùng khi cần truy cập dữ liệu thời gian thực.

Ứng dụng

  • Phù hợp hơn cho ứng dụng đơn giản cần lưu tạm các đối tượng đơn giản như cache.

3. Cơ sở dữ liệu cột rộng (Wide-column)

Đúng như tên gọi, cơ sở dữ liệu định hướng cột lưu dữ liệu như tập hợp các cột, mỗi cột được xử lý riêng, và logic triển khai dựa trên bài báo Google BigTable. Chúng chủ yếu dùng cho tải phân tích như BI, kho dữ liệu và quản lý quan hệ khách hàng.

Chẳng hạn, ta có thể nhanh chóng lấy tuổi trung bình của khách hàng và giá trung bình của sản phẩm bằng hàm tổng hợp AVG trên mỗi cột.

Wide Column Database NoSQL Example

4. Cơ sở dữ liệu đồ thị/nút (Graph/node)

Cơ sở dữ liệu đồ thị dùng để lưu trữ, ánh xạ và tìm kiếm mối quan hệ giữa các nút thông qua các cạnh. Một nút biểu diễn phần tử dữ liệu, còn gọi là đối tượng hay thực thể. Mỗi nút có cạnh đi vào hoặc đi ra. Cạnh biểu diễn mối quan hệ giữa hai nút. Các cạnh chứa thuộc tính tương ứng với các nút mà chúng kết nối.

“Zoumana học tại Texas Tech University. Anh ấy thích chạy ở Công viên trong khuôn viên Trường Đại học”

Graphic/Node Database NoSQL example

Ưu điểm của Graph/node

  • Cấu trúc linh hoạt và linh hoạt cao.
  • Quan hệ giữa các nút rõ ràng, dễ đọc với con người, do đó dễ hiểu.

Hạn chế của Graph/node

  • Không có ngôn ngữ truy vấn chuẩn hóa vì mỗi ngôn ngữ phụ thuộc nền tảng.
  • Vì lý do trên, khó tìm hỗ trợ trực tuyến khi gặp sự cố.

Khi nào dùng Graph/node

  • Dùng khi cần tạo mối quan hệ giữa các phần tử dữ liệu và nhanh chóng truy xuất các quan hệ đó.

Ứng dụng

  • Dùng để thực hiện phát hiện gian lận tinh vi trong giao dịch tài chính thời gian thực.
  • Dùng để khai thác dữ liệu mạng xã hội. Ví dụ, LinkedIn dùng cơ sở dữ liệu đồ thị để xác định ai theo dõi ai, và mối quan hệ giữa người dùng với chuyên môn của họ (Kỹ sư ML).
  • Lập bản đồ mạng rất phù hợp với biểu diễn dạng đồ thị vì các mạng này ánh xạ mối quan hệ giữa phần cứng và dịch vụ chúng hỗ trợ.

7 cơ sở dữ liệu NoSQL tốt nhất cho Khoa học dữ liệu

Giờ bạn đã hiểu rõ hơn về NoSQL, hãy xem danh sách các hệ NoSQL phổ biến cho dự án khoa học dữ liệu. Phân tích này chỉ tập trung vào NoSQL mã nguồn mở.

Most Popular NoSQL Databases

1. MongoDB

MongoDB là cơ sở dữ liệu hướng tài liệu mã nguồn mở lưu dữ liệu ở định dạng JSON. Đây là cơ sở dữ liệu được dùng phổ biến nhất và được thiết kế để sẵn sàng cao và mở rộng tốt, cung cấp tự động chia sẻ và sao chép tích hợp. Khóa học Nhập môn MongoDB của chúng tôi bao quát việc dùng MongoDB và Python. Khóa học giúp bạn có kỹ năng thao tác và phân tích dữ liệu cấu trúc linh hoạt với MongoDB. Uber, LaunchDarkl, Delivery Hero và 4300 công ty dùng MongoDB trong công nghệ của họ.

2. Cassandra 

Cassandra cũng là cơ sở dữ liệu cột lớn mã nguồn mở. Nó có thể phân phối dữ liệu của bạn qua nhiều máy và tự động phân vùng lại khi bạn thêm máy mới vào hạ tầng. Uber, Facebook, Netflix và 506 công ty khác sử dụng trong công nghệ của họ.

3. Elasticsearch

Tương tự MongoDB, Elasticsearch cũng là cơ sở dữ liệu hướng tài liệu và mã nguồn mở. Đây là công cụ tìm kiếm và phân tích hàng đầu thế giới, tập trung vào khả năng mở rộng và tốc độ. Uber, Shopify, Udemy và khoảng 3760 công ty khác sử dụng trong công nghệ của họ.

4. Neo4J

Neo4J là cơ sở dữ liệu hướng đồ thị mã nguồn mở. Nó chủ yếu dùng để xử lý dữ liệu phát triển với nhiều mối quan hệ. Khoảng 220 công ty được báo cáo là dùng trong công nghệ của họ.

5. HBase

Đây là cơ sở dữ liệu phân tán và định hướng cột. Nó cũng cung cấp các khả năng tương tự BigTable của Google trên nền Apache Hadoop. Được báo cáo có 81 công ty dùng HBase trong công nghệ của họ.

6. CouchDB

CouchDB cũng là cơ sở dữ liệu hướng tài liệu mã nguồn mở, thu thập và lưu dữ liệu ở định dạng JSON. Có khoảng 84 công ty dùng trong công nghệ của họ.

7. OrientDB

Cũng là cơ sở dữ liệu mã nguồn mở, OrientDB là cơ sở dữ liệu đa mô hình hỗ trợ đồ thị, tài liệu, khóa-giá trị và đối tượng. Chỉ có 13 công ty được báo cáo là dùng trong công nghệ của họ.

Kết luận

Bài viết đã đề cập các khía cạnh chính của NoSQL và cách chúng có thể mang lại lợi ích cho dự án khoa học dữ liệu trong môi trường tăng trưởng nhanh ngày nay. Bạn đã có trong tay các lựa chọn để triển khai cơ sở dữ liệu phù hợp với trường hợp sử dụng của mình. Nếu bạn vẫn còn do dự, bây giờ là lúc bạn và đồng đội tận dụng sức mạnh của những cơ sở dữ liệu này. 

Để tìm hiểu thêm, khóa học về các khái niệm NoSQL sẽ củng cố kiến thức của bạn về bốn nhóm cơ sở dữ liệu chính đã đề cập. 

Chủ đề
Khoa học Dữ liệu

Tìm hiểu thêm về Khoa học dữ liệu

Khóa học

Tìm hiểu về Khoa học Dữ liệu

2 giờ
877.3K
Giới thiệu về Khoa học dữ liệu mà không cần lập trình.
Xem chi tiếtBắt Đầu Khóa Học

Tạo tài khoản miễn phí của bạn

Luyện tập và Lộ trình tiến trình của bạn.

Tiếp Tục Với Google
Bằng cách tiếp tục, bạn chấp nhận Điều khoản sử dụng, Chính sách bảo mật và việc dữ liệu của bạn được lưu trữ tại Hoa Kỳ.
Xem thêm
Liên quan

blog

Claude Opus 4.6: Tính năng, Điểm chuẩn, Bài kiểm tra thực hành và hơn thế nữa

Mô hình mới nhất của Anthropic dẫn đầu ở mã hóa tác tử và lập luận phức tạp. Thêm vào đó, nó có cửa sổ ngữ cảnh 1M.
Matt Crabtree's photo

Matt Crabtree

10 phút

Xem thêm