【问题标题】:Migrate BI from SSAS Olap to the free ElasticSearch将 BI 从 SSAS Olap 迁移到免费的 ElasticSearch
【发布时间】:2020-02-21 11:38:04
【问题描述】:

我在一家正在考虑将其 BI 结构(SSAS Olap 和 Power BI)迁移到 ElasticSearch/Kibana 的公司工作。我们的 BI 基本上使用聚合作为总和、最大值、最小值、计数、第一个、最后一个、多个层次结构级别(组织级别、客户级别、单位级别等)的聚合平均值,以及多个度量之间的表达式(通过聚合并根据 datetime 查找第一个/最后一个),例如求和、减法、乘法、除法、百分比,我们还进行了一些日期操作。我们总共处理超过 10 亿行。在使用 SSAS Olap 之前,我们使用的是 SQL Server OLTP,我们的查询需要花费很多时间。因为那样,我们更改为 OLAP,现在我们在几秒钟内就有了我们的聚合度量。但是 Microsoft 许可证超出了我们的新预算,现在公司需要免费软件。目前,我们的商业智能解决方案没有数据挖掘,也没有机器学习,只有多个层次级别的聚合度量,以及这些聚合之间的操作。

我们的解决方案是整个内部部署。

我有两个问题:

1-使用免费/基本 Elasticsearch 许可证,我们将能够将我们的商业智能解决方案迁移到 ElasticEngine 并在多个级别操作中执行所有这些层次结构、聚合和搜索?

2-使用免费/基本的 Elasticsearch 引擎,我们将在与我们的 OLAP 多维数据集相似的时间在这数百万个寄存器和度量之间的操作之间进行这些度量聚合?

最好的问候,

路易斯

【问题讨论】:

    标签: elasticsearch elastic-stack business-intelligence olap


    【解决方案1】:

    一般情况下,可以按照您描述的方式使用 ElasticSearch。但是,只有当您经常使用基于“like”的文本列过滤时,这才有意义,这个用例非常适合 ElasticSearch。报告所需的所有事实都应包含在一份 ES 文件中;避免使用子集合,对来自子集合的字段的聚合查询(嵌套查询)可能会影响性能。

    如果您只需要该死的快速聚合和“精确匹配”过滤,那么使用列式 SQL 兼容数据库可能会更好:

    • MemSQL - 免费版应该足以处理 10 亿行,如果您需要同时支持 OLAP/OLTP 数据库使用(例如,经常更新行),这是一个不错的选择
    • Yandex ClickHouse - 免费/开源,适用于您的数据仅附加(无频繁更新/删除)的情况。它的聚合查询性能确实是一流的,即使在单节点配置下也能以足够快的速度处理 10 亿行的查询

    您提到您现有的 BI 基础架构使用 SSAS OLAP,我可以假设许多报表实际上是数据透视表。大多数免费的 BI 工具(包括 Kibana)根本不支持数据透视表,或者只支持非常原始的基本数据透视表。幸运的是,存在 PowerBI/Excel PivotTable 的良好替代品——但它不是完全免费的。这里我的意思是SeekTable:它可以连接到我提到的所有数据库(MemSQL、ClickHouse),甚至可以连接到 ElasticSearch [免责声明:我隶属于这个 BI 工具]。

    【讨论】:

    • Vitaliy,感谢您的启发性回答。在我们的数据库中发生的一件事是,我们的 OLTP 中的某些维度行有时会收到更新操作(例如:客户数据作为标识);但是我们的维度表只有几行(成百上千行)。这可能是 Elasticsearch 文档结构中的问题?
    • 可以更新ES文档,这里没问题。但是在 ES 中,文档中的每个字段都被索引(索引同时使用存储和处理资源),这对于 BI 目的来说可能是多余的。专门的列式或混合数据库通常支持数据压缩,它们能够在几秒钟内自然地处理数十亿行 - 作为奖励,您可以获得 SQL 的全部功能(以及具体数据库支持的专门分析 SQL 函数)。跨度>
    猜你喜欢
    • 1970-01-01
    • 2018-06-01
    • 2022-11-17
    • 1970-01-01
    • 2020-05-10
    • 2014-09-09
    • 1970-01-01
    • 2017-08-13
    • 2021-02-04
    相关资源
    最近更新 更多