• 数据迟到超过1天


    • 流数据中有2个时间,1个是程序时间,1个是事件时间
      事件时间:事件发生的事件
      程序时间:数据被服务端接收的时间
      程序时间≥事件事件

    • 例如
      某个事件在客户端15点23分00秒发生
      数据上传到服务端的时间是15点23分01秒
      那么
      事件时间=15:23:00
      程序时间=15:23:01
      数据延时=1秒

    • 一般来说,数据延时不会太大
      内网数据传输延时毫秒级别
      外网数据传输延时远不达到秒级
      多数情况下,延时不会超过1小时

    • 然而某些手机应用
      手机在断网情况下操作,数据临时保存到手机
      直到手机有网,数据才上传到服务端,程序时间远大于事件时间,甚至延时超过1天

    • 使用Flume把流数据写到HDFS,路径含动态时间(如:/temp/flume/kafka/%{topic}/%Y-%m-%d
      %Y-%m-%d默认会用Flume的程序时间
      通常会给Flume配置时间拦截器,使得%Y-%m-%d使用事件时间

    • Flume有个按时间滚动文件的参数,滚动中的文件以.tmp作为后缀
      %Y-%m-%d使用事件时间,某个2022年7月4号21点的数据在5号3点才到,产生2022-07-04/xxxx.tmp文件
      如果HIVE在每天2点执行LOAD DATA任务,数据装载就会不全

    • 通常数据分析允许一定限度的 系统误差
      比如,延时6小时执行LOAD DATA任务可得到99.9%的数据,剩下的迟到数据可忽略不计
      如果高延时情况下仍丢迟到很多数据,就应优化源头数据采集程序


  • 相关阅读:
    委派设计模式
    【Spring Boot】实现全局异常处理
    Docker基本操作
    清除excel中换行符方法
    Modelsim无法生成LICENSE的问题
    计算机网络朝花夕拾
    Python文件高阶操作:复制、删除、移动、压缩文件夹
    Java 线程安全(二)-- synchronized
    利用Python制作本地Excel的查询与生成的程序
    Thinkphp5x远程命令执行及getshell
  • 原文地址:https://blog.csdn.net/Yellow_python/article/details/126035348