火花Elasticsearch

免費試著磚

火花Elasticsearch是什麼?

火花Elasticsearch NoSQL,分布式數據庫存儲,檢索和管理麵向文檔和半結構化數據。GitHub開源,RESTful Apache Lucene搜索引擎之上,Apache許可的條款下發布。

Elasticsearch是基於java的,因此可用於多種平台,可以在不同的搜索和索引文檔文件格式。Beplay体育安卓版本數據的形式存儲在Elasticsearch非模式化JSON文檔;類似於NoSQL數據庫。

一個圖像顯示火花Elasticsearch過程。它始於一個文檔與‘日誌’這個詞,移動到“收集,變換,然後搜索和分析“Elasticsearch,最後發展到“想象與Kibana和管理”。

的曆史和一個Elasticsearch概論

不可或缺的方麵更大的開源工具稱為彈性堆棧,Elasticsearch是一個流行的全文搜索引擎,在穀歌大腦最初設計和開發的工程師團隊。它廣泛應用於許多商業應用,Reddit, YouTube eBay。對許多公司來說,文本搜索已經成為一個重要的組件的業務流程。這樣,Elasticsearch類似於其他搜索引擎。

Elasticsearch和其他搜索引擎的一個關鍵區別是Elasticsearch可以存儲和管理分布式數據。換句話說,它是用來處理數據不斷變化的大小。這提供了非常複雜的查詢的功能,無論多麼大的數據集。然而,潛在影響的單個數據庫服務器處理來自多個用戶的數據可以顯著增加。

誰使用Elasticsearch ?

成千上萬的頂級公司使用Elasticsearch對於他們的在線和離線數據,包括科技巨頭穀歌、甲骨文、微軟和其他許多家喻戶曉的名字。

但你不必是一個科技巨頭想要一種簡單的方法來索引的結構化數據。你隻需要知道它的存在並了解它是如何工作的。

但Elasticsearch用於什麼,到底是什麼?

Elasticsearch可以廣泛的使用情況下,如:

  • 日誌和日誌分析:互補的生態係統開源軟件和平台建立Elasticsearch使得它最簡單的實現和規模日誌解決方案。Beplay体育安卓版本
  • 刮,結合公共數據:Elasticsearch足夠靈活,能夠在多個不同來源的數據和保持可控的和可搜索的。
  • 全文搜索:ElasticSearch麵向文檔。它存儲和索引文件。索引創建或更新文檔。一旦索引完成後,你可以搜索、排序和過濾柱狀數據的完整的文件沒有行。
  • 事件數據和指標:Elasticsearch還出名的是偉大的工作在等時間序列數據指標和應用程序事件。無論您正在使用的技術,Elasticsearch可能所需的組件輕鬆抓取數據常見的應用程序;它不會在罕見的情況下,添加該功能非常簡單。

Elasticsearch架構:關鍵部件

理解Elasticsearch火花是如何工作的,什麼時候用它,什麼時候不使用它,你必須首先理解Elasticsearch背後的基礎設施架構。這些關鍵組件包括從Elasticsearch集群,端口9200和9300,Elasticsearch碎片Elasticsearch副本,分析程序和文檔。

Elasticsearch集群

一個elasticsearch集群是一組相互關聯的計算節點,所有的存儲不同的集群數據。作為用戶,您可以調整每個集群節點的數目是分配給由改變“elasticsearch。yml”文件配置文件夾中找到。雖然可以運行許多集群像你希望的那樣,大多數用戶通常發現一個節點就能達到他們的預期的結果。

Elasticsearch節點

Elasticsearch節點計算資源,是專門針對搜索、索引和擴展數據庫。由於Elasticsearch是一個分布式數據庫,它使用單一來源的真理,即Elasticsearch數據節點保存所有數據。集群中的每個節點使用一個不同的名稱。通常,Elasticsearch節點在每個索引大約有10到5000萬個文檔。

端口9200和9300

有兩種類型的端口上可用Elasticsearch碎片。兩個碎片港口的第一永遠是敞開的,第二個碎片端口打開隻有一個Elasticsearch索引創建並初始化一個集群。9200是默認端口用於主碎片和9300是默認端口使用的複製品。

Elasticsearch碎片

Elasticsearch碎片隻是Kibana索引的集合在一個索引。有兩種類型的索引在Elasticsearch Elasticsearch文檔(doc)和Elasticsearch索引。與標識符和索引文件綁定一個惟一名稱。

Elasticsearch副本

副本是一個複製碎片的所有更改被反映在二級副本但對客戶機透明。主副本更新新的數據時自動添加或刪除時,更新或修改。

Elasticsearch分析儀

分析器是一個Elasticsearch集群的一部分,從數據庫中獲取數據和執行分析。這使得它可以過濾和排序的數據返回給用戶。

Elasticsearch文檔

Elasticsearch文檔在Elasticsearch主索引類型。每個文檔的ID創建數據集和每個文檔都有一個單獨的列類型。一個簡單的示例文檔的ID Elasticsearch{文檔ID}。一般來說,每個文檔的Elasticsearch集群有一個碎片ID、名稱和使用的所有字段的數組索引擁有自己shard-wide標識符。

Elasticsearch是如何工作的呢?

簡而言之,Elasticsearch作品通過數據和發布到集群中的每個節點,然後上下縮放數據基於當前存儲的數據量。Elasticsearch受益於能夠將你所有的數據存儲在一個數據庫,一個彈性指數容器。

因為Elasticsearch是一個麵向文檔的,寧靜的搜索引擎,它有各種各樣的有用的工具,可以使用大,否則恐嚇,數據集。此外,該軟件可以作為輔助工具除了到另一個地方。例如,Elasticsearch +火花

一個Elasticsearch查詢的例子

假設你想搜索“電信”這個詞。以下簡單的搜索語法將做的技巧:

“電信”美元

既然Elasticsearch作品文檔,你不能簡單地搜索文檔的列表。您需要查詢一個“文檔類型”。我們將使用這個短語“類型:電信”,以確保我們隻得到符合搜索條件的文檔。

為了讓這個查詢,我們通過文檔ID號作為查詢參數:

類型:電信“美元

為了進一步測試這個,你也可以創建一個簡單的示例通過運行以下文檔:

創建索引:類型:電信創建分區:類型:電信——data-urlencode /任務/ data-urlencode任務

Elasticsearch使用什麼類型的數據庫?

通過結合Lucene索引構建健壯的分布數據庫模型,Elasticsearch工具能夠成小片段數據集組件稱為碎片和分配在各個節點。

但Elasticsearch存儲數據哪裏來的呢?

數據存儲在Elasticsearch以JSON格式或CSV格式。每個指標都有自己的模板文件存儲在索引。索引是完全複製使用一個消息總線與二次複製。日誌文件寫成Elasticsearch索引。

這些文檔被存儲為一個數組的鍵-值對數據結構稱為“memcached集”。memcached是一個輕量級,內存可擴展的數據結構,並保存和處理數據的能力大內存容量。

Elasticsearch攝取的存儲優化,索引和搜索操作和定期文件被寫入到磁盤。事實上,改變指數的大小的唯一方法就是刪除最後插入的文檔,並代之以一個新的。這個任務被稱為“數據遷移”,是指一個新文檔被創建新索引,更新,然後重新插入這些圖像。

Elasticsearch聚合是什麼?

Elasticsearch聚合,或分配相同的集群到多個端點,是一個強大的特性,它允許您使用相同的集群Elasticsearch額外的數據和功能而不影響生產集群的性能。

當聚合集群,每個節點分配三個不同的負載類型之一。工作負載類型是:

  1. 非關係
  2. 在線事務處理(OLTP)
  3. 聯機分析處理(OLAP)

非關係

Elasticsearch生成的網絡請求都是由正在運行的查詢生成Elasticsearch集群。

Elasticsearch節點空閑時,它的職責是操作係統在後台線程中運行查詢並不斷報告結果。Elasticsearch節點正在使用時,將參加一個故障轉移機製(在一個節點出現故障時)或(在節點過載的情況下)將查詢請求通過其他節點,等待另一個節點是免費的。

雖然Elasticsearch所產生的網絡流量是最常見的查詢相關數據,還有許多其他情況下,也可以利用Elasticsearch。

OLTP

所有生成的網絡請求Elasticsearch仍由查詢針對Elasticsearch運行集群。

雖然這可能是一個完整的Elasticsearch集群對於大型係統(當然,一個好的開始),有些時候是需要結合Elasticsearch關係數據源。在這些情況下,Elasticsearch將針對二級運行關係數據源進行處理,隻跟蹤查詢的運行。在這種情況下,每個節點隻分配一個次級來源,與其他剩餘的閑置。

OLAP

一個關鍵區別Elasticsearch聚合和常規聚合,而其他聚合可以使用相同的Elasticsearch集群用於多種目的,Elasticsearch聚合使用第二個數據源存儲和處理聚合數據。這允許Elasticsearch聚合存儲更多的數據沒有在主數據集上創建額外的查詢,如SQL或NoSQL數據集。

如何安裝Elasticsearch並使用它嗎

安裝非常簡單。可以使用默認存儲庫為Elasticsearch Elasticsearch和設置一個默認的環境,。

叫Kibana Elasticsearch使用一個配置文件。yml作為其配置的基礎。您可以修改該文件來滿足您的需求。您還可以使用任何Elasticsearch插件提供商如InfluxDB更受歡迎,Logstash等等。

安裝Elasticsearch的步驟:

  1. 安裝Elasticsearch開發版本以及服務器和安裝依賴關係
  2. 安裝Java的波什擴展。波什擴展可以幫助你編寫HTML模板Elasticsearch使數據更容易和人類可讀數據操作工具。波什擴展需要一個Java運行時。您可以使用Java在您的操作係統的默認存儲庫安裝它。
  3. 發射Elasticsearch
  4. 安裝Java插件波什
  5. 就是這樣。Elasticsearch啟動並運行在您的機器上,你現在可以訪問所有的數據以一種易讀的方式。

Elasticsearch數據可視化

Elasticsearch允許您搜索和篩選通過各種各樣的數據通過一個簡單的API。RESTful API,因此用戶不僅可以使用它對數據分析,還可以使用它在生產中對基於web的應用程序。目前,Elasticsearch包括麵向方麵的搜索,一個功能,允許你計算聚合數據。這裏有一些最相關的特征:

  • 它提供了一個可擴展的搜索解決方案。
  • 執行近實時搜索。
  • 支持多租戶。
  • 簡化備份流程,確保數據的完整性。
  • 索引可以恢複服務器崩潰。
  • 使用Javascript對象表示法(JSON)以及Java應用程序編程接口(api)。
  • JSON文檔自動索引。
  • 索引使用獨特的類型級別標識符。
  • 每個索引可以有自己的設置。
  • 搜索可以用Lucene-based查詢字符串。

為什麼使用Elasticsearch而不是SQL ?

Elasticsearch服務是迄今為止最廣泛采用,強大的和有用的搜索技術,因為當涉及到快速有效地處理大量的數據,這是明顯的比大多數的SQL。

Elasticsearch是專門用於企業搜索,提供強大的功能和易用性企業依靠數據分析的工具。從而提供一個更實際的和靈活的方式存儲、搜索和分析批次的數據更少的資源密集型的。

如何檢查Elasticsearch版本嗎

有兩個快速的方法檢查Elasticsearch你運行的版本。第一是ElasticSearch控製台啟動和登錄和查看軟件版本。二是檢查你Elasticsearch官方文檔。

三大Elasticsearch替代品在市場上

當考慮使用哪個軟件,有三個頂級Elasticsearch替代品在作出決定前考慮:

AWS

亞馬遜網絡服務(AWS)已成為計算平台對於創業公司來說,尖端的研究和最大的企業希望提高他們的計算基礎設施。Beplay体育安卓版本與技術,允許客戶使用和建立自己的虛擬服務器,以及該行業的beplay体育app下载地址最大的雲計算服務,AWS權力之間的所謂“雲戰”微軟Azure和穀歌的質量。

Solr

Apache Solr是一個開源(BSD許可)搜索分析引擎守護進程用Java編寫的,是最受歡迎的開源搜索引擎。事實上,Solr權力的搜索功能的許多世界上最大的電子商務網站和社交媒體平台包括Twitter、雅虎、亞馬遜,eBay和eBay的企業。Beplay体育安卓版本

Solr使用一個分布式架構提供快速搜索,和功能獨特的統一存儲API,使搜索引擎能夠無縫地集成幾乎任何企業所使用的存儲機製。

ArangoDB

ArangoDB是一個分布式的、NoSQL麵向文檔的數據庫和已成為一個受歡迎的選擇由於其強大的數據分析處理和易用性。它是一個類似於sql的語言運作的ArangoDB鍵值存儲,允許用戶創建表、連接和查詢相同的方式在關係數據庫中。

ArangoDB很好地保持所有的代碼更新,和支持頁麵設計。隨著項目的成熟和更多的人的貢獻,你可以預期這些頁麵停留日期和易於導航。更不用說,兼容所有主要的編程語言Python和Javascript。

三個最佳Elasticsearch工具

充分利用你的數據,我們建議使用Elasticsearch配合其他工具和software-most特別是Hevo數據,Logstash, Apache Nifi。

Hevo數據

Elasticsearch Hevo數據是一個免費的、開源分布式搜索引擎為了攝取Elasticsearch數據,解析成查詢和集群節點上運行它們作為事件日誌。軟件可以運行在實時分析查詢實時數據和備份數據。

Logstash

簡單地說,Logstash是一個Elasticsearch工具,它允許您定義規則,幫助管理傳入的數據就被Elasticsearch提取。通過數據和立即處理它,Logstash提供分析和可視化工具製造最適合您的數據。

Apache NiFi

Apache Nifi是一組庫允許多個數據源之間的“深度鏈接”,包括但不限於流行的開源API如Facebook API的核心位置,Twitter REST API,甚至Yelp API的應用程序功能。與Apache NiFi,用戶可以聯係自己的api,使數據集的所有信息提供給其他軟件。

Elasticsearch適合你嗎?

你現在知道的所有關於Elasticsearch,從功能到基礎設施和建築,剩下的就是決定是否它是一個理想的工具為您的業務。

額外的資源

回到術語表
Baidu
map