我在一家公司工作,该公司正在考虑将其 BI 结构(SSAS Olap 和 Power BI)迁移到 ElasticSearch/Kibana。我们的 BI 基本上使用聚合作为聚合,如总和、最大值、最小值、计数、第一个、最后一个、多个层次结构级别(组织级别、客户级别、单位级别等)的聚合平均值,以及多个度量之间的表达式(通过聚合并根据日期时间查找第一个/最后一个),例如求和、减法、乘法、除法、百分比,我们还进行一些日期操作。我们总共处理超过 10 亿行。在 SSAS Olap 之前,我们使用 SQL Server OLTP,并且我们的查询需要花费很长时间。因此,我们更改为 OLAP,现在只需几秒钟即可获得聚合度量。但 Microsoft 许可证超出了我们的新预算,现在公司需要免费软件。目前,我们的商业智能解决方案没有数据挖掘,也没有机器学习,只有多个层次结构级别的聚合度量以及这些聚合之间的操作。
我们的解决方案是整个本地部署。
我有 2 个问题:
1-通过免费/基本 Elasticsearch 许可证,我们将能够将我们的商业智能解决方案迁移到 ElasticEngine,并在多个级别操作中执行所有这些层次结构、聚合和搜索?
2-使用免费/基本的 Elasticsearch 引擎,我们将在与我们的 OLAP 多维数据集类似的时间在这数百万个寄存器之间进行这些度量聚合以及度量之间的操作?
最诚挚的问候,
路易斯
最佳答案
一般来说,可以按照您描述的方式使用 ElasticSearch。然而,只有当您经常使用文本列的基于“like”的过滤时,这才具有真正的意义,这个用例非常适合 ElasticSearch。报告所需的所有事实均应包含在一份 ES 文件中;避免使用子集合,对子集合中的字段进行聚合查询(嵌套查询)可能会降低性能。
如果您需要的只是极快的聚合和“精确匹配”过滤,那么使用列式 SQL 兼容数据库可能会更好:
- MemSQL - 免费版本应该足以容纳 10 亿行,如果您需要支持 OLAP/OLTP 数据库使用(例如,经常更新行),这是一个不错的选择
- Yandex ClickHouse - 免费/开源,适合仅附加数据(不频繁更新/删除)的情况。它的聚合查询性能确实是极致,即使在单节点配置下也能足够快地处理 10 亿行的查询
您提到您现有的 BI 基础架构使用 SSAS OLAP,我可能会假设许多报告实际上是数据透视表。大多数免费 BI 工具(包括 Kibana)根本不支持数据透视表,或者只支持非常非常原始的基本数据透视表。幸运的是,存在 PowerBI/Excel 数据透视表的良好替代方案 - 但它不是完全免费的。这里我的意思是SeekTable :它可以连接到我提到的所有数据库(MemSQL、ClickHouse),甚至可以连接到 ElasticSearch [免责声明:我隶属于这个 BI 工具]。
关于elasticsearch - 将 BI 从 SSAS Olap 迁移到免费的 ElasticSearch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60337917/