stevenjin 2023-11-15 10:27 采纳率: 97.6%
浏览 8
已结题

c#一个统计集合中运行时间方法

背景:折线图要对运行数据按小时进行标记:
1.有一个集合,包含了为期数据天的设备运行数据
2.集合包含时间与数据两个字段
3.对数据进行统计,每满一个小时进行标记。如1H,2H

  • 写回答

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
    你可以看到他用重采样方式对数据进行处理

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 11月23日
  • 已采纳回答 11月15日
  • 创建了问题 11月15日

悬赏问题

  • ¥17 pro*C预编译“闪回查询”报错SCN不能识别
  • ¥15 微信会员卡接入微信支付商户号收款
  • ¥15 如何获取烟草零售终端数据
  • ¥15 数学建模招标中位数问题
  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向