1. 程式人生 > >初識ES資料庫

初識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文件檢視