许多时候我们说一款产品的设计是数据驱动的,是指许多产品方面的决策都是把用户行为量化后得出的。一个典例的例子就是注册流程的设计,如果用户需要填写的注册信息较多,一般就会分成多个页面,而产品设计师最关心的就是每个页面的流失率,从而不断的对这个流程作调整以达到信息量与流失率之间的平衡。
为了能够量化用户的行为,前提是要将各种用户事件都保存下来。其中最典型的事件包括user creation, page view和button click,但实际上还有许多其他事件,比如用户更改了状态或是录入了某些数据等等。目前有许多第三方的服务可以帮助你做这方面的统计,国内有友盟,国外有Google Analytics和Mixpanel。但如果你记录的事件数量非常庞大,或是对之后的数据分析有非常定制化的要求,那就要考虑自己构建事件分析的平台,而这个过程中最关键的一步就是如何存储用户事件。
首先我们来分析一下用户事件存储有哪些特性
* 数据量巨大 用户在应用中产生的事件数量远远大于他们产生的数据。非常简单的一个例子,就是用户在浏览各个页面时,他们并不产生任何数据,但却产生了大量的page view