一.数仓及其维度1.什么是数仓? 数据仓库,简称数仓,(DataWarehouse)。从逻辑上理解,数据库和数仓没有区别,都是通过数据库软件实现存放数据的地方,只不过从数据量来说,数据仓库要比数据库更庞大。数仓主要是为企业制定决策,提供数据支持的。当业务简单,可以用数据库来存储,分析,制表。但当数据量几何式增长,需要跨机器整合时,数仓就是非常必要的了。2.数仓的特点(1)集成性 数仓中存储的数据来源于多个数据源,原始数据在不同数据源中的存储方式各不相同。要整合成为最终的数据集合,需要从数据源经过一系列抽取、清洗、转换的过程。(2)稳定性 数仓中保存的数
一.数仓及其维度1.什么是数仓? 数据仓库,简称数仓,(DataWarehouse)。从逻辑上理解,数据库和数仓没有区别,都是通过数据库软件实现存放数据的地方,只不过从数据量来说,数据仓库要比数据库更庞大。数仓主要是为企业制定决策,提供数据支持的。当业务简单,可以用数据库来存储,分析,制表。但当数据量几何式增长,需要跨机器整合时,数仓就是非常必要的了。2.数仓的特点(1)集成性 数仓中存储的数据来源于多个数据源,原始数据在不同数据源中的存储方式各不相同。要整合成为最终的数据集合,需要从数据源经过一系列抽取、清洗、转换的过程。(2)稳定性 数仓中保存的数
(附:由于篇幅原因,这里就不在展示代码了,直接告诉大家思路)目录五:交易域订单预处理表5.1 主要任务5.2思路分析5.3 图解六:交易域下单事务事实表6.1主要任务:6.2思路分析:6.3图解:七:交易域取消订单事务事实表7.1主要任务:7.2思路分析:7.3图解:八:交易域支付成功事务事实表8.1主要任务:8.2思路分析:8.3图解:九:交易域退单事务事实表9.1主要任务:9.2思路分析:9.3图解:十:交易域退款成功事务事实表10.1主要任务:10.2思路分析:10.3图解:五:交易域订单预处理表5.1 主要任务经过分析,订单明细表和取消订单明细表的数据来源、表结构都相同,差别只在业务过
(附:由于篇幅原因,这里就不在展示代码了,直接告诉大家思路)目录五:交易域订单预处理表5.1 主要任务5.2思路分析5.3 图解六:交易域下单事务事实表6.1主要任务:6.2思路分析:6.3图解:七:交易域取消订单事务事实表7.1主要任务:7.2思路分析:7.3图解:八:交易域支付成功事务事实表8.1主要任务:8.2思路分析:8.3图解:九:交易域退单事务事实表9.1主要任务:9.2思路分析:9.3图解:十:交易域退款成功事务事实表10.1主要任务:10.2思路分析:10.3图解:五:交易域订单预处理表5.1 主要任务经过分析,订单明细表和取消订单明细表的数据来源、表结构都相同,差别只在业务过
大数据ODS&DWD&DIM-SQL分享需求思路一:等差数列断2天、3天,嵌套太多1.1开窗,按照id分组,同时按照dt排序,求Rank--linux中空格不能用 tab键selectid,dt,rank()over(partitionbyidorderbydt)rkfromtx;1.2将每行日期减去RK值,如果之前是连续的日期,则相减之后为相同日期z:等差(x1+z)-(y1+z)=x1-y1selectid,dt,date_sub(dt,rk)flgfrom(selectid,dt,rank()over(partitionbyidorderbydt)rkfromtx)t1;断一天的数据,f
大数据ODS&DWD&DIM-SQL分享需求思路一:等差数列断2天、3天,嵌套太多1.1开窗,按照id分组,同时按照dt排序,求Rank--linux中空格不能用 tab键selectid,dt,rank()over(partitionbyidorderbydt)rkfromtx;1.2将每行日期减去RK值,如果之前是连续的日期,则相减之后为相同日期z:等差(x1+z)-(y1+z)=x1-y1selectid,dt,date_sub(dt,rk)flgfrom(selectid,dt,rank()over(partitionbyidorderbydt)rkfromtx)t1;断一天的数据,f
背景历史数据更新问题例如:MySQL中有一张用户表:tb_user,每个用户注册完成以后,就会在用户表中新增该用户的信息,记录该用户的id、手机号码、用户名、性别、地址等信息。每天都会有用户注册,产生新的用户信息每天都需要将MySQL中的用户数据同步到Hive数据仓库中需要对用户的信息做统计分析,例如统计新增用户的个数、用户性别分布、地区分布、运营商分布等指标当已经同步了的数据发生了改变image.png解决方案解决问题主要思考的是历史数据要不要保留的问题,如果不保留可以采取方案一,直接全覆盖,把mysql的新的数据直接覆盖掉hive表中的数据方案二,每次数据改变,根据日期构建一份全量的快照表
背景历史数据更新问题例如:MySQL中有一张用户表:tb_user,每个用户注册完成以后,就会在用户表中新增该用户的信息,记录该用户的id、手机号码、用户名、性别、地址等信息。每天都会有用户注册,产生新的用户信息每天都需要将MySQL中的用户数据同步到Hive数据仓库中需要对用户的信息做统计分析,例如统计新增用户的个数、用户性别分布、地区分布、运营商分布等指标当已经同步了的数据发生了改变image.png解决方案解决问题主要思考的是历史数据要不要保留的问题,如果不保留可以采取方案一,直接全覆盖,把mysql的新的数据直接覆盖掉hive表中的数据方案二,每次数据改变,根据日期构建一份全量的快照表