东莞化妆品网站建设,河间建设网站,o2o网站设计公司,wordpress 视频 缩略图什么是数据仓库#xff1f; 数仓#xff0c;DataWarehouse#xff0c;是一个 面向主题的、集成的、稳定的、与时间相关的 数据集合。 而这个数据集合的建立#xff0c;是为了支持管理者的决策过程。 也就是说#xff0c;我们通过建设数仓#xff0c;为业务中的流程改进、…
什么是数据仓库 数仓DataWarehouse是一个 面向主题的、集成的、稳定的、与时间相关的 数据集合。 而这个数据集合的建立是为了支持管理者的决策过程。 也就是说我们通过建设数仓为业务中的流程改进、成本计算产出收入等环节提供相应的决策指导及流程监控。 数仓有什么特点 • 面向主题性 数仓中的所有数据都是面向特定的业务域而产生的。 比如某电商APP就会有面向用户的数仓面向订单的数仓面向商品的数仓
我们在建设数仓时需要在较高层次上把业务拆分为各个域我们用数据的方式去定义了这个域就有了数仓中的面向主题性。 • 集成性 面向主题性中我们说到我们的数据需要对应不同的业务域。
那每个业务域中的每个事件产生的数据都会有最初的底层数据库。 怎么通过这些数据库抽取我们想要的业务域集成一个可描述的有层级的完整的数据集合就是数据仓库的建立过程。 这个过程其实就是抽取零散业务数据构建集合的过程。
所以数据仓库具有集成性。 • 稳定性 物理上数据存储需要稳定性。
业务上我们要保证数仓建设的结构清晰层次分明从而保证整体数仓结构的稳定性。 通俗来说就是保证数仓结构不要频繁变更。 • 与时间强相关 从物理存储上说数据仓库随着时间和业务的变化会不断往里追加数据内容也会不断删掉旧的数据内容。数仓中的每个表格都会有对应的“生命周期”。 从业务意义上说数据仓库反应的是某一段历史时间内业务在数据上的表现情况。 数仓的建设方式有哪些 • K模式 大家可以去搜索一下 Ralph Kimball 这个大佬他提出的数据仓库架构中的 key模式敏捷模式即关键个体角色目标驱动。 这种方式总体来说就是明确短期需求后直接开干。
因为直接开干所以前期我们整体投入小见效快。
但是随着业务的发展和迭代后期肯定需要重构。而重构的成本往往都很高。 • I模式 这又是另一个大佬提出的架构理论大家可以搜一下 Bill Inmon他提出的information模式瀑布模式即领域经验知识驱动。 这个和K模式相反强调前期强规划一定要想清楚长期目标和需求再干活。 这种方式前期投入的成本会高出很多我们需要规划业务域数据域数据层次表结构等等。
但是后期整体效果会比K模式好只是前期见效慢。 整体来说呢
建议前期业务初步发展阶段先用K模式但是也要有一个I模式的规划 即业务发展到什么节点我们需要开始I模式的搭建。这个需要有个明确的规划。 笔者曾经就有 跑着K模式后期重构了3次才全部切换成I模式的经历。所以一定要提前做规划。 数仓的层级有哪些 开局先上图 从图中我们可以看出大致可以分为4层ODS DWD DWS ADS
其中DWD 和 DWS 可以统一至 CDM层。
当然我们还需要对应的维度数据DIM层 ODS层操作数据层Operational Data Store基本上是数据的源头我们在这一层只做简单的数据清洗不做业务逻辑处理存储所有我们能够存储且需要存储的数据。 DWD层明细数据层Data Warehouse Detail一般和ODS层一样但是会采用维度退化的方法将维度退化至事实表中减少事实表格和维度表格的关联提高表格的易用性。 DWS层汇总数据层Data Warehouse Summary按照主题划分采用宽表化的手段构建对应主题下的数据用于后续业务的查询。 ADS层应用数据层Application Data Store主要存放数据需求中的个性化统计指标。这一层一般面向展示使用。不同需求下的不同粒度的个性化统计指标数据。 DIM层维度表一般会有2种数据。
一是业务相关的业务属性数据如用户画像商品价格。
二是数据中的配置属性数据如在某表格的 类型 字段中存储了AA代表的具体的含义可以在这种 配置属性数据 的维度表格中映射出来。 分层咱们知道了那么如何根据分层来构建规范的命名呢
笔者抛砖引玉提供一些参考。 我们在表名中一般需要以下几个信息 1. 所属业务域是什么业务线是什么产品线
2. 所属主题域是业务域中的用户数据还是订单数据
3. 数据分层在ODS/DWD/DWS/ADS/DIM中属于哪一层
4. 存储粒度是全量还是增量增量周期是多少
5. 自定义标签当前数据的业务过程定义
... ... 举个例子以某淘中的订单优惠券数据为例
mtao_dwd_orders_coupon_day
业务域 数据分层 主题域 自定义标签 存储粒度 当然这仅是抛砖引玉大家可以按照自己的业务情况建设相关的规范适合自己业务最重要。