

Khi nhu cầu tìm kiếm và phân tích dữ liệu ngày càng lớn, OpenSearch trở thành một nền tảng được nhiều đội ngũ kỹ thuật quan tâm. Vậy OpenSearch là gì, hoạt động như thế nào và được ứng dụng trong những trường hợp nào? Bài viết dưới đây sẽ giúp bạn hiểu rõ các nội dung này một cách ngắn gọn và dễ hiểu.
OpenSearch là một công cụ tìm kiếm và phân tích dữ liệu mã nguồn mở, được sử dụng để lập chỉ mục, truy vấn và phân tích dữ liệu từ nhiều nguồn khác nhau.
OpenSearch được xây dựng trên Apache Lucene và có nguồn gốc từ Elasticsearch. OpenSearch cung cấp kiến trúc phân tán, có khả năng mở rộng, phù hợp với nhiều nhu cầu như tìm kiếm theo thời gian thực, phân tích log, giám sát hệ thống, observability và phân tích bảo mật.
Bên cạnh công cụ tìm kiếm chính, OpenSearch còn tích hợp OpenSearch Dashboards, giúp người dùng trực quan hóa dữ liệu và theo dõi hoạt động của ứng dụng. Nền tảng cũng hỗ trợ hệ sinh thái đa dạng gồm plugin, API và client, giúp các nhóm kỹ thuật xây dựng và vận hành nhiều quy trình phân tích dữ liệu trong các môi trường hiện đại.
Là một dự án mã nguồn mở với lộ trình phát triển do cộng đồng định hướng, OpenSearch mang lại sự linh hoạt trong quá trình triển khai và hạn chế sự phụ thuộc vào một nhà cung cấp duy nhất. Khả năng tương thích với các phiên bản Elasticsearch trước đây cùng framework plugin có thể mở rộng cũng giúp OpenSearch được ứng dụng trong nhiều trường hợp như phân tích dữ liệu vận hành, pipeline machine learning và các ứng dụng tìm kiếm.

OpenSearch Dashboards là giao diện trực quan hóa và phân tích dữ liệu của OpenSearch. Công cụ này giúp người dùng khám phá dữ liệu đã được lập chỉ mục, tạo biểu đồ và xây dựng dashboard để theo dõi hệ thống, phân tích bảo mật và giám sát ứng dụng.
OpenSearch Dashboards hỗ trợ nhiều hình thức trực quan như biểu đồ, bảng, bản đồ, notebook và panel tùy chỉnh. Người dùng cũng có thể kết hợp dữ liệu log, metric và trace để theo dõi tình trạng hệ thống và phát hiện bất thường gần theo thời gian thực.
Do có nguồn gốc giao diện từ Kibana, OpenSearch Dashboards khá quen thuộc với những người đã từng sử dụng Elasticsearch và Kibana. Tuy nhiên, công cụ này hiện được phát triển theo lộ trình riêng trong hệ sinh thái OpenSearch.
OpenSearch được thiết kế để giúp doanh nghiệp lập chỉ mục, tìm kiếm và phân tích lượng lớn dữ liệu theo thời gian thực. Nền tảng sử dụng kiến trúc mã nguồn mở, hướng đến khả năng mở rộng, tối ưu chi phí và dễ tích hợp với nhiều môi trường dữ liệu khác nhau.
Các tính năng chính của OpenSearch gồm:

OpenSearch ra đời từ sự thay đổi về giấy phép sử dụng của Elasticsearch và Kibana. Có thể hiểu đơn giản theo các giai đoạn sau:

OpenSearch và Elasticsearch không hoàn toàn giống nhau. Hai nền tảng có chung nguồn gốc, nhưng hiện đã phát triển theo những hướng riêng.
Tiêu chí | OpenSearch | Elasticsearch |
| Nguồn gốc | Được phát triển từ phiên bản Elasticsearch mã nguồn mở trước đây | Là dự án gốc do Elastic phát triển |
| Giấy phép | Apache 2.0 | SSPL và Elastic License |
| Định hướng phát triển | Ưu tiên tính mở, khả năng mở rộng và cộng đồng | Phát triển theo chiến lược sản phẩm của Elastic |
| Khả năng tương thích | Hỗ trợ nhiều API, cú pháp truy vấn và thư viện client từ các phiên bản Elasticsearch trước đây | Sử dụng hệ sinh thái và công cụ riêng của Elasticsearch |
| Khả năng chuyển đổi | Người dùng Elasticsearch cũ có thể chuyển sang OpenSearch với ít thay đổi hơn trong nhiều trường hợp | Không áp dụng |
Điểm giống nhau lớn nhất là OpenSearch vẫn duy trì nhiều cách làm quen thuộc từ Elasticsearch, chẳng hạn như API, cú pháp truy vấn, cấu trúc repository và định dạng index. Điều này giúp các nhóm kỹ thuật đã sử dụng Elasticsearch trước đây dễ làm quen hơn khi chuyển sang OpenSearch.
Tuy nhiên, khi lựa chọn giữa hai nền tảng, doanh nghiệp không nên chỉ so sánh tính năng mà còn cần xem xét giấy phép sử dụng, mô hình quản trị và định hướng phát triển lâu dài của hệ sinh thái.
OpenSearch được xây dựng trên một kiến trúc phân tán, được thiết kế để dễ mở rộng và đáp ứng nhu cầu xử lý theo thời gian thực. Các thành phần cốt lõi gồm cluster, node, index, shard và document. Những thành phần này phối hợp với nhau để lưu trữ và truy xuất dữ liệu hiệu quả.
Node là các máy chủ hoặc instance được container hóa, chịu trách nhiệm thực hiện các tác vụ như lập chỉ mục, truy vấn và lưu trữ dữ liệu.
Các loại node phổ biến gồm:
Cluster là một tập hợp gồm một hoặc nhiều node hoạt động cùng nhau để quản lý dữ liệu và xử lý truy vấn.
Cluster hỗ trợ dự phòng và cân bằng tải, nhờ đó sự cố ở một node không làm ảnh hưởng toàn bộ hệ thống. Mỗi cluster cũng duy trì metadata liên quan đến index, shard và thông tin định tuyến dữ liệu.
Index là một không gian logic dùng để tổ chức dữ liệu, có thể hiểu tương tự như một bảng trong cơ sở dữ liệu quan hệ.
Mỗi index chứa các mapping xác định cấu trúc của document JSON và thông tin tham chiếu đến các shard đang lưu trữ những document đó.
Trong OpenSearch, từ “index” cũng có thể được dùng như một động từ để chỉ quá trình đưa dữ liệu vào index.

Document là các đối tượng JSON đại diện cho từng bản ghi dữ liệu riêng lẻ. Nói đơn giản, đây là dữ liệu được OpenSearch lưu trữ và tìm kiếm.
Khi một document được lập chỉ mục, các field bên trong sẽ được phân tích, token hóa và lưu trong inverted index để hỗ trợ tìm kiếm hiệu quả.
Shard là đơn vị lưu trữ cơ bản trong OpenSearch, nơi các document được lưu trữ. Mỗi index bao gồm:
Mỗi shard hoạt động như một instance Lucene độc lập. OpenSearch phân phối các shard trên nhiều node để có thể xử lý truy vấn song song và mở rộng hiệu năng.
Khi một document được đưa vào OpenSearch, hệ thống sẽ phân tích nội dung bằng các text analyzer và tokenizer, sau đó ghi các term đã xử lý vào shard phù hợp.
Quá trình lập chỉ mục được thực hiện bởi các data node và có thể được phân phối trên toàn cluster để tăng tốc độ và độ tin cậy.
Khi người dùng gửi truy vấn, coordinating node sẽ:
Có thể hình dung OpenSearch giống như một căn bếp nhà hàng có nhiều khu vực xử lý khác nhau. Quá trình indexing giống như chuẩn bị nguyên liệu và chuyển chúng đến đúng khu vực. Khi có yêu cầu tìm kiếm, coordinating node đóng vai trò điều phối, gọi đúng khu vực cần thiết, thu thập kết quả và ghép lại thành một kết quả hoàn chỉnh.
OpenSearch được sử dụng trong nhiều bài toán liên quan đến tìm kiếm, phân tích dữ liệu, giám sát hệ thống và bảo mật. Một số trường hợp sử dụng phổ biến gồm:
Note: ML Commons là thành phần Machine Learning của OpenSearch, hỗ trợ các tác vụ như phân cụm, phát hiện bất thường, dự đoán và các ứng dụng tìm kiếm dựa trên mô hình ML.

Kết luận: OpenSearch là nền tảng tìm kiếm và phân tích dữ liệu mã nguồn mở, hỗ trợ nhiều nhu cầu như tìm kiếm, phân tích log, observability, bảo mật và Machine Learning. Hiểu rõ cách OpenSearch hoạt động và các thành phần chính sẽ giúp doanh nghiệp đánh giá liệu nền tảng này có phù hợp với nhu cầu xử lý và khai thác dữ liệu của mình hay không.
