SQL vs NOSQL vs NEWSQL

Với SQL hiện đang xâm chiếm trại NoQuery, (xem tại đây ), tổ chức nên chọn như thế nào giữa cơ sở dữ liệu SQL truyền thống, kho lưu trữ dữ liệu NoQuery hoặc cơ sở dữ liệu NewQuery? Người chiến thắng giải thưởng Turing 2015, Mike Stonebraker đã nói điều đó tốt nhất: một kích cỡ không phù hợp với tất cả các loại. Ý tưởng rằng một sản phẩm cơ sở dữ liệu có thể đáp ứng bất kỳ (hoặc tất cả) trường hợp sử dụng đơn giản là không đúng trong những ngày này.

Cơ sở dữ liệu #NoQuery so với #Query: 'Một kích thước không phù hợp với tất cả.'



Nếu bạn hài lòng với hiệu suất, khả năng mở rộng và tính sẵn sàng cao của hệ thống cơ sở dữ liệu SQL truyền thống hiện tại của bạn (như Oracle, SQL Server, MySQL), thì không có lý do gì để đọc thêm. Tuy nhiên, nếu bạn có những cơn đau ngày càng tăng ở bất kỳ khu vực nào trong số này, thì việc cung cấp NoQuery hoặc NewQuery có thể phù hợp với bạn. Vậy làm thế nào để bạn chọn giữa chúng?
Chọn công cụ phù hợp cho công việc trong tay là 80% nhận được giải pháp; 20% còn lại thực sự hiểu vấn đề bạn đang cố gắng giải quyết. Dưới đây là danh sách các ưu điểm và nhược điểm của cơ sở dữ liệu SQL truyền thống (được gọi một cách trìu mến là OldQuery trong bài viết này), NoQuery và NewQuery có thể giúp bạn tập trung vào các lựa chọn lưu trữ dữ liệu của mình.

OLDQUERY

Cơ sở dữ liệu SQL truyền thống đã xuất hiện trong nhiều thập kỷ và đóng vai trò là nền tảng cốt lõi của gần như mọi ứng dụng chúng ta sử dụng ngày nay. Nếu bạn có một ứng dụng được triển khai và nó đang hoạt động và hoạt động có thể chấp nhận được, điều đó thật tuyệt vời; không cần phải thay đổi cửa hàng dữ liệu của bạn. Nhận ra rằng chuyển hoặc thay thế cơ sở dữ liệu của bạn không chỉ giới thiệu công việc, nó còn gây ra rủi ro. Rất hiếm khi một ứng cử viên thay thế cơ sở dữ liệu là tính năng cho tính năng, cũng như lỗi cho lỗi, tương thích với cơ sở dữ liệu bạn đang thay thế. Hãy coi chừng bất kỳ nhà cung cấp nào đề nghị khác! Dưới đây là một số mẫu điển hình của ứng dụng cơ sở dữ liệu truyền thống:

ƯU ĐIỂM CỦA OLDQUERY:

  • Công nghệ cơ sở dữ liệu dựa trên đĩa đã được chứng minh và hỗ trợ SQL tiêu chuẩn, đã được củng cố trong nhiều thập kỷ.
  • Tương thích với các lớp ORM, chẳng hạn như Hibernate hoặc ActiveRecord.
  • Giao dịch phía khách hàng phong phú.
  • Truy vấn và báo cáo ad hoc.
  • Một thị trường và hệ sinh thái được thiết lập với số lượng lớn các công cụ dựa trên tiêu chuẩn.

NHƯỢC ĐIỂM CỦA OLDQUERY:

  • Không phải là một kiến ​​trúc quy mô. Thông lượng giao dịch thường được kiểm soát bởi công suất của một máy duy nhất. Mở rộng quy mô đòi hỏi phải xác định ứng dụng và quản lý shending (hoặc phân vùng) dữ liệu.
  • Các hệ thống SQL truyền thống được xây dựng cho một kích thước phù hợp với tất cả. Chúng tốt cho các ứng dụng cho mục đích chung với yêu cầu hiệu năng khiêm tốn, nhưng phải vật lộn khi nhu cầu tăng lên.
  • Các tham số điều chỉnh phức tạp thường đòi hỏi chuyên môn sâu để có được sự cân bằng tốt nhất giữa hiệu suất, an toàn dữ liệu và sử dụng tài nguyên.

NOQUERY

Đầu tiên, nhận ra rằng thuật ngữ NoQuery có ý nghĩa mô tả như phân loại chó và ngựa theo tên No No Noatsats. Trong thực tế, NoQuery là một danh mục rộng lớn thu thập các công nghệ khác nhau bên dưới một chiếc ô mơ hồ. Thuật ngữ này cung cấp ít trợ giúp cho nhà phát triển đang cố gắng quyết định công cụ phù hợp cho công việc phù hợp.
Vì vậy, hãy giải quyết vấn đề mà chúng tôi thực sự quan tâm khi là kỹ sư phần mềm: tôi có thể giải quyết vấn đề gì với NoQuery? Quan trọng không kém, NoQuery phù hợp ở đâu? Trường hợp các công nghệ khác nhau cho thấy sức mạnh của họ?

MỘT SỐ HỆ THỐNG NOQUERY ĐẶT TÍNH KHẢ DỤNG LÊN HÀNG ĐẦU

Giả sử bạn có gigabyte đến petabyte dữ liệu. Dữ liệu mới được thêm thường xuyên và sau khi thêm vào, tương đối tĩnh. Một cơ sở dữ liệu lưu trữ các bài đọc cảm biến hoặc hiển thị quảng cáo hiển thị là một ví dụ tốt. Bạn muốn lưu trữ điều này trong một đám mây và sẵn sàng chấp nhận các thách thức lập trình về tính nhất quán cuối cùng (được thực hiện dễ dàng hơn vì hầu hết các cập nhật đều là idempotent) để truy cập phân tán, sao chép đa trung tâm dữ liệu và tính sẵn sàng cao nhất có thể.
Các tương tác từ ứng dụng đến cơ sở dữ liệu của bạn là các mẫu đơn giản TẠO TẠO và các kiểu GET GET không yêu cầu giao dịch truyền thống. Cân nhắc quan trọng nhất là cơ sở dữ liệu luôn có sẵn để chấp nhận nội dung mới và luôn có thể cung cấp nội dung khi được truy vấn, ngay cả khi nội dung đó không phải là phiên bản mới nhất được viết. Các hệ thống như vậy bao gồm DynamoDB, Riak và Cassandra.

MỘT SỐ HỆ THỐNG NOQUERY TẬP TRUNG VÀO TÍNH LINH HOẠT

Nổi tiếng bởi MongoDB và CouchDB, Mô hình Tài liệu mở rộng kho lưu trữ khóa-giá trị truyền thống bằng cách thay thế các giá trị bằng các tài liệu có cấu trúc JSON, mỗi giá trị có thể chứa khóa phụ và giá trị phụ, mảng giá trị hoặc phân cấp của tất cả ở trên. Thường được mô tả là schemaless, các hệ thống này không thực thi lược đồ nhất quán hoặc nhất quán trên tất cả các tài liệu được lưu trữ. Điều này làm cho việc quản lý lược đồ khác nhau bớt cứng nhắc hơn, nhưng cũng rắc rối hơn nhiều. Có khả năng lợi ích của phương pháp này được áp dụng nhiều hơn cho các nhóm phát triển nhỏ hơn với nhu cầu dữ liệu đơn giản hơn.
Các hệ thống khác mở rộng dựa trên các cửa hàng khóa-giá trị với các tính năng tổ chức. Redis là phổ biến để tạo nhiều danh sách dữ liệu được sắp xếp để dễ dàng xếp hạng và bảng xếp hạng. Bằng cách thêm các chức năng phức tạp hơn để sắp xếp theo và thống kê trên máy tính, trọng tâm của nó cho phép khóa chức năng cho các trường hợp sử dụng cụ thể của nó.

MỘT SỐ HỆ THỐNG NOQUERY TẬP TRUNG VÀO CÁC MÔ HÌNH DỮ LIỆU THAY THẾ HOẶC CÁC TRƯỜNG HỢP SỬ DỤNG ĐẶC BIỆT

Các ví dụ phổ biến nhất là các hệ thống được điều chỉnh để xử lý đồ thị, chẳng hạn như Neo4j. Cơ sở dữ liệu mảng là một ví dụ khác; SciDB sử dụng Python và R để truy cập dữ liệu mảng MPP cho nghiên cứu khoa học. Accumulo là một biến thể của mô hình cửa hàng cột rộng được phổ biến bởi Cassandra và BigTable, nhưng tập trung vào bảo mật cấp độ tế bào. Các hệ thống như etcd là kho dữ liệu phân tán với trọng tâm là lưu trữ dữ liệu cấu hình cho các dịch vụ khác. Elaticsearch là một hệ thống phổ biến để thực hiện tìm kiếm văn bản trong các ứng dụng.

ƯU ĐIỂM CỦA NOQUERY:

  • Các thuật toán tính nhất quán cuối cùng cho phép các triển khai cung cấp tính sẵn sàng cao nhất trên nhiều trung tâm dữ liệu.
  • Hệ thống dựa trên tính nhất quán dựa trên quy mô cập nhật quy mô khối lượng công việc tốt hơn so với
    RDBM OLAP truyền thống , đồng thời mở rộng ra các bộ dữ liệu rất lớn.
  • Nhiều hệ thống NoQuery được tối ưu hóa để hỗ trợ dữ liệu không liên quan, chẳng hạn như thông điệp tường trình, tài liệu XML và JSON, cũng như các tài liệu không có cấu trúc, cho phép bạn bỏ qua việc chỉ định lược đồ khi ghi và cho phép bạn chỉ định lược đồ khi đọc .

NHƯỢC ĐIỂM CỦA NOQUERY:

  • Các hệ thống này về cơ bản không phải là giao dịch (ACID). Nếu họ quảng cáo khác, hãy cẩn thận với yêu cầu quá mức.
  • Các truy vấn kiểu OLAP yêu cầu rất nhiều mã ứng dụng. Mặc dù các lợi thế của quy mô ghi là hấp dẫn so với các cửa hàng OLAP (như Vertica hoặc GreenPlum), bạn hy sinh các truy vấn ad hoc khai báo - quan trọng đối với khám phá phân tích lịch sử.

NEWQUERY

Thuật ngữ NewQuery không hoàn toàn rộng như NoQuery. Tất cả các hệ thống NewQuery đều bắt đầu với mô hình dữ liệu quan hệ và ngôn ngữ truy vấn SQL và tất cả chúng đều cố gắng giải quyết một số loại khả năng mở rộng, tính không linh hoạt hoặc thiếu tập trung đã thúc đẩy phong trào NoQuery. Nhiều người cung cấp đảm bảo tính nhất quán mạnh mẽ hơn.
Nhưng trong nhóm này có nhiều sự khác biệt. HANA được tạo ra để trở thành một cường quốc báo cáo kinh doanh cũng có thể xử lý khối lượng công việc giao dịch khiêm tốn, phù hợp hoàn hảo cho việc triển khai SAP. Hekaton bổ sung xử lý trong bộ nhớ tinh vi cho Microsoft SQL Server truyền thống hơn. Hiện tại cả hai hệ thống đều không phân cụm và cả hai đều được thiết kế để thay thế hoặc tăng cường triển khai OldQuery trực tiếp.
NuoDB đặt ra là một cơ sở dữ liệu SQL đầu tiên tập trung vào đám mây: chạy trên nhiều nút trên nhiều trung tâm dữ liệu và để hệ thống cơ bản quản lý tính nhất quán và thống nhất dữ liệu cho bạn. Điều này đi kèm với chi phí về hiệu suất và tính nhất quán cho khối lượng công việc tùy ý. Đối với khối lượng công việc gần với giá trị khóa, quản lý dữ liệu toàn cầu là một vấn đề dễ xử lý hơn. NuoDB là gần nhất để được gọi là cuối cùng phù hợp với các hệ thống NewQuery.
Các hệ thống khác tập trung vào các phân tích phân cụm, chẳng hạn như MemQuery. Được phân phối, với khả năng tương thích với MySQL, MemQuery thường cung cấp các phân tích OLAP nhanh hơn các hệ thống OldQuery tất cả trong một, với tính đồng thời cao hơn và khả năng cập nhật dữ liệu khi được phân tích.
VoltDB , hệ thống trưởng thành nhất trong số các hệ thống này, kết hợp phân tích phát trực tuyến, đảm bảo ACID mạnh và phân cụm riêng. Điều này cho phép VoltDB trở thành bản ghi hệ thống cho các ứng dụng sử dụng nhiều dữ liệu, đồng thời cung cấp một công cụ nhập liệu có độ trễ thấp, thông lượng cao tích hợp. Đó là một lựa chọn tuyệt vời để thực thi chính sách, phát hiện gian lận / bất thường hoặc các ứng dụng quyết định nhanh khác.

SỰ CẦN THIẾT CHO TỐC ĐỘ: SQL TRONG BỘ NHỚ NHANH

Có lẽ bạn có từ gigabyte đến terabyte dữ liệu cần truy cập giao dịch tốc độ cao. Bạn có một luồng sự kiện đến (nghĩ cảm biến, điện thoại di động, điểm truy cập mạng) và cần các giao dịch theo sự kiện để tính toán phản hồi và phân tích trong thời gian thực. Vấn đề của bạn tuân theo mô hình của ingest, phân tích, quyết định, trong đó phân tích và các quyết định phải được tính theo yêu cầu và không hậu xử lý trong quá trình xử lý hàng loạt. Các hệ thống NewQuery cung cấp quy mô của NoQuery với tính nhất quán mạnh hơn có thể là lựa chọn phù hợp.

ƯU ĐIỂM CỦA NEWQUERY:

  • Giảm thiểu độ phức tạp của ứng dụng tính nhất quán mạnh hơn và thường hỗ trợ giao dịch đầy đủ.
  • SQL quen thuộc và công cụ tiêu chuẩn.
  • Phân tích sâu hơn tận dụng SQL và các phần mở rộng.
  • Nhiều hệ thống cung cấp phân cụm kiểu NoQuery với các mô hình truy vấn và dữ liệu truyền thống hơn.

NHỮNG NHƯỢC ĐIỂM CỦA NEWQUERY:

  • Không có hệ thống NewQuery nào có mục đích chung như các hệ thống SQL truyền thống được đặt ra.
  • Kiến trúc trong bộ nhớ có thể không phù hợp với khối lượng vượt quá vài terabyte.
  • Chỉ cung cấp quyền truy cập một phần vào công cụ phong phú của các hệ thống SQL truyền thống.

TỔNG KẾT NÓ

Theo nguyên tắc chung, hãy xem xét đánh giá các dịch vụ của NoQuery nếu bạn thích tính khả dụng hoặc có nhu cầu mô hình dữ liệu đặc biệt. Hãy xem xét NewQuery nếu bạn thích tốc độ quy mô của NoQuery, nhưng với tính nhất quán mạnh hơn và ngôn ngữ truy vấn SQL quen thuộc và mạnh mẽ.
Sự hỗn loạn trong không gian quản lý dữ liệu là đáng kể - và xu hướng nói về các danh mục (SQL, NoQuery, NewQuery) của chúng tôi so với các vấn đề khiến các nhà phát triển phần mềm khó hiểu được những gì trong hộp công cụ. Các dịch vụ hiện tại của cơ sở dữ liệu mới không giống nhau - và nhận ra cách DNA đằng sau mỗi trợ giúp hoặc cản trở người giải quyết vấn đề là chìa khóa để chọn giải pháp tốt nhất.

Nhận xét

Bài đăng phổ biến từ blog này

Open Source CMS Ecommerce in .Net Core

What is an Application Specialist?

Sharding, Snowflake Instagram trong bài toán đối soát dữ liệu