前言
对于一个产品,甚至一个企业而言,基础的数据通常有四部分:用户行为数据、核心业务数据、业务上报数据和运维监控数据。
用户行为数据,主要是用户在前端(APP端、Web网页)的浏览与操作行为数据,用于追踪分析用户的使用方式,从而有针对性的优化产品、挖掘新需求。在某些场景下,后端的Nginx日志也会被用来做这方面的分析,其包含了各个API的调用情况。核心业务数据,顾名思义,就是与业务本身息息相关的数据,通常以三范式的设计方式存储在关系型数据库中。比如电商系统的用户表、商品表、订单表等,工业网络安全系统中的公司表、设备表、策略表等。业务上报数据,是指由业务前端采集后主动上报到后端服务中的数据。比如建筑工地的塔式起重机系统,会实时上报各个传感器采集到的数据;网络安全UTM设备,会实时上报网络扫描的信息。运维监控数据,用于观察服务状态、触发相关告警、触发相关扩展策略等,从而确保整个服务的健康有效运作。这块数据包括两部分:来自基础设施的数据,比如机器的CPU使用率、每秒请求数、请求的响应时间等等;应用服务主动吐出来的数据,比如当前周期处理了多少数据、处理完一批数据花费了多少时间、还有多少报表在排队等等。

前三种数据都是与业务有着强相关性的,大多数企业都会基于这些基础数据做进一步的转换、处理,构建相应的数据仓库,为运营分析、数据挖掘、下一级业务系统等提供数据支撑。本文主要聊一聊与核心业务数据相关的事情,以MySQL存储为例。
核心业务数据,除了支撑核心业务体系,通常还会衍生出两种使用方式:一种是运营数据分析,比如分析昨天新增了多少用户,来自哪些渠道;另一种是事件驱动型业务,比如用户下单成功后,需要根据这个事件触发相关的积分变化、定期提醒等业务。在这里面,核心业务数据是一种静态的