神策分析的技术选型与架构实现

  1. 整体架构流程
  2. 数据采集子系统
  3. 数据接入子系统:采用 Nginx 接收 API 数据并写入日志,Extractor 模块读取处理日志并发布到 Kafka,同时进行数据格式校验等操作,Kafka 作为缓冲和备份,并对外提供 API。
  4. 数据模型:采用 Event + User 模型。Event 描述用户行为,由用户 ID、Event 名称和自定义属性组成,以追加为主,有有限删除能力;User 描述用户特征,由用户 ID 和自定义属性组成,可任意修改,其属性来源多样。
  5. 数据导入与存储
  6. 数据查询子系统:WebServer 接收查询请求并转发给 QueryEngine,QueryEngine 翻译成 SQL 在 Impala 中查询,通过多种优化手段保证秒级查询性能,如优化查询模型、使用聚合函数替代 Join、精细缓存、提供抽样功能等。

Untitled

Untitled

Untitled

Untitled

image.png

私有化部署

image.png

其他

读写分离

sensorsdata.cn

读写分离——WOS 文件需要定期转换为 ROS 文件,同时因为 ROS 在数据仓库当中一般是分为多个 Partition 存在,所以一个 WOS 可能转化为多个 ROS。转化的过程需要是原子操作,因为对上层查询引擎来说,同一时刻,同样的数据只能有一份。