怎么把网站做的靠前互联网营销平台
1.课程目标和课程内容介绍


2.数仓维度建模设计








3.数仓为什么要分层


4.数仓分层思想和作用



下面是阿里的一种分层方式



5.数仓中表的种类和同步策略



6.数仓中表字段介绍以及表关系梳理



订单表itcast_orders

订单明细表 itcast_order_goods

商品信息表 itcast_goods

店铺表 itcast_shops

商品分类表 itcast_goods_cats

组织结构表 itcast_org

订单退货表 itcast_order_refunds

用户表 itcast_users

用户收货地址表 itcast_user_address

支付方式表 itcast_payments

7.项目环境初始化
导入MySQL模拟数据



将SQL文件上传到Linux

登入MySQL并执行命令

已经上传成功

hive分层说明

登入hive,创建表



创建ods层数据表







因为后面要用spark执行,spark对我们的Parquet和Snappy是执行的最好的
粘贴过来执行



数据采集



这里的命令可以帮我们对hive分区表进行一个修复

将小于${dt}(默认时间点)之前的当做全量要采集的数据,直接采集过来

我们打开kettle看一下









这里的${dt}是我们的默认命名参数
我们双击转换的空白处,看一下


上面的三张表是使用${dt}限制的
其余的表都是全量采集
比如


下面看一下字段选择

里面的每一个时间字段都要指定格式

下面看一下字段选择


这里我们要指定路径,
我们要写数据到hive表,使用表输出的方式太慢
我们直接将数据文件生成到hdfs路径上,这个路径就是我们的某一张hive表对应的路径

要指定hadoop cluster的连接


由于我们全是分区表,所以我们要加上分区文件的路径


所有的date类型要改成utf-8,date后面会出现问题
因为我们前面已经指定了格式
这里我们就按照字符串的形式写进去

==================================================================================================================================================

上面设置结束后,我们就可以执行我们的作业

我们再去hive表里面验证一下



8.缓慢变化维问题以及常见解决方案






9.商品案例-每日全量采集方案





10.每日全量案例实现
MySQL&Hive初始化 
先创建库




上面表创建成功





增量导入12月20日数据







这里主要是帮我们添加一个分区(如果分区不存在,就添加)






最后双击空白处
调整转换命名参数




上面已经成功导入hive的ods层了,已经查询到
下面再将数据导入维度表,导入dw层




增量导入12月21日数据






运行之后是将数据存储到了ods的12月21号的分区
我们查看一下





如果我们查询的时候没有指定分区,应该有10条数据


增量导入12月22日数据





11.拉链表技术介绍



12.拉链表技术实现-第一次导入数据到拉链表

MySQL&Hive表初始化






这里的表不是分区表了,用一张大表构建



全量导入2019年12月20日数据


















13.拉链表技术实现-历史数据更新
增量导入2019年12月21日数据
MySQL数据库导入12月21日数据(6条数据)



这里我们总共要采集001、005、006三条数据
他们的modifytime的字段一定是21号的

使用Kettle开发增量同步MySQL数据到Hive ods层表




这里首先执行的SQL语句是hive进行操作的



这里的SQL操作就是根据modifytime字段,找出新增或者更新的数据






编写SQL处理dw层历史数据,重新计算之前的dw_end_date









=============================

注意:这里很重要,因为有可能我们的表经过多次更新
但我们只需要修改最近一次的更新的那一条数据
14.拉链表技术实现-新增数据插入以及合并


最后的效果


