1.背景
最近在公司server上手动搭建了一次mongodb,存储当前业务中的广告打点(埋点)数据,记录了各种类型用户行为信息,将原来以截图、Charles导出文件、Postman导出文件形式的请求数据,统一存储到mongodb上,可直观查看,可高效管理,可追溯历史。
2.打点数据
打点本质:记录用户行为一份数据
打点实现:绑定用户行为,记录行为信息,发出请求,产生数据手头业务中存在着各种类型的打点,覆盖了多个维度的信息
用户行为(展现点击下载播放调起等等)
广告位(列表页详情页小视频等等)
广告物料(视频、图文、下载等等)
示例请求
包含打点时间行为信息广告信息流量信息设备信息等等
{"os_type":"2","os_version":"10","app_version":"7.12.0.0","model":"JAD-AL50","device_id":"C44ECC9FEDD3CCD
VQFTLF3LH","net_type":1,"ad":{"origin_time":"5","behavior_type":"用户行为类型","behavior_page":"行为发生页面","behavior_ext1":"行为扩展1","behavior_ext2":"行为扩展2","ext":"广告加密信息"},"date":"-08-:40:03"}
示例日志
将json层级结构打平(字段众多),便于存储hive数仓(大宽表形式)
os_type,os_version,app_version,model,device_id,net_type,origin_time,behavior_type,behavior_page,behavior_ext1,behavior_ext2,date复制代码
3.数据库选型
考虑到广告打点日志持续迭代(字段逐渐增多),数据结构灵活(字段层级可能扩展),mysql二维表管理的数据不能很好的满足诉求,决定使用mongodbmysql对比mongodb简析两类数据库的优缺点
4.安装
笔者使用mac环境举例,采用brew进行安装,其他环境参考