目前我在某大型互联网公司的AI事业部的数据智能组,主要业务是利用内部数据进行ai业务开发,最近由于内部原因暂时手头工作不是很忙,闲下来整理下这个基本已经初具模型的ai数据业务的整个数据流程。
数据流程
首先对整个项目的数据流做下阐述,整个流程如下所示:
1. 数据来源
数据通过Nginx反向代理将http服务发送的log日志信息保存在服务器本地,运维使用的是logrotate工具
2. 数据处理
这里是整个项目的核心,包括数据清洗、hive数据仓库搭建、特征提取、模型运算、数据分析等等
具体的流程是:
- 利用data_stream(flume)将本地的log日志数据上传至大数据开发平台的hdfs集群
- 在大数据开发平台上用spark、hive进行数据清洗
- hive数据仓库搭建,清洗完的数据落入相应表格中
- 业务特征抽取
- 算法模型计算、数据分析计算
- 结果保存
涉及到的处理语言和技术除算法领域外有azkaban、spark、hive、hadoop、python、java、linux shell等
3. 结果处理
这一块的话分为2个方向:
图表展示:一般的话会用到数据可视化的技术、但由于公司内部本身已经有了成熟的数据可视化的产品,所以直接在上面展示和分析
结果反馈:该项目是精准定点广告投放业务,算法模型的最终结果是广告投放名单,所以拿到结果之后需要将这些名单发给广告平台进行投放,具体操作是使用广告平台提供的http api进行发送
4. 额外数据
主要是利用爬虫去获取一些额外数据,例如广告投放效果反馈数据等
总结
本身对于大数据的处理和存储已经有成熟的开源产品(hadoop)和平台(ambrai、hdp),也有商业化较为成熟的产品例如(阿里云数加平台、网易猛犸、网易有数等),所以现在在处理数据大数据相关的问题上较为方便快捷,直接使用成熟的产品进行开发即可,工作量主要集中在数据的ETL、hive仓库构建、算法建模(特征计算、提取等)、结果的应用(图表或者其他方向,这其中又涉及到了BI的内容)
后期的工作方向主要是2块:
- 对于算法的改进和更新
- 工程上如何进行快速的部署和应用甚至是产品化