数据仓库的介绍
数据仓库介绍将各个业务系统数据库中的数据抽取到一个大的数据库(数据仓库)相当于可以将各个业务系统的数据整合到一起然后对其中的数据进行加工分析处理也方便后续关联查询。例如如果有的业务需要查询两个不同的业务库没有数据仓库这个中转站是办不到的。数据仓库架构数据仓库分层1、清晰的数据结构每一层的作用不一样目的是为了更好的定位和理解数据2、方便数据血缘追踪减少重复性的开发三个不同的需求都需要从5张表获取数据都需求进行清洗和转换。3、把复杂问题简单化4、维护方便ODS层Operate data store贴源层(原始数据层)数据来源业务库埋点数据消息队列、接口数据建设方式1、与业务库表结构一致一般情况下会在原业务库表名前面添加库前缀或自定义前缀。2、直接采集业务数据不做转换处理数据保留时间根据业务具体确定。3、全量采集第二天再次全量采集前一天的数据不保留。大表优化可做增量。Dim层: Dimension 维度层DIMDimension层是数据仓库的关键组成部分之一它主要负责存储维度数据和规则使数据仓库中的数据更易于理解和分析。DWD层Data WareHouse Detail 数据明细层数据来源ODS建设方式根据ODS层数据按主题性进行归类建模。DWD主要是将从业务数据库中同步过来的ODS层数据进行清洗和整合成相应的事实表。事实表作为数据仓库维度建模的核心需要紧紧围绕着业务过程来设计。在拿到业务系统的表结构后进行大概的梳理再与业务方沟通整个业务过程的流转过程对业务的整个生命周期进行分析明确关键的业务步骤在能满足业务需求的前提下尽可能设计出更通用的模型。四个基本概念维度事实指标度量粒度。客户注册事实表一条客户注册记录就是一个事实指标客户注册量。DWS层Data WareHouse Servce 数据服务层(数据汇总层)数据来源DWD、Dim对明细数据进行预加工汇总与关联建立多维立方体的数据量提高查询效率。ADS层Application Data Store 数据应用层服务于终端用户高度汇总。DWD一张事实表有20个维度5个指标DWS层就可能10个维度5个指标APP层3个维度5个指标我们这个项目使用的是 维度建模维度建模 所有的表分为两类 1、事实表 2、维度表ods 、dwd、dws、ads 一般存放的都是事实表dim 一般存放的都是维度表数据仓库建表规范数据仓库建表命名规范分层规范举例ODSods_源系统_源表名ods_erp_ekko、ods_mysql_orderDIMdim_实体dim_date、dim_shop、dim_productDWDdwd_主题_业务过程dwd_trade_order_detail、dwd_user_login_detailDWSdws_主题_统计维度_周期dws_trade_user_1d、dws_trade_shop_30dADSads_主题_业务场景ads_trade_gmv_report、ads_trade_shop_rank_daily分层说明各层的定位与特征ODS 不改名、DIM 不带周期、DWD 不聚合、DWS 周期必填、ADS 一表一场景通用铁律全小写、下划线分词、避开保留字等周期后缀约定_1d/_7d/_30d/_td/dws_trade_user_1d → 今天交易额 日报用dws_trade_user_7d → 近7天交易额 周报用dws_trade_user_30d → 近30天交易额 月报用dws_trade_user_td → 累计交易额 用户主页用字段定义原则相同的数据属性如果在不同的表中出现则应采取相同的字段名、数据类型、数据长度数据精度uname 不管在哪个表只要出现用户名 必须都叫做uname数字类型的数据必须为整数或浮点数金额类型数据必须为浮点数日期类型的数据同一个字段的值其格式必须统一 YYYY-MM-DD YYYY/MM/DD字段命名要么都是英文要么都是中文拼音缩写。