Mondrian vs Elasticsearch:为您的项目选择什么

Veronika Rovnik于2019年3月21日发布

为您的业务应用程序寻找分析后端引擎对开发人员和数据仓库架构师来说是一项挑战。

您的选择总是取决于在软件开发生命周期的早期阶段需要考虑的广泛的业务,特定于应用程序和硬件要求。

为了帮助您对符合项目影响深远目标的解决方案做出正确选择,我们决定将两个功能强大(但性质不同)的工具 - ElasticsearchMondrian - 置于其中,简要介绍级别功能并研究搜索引擎OLAP服务器的核心目的。

Elasticsearch

世界上最大的公司 向Elasticsearch提供他们的偏好。这并不奇怪- Elasticsearch体现了最好的功能面向文档的数据存储,多租户的搜索 分析引擎在同一时间。针对搜索和检索进行了优化,它为应用程序提供了最先进的搜索功能。它的多租户使您能够根据需要在群集上拥有尽可能多的索引。

除了搜索功能之外,它还支持分析并提供有效的聚合,有助于从数据中提取价值

引擎盖下是什么?

Elasticsearch的核心是Apache Lucene--最受欢迎的信息检索库之一,以其性能,可伸缩性和相关性而闻名。

近实时

Elasticsearch被称为近实时搜索 平台,因为它使用轻量级过程,通过每秒刷新一次每个分片来搜索新文档。

部署

通常,将Elasticsearch添加到您的架构设计是一个无痛的过程 - 您可以在本地或在云中运行它。实施工作最少,但从长远来看可以获得最大的成果。

性能和可扩展性

可伸缩性始终是一个成败的问题,但Elasticsearch具有分布式特性,可确保整体搜索性能。由于将每个索引划分为多个分片,它很容易扩展。Sharding允许您在分片之间并行化操作,并且复制索引的分片可确保在一个或多个节点发生故障时的可用性。此外,您可以在创建索引后动态控制副本数,但需要在创建索引时定义分片数。

灵活性

Elasticsearch的核心特性之一是不需要预先指定架构。Elasticsearch对文档进行索引并自动推断其类型和字段。这样,它可以帮助您尽快探索数据。

安全

您可以借助X-Pack为您的集群实施各种安全措施 - X-Pack的扩展 - 它还提供警报,监控,报告,机器学习功能。

通常,这些措施包括通过动态脚本防止私有数据泄露和执行昂贵的请求或外部代码。此外,您可能希望对更新权限施加限制。

API

Elasticsearch的所有功能都通过RESTful接口公开。

此外,您可以使用您选择的任何语言与Elasticsearch进行交互。对语言的支持很广泛 - Java,Python,Curl,PHP,SQL,JavaScript,Ruby等。

社区

作为一个开源产品,Elasticsearch得到了来自世界各地的开发人员的支持。

尝试参观弹性论坛 - 它将为您带来无与伦比的归属感。

文档,发布和更新

引起注意的第一件事是Elasticsearch文档如何组织良好和最新。

您可能喜欢的另一件事是带有用例的部分,它有助于了解各种组织如何在Elasticsearch和ELK堆栈的其他产品的帮助下解决搜索和分析挑战。

次要版本和修复程序经常发生。主要版本也经常发布 - 每两到四个月一次。

它是免费的吗?

是的,它是一个免费的搜索引擎,在Apache 2.0许可下作为开源发布。

我们的想法

Elasticsearch是关于速度灵活性的。如果您需要管理复杂的数据流,那么它是最佳选择。它使搜索过程轻松有效。

您可以将Elasticsearch用作主存储搜索引擎。但最佳做法是在现有数据库之外使用Elasticsearch。

使用商业智能工具为您的应用程序提供支持,您可以尝试使用Flexmonster - 它可以通过强大的过滤,聚合和排序功能将索引中的数据转换为洞察力

要在实践中学习如何基于Elasticsearch索引中的数据构建报表,请参阅“ 连接到Elasticsearch”一文。

现在让我们来看看蒙德里安的概况。

蒙德里安

Mondrian是2002年发布的开源OLAP引擎。它的创建主要受到SSAS的启发,并且希望克服耗时的报告创建过程的问题。

它是如何工作的?

Pentaho架构师结合了ROLAP(关系在线分析处理)的最佳功能,其简化的结构和MOLAP(多维在线分析处理)的性能。

从技术上讲,它是数据仓库和分析工具之间的中介。借助数据和JDBC的逻辑描述,它从数据库中提取数据,将MDX查询转换为SQL查询,并将OLAP多维数据集作为对报告工具的响应发送。Mondrian的主要特点是 可以在内存中兑换多维数据集,以便能够快速响应查询

此外,理解Mondrian模式构造也很重要多维数据集是维度和度量的集合。维度表示应将度量划分为类别的属性。这些维度和层次结构通过模式映射到数据库中的表。

近实时 

您可以使用Mondrian实现近乎实时的体验,因为ROLAP引擎不会事先计算维度的交叉点,这意味着一旦数据库中的数据更新,数据就可供最终用户使用。

这就是使Mondrian成为实时系统的好选择 - 您可以在不断变化的数据库上运行多维查询。为此,您可以使用其缓存控制API。

部署

您可以在Web容器(Tomcat或JBoss)中运行Mondrian,也可以将其作为应用程序的一部分嵌入。

性能和可扩展性

Mondrian使用内存存储计算来提高速度。尽管Mondrian本身效率很高,但如果您的SQL查询未经优化或架构设计不当,它可能会降低您的应用程序速度。此外,设置,维护和重构OLAP多维数据集可能会花费您很多开发人员的时间,而这通常是比电源和内存更昂贵的资源。尽管如此,通过使用正确的配置,您可以扩展Mondrian以供数百或数千用户使用。

灵活性

它的灵活性在于它可以嵌入到多种环境中并与第三方工具集成。但是Mondrian模式语言强加了某些限制,可以通过向应用程序添加自定义插件来克服这些限制。

安全

要限制对OLAP多维数据集的某些部分的访问,可以使用BA服务器的角色映射在模式定义中定义用户角色。

API

Mondrian不提供REST API,但您可以使用围绕Mondrian库的第三方REST API。

社区

蒙德里安也是一个任何人都可以贡献的开源项目。如果您需要提出与Mondrian功能相关的问题,Pentaho官方论坛将随时为您服务。但是,它似乎没有被积极使用。

文档,发布和更新

文档很全面,但不够易于理解。不幸的是,它给人一种长文档的印象,你向下滚动直到找到必要的信息。

最新的官方稳定版本3.0于2008年发布。从那时起,Mondrian主要由开发人员支持和更新。

它是免费的吗?

是的,蒙德里安是免费和开源的。它是在ETL下许可的。

我们的想法

总而言之,如果您将单个关系数据库作为存储层,并且不能完全满足通过查询快速获取搜索结果的需求,则Mondrian是一个不错的选择。它通过提供数据的维度视图,缓存和更高级别的计算来扩展关系数据库功能。

如果您决定使用它,您肯定需要一个先进的前端工具来显示和分析多维数据集中的数据。这就是Flexmonster的设计理念。您可以通过XMLA或Flexmonster Accelerator(用于快速数据传输的特殊服务器端实用程序)连接到Mondrian,并开始探索OLAP数据。要了解更多详细信息,请参阅“ 连接到Pentaho Mondrian”一文。

将它们整合在一起

Mondrian和Elasticsearch都可用于有效查询预聚合数据并近乎实时地对其进行分析,尽管它们使用的技术基本不同。然而,由于IT市场中开源工具的竞争,前者似乎最终成为过时且不太流行的解决方案。而且,编写蒙德里安模式需要更高的学习曲线,这可能是一个繁琐的过程。

Elasticsearch更受开发者社区(尤其是DevOps工程师)的欢迎,它在各个方面超越了Mondrian:更广泛的支持数据类型,可扩展性,通过REST接口进行通信的能力以及强大的社区支持。此外,它非常适合日志分析。其他主要功能是近实时搜索和无架构架构。我们建议您获得实践经验,以确保Elasticsearch的设计易于数据集成并具有出色的性能。

比较受欢迎程度

我们对Elasticsearch和Mondrian流行度的结论基于对Google趋势的搜索查询的分析。它显示了过去十年对这两种解决方案的兴趣是如何变化的。在趋势线图表中,您可以注意到蒙德里安在其发布后的前10年内需求旺盛,但其在2014年的受欢迎程度下降恰逢Elasticsearch在其主要更新后不久受欢迎的增加。

最后的想法

我们希望您现在已准备好为您的项目做出有关分析后端引擎的明智决策。

无论您选择哪种解决方案,您都可以始终信赖Flexmonster。它可以作为数据的商业智能工具,并提供广泛的机会 - 您可以连接到ElasticsearchMondrian,从索引或OLAP多维数据集中获取汇总数据并开始您的思维速度分析。无论您的数据集有多大 - Flexmonster都可以处理它。

Mondrian vs Elasticsearch:为您的项目选择什么相关推荐

  1. 理解elasticsearch

    思考:如果我们要做一个通过关键词搜索文章的功能,需要搜索哪些字段,以及使用什么技术方案呢? 搜索字段: 标题 内容 作者 技术方案: mysql的模糊查询 %like% 优点:实现起来简单 缺点:数据 ...

  2. Elasticsearch学习之路(一)

    一.前序 1.1正向索引和倒排索引 ** 正向索引通常用于数据库中,在搜索引擎领域使用的最多的就是倒排索引 ** 通过例子表示: 我爱编程, 我爱编程,我是小码农 1.1.1 正向索引 假设我们使用m ...

  3. 2021年大数据ELK(二十五):添加Elasticsearch数据源

    全网最详细的大数据ELK文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 添加Elasticsearch数据源 一.Kibana索引模式 添加Elast ...

  4. 2021年大数据ELK(十九):使用FileBeat采集Kafka日志到Elasticsearch

    全网最详细的大数据ELK文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 使用FileBeat采集Kafka日志到Elasticsearch 一.需求分 ...

  5. 2021年大数据ELK(十七):Elasticsearch SQL 订单统计分析案例

    全网最详细的大数据ELK文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 订单统计分析案例 一.案例介绍 二.创建索引 三.导入测试数据 四.统计不同支 ...

  6. 2021年大数据ELK(十六):Elasticsearch SQL(职位查询案例)

    全网最详细的大数据ELK文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 职位查询案例 一.查询职位索引库中的一条数据 二.将SQL转换为DSL 三.职 ...

  7. 2021年大数据ELK(十五):Elasticsearch SQL简单介绍

    全网最详细的大数据ELK文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 Elasticsearch SQL简单介绍 一.SQL与Elasticsear ...

  8. 2021年大数据ELK(十三):Elasticsearch编程(添加职位数据)

    全网最详细的大数据ELK文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 Elasticsearch编程 一.添加职位数据 1.初始化客户端连接 2.实 ...

  9. 2021年大数据ELK(十二):Elasticsearch编程(环境准备)

    全网最详细的大数据ELK文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 Elasticsearch编程 一.环境准备 1.准备IDEA项目结构 2.准 ...

最新文章

  1. 如何使用React.js和Heroku快速实现从想法到URL的转变
  2. Java基础教程(3)--回顾HelloWorld
  3. client-go删除job同时删除job关联的pod
  4. thinkphp-volist3
  5. java如何做测试数据库_如何模拟用于测试的数据库(Java)?
  6. chrome xp 扫描此文件时,防病毒软件意外失败
  7. 抽取随即人员——SqlServer_Proc_Random
  8. MyEclipse自动补全
  9. 二级指针与指针数组的关系
  10. Win7图片查看器打印不了图片怎么办
  11. 【CCF】201712-2游戏
  12. apollo修改配置刷新bean_携程开源的分布式apollo技术整合springboot集成实现动态刷新配置
  13. Hive查看执行计划
  14. SparkSql与Redis综合练习
  15. inode-软链接与硬链接
  16. python日期时间模块_Python模块|时间处理模块-日期时间模块,python,datetime
  17. 解决安全频道支持出错,代码:80072F7D问题
  18. 如何在物联网低代码平台中使用数据字典功能?
  19. 微机中锁存器和缓冲器的区别
  20. 40-42-网络层ARP协议,ARP欺骗,网络执法官和arp防火墙

热门文章

  1. Python爬虫兼职,在家也能赚钱
  2. Palette的使用
  3. 实体识别(4) -基于Bert进行商品标题实体识别[很详细]
  4. 计算机系统的有哪些功能是什么意思,olt是什么意思(olt有什么功能和用途)
  5. lastIndexOf的用法
  6. Office办公软件操作技巧 office快捷键大全
  7. Matplotlib数据可视化(5)
  8. php 全国省市代码,symfony-php-mysql 自动生成全国省市区表及车牌表
  9. java 导出excel教程,[Java教程]导出大量数据到Excel的一种方式
  10. 微信和钉钉网页分享流程