【发布时间】:2012-01-27 09:12:45
【问题描述】:
我的代码从 Web 服务中捕获数值。捕获的值通常会增加,但有时会减少。现在,我只是对我在特定时间观察到的内容做一个愚蠢的捕捉......这就是我的表结构现在的样子:
id date_collected value1_observed value2_observed
1 2012-01-26 1:00am 500 12
2 2012-01-26 1:01am 90000 NULL
3 2012-01-26 1:02am 100 50
1 2012-01-26 7:23am 502 12
2 2012-01-26 7:24am 90105 NULL
3 2012-01-26 8:09am 97 55
你可以看到...
- ID=1 值1 在 6 小时 23 分钟内增加了 2
- ID=2 值1 在 6 小时 23 分钟内增加了 105
- ID=3 值1 在 7 小时 8 分钟内减少了 3
困难:
- 收集时间不一致(我每天收集多次,收集之间的时间长度不同)
- 值可以增加或减少或为空
我已经捕获了数千万行这些记录,我希望能够更轻松地查询它们,所以我想我需要将这些数据转换为更适合我的问题的架构想回答。我希望能够找到如下模式:
- “在凌晨 1 点到 5 点之间,这些 ID 的值变化最大”。
- “在过去 30 天内,哪些 ID 的 value2 增长最快(绝对和相对)?”
对于我应该如何构建架构有什么建议吗?是否可以将这些数据转换为传统的星型模式?
更新回答问题:
- 我目前使用的是 Microsoft SQL Server,但愿意使用 MySQL 或其他开源选项。
- 如果 id 1 从 50 变为 100 到 52,我想知道它变为 +50,然后变为 -48。这样我就可以看到随着时间的推移波动和净收益/损失。例如,如果我在一个网站上跟踪注册用户......通常这个数字总是会上升,但如果人们删除他们的帐户,我会想要确定这种趋势。但是,如果我的应用没有观察到从 50 到 100 的变化,只记录了 50 和 52,它就不会知道这个数字曾经达到 100。
感谢您的任何见解/指导,
-保罗
【问题讨论】:
-
请同时指定您正在使用的数据库
-
关于“值1的最大变化”,如果值1在你的区间内从50变到100再变回52,是变2还是变98?
-
我已更新帖子以回答 Lukas Eder 和 Catcall 的问题。
-
value1和value2有什么关系吗?为什么 id 值一直重复,它们代表什么采样设备或采样操作?
-
@ssmusoke value1_observed 和 value2_observed 是与 ID 关联的时间点值。想象一下代表城市的 ID,然后 value1_observed 可能是温度, value2_observed 可能是气压。
标签: database-design