在 OLAP 计算期间使用哪些技术来处理不同的时区?

     2023-03-25     191

关键词:

【中文标题】在 OLAP 计算期间使用哪些技术来处理不同的时区?【英文标题】:What techniques are used to handle different timezone during OLAP calculation? 【发布时间】:2015-06-22 04:57:11 【问题描述】:

我正在读一本关于数据仓库的书。它告诉如果我有一个日期时间数据,我应该将它存储为单独的列:年、月、日期和原始日期时间,以毫秒为单位。它需要用于聚合目的(另请参阅更新部分) - 按日期、月份等进行聚合。但是如果我需要针对不同时区进行聚合怎么办?是的,可以在 UI 上显示 UTC + 时区,但如果企业希望看到“移位”日期间的聚合而不是从 00:00+07 开始呢?

注意

可以计算每个时区的每次时间聚合(年、月、日),但计算量太大(据我所知)。也许有更好的方法?还是每个时区的每次计算都是通用的解决方案?

更新

关于聚合。我的意思是,有一个进程按计划运行(它首先在所有数据上运行,然后按计划运行,仅用于新的comming)。所以这个过程,当它“看到”新数据时,它会计算所有列的聚合。例如,假设数据是客户订单,它有成本、用户 ID 和日期。因此,处理具有 1 个客户订单的抓取行,并在几个 OLAP 立方体单元格中“添加”此信息:日、月和年。假设客户在22.06.2015 上使用$1 下订单。此订单数据(通常是成本)被“添加”到以下 OLAP 单元格中:22 day、06month 和 2015。我不是合格的 OLAP 设计人员,并且单元格可能不同(例如,它可以添加到 22.06 而不是 22),但我的想法是将数据放入单独的单元格以进行查询优化,例如从一个立方体单元格22.06.2015 中选择成本总和要快得多,而不是在22.06.2015 上运行所有订单的计算。但是在这种情况下,设计日从 UTC 开始,如果我需要从不同的时区开始怎么办?使用这种方法,数据聚合增加了 24 倍。 :(

在 UTC 中存储日期并在 UI 上显示偏移量是一种常见做法,但在需要预先计算时,在 OLAP 设计中则不然。

【问题讨论】:

请在投反对票时发表评论。 我猜您只是不在数据库中执行此操作,而是在您用来以报告形式生成结果的工具中执行此操作,或者您希望/需要显示数据。如果时区对您很重要,那么也可以使用字段来存储时区。 再次:使用另一个字段来存储该日期的相关时区。当客户端使用数据时,那一刻您将在时区上进行操作。但说真的,我看不出看到公司在某个时区或其他时区赚了多少钱和将其用作报告相关数据的一部分之间的区别。我发现真正有用的是我可以用来做出面向业务的决策的适当时间。 假设时区存储在单独的字段中,但是预先计算呢?客户端请求计算过长怎么办?所以我需要在数据库中存储一些中间结果并在用户询问我数据之前计算它。 您不应在用户生成报告时汇总此类数据,应在一天/一周的特定时间插入/更新数据。这就是商业智能 101。 【参考方案1】:

但首先,在使其他聚合/计算更易于进行和维护的级别上定义您的“仓库粒度”。

在我看来,您应该在数据仓库和 ETL 级别“处理和映射”此业务需求。是的,将每个日期级别保留在单独的列上,您将能够使聚合“简单而简单”。不要担心添加另一个级别,例如“24 小时聚合”。 OLAP 就是为这种方法构建的。

如果您想避免额外的聚合,请创建专用数据集市。您的事实表将是accumulating snapshot,而不是事务事实。接下来创建 Dim "UTC" 来处理您的要求。您会将聚合工作从 OLAP 级别转移到 ETL 级别。

希望对您有所帮助。

【讨论】:

在初始化期间创建具有不同时区的新 JavaScript 日期对象 [重复]

】在初始化期间创建具有不同时区的新JavaScript日期对象[重复]【英文标题】:CreateNewJavaScriptDateObjectWithDifferentTimezoneDuringInitialization[duplicate]【发布时间】:2014-01-2116:19:52【问题描述】:我已经看过很多,真的很多帖子来找出我的... 查看详情

oltp和olap有何区别?

...要对比。参考技术A1、适用人员不同:OLTP主要供基层人员使用,进行一线业务操作。OLAP则是探索并挖掘数据价值,作为企业高层进行决策的参考。2、面向内容不同:OLTP面向应用,OLAP面向主题;4、数据特点不同:OLTP的数据特点... 查看详情

使用 Intersystems 处理不同的时区

】使用Intersystems处理不同的时区【英文标题】:WorkingwithdifferenttimezoneswithIntersystems【发布时间】:2021-12-0900:42:19【问题描述】:我们正在尝试解决但应该能够理解的相当复杂的场景。我们正在开发一个在具有特定时区的服务器上... 查看详情

在 Unmarshal 期间处理不同类型的参数

】在Unmarshal期间处理不同类型的参数【英文标题】:DealingwithdifferenttypesofparametersduringUnmarshal【发布时间】:2021-04-0415:36:00【问题描述】:我正在使用我的Fritz!Box路由器中的一些API,我想在一个体面的结构中解组json响应,只需要... 查看详情

复变函数在计算机领域的应用都有哪些?

参考技术A有用。在当下,计算机科学领域里能大量运用高数线代的当属于工程领域。如流体力学弹性力学材料力学中各种工程问题的处理。比较典型的就是使用有限元法处理流体力学中理想流体在粘性流体运动问题。工程中锈... 查看详情

Olap 数据库处理选项和对象

...请您帮助我了解olap处理选项以及在不同情况下需要处理哪些olap数据库对象?我们何时需要处理完整和整个olap数据库?我们什么时候需要处理,在哪种类型中只需要多维数据集?我们何时需要处理以及在哪种类型中只添加了一个... 查看详情

利用编码的方法进行二维裁剪时都有哪些判断规则

...该图片被裁剪成不规则的图形了。参考技术A第一章  1.计算机图形:用数学方法描述,通过计算机生成、处理、存储和显示的对象。  2.图形和图像的主要区别是表示方法不同:图形是用矢量表示;图像是用点阵表示的。图... 查看详情

olap简介

...视图直接映射到数据立方体上,使用数据立方体能够将预计算的汇总数据快速索引。比较典型的MOLAP框架有kylin(apache),Lylin(eba 查看详情

处理存储中的时区?

...以嵌入偏移量输入的方式存储所有内容?每次渲染时都要计算一下吗?显示相对时间“1分钟前”?【问题讨论】:【参考方案1】:就个人而言,我看不出有什么理由不将所有内容存储在GMT中,然后使用用户本地时区来显示与他... 查看详情

自适应阈值处理

...8195; 在进行阈值处理时,自适应阈值处理的方式通过计算每个像素点周围临近区域的加权平均值获得阈值,并使用该阈值对当前像素点进行处理。  与普通的阈值处理方法相比,自适应阈值处理能够更好地处理明暗... 查看详情

算法工程师工作期间需要掌握啥知识?学到哪些核心技术?

...局包括技术资源的集成和技术系统规划的促进。工作要求计算机及相关专业本科以上学历,在互联网搜索,推荐,流量或相关领域有2年以上工作经验。熟悉机器学习/ 查看详情

如何根据 OLAP 多维数据集中的度量计算不同的计数

】如何根据OLAP多维数据集中的度量计算不同的计数【英文标题】:howtocalculatecountdistinctbasedonameasureinOLAPcube【发布时间】:2014-08-1121:00:51【问题描述】:我正在尝试根据事实表中名为“IsDailyActive”的属性为我的SSASOLAP多维数据集... 查看详情

flink和spark对比

...术A技术理念不同:Spark的技术理念是使用微批来模拟流的计算,基于Micro-batch,数据流以时间为单位被切分为一个个批次,通过分布式数据集RDD进行批量处理,是一种伪实时。而Flink是基于事件驱动,它是一个面向流的处理框架... 查看详情

如何在程序崩溃后释放 managed_shared_memory:在调试期间使用哪些有效技术?

】如何在程序崩溃后释放managed_shared_memory:在调试期间使用哪些有效技术?【英文标题】:howtofreemanaged_shared_memoryafteraprogramcrash:whatareeffectivetechniquestouseduringdebugging?【发布时间】:2016-06-1020:03:04【问题描述】:诚然,我是一名新... 查看详情

使用 Django ORM 计算不同时区每天的事件类型

】使用DjangoORM计算不同时区每天的事件类型【英文标题】:CounteventstypesperdayfordifferenttimezonesusingDjangoORM【发布时间】:2020-07-1711:47:06【问题描述】:我们有一个表格,其中包含多个事件以及添加事件的时间。用于存储事件的默认... 查看详情

java基础学习之大数字处理相关的类有哪些?(代码片段)

...,就比如0和1之间,你说有多少个数字?无数个!但是在计算机中,数字的个数其实是有限的,因为计算机有存储空间的限制,所以实际上无论是整数还是浮点数,都是有最大范围的。比如在Java中,整型的最大范围是64位的long型... 查看详情

主流的olap引擎介绍-olap极简教程

什么是OLAP?随着互联网、物联网、5G、人工智能、云计算等技术的不断发展,越来越多的数据在互联网上产生,对互联网的运营也开始进入精细化,因此大数据、数据分析、数字营销开始变成每个互联网企业的重点。... 查看详情

olap极简教程:主流的olap引擎介绍

什么是OLAP?随着互联网、物联网、5G、人工智能、云计算等技术的不断发展,越来越多的数据在互联网上产生,对互联网的运营也开始进入精细化,因此大数据、数据分析、数字营销开始变成每个互联网企业的重点。... 查看详情