首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何构造/实现多维数据/数据立方体

如何构造/实现多维数据/数据立方体
EN

Stack Overflow用户
提问于 2017-10-23 06:11:45
回答 2查看 1.5K关注 0票数 3

我一直在阅读数据立方体是什么,并且有很多资源说明它是什么,以及为什么(OLAP/业务智能/特定列上的聚合)您将使用数据立方体,但永远不会使用。

大多数资源似乎都是引用关系数据存储的,但似乎不必使用关系数据库管理系统。

但是,似乎没有任何东西显示您是如何构造模式的,以及如何有效地进行查询,以避免对所有这些数据进行聚合的缓慢运行时间。我能找到的最好的是这个“当前不可用”的edx类:多维数据模型的开发

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-10-23 07:52:17

您可能已经知道有两种不同的OLAP方法:

  • MOLAP,它需要数据加载步骤来处理可能的聚合(以前定义为“多维数据集”)。内部基于MOLAP的解决方案预先计算可能聚合的度量,因此它能够非常快地执行OLAP查询。这种方法最重要的缺点来自这样一个事实: MOLAP充当缓存:您需要重新加载输入数据来刷新多维数据集(这可能需要大量时间,比如小时),如果您决定向多维数据集添加新的维度/度量,则需要进行完整的再处理。此外,数据集大小+多维数据集配置也有一个自然限制。
  • ROLAP不尝试预处理输入数据;相反,它将OLAP查询转换为数据库聚合查询,以动态计算值。"R“的意思是关系型的,但即使在支持聚合查询的NoSQL数据库(例如,MongoDb)中也可以使用这种方法。由于没有任何数据缓存,用户总是能够获得实际数据(与MOLAP相反),但是DB应该能够更快地执行聚合查询。对于相对较小的数据集,通常的OLTP数据库可以很好地工作( Server、PostgreSql、MySql等),但如果使用大型数据集,则使用专门的DB引擎(如Amazon );它们支持高效的分布式使用场景,能够在几秒钟内处理许多TB。

现在开发MOLAP解决方案有点意义,这种方法在10年前是实际的,当时服务器受到少量RAM的限制,HDD上的SQL数据库无法足够快地处理组,而MOLAP是真正实现“在线分析处理”的唯一途径。目前我们有非常快的NVMe SSD,服务器可能有数百TB的内存和几十个CPU核,因此对于相对较小的数据库(高达TB或更多),通常的OLTP数据库可以足够快地作为ROLAP后端工作(几秒钟内执行查询);在真正大数据的情况下,MOLAP几乎无法以任何方式使用,而且应该以任何方式使用专门的分布式数据库。

票数 3
EN

Stack Overflow用户

发布于 2017-10-23 08:05:20

普遍的观点是,当立方体基于“维度模型”AKA时,它们工作得最好。AKA是一种星型模式,通常(但并不总是)在RDBMS中实现。这将是有意义的,因为这些模型是为快速查询和聚合而设计的。

大多数多维数据集在用户与它们交互之前进行聚合,因此从用户的角度来看,多维数据集本身的聚合/查询时间比源表的结构更有趣。然而,一些多维数据集技术不过是一个“语义层”,它通过查询传递到底层数据库,这些技术被称为ROLAP。在这些情况下,底层数据结构变得更加重要。

从多维数据集的角度来看,提供给用户的数据接口应该是简单的,这通常排除了非维模型,例如直接基于OLTP系统的数据库结构的多维数据集。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46882953

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档