一个数据应用闭环(转载)
收集:
各种开源的分布式日志收集系统:
Scribe, Flume等等
存储
可以同时包含各种不同的存储类型,可根据不同的需求增减相应的存储类型:
底层存储:能够存储大量的数据,最好具有可扩展性 HDFS S3等等
关系存储:MySQL,Postgresql等等
键值存储:HBase,Redis等等
计算
计算能力也应该同时包含集中不同的类型,可根据不同的需求增减相应的存储类型:
批量处理型计算:MapReduce,脚本批量转换作业等等
实时统计型计算:Storm,各种监控系统
实时存取型计算:各种KV数据库都可以达到这个目的;关系型数据库也具有这样的能力
逻辑转换
这就是所谓的ETL,开源的ETL工具,比如Kettle。
数据访问
开发的报表系统,各种OLAP产品(比如Oracle BIEE),SQL访问接口(比如Hive等等)
价值提取层
价值就是比较抽象的东西了,仁者见仁,不必迷恋复杂的算法,要对所探究的对象本身有深入的理解;
更好地解读数据,利用逻辑转换层(ETL)或编写程序来达成本层的两个目的:
1. 建立研究对象(比如每个用户)的标签库(如果必要,可以采用聚类/分类算法),以固定的格式存储于关系存储或键值存储中
2. 根据数据发掘出类之间的关系,找出关联比较明显并且有价值的关系,记录到WIKI或者专门的知识库中
这层可以自己编写程序,结合使用开源工具(Mahout/scikit-learn/Weka)来实现
数据应用层
主要是建立价值层与产品的直接联系,让发掘出来的规律直接应用在提升产品品质或其它方面,这一层的任务主要在于建立从分类库、知识库到产品的管道
以上各层最终应该形成一个闭环,不断优化成长