前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >聊聊数据仓库的建设

聊聊数据仓库的建设

作者头像
哒呵呵
发布2018-08-06 14:34:50
6900
发布2018-08-06 14:34:50
举报
文章被收录于专栏:鸿的学习笔记鸿的学习笔记

数据仓库的建设是不同于面向业务的操作型数据库,它的核心更应该是业务知识。单纯的理论是无聊的,那么我们从一个实例来,那么就已我手边正在放lpl直播的虎牙直播为例。

在数据仓库建立之前,需要数据采集平台提供数据。数据来源往往有两个种类,一个是日志,这个需要你和开发应用方协商你需要的埋点,比如打开虎牙直播的埋点,虎牙直播的首页上各个模块(LOL,王者荣耀。。。)的埋点,日志的解析的话,可以使用spark,flume等工具按照约定的格式导入到数据平台,这时候的表称为埋点表,需要你在后期对埋点表加工处理,提取可用的数据,另一个则是app后端的数据库,例如记录着登陆虎牙app的用户信息的用户表,观众的观看记录表,打赏相关信息的表,一般而言可以使用datax和sqoop对数据进行处理,两者的区别在于,datax更偏向于插件化,使用json的方式配置,sqoop则是借用了mapreduce,这个取决于业务情景。

假设我们已经有了基础数据,要开始建设一个数据仓库了,开发工具使用的是hive。

1.首先我们应该确认数据仓库的主题,模型的建立均要以建立好的主题为准,而不是力图建设一个适合于所有主题的模型。现在业务或者说是产品经理要先考虑,我需要什么数据,

比如消费者在淘宝购买商品,那么对于这次的虎牙直播平台,我希望关注观众在虎牙直播平台的观看情况,当然我们也可以反过来关注,主播在虎牙直播的直播情况,两者可以说紧密相连。在确定了主题,比如现在的观众和直播在虎牙直播观看和直播情况,我们可以建立一个星座模型,共享某部分维度表,也可以只考虑观众的观看情况,使用一个星型模型。为了简便起见,只考虑观众的观看情况。 2.在确定主题之后,我们需要从两个角度考虑这个主题,维度和指标。维度可以理解为一种事物的属性,是某个事件中的客观存在,在观众的观看情况这个主题当中,维度我们可以选择观众,观看的直播间。指标是衡量某个事件的量化属性,比如观看次数,频度,观看时长。维度之间可以相互联系,可以不联系,但是一定要和事件,指标有所联系。维度和指标不是随意定的,而是经过慎重考虑,两者如何联系起来,如何体现主题。

3.在确定了维度和指标后,我们需要考虑,维度和指标也需要根据某些相关性,将数据划分成相对主题的表,基于性能和后续维护来看,而不是考虑成一张大宽表。大概举下例子,以观众这个维度为例,我们可以将观众这个维度划分为基本信息、用户习惯,消费信息等表,比如用户习惯表,我们在这张表可以记录用户的观看癖好,打开LOL直播等模块的次数,登陆时间,时长诸如此类。指标也是如此。

4.在拥有这些表之后,数据仓库也就有了雏形,我们只需要建立一张事实表,去把维度和指标联系起来,这张可以做成一张大宽表,尽可能记录一个观众的观看情况。

上面所述的便是数据仓库的建立的大概思路,细节在开发过程中,需要不断的完善。下面大概聊聊对于数据仓库质量管理的一些理解。

  1. 最重要的是,要和业务以及产品负责人耐心沟通,认真敲定口径,比如观看人数的统计,就是要确定好哪些观众不算有效观众,观众和主播是同一人的等等细节,耐心是很重要的,需要格外注意的是,开发要学会要抛弃自己的专业知识,用最通俗的方式去解释,并且学会留下记录。
  2. 在建立表的过程,每张表要确定好主键是什么,观众表,那么就以注册id为主,对于脏数据,去重的原则也要确定好。
  3. 在建立数据仓库的过程中,要注意统一格式,比如日期,需要在刚开始开发的时候,就要确定好选用‘yyyy-mm-dd hh:mm:ss,0’呢,还是其他的格式。数据类型要注意好精度,比如高精度数向低精度数的转换,数值类型就是选用数值。
  4. 注意维度的变动对数据统计指标产生的影响,例如一个观众从非VIP转成VIP时,如果以VIP为主,记录某个时间的VIP和非VIP的数量,那么这时候两者数量就会出问题。
  5. 在开发的过程中,表名和字段要认真想好命名,最好要有命名规范,例如维度表就以dim开头,临时表以seq开头。

说了这么多,最最重要的,一定要做好规范维护,无论是用前端还是excel,及时更新是必须的。表的作用,设计理念,表字段的取数逻辑,口径的提供人,表结构都要记录在案,时常维护。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-01-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 鸿的学习笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档