Administrator
发布于 2025-11-27 / 5 阅读
0
0

Hyper CDN之数据字段设计

1.缩减数据上报字段

时间戳 用户ID 站点 状态码 响应长度 回源响应长度 命中状态 节点级别 节点回源的目标

2.节点数据预处理:转换

1.舍弃数据:节点级别:Level2 && 命中状态:命中
2.说明
    时间戳:时间颗粒度/5分钟转化 公式:秒级时间戳-秒级时间戳%60
    用户ID:节点端是否可以拿到
    站点:最好转化为站点ID,方便做索引
    状态码:状态码
    流量:响应长度
    命中流量:命中时的响应长度
    回源流量:回源响应长度
    命中数:命中:1,未命中:0
    节点级别:Level1 或 Level2
    节点回源的目标:Origin 或 L2Node
    请求数:1

3.节点数据预处理:分流

分流1:
1.生成用于流量预统计的临时数据,所需字段
    时间戳 用户ID 站点 流量 命中流量 回源流量 命中数 请求数
2.数据过滤:
    (节点级别=="Level1"&&节点回源的目标=="Origin")||(节点级别=="Level1"&& (命中数== 1||回源流量==0))||节点级别=="Level2"
分流1:
1.生成用于状态码预统计的临时数据,所需字段
    时间戳 用户ID 站点 状态码 请求数
2.数据过滤:
    节点级别=="Level1"

4.节点数据预处理:预统计

分流1:
    以时间戳 用户ID 站点 3个字段作为主键进行SUM
    时间戳 用户ID 站点 SUM(流量) SUM(命中流量) SUM(回源流量) SUM(命中数) SUM(请求数)
    数据实时累加来一条累加一次,或者到一定量累加一次
分流2:
    以时间戳 用户ID 站点 状态码 4个字段作为主键进行SUM
    时间戳 用户ID 站点 状态码 SUM(请求数)
    数据实时累加来一条累加一次,或者到一定量累加一次

5.将节点数据上传到管理端

6.管理端数据预处理

分流1:
1.以时间戳 用户ID 站点 3个字段作为主键进行SUM
    时间戳 用户ID 站点 SUM(流量) SUM(命中流量) SUM(回源流量) SUM(命中数) SUM(请求数)
    数据实时累加来一条累加一次,或者到一定量累加一次
    数据做1分钟延迟,如:6:00入库0:00-4:59的数据
2.将数据下沉到psql表
    表索引:时间戳+用户ID+站点,先暂定不唯一索引
3.满足最后入库的数据
    理想状态:相同索引只有一条数据
分流2:
1.以时间戳 用户ID 站点 状态码 4个字段作为主键进行SUM
    时间戳 用户ID 站点 状态码 SUM(请求数)
    数据实时累加来一条累加一次,或者到一定量累加一次
    数据做1分钟延迟,如:6:00入库0:00-4:59的数据
2.将数据下沉到psql
    表的索引:时间戳+用户ID+站点+状态码
3.满足最后入库的数据
    理想状态:相同索引只有一条数据

7:可能的问题

1.数据入库后,同一索引有多条数据
2.没有消息中间件数据丢失,没法追踪


评论