【问题标题】:Down sampling times series data in oracle在oracle中对时间序列数据进行下采样
【发布时间】:2014-04-10 23:58:50
【问题描述】:

我有一组时间序列数据,我想在折线图上显示。数据当前存储在 oracle 表中,数据以 1 点/秒的速度采样。要求是在 6 个月的时间段内绘制数据。有没有办法对 oracle 内部的数据进行下采样(这可以在各种图表中完成,但我不想通过网络移动数据)。例如,如果查询返回 10K 点,我怎样才能将其采样到 1K 点,并且仍然具有折线图并保持 10K 点的视觉特征(峰/谷)。

【问题讨论】:

  • 你想达到多复杂的程度?如果数据集中间有 1 秒是一个巨大的异常值,但其他一切基本上都是一条平线,那么是否可以接受,至少有可能跳过该点并呈现一条平线?还是“视觉特征”包括所有异常值?什么为您定义了异常值?下采样的次数越多,对数据集的最佳拟合线之类的影响就越大——不过,很难先验地说出影响有多大。
  • 有没有办法使异常值的程度可配置?例如,我可以说任何高于/低于前一点(或 n 点???)的单点(这是变量),那么该点很重要。关键是异常值,这意味着用户不关心超过六个月的“平线”。有趣的数据是异常值。一旦识别出异常值,用户就可以放大该区域并降低采样率(即减少采样)。

标签: oracle web statistics


【解决方案1】:

我的建议是显示按时间间隔平均的值,并且还可以放大并显示在较短间隔内平均的较短范围,并在时间范围足够短时显示原始数据(无平均值) .

例如:

  • 当时间范围大于 1 个月时,按天平均
  • 当时间范围小于 1 个月且大于 1 天时,按小时平均
  • 当时间范围小于 1 天且大于 1 小时时,按分钟平均
  • 当时间范围小于 1 小时时,仅原始数据(无平均值)

顺便说一句,我很确定您可以告诉 Oracle 在 SQL 查询中作为 SELECT 语句中的子句进行平均。我不知道语法。

【讨论】:

    猜你喜欢
    • 2019-10-22
    • 2018-12-04
    • 2019-01-26
    • 2017-11-18
    • 2014-12-15
    • 2021-09-20
    • 1970-01-01
    • 2016-01-27
    • 1970-01-01
    相关资源
    最近更新 更多