初識ES數據庫


一、什么是Elasticsearch

1、概念以及特點

1、Elasticsearch和MongoDB/Redis/Memcache一樣,是非關系型數據庫

是一個接近實時的搜索平台,從索引這個文檔到這個文檔能夠被搜索到只有一個輕微的延遲,企業應用定位:采用Restful API標准的可擴展和高可用的實時數據分析的全文搜索工具

2、可拓展:支持一主多從且擴容簡易,只要cluster.name一致且在同一個網絡中就能自動加入當前集群;本身就是開源軟件,也支持很多開源的第三方插件。

3、高可用:在一個集群的多個節點中進行分布式存儲,索引支持shards和復制,即使部分節點down掉,也能自動進行數據恢復和主從切換

4、采用RestfulAPI標准:通過http接口使用JSON格式進行操作數據。

5、數據存儲的最小單位是文檔,本質上是一個JSON 文本:

2、項目中為何使用(主搜索次分析再存儲)

2.1、搜索引擎

實際項目開發中,幾乎每個系統都會有一個搜索的功能,數據量少時可以直接從主數據庫中比如Mysql搜索。

但當搜索做到一定程度時,比如系統數據量上了10億、100億條的時候,傳統的關系型數據庫的I/O性能和統計分析性能就難以滿足用戶需要了。

所以很多公司都會把搜索單獨做成一個獨立的模塊,用ElasticSearch等來實現。

雖然內存緩存數據庫的讀寫性能很高,但完全把數據放在內存中是不太現實的,比如到PB級別的數據,按照每個節點96G內存計算,

在內存完全裝滿的數據情況下,需要的機器是:1PB=1024T=1048576G ,節點數就是1048576/96=10922個 ,再考慮到數據備份,節點數還需要翻倍,成本巨大決定了其不現實!

2.2、日志分析

Elasticsearch+ Logstash + Kibana是同一家公司開發的3個開源工具,可組合起來搭建海量日志分析平台,目前很多公司都在使用這種方式搭建日志分析平台進行大數據分析。

3、底層架構

2、RESTFul 介紹

1、什么是RESTFul

REST(RepresentationalState Transfer)是一種軟件架構的設計風格(不是標准),通過 HTTP接口處理數據,主要用於客戶端和服務器的數據交互。

該風格的具體特點——在服務器端,應用程序對象、數據庫記錄、算法、文本、圖片等都是一個實體資源,使用 URI標識,

所有資源都共享統一的接口(標准的HTTP方法)比如 GET、PUT、POST 和 DELETE,在客戶端和服務器之間傳輸數據。

2、CURL命令的講解

2.1、什么是CURL

本質就是以命令方式發送HTTP請求,可以完成比如發送表單信息、文件上傳、分段下載、模擬登錄等,理論上在APP或Web里能操作的通過此指令都能操作。

2.2、具體應用

3、Elasticsearch API文檔查看

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM