Mondrian vs Elasticsearch:为您的项目选择什么
Mondrian vs Elasticsearch:為您的項(xiàng)目選擇什么
Veronika Rovnik于2019年3月21日發(fā)布
?
?
為您的業(yè)務(wù)應(yīng)用程序?qū)ふ曳治龊蠖艘鎸﹂_發(fā)人員和數(shù)據(jù)倉庫架構(gòu)師來說是一項(xiàng)挑戰(zhàn)。
您的選擇總是取決于在軟件開發(fā)生命周期的早期階段需要考慮的廣泛的業(yè)務(wù),特定于應(yīng)用程序和硬件要求。
為了幫助您對符合項(xiàng)目影響深遠(yuǎn)目標(biāo)的解決方案做出正確選擇,我們決定將兩個(gè)功能強(qiáng)大(但性質(zhì)不同)的工具 -?Elasticsearch和Mondrian?-?置于其中,簡要介紹級(jí)別功能并研究搜索引擎和OLAP服務(wù)器的核心目的。
Elasticsearch
?
世界上最大的公司?向Elasticsearch提供他們的偏好。這并不奇怪- Elasticsearch體現(xiàn)了最好的功能面向文檔的數(shù)據(jù)存儲(chǔ),多租戶的搜索,?并分析引擎在同一時(shí)間。針對搜索和檢索進(jìn)行了優(yōu)化,它為應(yīng)用程序提供了最先進(jìn)的搜索功能。它的多租戶使您能夠根據(jù)需要在群集上擁有盡可能多的索引。
除了搜索功能之外,它還支持分析并提供有效的聚合,有助于從數(shù)據(jù)中提取價(jià)值。
引擎蓋下是什么?
Elasticsearch的核心是Apache Lucene--最受歡迎的信息檢索庫之一,以其性能,可伸縮性和相關(guān)性而聞名。
近實(shí)時(shí)
Elasticsearch被稱為近實(shí)時(shí)搜索?平臺(tái),因?yàn)樗褂幂p量級(jí)過程,通過每秒刷新一次每個(gè)分片來搜索新文檔。
部署
通常,將Elasticsearch添加到您的架構(gòu)設(shè)計(jì)是一個(gè)無痛的過程 - 您可以在本地或在云中運(yùn)行它。實(shí)施工作最少,但從長遠(yuǎn)來看可以獲得最大的成果。
性能和可擴(kuò)展性
可伸縮性始終是一個(gè)成敗的問題,但Elasticsearch具有分布式特性,可確保整體搜索性能。由于將每個(gè)索引劃分為多個(gè)分片,它很容易擴(kuò)展。Sharding允許您在分片之間并行化操作,并且復(fù)制索引的分片可確保在一個(gè)或多個(gè)節(jié)點(diǎn)發(fā)生故障時(shí)的可用性。此外,您可以在創(chuàng)建索引后動(dòng)態(tài)控制副本數(shù),但需要在創(chuàng)建索引時(shí)定義分片數(shù)。
靈活性
Elasticsearch的核心特性之一是不需要預(yù)先指定架構(gòu)。Elasticsearch對文檔進(jìn)行索引并自動(dòng)推斷其類型和字段。這樣,它可以幫助您盡快探索數(shù)據(jù)。
安全
您可以借助X-Pack為您的集群實(shí)施各種安全措施 - X-Pack的擴(kuò)展 - 它還提供警報(bào),監(jiān)控,報(bào)告,機(jī)器學(xué)習(xí)功能。
通常,這些措施包括通過動(dòng)態(tài)腳本防止私有數(shù)據(jù)泄露和執(zhí)行昂貴的請求或外部代碼。此外,您可能希望對更新權(quán)限施加限制。
API
Elasticsearch的所有功能都通過RESTful接口公開。
此外,您可以使用您選擇的任何語言與Elasticsearch進(jìn)行交互。對語言的支持很廣泛 - Java,Python,Curl,PHP,SQL,JavaScript,Ruby等。
社區(qū)
作為一個(gè)開源產(chǎn)品,Elasticsearch得到了來自世界各地的開發(fā)人員的支持。
嘗試參觀彈性論壇?- 它將為您帶來無與倫比的歸屬感。
文檔,發(fā)布和更新
引起注意的第一件事是Elasticsearch文檔如何組織良好和最新。
您可能喜歡的另一件事是帶有用例的部分,它有助于了解各種組織如何在Elasticsearch和ELK堆棧的其他產(chǎn)品的幫助下解決搜索和分析挑戰(zhàn)。?
次要版本和修復(fù)程序經(jīng)常發(fā)生。主要版本也經(jīng)常發(fā)布 - 每兩到四個(gè)月一次。
它是免費(fèi)的嗎?
是的,它是一個(gè)免費(fèi)的搜索引擎,在Apache 2.0許可下作為開源發(fā)布。
我們的想法
Elasticsearch是關(guān)于速度和靈活性的。如果您需要管理復(fù)雜的數(shù)據(jù)流,那么它是最佳選擇。它使搜索過程輕松有效。
您可以將Elasticsearch用作主存儲(chǔ)和搜索引擎。但最佳做法是在現(xiàn)有數(shù)據(jù)庫之外使用Elasticsearch。
使用商業(yè)智能工具為您的應(yīng)用程序提供支持,您可以嘗試使用Flexmonster - 它可以通過強(qiáng)大的過濾,聚合和排序功能將索引中的數(shù)據(jù)轉(zhuǎn)換為洞察力。
要在實(shí)踐中學(xué)習(xí)如何基于Elasticsearch索引中的數(shù)據(jù)構(gòu)建報(bào)表,請參閱“?連接到Elasticsearch”一文。
現(xiàn)在讓我們來看看蒙德里安的概況。
蒙德里安
?
Mondrian是2002年發(fā)布的開源OLAP引擎。它的創(chuàng)建主要受到SSAS的啟發(fā),并且希望克服耗時(shí)的報(bào)告創(chuàng)建過程的問題。
它是如何工作的?
Pentaho架構(gòu)師結(jié)合了ROLAP(關(guān)系在線分析處理)的最佳功能,其簡化的結(jié)構(gòu)和MOLAP(多維在線分析處理)的性能。
從技術(shù)上講,它是數(shù)據(jù)倉庫和分析工具之間的中介。借助數(shù)據(jù)和JDBC的邏輯描述,它從數(shù)據(jù)庫中提取數(shù)據(jù),將MDX查詢轉(zhuǎn)換為SQL查詢,并將OLAP多維數(shù)據(jù)集作為對報(bào)告工具的響應(yīng)發(fā)送。Mondrian的主要特點(diǎn)是?它可以在內(nèi)存中兌換多維數(shù)據(jù)集,以便能夠快速響應(yīng)查詢。
此外,理解Mondrian模式的構(gòu)造也很重要。多維數(shù)據(jù)集是維度和度量的集合。維度表示應(yīng)將度量劃分為類別的屬性。這些維度和層次結(jié)構(gòu)通過模式映射到數(shù)據(jù)庫中的表。
近實(shí)時(shí)?
您可以使用Mondrian實(shí)現(xiàn)近乎實(shí)時(shí)的體驗(yàn),因?yàn)镽OLAP引擎不會(huì)事先計(jì)算維度的交叉點(diǎn),這意味著一旦數(shù)據(jù)庫中的數(shù)據(jù)更新,數(shù)據(jù)就可供最終用戶使用。
這就是使Mondrian成為實(shí)時(shí)系統(tǒng)的好選擇 - 您可以在不斷變化的數(shù)據(jù)庫上運(yùn)行多維查詢。為此,您可以使用其緩存控制API。
部署
您可以在Web容器(Tomcat或JBoss)中運(yùn)行Mondrian,也可以將其作為應(yīng)用程序的一部分嵌入。
性能和可擴(kuò)展性
Mondrian使用內(nèi)存存儲(chǔ)計(jì)算來提高速度。盡管Mondrian本身效率很高,但如果您的SQL查詢未經(jīng)優(yōu)化或架構(gòu)設(shè)計(jì)不當(dāng),它可能會(huì)降低您的應(yīng)用程序速度。此外,設(shè)置,維護(hù)和重構(gòu)OLAP多維數(shù)據(jù)集可能會(huì)花費(fèi)您很多開發(fā)人員的時(shí)間,而這通常是比電源和內(nèi)存更昂貴的資源。盡管如此,通過使用正確的配置,您可以擴(kuò)展Mondrian以供數(shù)百或數(shù)千用戶使用。
靈活性
它的靈活性在于它可以嵌入到多種環(huán)境中并與第三方工具集成。但是Mondrian模式語言強(qiáng)加了某些限制,可以通過向應(yīng)用程序添加自定義插件來克服這些限制。
安全
要限制對OLAP多維數(shù)據(jù)集的某些部分的訪問,可以使用BA服務(wù)器的角色映射在模式定義中定義用戶角色。
API
Mondrian不提供REST API,但您可以使用圍繞Mondrian庫的第三方REST API。?
社區(qū)
蒙德里安也是一個(gè)任何人都可以貢獻(xiàn)的開源項(xiàng)目。如果您需要提出與Mondrian功能相關(guān)的問題,Pentaho官方論壇將隨時(shí)為您服務(wù)。但是,它似乎沒有被積極使用。
文檔,發(fā)布和更新
文檔很全面,但不夠易于理解。不幸的是,它給人一種長文檔的印象,你向下滾動(dòng)直到找到必要的信息。
最新的官方穩(wěn)定版本3.0于2008年發(fā)布。從那時(shí)起,Mondrian主要由開發(fā)人員支持和更新。
它是免費(fèi)的嗎?
是的,蒙德里安是免費(fèi)和開源的。它是在ETL下許可的。
我們的想法
總而言之,如果您將單個(gè)關(guān)系數(shù)據(jù)庫作為存儲(chǔ)層,并且不能完全滿足通過查詢快速獲取搜索結(jié)果的需求,則Mondrian是一個(gè)不錯(cuò)的選擇。它通過提供數(shù)據(jù)的維度視圖,緩存和更高級(jí)別的計(jì)算來擴(kuò)展關(guān)系數(shù)據(jù)庫功能。
如果您決定使用它,您肯定需要一個(gè)先進(jìn)的前端工具來顯示和分析多維數(shù)據(jù)集中的數(shù)據(jù)。這就是Flexmonster的設(shè)計(jì)理念。您可以通過XMLA或Flexmonster Accelerator(用于快速數(shù)據(jù)傳輸?shù)奶厥夥?wù)器端實(shí)用程序)連接到Mondrian,并開始探索OLAP數(shù)據(jù)。要了解更多詳細(xì)信息,請參閱“?連接到Pentaho Mondrian”一文。
將它們整合在一起
Mondrian和Elasticsearch都可用于有效查詢預(yù)聚合數(shù)據(jù)并近乎實(shí)時(shí)地對其進(jìn)行分析,盡管它們使用的技術(shù)基本不同。然而,由于IT市場中開源工具的競爭,前者似乎最終成為過時(shí)且不太流行的解決方案。而且,編寫蒙德里安模式需要更高的學(xué)習(xí)曲線,這可能是一個(gè)繁瑣的過程。
Elasticsearch更受開發(fā)者社區(qū)(尤其是DevOps工程師)的歡迎,它在各個(gè)方面超越了Mondrian:更廣泛的支持?jǐn)?shù)據(jù)類型,可擴(kuò)展性,通過REST接口進(jìn)行通信的能力以及強(qiáng)大的社區(qū)支持。此外,它非常適合日志分析。其他主要功能是近實(shí)時(shí)搜索和無架構(gòu)架構(gòu)。我們建議您獲得實(shí)踐經(jīng)驗(yàn),以確保Elasticsearch的設(shè)計(jì)易于數(shù)據(jù)集成并具有出色的性能。
比較受歡迎程度
我們對Elasticsearch和Mondrian流行度的結(jié)論基于對Google趨勢的搜索查詢的分析。它顯示了過去十年對這兩種解決方案的興趣是如何變化的。在趨勢線圖表中,您可以注意到蒙德里安在其發(fā)布后的前10年內(nèi)需求旺盛,但其在2014年的受歡迎程度下降恰逢Elasticsearch在其主要更新后不久受歡迎的增加。
?
最后的想法
我們希望您現(xiàn)在已準(zhǔn)備好為您的項(xiàng)目做出有關(guān)分析后端引擎的明智決策。
無論您選擇哪種解決方案,您都可以始終信賴Flexmonster。它可以作為數(shù)據(jù)的商業(yè)智能工具,并提供廣泛的機(jī)會(huì) - 您可以連接到Elasticsearch或Mondrian,從索引或OLAP多維數(shù)據(jù)集中獲取匯總數(shù)據(jù)并開始您的思維速度分析。無論您的數(shù)據(jù)集有多大 - Flexmonster都可以處理它。
總結(jié)
以上是生活随笔為你收集整理的Mondrian vs Elasticsearch:为您的项目选择什么的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux下fopen的路径怎么写,li
- 下一篇: java gdal_2、JAVA集成GD