垂直电商大数据数据仓库,主要是基于hive构建的数据仓库,分布式文件系统hdfs,资源管理yarn,计算引擎为mapreduce,spark,查询引擎impala, presto,分层架构如图:




架构 仓库风格 仓库框架图_数据仓库电商建模

图一 分层架构图



1. 数据来源层:日志或关系型数据库:场景是

Erp数据库,前台数据库通过mysql dump数据,及sqoop来抽取数据。Dump数据到提交机,然后put到hdfs,sqoop是直接抽取到hdfs;

日志数据是通过flume采集日志数据至hdfs,通过清洗,生成ods开头的系列表。

2. 事实表 数据仓库结构中的中央表,包含联系事实与维度表的数字度量值和键。事实数据表包含描述业务内特定事件的数据。如进销存事实表(fact_sales_***)、商品库存事实表(fact_stroage_***)、运费事实表(fact_shipping_***)等都是现有的事实表。

3. 维度表 是维度属性的集合。是分析问题的一个窗口。是人们观察数据的特定角度,是考虑问题时的一类属性,属性的集合构成一个维。每个维度表与事实表直接相关,通常是通过一个键连接到事实数据表中。如日期维度表(dim_date)、地域维度表(dim_area)等。常见的数据仓库架构包括星型结构与雪花结构,前者较为普遍,很多公司基本都是星型模型。




架构 仓库风格 仓库框架图_数据_02

图二 星型模型示意图



说明:

1) 事实表就是你要关注的内容

2) 维度表就是你观察该事物的角度,是从哪个角度去观察这个内容的。

例如:北京地区10月份商品的销量,销量是事实表,维度表是月份维度表和地区维度表。

4. 主题表 主题是在较高层次上将企业信息系统中的数据进行综合、归类和分析利用的一个抽象概念,每一个主题基本对应一个宏观分析领域。在实际中,分为了很多个主题,包括广告分析、会员分析、搜索分析,库存分析等,

面向主题的数据组织方式,就是在较高层次上对分析对象数据的一个完整并且一致的描述,能刻画各个分析对象所涉及的企业各项数据,以及数据之间的联系。所谓较高层次是相对面向应用的数据组织方式而言的,是指按照主题进行数据组织的方式具有更高的数据抽象级别。与传统数据库面向应用进行数据组织的特点相对应,数据仓库中的数据是面向主题进行组织的。例如对垂直电商来说,数据仓库所组织的主题会有会员分析,物流分析等。

5. 汇总数据层 聚合基础表,用于满足固定分析要求,以提高查询性能为目的,形成的高粒度表,如周报、月报、季报等。

垂直电商在这方面的数据库是base库,如订单收订汇总表(base_orders_send_***)、订单交寄汇总表(base_orders_shipment_***)、商品库存信息汇总表(base_batch_***)等。

6. 应用层 该层数据完全为了满足具体的分析而构建的数据,垂直电商在这方面对应的是app库,包含的表如黑名单表(app_***_blacklist)、实时池子维护表等,该层数据可以供分析师、数据产品经理直接使用,也可以传到mysql中供业务系统使用。

7. 补充 存放临时测试数据表,中间结果集的表,具体可参见各个库中带tmp开头的表。




架构 仓库风格 仓库框架图_数据仓库_03

图三 临时表示意图



8. BIEE报表模型

模型设计的好坏,直接关系到报表查询的效率,这部分等后续再说吧。




架构 仓库风格 仓库框架图_数据仓库电商建模_04


最后要说,接下来笔者会分享数据中台、维度建模、电商数据仓库、视频数据仓库、安全数据仓库、财务数据仓库、物流数据仓库等数据仓库的所有点点滴滴,敬请期待!欢迎交流!