一、elasticsearch也具有存儲功能,為什么更多是和其他數據庫一起用
Elasticsearch屬于搜索引擎,和一般我們說的數據庫不大一樣,例如不支持事物。如果你的數據不是很重要,例如日志,完全可以存放到es中不借助其他數據庫存儲。僅僅作為存儲的話,當成一個NOSQL的數據庫也是可以的,配置不Index即可。
當你花了那么多的cpu,memeory的資源來做的revert index,本來1TB的數據可能有了這些revert index以后變成了1.5TB~2.5TB(最近沒有做,不記得具體的比例了),你把它存在那里是不是太浪費了?如果你不close index,這些shard還要占用資源。
我們是把ES當作數據庫來用的,有優點有缺點吧,寫的速度是瓶頸,json作為存儲形,不準到能不能算是一個缺點(主要看你要干什么),需要的資源比一般的database多(名列前茅份工作,沒用過別的DB,應該是多的),對于json里的一個field,你要是想搜索,就要做index,哪怕我不需要搜索的那么快,還是要做index。
總的來說不是一個非常適合做database的東西(歡迎指正)。我們準備轉到snowflake了。
補充一下,elasticsearch沒有access control,這個應該是一個很大的弊端的。
延伸閱讀:
二、數據庫和 SQL 概念
數據庫(Database)是按照數據結構來組織、存儲和管理數據的倉庫,它的產生距今已有六十多年。隨著信息技術和市場的發展,數據庫變得無處不在:它在電子商務、銀行系統等眾多領域都被廣泛使用,且成為其系統的重要組成部分。
數據庫用于記錄數據,使用數據庫記錄數據可以表現出各種數據間的聯系,也可以很方便地對所記錄的數據進行增、刪、改、查等操作。
結構化查詢語言(Structured Query Language)簡稱 SQL,是上世紀 70 年代由 IBM 公司開發,用于對數據庫進行操作的語言。更詳細地說,SQL 是一種數據庫查詢和程序設計語言,用于存取數據以及查詢、更新和管理關系數據庫系統,同時也是數據庫腳本文件的擴展名。