Từ viết tắt NoSQL được đặt ra vào năm 1998. Nhiều người nghĩ NoSQL là một thuật ngữ xúc phạm được tạo ra để chọc ngoáy SQL. Trong thực tế, thuật ngữ này có nghĩa là Không chỉ SQL. Ý tưởng là cả hai công nghệ có thể cùng tồn tại và mỗi công nghệ đều có vị trí của nó. Phong trào NoSQL đã xuất hiện trong vài năm qua khi nhiều nhà lãnh đạo Web 2.0 đã áp dụng công nghệ NoSQL. Các công ty như Facebook, Twitter, Digg, Amazon, LinkedIn và Google đều sử dụng NoSQL theo cách này hay cách khác. Hãy phân tích NoSQL để bạn có thể giải thích nó với CIO hoặc thậm chí đồng nghiệp của bạn.
NoSQL xuất hiện từ nhu cầu
Bộ nhớ dữ liệu: Dữ liệu kỹ thuật số được lưu trữ trên thế giới được tính bằng exabyte. Một exabyte tương đương với một tỷ gigabyte (GB) dữ liệu. Theo Internet.com, lượng dữ liệu lưu trữ được thêm vào năm 2006 là 161 exabyte. Chỉ 4 năm sau vào năm 2010, lượng dữ liệu được lưu trữ sẽ là gần 1.000 ExaBytes, tăng hơn 500%. Nói cách khác, có rất nhiều dữ liệu đang được lưu trữ trên thế giới và dữ liệu đó sẽ tiếp tục phát triển.
Dữ liệu được kết nối: Dữ liệu tiếp tục được kết nối nhiều hơn. Việc tạo ra web được nuôi dưỡng trong các siêu liên kết, các blog có pingback và mọi hệ thống mạng xã hội lớn đều có các thẻ gắn kết mọi thứ lại với nhau. Các hệ thống chính được xây dựng để kết nối với nhau.
Cấu trúc dữ liệu phức tạp: NoSQL có thể xử lý các cấu trúc dữ liệu lồng nhau phân cấp một cách dễ dàng. Để thực hiện điều tương tự trong SQL, bạn sẽ cần nhiều bảng quan hệ với tất cả các loại khóa. Ngoài ra, có một mối quan hệ giữa hiệu suất và độ phức tạp của dữ liệu. Hiệu suất có thể giảm trong RDBMS truyền thống khi chúng tôi lưu trữ lượng lớn dữ liệu cần thiết trong các ứng dụng mạng xã hội và web ngữ nghĩa.
NoSQL là gì?
Tôi đoán một cách để định nghĩa NoSQL là xem xét nó không phải là gì. Nó không phải là SQL và nó không phải là quan hệ. Giống như tên cho thấy, nó không phải là một thay thế cho RDBMS nhưng khen ngợi nó. NoSQL được thiết kế cho các kho dữ liệu phân tán cho nhu cầu dữ liệu quy mô rất lớn. Hãy nghĩ về Facebook với 500.000.000 người dùng hoặc Twitter tích lũy hàng chục Terabit dữ liệu mỗi ngày.
Trong cơ sở dữ liệu NoSQL, không có lược đồ cố định và không có liên kết. RDBMS "mở rộng quy mô" bằng cách nhận phần cứng ngày càng nhanh hơn và thêm bộ nhớ. Mặt khác, NoSQL có thể tận dụng lợi thế của việc "mở rộng quy mô". Mở rộng quy mô đề cập đến việc dàn trải tải trọng trên nhiều hệ thống hàng hóa. Đây là thành phần của NoSQL làm cho nó trở thành một giải pháp rẻ tiền cho các tập dữ liệu lớn.
Danh mục NoSQL
Thế giới NoSQL hiện tại phù hợp với 4 loại cơ bản.
- Cửa hàng khóa-giá trị chủ yếu dựa trên Giấy Dynamo của Amazon được viết vào năm 2007. Ý tưởng chính là sự tồn tại của một bảng băm trong đó có một khóa duy nhất và một con trỏ đến một mục dữ liệu cụ thể. Các ánh xạ này thường đi kèm với các cơ chế bộ nhớ cache để tối đa hóa hiệu suất.
- Cửa hàng Gia đình Cột được tạo ra để lưu trữ và xử lý một lượng rất lớn dữ liệu được phân phối trên nhiều máy. Vẫn có các phím nhưng chúng trỏ đến nhiều cột. Trong trường hợp của BigTable (mô hình Column Family NoSQL của Google), các hàng được xác định bằng một khóa hàng với dữ liệu được sắp xếp và lưu trữ bằng khóa này. Các cột được sắp xếp theo họ cột.
- Cơ sở dữ liệu Tài liệu được lấy cảm hứng từ Lotus Notes và tương tự như các cửa hàng giá trị quan trọng. Mô hình về cơ bản là các tài liệu được tạo phiên bản, là bộ sưu tập của các bộ sưu tập khóa-giá trị khác. Các tài liệu bán cấu trúc được lưu trữ ở các định dạng như JSON.
- Cơ sở dữ liệu Đồ thị s được xây dựng với các nút, mối quan hệ giữa các ghi chú và các thuộc tính của các nút. Thay vì các bảng gồm các hàng và cột và cấu trúc cứng nhắc của SQL, một mô hình biểu đồ linh hoạt được sử dụng có thể chia tỷ lệ trên nhiều máy.
Những người chơi NoSQL chính
Những người chơi chính trong NoSQL đã nổi lên chủ yếu nhờ các tổ chức đã áp dụng chúng. Một số công nghệ NoSQL lớn nhất bao gồm:
- Dynamo: Dynamo được tạo bởi Amazon.com và là cơ sở dữ liệu NoSQL Key-Value nổi bật nhất. Amazon cần một nền tảng phân tán có khả năng mở rộng cao cho các doanh nghiệp thương mại điện tử của họ nên họ đã phát triển Dynamo. Amazon S3 sử dụng Dynamo làm cơ chế lưu trữ.
- Cassandra: Cassandra do Facebook cung cấp nguồn mở và là cơ sở dữ liệu NoSQL hướng cột.
- BigTable: BigTable là cơ sở dữ liệu định hướng cột độc quyền của Google. Google cho phép sử dụng BigTable nhưng chỉ cho Google App Engine.
- SimpleDB: SimpleDB là một cơ sở dữ liệu khác của Amazon. Được sử dụng cho Amazon EC2 và S3, đây là một phần của Dịch vụ Web Amazon tính phí tùy theo cách sử dụng.
- CouchDB: CouchDB cùng với MongoDB là cơ sở dữ liệu NoSQL hướng tài liệu nguồn mở.
- Neo4J: Neo4j là một cơ sở dữ liệu đồ thị mã nguồn mở.
Truy vấn NoSQL
Câu hỏi làm thế nào để truy vấn cơ sở dữ liệu NoSQL là điều mà hầu hết các nhà phát triển đều quan tâm. Xét cho cùng, dữ liệu được lưu trữ trong một cơ sở dữ liệu khổng lồ sẽ không có ích gì nếu bạn không thể truy xuất và hiển thị nó cho người dùng cuối hoặc các dịch vụ web. Cơ sở dữ liệu NoSQL không cung cấp ngôn ngữ truy vấn khai báo cấp cao như SQL. Thay vào đó, việc truy vấn các cơ sở dữ liệu này là mô hình dữ liệu cụ thể.
Nhiều nền tảng NoSQL cho phép các giao diện RESTful đối với dữ liệu. Các API truy vấn phiếu mua hàng khác. Có một số công cụ truy vấn đã được phát triển để cố gắng truy vấn nhiều cơ sở dữ liệu NoSQL. Các công cụ này thường hoạt động trên một danh mục NoSQL duy nhất. Một ví dụ là SPARQL. SPARQL là một đặc tả truy vấn khai báo được thiết kế cho cơ sở dữ liệu đồ thị. Dưới đây là một ví dụ về truy vấn SPARQL truy xuất URL của một blogger cụ thể (được sự cho phép của IBM):
PREFIX foaf:
SELECT? url
FROM
WHERE {
? Contributor foaf:name "Jon Foobar".
? Contributor foaf:weblog ? url.
}
Tương lai của NoSQL
Các tổ chức có nhu cầu lưu trữ dữ liệu lớn đang xem xét nghiêm túc NoSQL. Rõ ràng, khái niệm này không nhận được nhiều sức hút trong các tổ chức nhỏ hơn. Trong một cuộc khảo sát được thực hiện bởi Tuần lễ Thông tin, 44% chuyên gia CNTT doanh nghiệp chưa nghe nói về NoSQL. Hơn nữa, chỉ 1% số người được hỏi báo cáo rằng NoSQL là một phần trong định hướng chiến lược của họ. Rõ ràng, NoSQL có chỗ đứng trong thế giới kết nối của chúng ta nhưng sẽ cần tiếp tục phát triển để có được sức hấp dẫn đại chúng mà nhiều người nghĩ rằng nó có thể có.