大数据数仓实战项目(离线数仓+实时数仓)2

server/2025/2/5 2:01:53/

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.拉链表技术实现-新增数据插入以及合并

最后的效果

15.


http://www.ppmy.cn/server/165043.html

相关文章

【Deep Seek本地化部署】模型实测:规划求解python代码

目录 前言 一、实测 1、整数规划问题 2、非线性规划问题 二、代码正确性验证 1、整数规划问题代码验证 2、非线性规划问题代码验证 三、结果正确性验证 1、整数规划问题结果正确性验证 2、非线性规划问题正确性验证 四、整数规划问题示例 后记 前言 模型&#xff…

fpga系列 HDL:XILINX Vivado Vitis 高层次综合(HLS) 实现 EBAZ板LED控制(上)

目录 创建工程创建源文件并编写C代码C仿真综合仿真导出RTL CG导出RTL错误处理: 创建工程 创建源文件并编写C代码 创建源文件(Souces下的hlsv.h和hlsv.cpp,Test Bench下的test_hlsv1.cpp): hlsv1.h #ifndef HLSV1 #define HLSV1 #include &l…

Deep Sleep 96小时:一场没有硝烟的科技保卫战

2025年1月28日凌晨3点,当大多数人还沉浸在梦乡时,一场没有硝烟的战争悄然打响。代号“Deep Sleep”的服务器突遭海量数据洪流冲击,警报声响彻机房,一场针对中国关键信息基础设施的网络攻击来势汹汹! 面对美国发起的这场…

http和https的区别?

文章目录 一、安全性二、连接方式三、端口使用四、证书申请五、优缺点六、SSL&TLS协议6.1、SSL协议6.2、TLS协议6.3、SSL/TLS协议在HTTPS中的应用 总结 HTTP和HTTPS是两种常见的网络传输协议,它们在安全性、连接方式、端口使用以及证书申请等方面存在显著差异。…

240. 搜索二维矩阵||

参考题解:https://leetcode.cn/problems/search-a-2d-matrix-ii/solutions/2361487/240-sou-suo-er-wei-ju-zhen-iitan-xin-qin-7mtf 将矩阵旋转45度,可以看作一个二叉搜索树。 假设以左下角元素为根结点, 当target比root大的时候&#xff…

MVC 文件夹:架构之美与实际应用

MVC 文件夹:架构之美与实际应用 引言 MVC(Model-View-Controller)是一种设计模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种架构模式不仅提高了代码的可维护性和可扩展性,而且使得开发流程更加清晰。本文将深入探讨MVC文…

w186格障碍诊断系统spring boot设计与实现

🙊作者简介:多年一线开发工作经验,原创团队,分享技术代码帮助学生学习,独立完成自己的网站项目。 代码可以查看文章末尾⬇️联系方式获取,记得注明来意哦~🌹赠送计算机毕业设计600个选题excel文…

Go 中 defer 的机制

文章目录 Go 语言中 defer 的底层机制与实战解析一、defer 的执行顺序:后进先出(LIFO)示例 :多个 defer 的执行顺序 二、defer 的参数预计算:值拷贝的陷阱示例 :参数预计算的影响 三、defer 与闭包&#xf…