从零开始实施推荐系统的落地部署——31.推荐系统案例(二十一)对数据仓库分层的理解
虽然股票可视化的项目暂时还没做好,但是经过这段时间的锻炼,对数据仓库有了进一步的了解。之前在论坛和其他大数据群里有讨论过做数据仓库到底需不需要分层,它的好处在哪里?但那时候只知道数据仓库一般分为ODS层,DWD层,DWS层和ADS层。
现在来了解一下各层的含义:(1)ODS(Operation Data Store)层,它是数据仓库第一层,全部基础数据直接采集到ODS层里,不做处理。(2)DWD(Data Warehouse Detail)数据仓库明细层,对数据格式的转换,数据加工和处理,提供干净的数据,避免后续的计算出现异常情况,同时提高开发效率。(3)DWS(Data Warehouse Summery)数据仓库汇总层,根据业务需求,整合成业务相关的数据宽表,属于多维度汇总数据。(4)ADS数据应用层,只包含部门或者业务方面自己关心的明细层和汇总层的数据,属于高度汇总数据,可以用做数据可视化展示。
而项目使用tushare获得的数据已经不需要做数据处理,那就暂时不需要使用到ODS和DWD层,采集到的数据和上市公司的信息,还有自己做了区域做成了数据宽表,保存到mysql数据库,完成了DWS层。再根据需要做实时股票涨幅和跌幅的top5的变化,最新时间的各版块平均涨幅,最新时间的上交所和深交所平均涨幅,最新时间的各省的平均涨幅和最新时间的各地区的平均涨幅的数据写入到mysql,完成ADS层,再从ADS层读取数据通过使用flask和echarts做数据可视化展示。
通过上面的案例是不是说明不使用ODS和DWD层也可以呢?刚好相反,ODS层是必须,因为有些字段因为缺省或脏数据太多,而业务没有需求,删除掉了字段,但有可能随着业务范围拓宽和增长,需要到这些字段,没有ODS层,这些数据就会丢失,不利于业务的数据可视化和建模。DWD层是否可以不需要呢?没有DWD层,会增加数据分析师和开发工程师的工作负担,而且容易造成数据重复多次清洗,增加CPU,内存,IO和网络的资源的压力,减低资源使用效率。那不需要DWS呢?也会造成经常使用的表多次连接,浪费硬件和网络资源。ADS只包含部门或者业务方面自己关心的明细层和汇总层的数据,所以也是必须的。它们的缺点就是占空间容量非常大,消耗IO资源。通过ODS层,DWD层,DWS层和ADS层的关系,合理利用,才能获得更好的性能体验。
- 点赞
- 收藏
- 关注作者
评论(0)