在数据仓库的环境下,随着历史数据的积累,我们对于较早历史数据的认识会逐渐变淡,以至于在某些情况下我们不能解释统计结果中一些出乎意料的问题,这种问题可能是由于在不同的时间统计口径的出入,或者是ETL过程中处理方式的变更等等。所以在数据仓库环境中维护一个完善的元数据管理模块非常有必要。一下是我总结的一些我认为比较重要的业务元数据(不涉及技术元数据):
1. 运营活动
业务数据的收集,依赖于业务内部集成的数据采集模块,而业务的变化非常有可能影响到数据的变化,比如某些数据的突然攀高可能就是由于一些运营活动导致的。在这方面最有代表性的例子可能就是电子商务网站的促销活动,活动期间销售数据可能有很大的提升,活动结束之后,又趋于平稳。
2. 业务/产品变动
其实这与实际的产品与业务模型设计结合比较紧密了。比如,为了优化用户体验,对产品的界面进行了一些样式或位置上的改变,这种改变可能对产品产生一些影响,如果这种影响比较大,就可能对于数据的异常变动有着直接关系,记录并跟踪这种变动,对于解释数据的异常变化也是非常有必要的。
3. ETL过程中的变动
ETL过程就是一个数据预处理的过程,将原始的数据按照我们预先设计的模型进行处理。当我们修改ETL中的一些转换条件时(放松或者收紧转换条件),就会直接对数据产生影响,毕竟我们大多数的数据应用都是基于ETL之后的模型而建立的,当有这样的修改时, 我们必须将这种修改记录在案,以便解释可能的数据异常表现。
4. 广告投放
广告是快速推广产品的有效手段之一,如果有对产品进行广告宣传,对于业务数据的影响是直接、迅速的,广告投放事件也应该纳入到元数据管理中来。
5. 市场环境、经济形势、外部环境
这应该是一个相对中长期的一个观察,或者说是从更宏观的角度来观察产品数据的表现,市场环境与经济形势数据对产品的影响可能不是突发性的,更多地是以一种潜移默化的形势在影响着产品数据的表现,因此周期性地加入对市场环境和经济形势的观察数据,对于解释数据的一些缓慢变化也是非常有意义的。
6. 运营过程中的突发性事件
比如产品运营过程中出现运营事故,不可抗力因素导致服务不可用等等,这些事件都应该纳入数据仓库的业务元数据中。
以上仅仅是我对于数据仓库中业务元数据的一些总结,客观上,任何可能对数据产生较大影响的因素都应该考虑在内。以上也只是自己的一些观点,错误和不足之处还请大家指正和补充。