首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OLAP与内存

OLAP与内存
EN

Stack Overflow用户
提问于 2016-01-22 13:49:08
回答 1查看 4K关注 0票数 1

我正在处理大数据,我的所有后端逻辑都是用php编写的。因此,为了更快的输出,哪种折叠技术对我的产品是有效的和有益的。

  1. 奥拉普。
  2. 内存数据库。
EN

回答 1

Stack Overflow用户

发布于 2017-01-09 22:04:07

当我们谈到大数据时,我会选择一个OLAP数据库。但是让我们更仔细地看看这些技术:

联机分析处理

..。具有尺寸级数据预汇总的基本技术思想。

让我们猜一下,您想要查询一个销售订单表,其中包含每天、每月和年份的数千份订单。您定义的尺寸,如订单日期,销售渠道,船舶到国家和措施,如营业额,没有订单,发货时间。

通常,您将使用OLAP数据库回答以下问题:

  • 我们在2016年6月收到了多少销售订单?
  • 2016年销售渠道商店寄往美国的营业额(销售订单总量)是多少?
  • 平均每周/月运送一份销售订单需要多长时间?

..。或更技术性的:

您可以回答所有问题,其中SELECT子句中有聚合,where子句中有维度:

代码语言:javascript
复制
SELECT
    SUM(amount) AS Turnover,
    AVG(shipping_time) AS avg_shipping_time
FROM sales_orders
WHERE DATEPART(year,order_date) = 2016 AND sales_channel = 'SHOP'

随着OLAP系统能够聚合的越多,性能也越好。因此,使用销售订单号或post地址作为维度是一种糟糕的方法。OLAP的想法是消除数据(或行)。这就需要标准化的数据。

最好在关系数据库(数据仓库)中回答以下问题:

  • 哪个是2016年9月前50名的销售订单?
  • 告诉我2017年1月销售订单的客户地址等等。

记忆里是什么?

内存中的思想是,在RAM中查询数据比在磁盘上查询数据要快。但RAM也很昂贵。

关系数据库中的内存实际上是为OLTP (在线事务处理)系统构建的--用户进行事务和工作的系统--而不是用于分析。

实际上,像SQL Server Analytics Service这样的企业级OLAP系统在聚合数据后也使用内存中的技术(OLAP技术)。你就是看不见。

--

所以OLAP是对的还是.?

我们还要考虑其他一些问题: OLAP数据库与关系数据库不同,有时它太大,无法使用OLAP数据库(f.e )。当你只有一张大桌子的时候)。需要处理OLAP数据库(聚合和准备使用)。大部分时间都是在没有人工作的晚上完成的(好的,如果你想的话,你可以每秒钟做一次:-)

如果您是大数据新手,并且只想在您的应用程序中修复这一点--并且对OLAP一无所知,我建议您:尝试在您的应用程序代码中修复它--除非您希望使用新的术语、语言(如MDX )而不是SQL等来挖掘一个新的世界。

复杂性取决于您选择的OLAP数据库。但是实际上,您可以轻松地在应用程序中开发自己的"OLAP“聚合级别.它可能不像OLAP数据库那么灵活。

您的应用程序中可能的解决方案可能是:

  • 在其他DBs中使用Server索引视图或类似的函数
  • 使用SQL表触发器
  • 使用cron作业聚合数据并将其写入表中。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34948250

复制
相关文章

相似问题

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