背景:折线图要对运行数据按小时进行标记:
1.有一个集合,包含了为期数据天的设备运行数据
2.集合包含时间与数据两个字段
3.对数据进行统计,每满一个小时进行标记。如1H,2H
c#一个统计集合中运行时间方法
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- wanghui0380 2023-11-15 11:08关注
丢到数据库里去,去数据库统计。(sql查询按时间端统计查询你应该会)
虽然我们可以自己弄,不过不建议。对实时数据统计,你不放数据库里就得放内存里,那么考虑一下1个小时的内存开销
当然也不是没有办法。比如我提过很多次的 RX.net.
那么
Rx.Window(TimeSpan.FromHour(1)).订阅(p=>{ int count=0; p.订阅(p2=>{ count=count+1; },p结束处理委托=>{把这一个小时统计数据count发布出去}) })
当然,这种东西我们以前跟那位大然然道德帝杠的时候早说过了,mqtt+普罗米修斯
为啥是这种,mqtt你应该知道了,他可以转发到普米修斯系统,普米修斯后面是个时序数据库,而时序数据库天然就可以对数据进行分时段抽样,合计。
当然mqtt还可以转发给kafaka,转发给kafafa了,你可以用spark,flink这类做实时统计了那个大然然道德帝,完全不考虑后续需求的。我们回答这说,未来你能碰到的问题,在早期就可以留出后路给自己的
最后说明:我们不知道你的应用是什么,分时段可以是聚合,可以是抽样,可以是平均,可以是移动平均,也可以是重采样。
比如:温度数据很明显我不能聚合sum,一个小时总温度这个要求不对。所以他可以是平均温度,加权移动温度,或者按1小时的频率重采样温度,或者是中位数温度。
故建议用时序数据库,是因为这些东西是时序数据库内置算法(你用标准tsql,这些算法就要你自己来了)
看个例子(虽然他是python,不过我不是要你看python,我是要你看他对时序数据的处理方式)
https://mp.weixin.qq.com/s?__biz=MzI1MjQ2OTQ3Ng==&mid=2247555855&idx=1&sn=d174760a54cb1f46e172e08ff70c90ca&chksm=e9e11284de969b9236217f26228cb7b7fb46a2a698ea6c3c1e3dc62aaec7f5e3e696b1e2f475&scene=27
你可以看到他用重采样方式对数据进行处理本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥17 pro*C预编译“闪回查询”报错SCN不能识别
- ¥15 微信会员卡接入微信支付商户号收款
- ¥15 如何获取烟草零售终端数据
- ¥15 数学建模招标中位数问题
- ¥15 phython路径名过长报错 不知道什么问题
- ¥15 深度学习中模型转换该怎么实现
- ¥15 HLs设计手写数字识别程序编译通不过
- ¥15 Stata外部命令安装问题求帮助!
- ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
- ¥15 TYPCE母转母,插入认方向