Elasticsearch là gì? Elasticsearch



tải về 29.58 Kb.
Chuyển đổi dữ liệu26.10.2023
Kích29.58 Kb.
#55431
ESthuyetrinh


  • Elasticsearch là gì?




  • Elasticsearch là một search engine.

  • Elasticsearch được kế thừa từ Lucene Apache

  • Elasticsearch thực chất hoặt động như 1 web server, có khả năng tìm kiếm nhanh chóng (near realtime) thông qua giao thức RESTful

  • Elasticsearch có khả năng phân tích và thống kê dữ liệu

  • Elasticsearch chạy trên server riêng và đồng thời giao tiếp thông qua RESTful do vậy nên nó không phụ thuộc vào client viết bằng gì hay hệ thống hiện tại của bạn viết bằng gì. Nên việc tích hợp nó vào hệ thống bạn là dễ dàng, bạn chỉ cần gửi request http lên là nó trả về kết quả.

  • Elasticsearch là 1 hệ thống phân tán và có khả năng mở rộng tuyệt vời (horizontal scalability). Lắp thêm node cho nó là nó tự động auto mở rộng cho bạn.

  • Elasticsearch là 1 open source được phát triển bằng Java

  • Các khái niệm cơ bản của Elasticsearch




    • Cluster: là tập hợp các node (máy chủ) chứa dữ liệu và tham gia vào việc lập chỉ mục và tìm kiếm.

    • Node: là một máy chủ đơn lẻ trong cluster, có thể có nhiều vai trò khác nhau như master node, data node, ingest node, coordinating node.

    • Index: là một tập hợp các document (tài liệu) có các đặc điểm tương tự nhau. Index có thể được so sánh với một cơ sở dữ liệu trong hệ quan hệ.

    • Document: là đơn vị cơ bản để lưu trữ dữ liệu trong Elasticsearch. Document được định dạng bằng JSON và có thể chứa nhiều trường khác nhau.

    • Shard: là một phần của index, được phân bổ trên các node để cân bằng tải và tăng khả năng chịu lỗi. Mỗi shard là một chỉ mục Lucene độc lập và có thể có nhiều bản sao (replica) để tăng hiệu suất tìm kiếm.

  • Các tính năng và ứng dụng của Elasticsearch




    • Tìm kiếm toàn văn bản (full-text search): Elasticsearch cho phép tìm kiếm các document theo nội dung của chúng, sử dụng các kỹ thuật như inverted index, term frequency, relevance score để trả về kết quả phù hợp nhất với từ khóa.

    • Phân tích dữ liệu (analytics): Elasticsearch có thể thực hiện các phép toán thống kê và học máy trên dữ liệu để khám phá xu hướng và mẫu trong dữ liệu. Ví dụ: tính tổng, trung bình, min, max, phương sai, phân loại, phát hiện bất thường, dự báo…

    • Tích hợp với các công cụ khác: Elasticsearch có thể kết hợp với các công cụ như Logstash để thu thập và xử lý dữ liệu từ nhiều nguồn khác nhau, Kibana để trực quan hóa dữ liệu theo nhiều biểu đồ và dashboard khác nhau, Beats để gửi dữ liệu từ các thiết bị edge đến Elasticsearch.

    • Sử dụng cho nhiều lĩnh vực và mục đích khác nhau: Elasticsearch có thể được sử dụng cho nhiều lĩnh vực và mục đích khác nhau như: thêm hộp tìm kiếm cho một ứng dụng hoặc website, lưu trữ và phân tích log, số liệu và sự kiện bảo mật, tự động hoá quy trình kinh doanh, quản lý, tích hợp và phân tích thông tin không gian, lưu trữ và xử lý dữ liệu di truyền…


Ưu điểm nhược điểm của ES
Ưu điểm

  • Tìm kiếm dữ liệu rất nhanh chóng, mạnh mẽ dựa trên Apache Lucene ( near-realtime searching)

  • Có khả năng phân tích dữ liệu (Analysis data)

  • Khả năng mở rộng theo chiều ngang tuyệt “vời”

  • Hỗ trợ tìm kiếm mờ (fuzzy), tức là từ khóa tìm kiếm có thể bị sai lỗi chính tả hay không đúng cú pháp thì vẫn có khả năng elasticsearch trả về kết quả tốt.

  • Hỗ trợ Structured Query DSL (Domain-Specific Language ), cung cấp việc đặc tả những câu truy vấn phức tạp một cách cụ thể và rõ ràng bằng JSON.

  • Hỗ trợ nhiều Elasticsearc client như JavaPhPJavascriptRuby.NETPython

Nhược điểm

  • Elasticsearch được thiết kế cho mục đích search, do vậy với những nhiệm vụ khác ngoài search như CRUD thì elastic kém thế hơn so với những database khác như Mongodb, Mysql …. Do vậy người ta ít khi dùng elasticsearch làm database chính, mà thường kết hợp nó với 1 database khác.

  • Trong elasticsearch không có khái niệm database transaction , tức là nó sẽ không đảm bảo được toàn vẹn dữ liệu trong các hoạt độngInsertUpdateDelete.Tức khi chúng ta thực hiện thay đổi nhiều bản ghi nếu xảy ra lỗi thì sẽ làm cho logic của mình bị sai hay dẫn tới mất mát dữ liệu. Đây cũng là 1 phần khiến elasticsearch không nên là database chính.

  • Không thích hợp với những hệ thống thường xuyên cập nhật dữ liệu. Sẽ rất tốn kém cho việc đánh index dữ liệu.

Lời dẫn mở đầu : ( Không nhớ bỏ bớt vài đoạn cũng được )
Chào mừng các bạn đến với bài thuyết trình về Elasticsearch. Trong những năm qua, Elasticsearch và các thành phần phát triển xung quanh nó được gọi là "Elastic Stack" đã được sử dụng cho ngày càng nhiều , từ tìm kiếm đơn giản trên trang web hoặc tài liệu, đến một công cụ kinh doanh thông minh để phân tích và trực quan hóa dữ liệu.  Elasticsearch là một công cụ tìm kiếm và phân tích mã nguồn mở, được thiết kế để xử lý dữ liệu lớn, nhanh chóng và gần như thời gian thực. Nó không chỉ giúp chúng ta tìm kiếm, mà còn giúp chúng ta khám phá các mô hình và xu hướng ẩn trong dữ liệu. Trong bài thuyết trình này, chúng tôi sẽ giới thiệu về cách Elasticsearch hoạt động, cách nó có thể được sử dụng trong các tình huống thực tế và làm thế nào để tối ưu hóa hiệu suất của nó. Hãy cùng khám phá sức mạnh của Elasticsearch!

tải về 29.58 Kb.

Chia sẻ với bạn bè của bạn:




Cơ sở dữ liệu được bảo vệ bởi bản quyền ©hocday.com 2024
được sử dụng cho việc quản lý

    Quê hương