ElasticSearch Là Gì? Big Data

Hortonworks dataflow là một nền tảng giúp cho việc data ingestion tiến hành rất nhanh, hiệu quả và cực kỳ an toàn.

Data ingestion (nhập dữ liệu) là một quá trình thu thập, nhập và xử lý dữ liệu để sử dụng sau hoặc lưu trữ trong một cơ sở dữ liệu. Quá trình này thường bao gồm việc thay đổi những tập tin cá nhân bằng cách chỉnh sửa nội dung và / hoặc định dạng để chúng phù hợp với tài liệu lớn hơn.”

Bài viết này mình sẽ chia sẻ về khái niệm cũng như một số trường hợp cần sử dụng ElasticSearch. Từ đó giúp bạn có thể đưa ra cái nhìn khách quan về nó và đưa ra quyết định sử dụng nó hay không? Khi nắc tới ElasticSearch bạn không thể  không nhắc tới ElasticSearch Store Retrieve Document và các vấn đề kỹ thuật khác của ElasticSearch từ đó giúp bạn extract nó chính xác và hiệu quả nhất.

ElasticSearch là gì?

ES là một document oriented database. Rõ ràng nhiệm vụ của nó chính là store và retrieve document. Trong ES, tất cả các document được hiển thị trong JSON format. Nó được xây dựng trên Lucene – phần mềm tìm kiếm và trả về thông tin  (information retrieval software) với hơn 15 năm kinh nghiệm về full text indexing and searching.

Nếu bạn đã từng sử dụng MongoDB, nghĩa là bạn bạn sẽ dễ dàng quen với JSON storage service. Nhưng điều làm cho ES thực sự đặc biệt chính là nhờ vào khả năng phục hồi thông tin của nó. Sự kết hợp của storage và querying/aggregation service đã làm cho ES thực sự đặc biệt và khác xa 1 công cụ chỉ lưu trữ văn bản.

Với bản chất của nó, một điều quan trọng cần biết đó là: khi nào thì nên sử dụng ElasticSearch? Bạn không nên chuyển đổi SQL database sang ES. Chúng có những mục đích khác nhau và mỗi cái đều có ưu và nhược điểm riêng. Một số trường hợp nên sử dụng ES:

  • Tìm kiếm text thông thường – Searching for pure text (textual search)

  • Tìm kiếm text và dữ liệu có cấu trúc – Searching text and structured data (product search by name + properties)

  • Tổng hợp dữ liệu – Data aggregation

  • Tìm kiếm theo tọa độ – Geo Search

  • Lưu trữ dữ liệu theo dạng JSON – JSON document storage

Khái niệm cơ bản của ElasticSearch

  • Cluster: Một tập hợp Nodes (servers) chứa tất cả các dữ liệu.

  • Node: Một server duy nhất chứa một số dữ liệu và tham gia vào cluster’s indexing and querying.

  • Index: Hãy quên SQL Indexes đi. Mỗi ES Index là 1 tập hợp các documents.

  • Shards: Tập con các documents của 1 Index. Một Index có thể được chia thành nhiều shard.

  • Type: Một định nghĩa về schema of a Document bên trong một Index (Index có thể có nhiều type).

  • Document: Một JSON object với một số dữ liệu. Đây là basic information unit trong ES.

Ưu và nhược điểm của ElasticSearch

ƯU ĐIỂM

  • Điều đầu tiên là tốc độ. ES có perfomance rất tốt. Như tôi đã nói, nó được xây dựng trên Lucene và khả năng mở rộng truy vấn song song bên trong một cluster rất tốt (spanning queries in parallel inside a cluster).

  • Một ưu điểm khác của ElasticSearch là có thể sắp xếp kết quả truy vấn theo Relevance (sự liên quan). Theo mặc định, ES sử dụng thuật toán TF/IDF tương tự để tính toán relevance.

  • Cuối cùng, ES có thể rất hữu ích để tạo ra số liệu thống kê tổng hợp (aggregate statistics), và với chút ít nỗ lực, Search API có thể linh hoạt đáp ứng yêu cầu của bạn.

NHƯỢC ĐIỂM

  • Nhưng nó cũng có một số nhược điểm. ElasticSearch rất tốt trong việc tìm kiếm và tổng hợp data, nhưng nếu bạn đang sở hữu môi trường thường xuyên ghi dữ liệu (writing operations environment), ES có thể sẽ không phải lựa chọn tốt nhất của bạn.

  • Ngoài ra, nó không có bất kỳ transactional operations nào cả. Nhưng nếu bạn không dựa vào nó như nơi lưu trữ dữ liệu chính (primary data storage) thì bạn cũng sẽ ổn thôi, chẳng vấn đề gì cả.

ElasticSearch Là Gì? Big Data
5 (100%) 6 vote[s]
By |2018-12-29T11:25:57-07:00Tháng Mười Hai 29th, 2018|Categories: Big Data, Kiến Thức IT, Linux|Tags: , |0 Comments

About the Author: