Cơ sở dữ liệu trên bộ nhớ (In-memory database – IMDB) không phải là hình thức quá mới và thực tế có rất nhiều tên tuổi lâu đời trong làng IMDB như Redis, VoltDB, hay các DBMS nổi tiếng cũng có tính năng hoặc sản phẩm tương tự như Microsoft Hekaton, Oracle hoặc SAP HANA. Tuy nhiên, MemSQL nhanh chóng phát triển và vượt qua nhiều tên tuổi lớn trở thành số 1 về kho cơ sở dữ liệu thời gian thực.
MemSQL là một cơ sở dữ liệu trong bộ nhớ phân tán cho phép bạn xử lý các giao dịch và phân tích chạy trong thời gian thực, sử dụng SQL. Để có thể vượt qua được các tên tuổi lớn và trở thành số 1 về kho cơ sở dữ liệu thời gian thực, MemSQL có những ưu điểm sau đây:
  • MemSQL hỗ trợ sử dụng driver của MySQL:
Nhờ vậy các công cụ như MySQL Workbench, các công cụ quản lý cơ sở dữ liệu hỗ trợ MySQL đều có thể dùng được với MemSQL. Các thư viện lập trình hỗ trợ MySQL đều có thể sử dụng được với MemSQL mà hầu như không phải chỉnh sửa gì, trừ một số ít lệnh không phổ biến của MySQL không được hỗ trợ, còn lại, có thể yên tâm sử dụng MemSQL như với MySQL vậy.
  • Compiled query:
Các câu lệnh SQL được biên dịch lại, nhờ vậy tốc độ thực hiện câu lệnh tăng rõ rệt ở lần chạy thứ 2. Ưu điểm này phù hợp với các hệ thống cơ sở dữ liệu thời gian thực, vì công việc truy vấn lại dữ liệu trong một khoảng thời gian (windows frame) được thực hiện tương đối thường xuyên.
  • Hỗ trợ JSON:
MemSQL hỗ trợ JSON tương đối tốt bằng cách hỗ trợ loại dữ liệu là JSON, có thể đánh chỉ mục (indexing) trên một đối tượng thuộc JSON trực tiếp thay vì phải tách dữ liệu rồi mới đánh chỉ mục như hầu hết các CSDL khác. MemSQL còn hỗ trợ truy cập trực tiếp một đối tượng trong JSON bằng DML, nhờ đó có thể truy vấn, lọc bớt, chuyển đổi một vài dữ liệu thuộc JSON thành chuỗi, số và có thể thực hiện tính toán được. Thậm chí có thể truy vấn các đối tượng lồng nhau trong JSON.
  • Kiểu dữ liệu địa lý:
MemSQL hỗ trợ tương đối đầy đủ kiểu dữ liệu địa lý, các hàm thực hiện tính toán địa lý như tính khoảng cách, tính giao cắt, tính khoanh vùng v.v… Tuy nhiên, cũng không phải tất cả. Một số hàm tính toán địa lý phức tạp cũng không được hỗ trợ.
  • JOIN:
Cơ sở dữ liệu có quan hệ đương nhiên hỗ trợ JOIN, và MemSQL cũng không ngoại lệ. MemSQL hỗ trợ cả Spatial Join. Do dữ liệu nằm hoàn toàn trong bộ nhớ nên thao tác spartial join được thực hiện khá nhanh.
  • Lưu dữ liệu snapshot trên ổ cứng:
MemSQL không chỉ lưu dữ liệu trên bộ nhớ mà còn hỗ trợ lưu các ảnh của cơ sở dữ liệu (snapshot) xuống ổ cứng đầy đủ. Và khi có sự cố mất điện, hoặc phải khởi động lại máy chủ, dữ liệu được nạp lại nguyên vẹn từ ổ cứng, thao tác này trong trường hợp cơ sở dữ liệu có kích thước lớn làm chậm tương đối việc khởi động lại cơ sở dữ liệu.  Dĩ nhiên, có thể tuỳ chỉnh tuỳ theo nhu cầu. Các dữ liệu lưu trên ổ cứng được nén lại làm giảm đáng kể dung lượng ổ cứng sử dụng.
  • Clustering:
MemSQL có kiến trúc theo dạng một node làm node tính toán, và có nhiều node làm node chứa dữ liệu. MemSQL cũng hỗ trợ sẵn giao diện dạng web để quản lý các node.
  • Hỗ trợ sẵn streaming:
MemSQL hỗ trợ dưới dạng plugin spark streaming, trường hợp dữ liệu dưới dạng có cấu trúc cố định và không phải chỉnh sửa gì thì có thể sử dụng công cụ Pipeline có sẵn để đọc dữ liệu từ Kafka, chuyển đổi và chèn thẳng vào MemSQL. Trường hợp dữ liệu cần stream từ Kafka và phải tính toán chuyển đổi MemSQL cung cấp sẵn môi trường chạy. Việc cần làm là tiến hành phát triển các gói JAR Spark bao gồm các thao tác trích xuất (Extract) và chuyển đổi (transform).
  • Có thể import dữ liệu từ Hadoop, S3 và MySQL:
Có thể thấy MemSQL tập trung vào việc tối ưu xử lý trong bộ nhớ, biên dịch sẵn câu lệnh, tối ưu cho việc xử lý dữ liệu trong thời gian thực khiến MemSQL phù hợp cho người phân tích dữ liệu khi mà việc đọc đi đọc lại dữ liệu được làm rất thường xuyên. Nhờ tốc độ tốt, việc dùng MemSQL là cơ sở dữ liệu dùng cho việc tính toán, tổng hợp dữ liệu trong một khung thời gian ngắn cũng rất phù hợp. Kết hợp với Spark streamming, có thể thấy MemSQL đang là một trong những lựa chọn đáng giá trong thời đại bùng nổ dữ liệu hiện nay.
Tham khảohttps://www.gartner.com/doc/reprints?id=1-3BZZPUN&ct=160720&st=sb
Nguyễn Đăng Duy – FPT Technology Solutions
Tin liên quan: