zoukankan      html  css  js  c++  java
  • 人群任务处理流程

    目的###

    • 产出定制条件的总数量
    • 产出当前条件的人在其他标签维度的分布情况
    • 产出满足当前条件的人,并添加标记

    创建任务###

    • 创建原子任务
    • 原子任务间进行逻辑交并补
    • 存储进任务DB

    执行任务###

    • 解析任务
    • 周期扫描DB获取任务
    • 解析原子任务,将原子任务处理成fel(定制函数表达式),类似hive定制私有函数,函数包含自己的处理逻辑,生成字符串
    • 根据创建的任务,将原子任务,进行交并补组合,生成任务解析后的字符串
    • 执行任务
    • 使用客户端提交fel字符串给计算中心
    • 计算中心将任务分发到cluter机器
    • 各个机器上启动多线程,分别处理各个机器内存的数据,
    • 使用fe,解析fel字符串,反射fel自定义函数,进行cookie的判断,满足条件,将cookie,提交到下一环节,不满足条件则直接抛弃
    • 统计满足条件的cookie,在各个维度上的分布,并将cookie输出到一个固定的目录
    • 合并各个线程的数据,然后在合并各个cluster数据
    • 将结果返回给client
    • 结果处理
    • 将client获取的结果,分维度存储到mysql报告库中
    • 将产出的文件数据写入到kv中

    问题###

    • 数据存储在java堆中,不便于检查当前数据的准确性,简单的QA无法介入,需要编写程序才可以查看存储的数据是否准确
    • 使用fel反射开发,增加开发部署难度,如果增加了原子条件类型,需要编写新的fel进行处理
    • 数据维护在java堆中,极其容易崩溃,java内存不稳定,重新恢复极慢

    优化方向###

    • 修改存储,不适用java堆,使用table化工具,spark的表,phoenix表等
    • 降低数据校验难度,可直接使用sql查询当前的数据
    • 降低开发难度,直接sql可以产出报告
  • 相关阅读:
    编程珠玑第二章阅读笔记
    第四周学习进度博客
    python的文件操作
    python通过pymysql实现数据库的增删改查
    python爬取疫情数据详解
    python基本知识点if、while、等等
    apache使用总结
    slf4j的总结
    log4j2使用总结
    安全测试总结
  • 原文地址:https://www.cnblogs.com/isenhome/p/5140192.html
Copyright © 2011-2022 走看看