大数据数仓实战项目(离线数仓+实时数仓)2
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.
相关文章:
大数据数仓实战项目(离线数仓+实时数仓)2
1.课程目标和课程内容介绍 2.数仓维度建模设计 3.数仓为什么要分层 4.数仓分层思想和作用 下面是阿里的一种分层方式 5.数仓中表的种类和同步策略 6.数仓中表字段介绍以及表关系梳理 订单表itcast_orders 订单明细表 itcast_order_goods 商品信息表 itcast_goods 店铺表 itcast…...
测试csdn图片发布
测试csdn图片发布 ...
站在JavaScript的视角去看,HTML的DOM和GLTF的Json数据。
很多前端小伙伴没有见过、操作过gltf文件,对非常懵逼,本文从前端小伙伴最熟悉的dom模型为切入口,以类别的方式来学习一下gltf文件。 一、结构与组织形式 HTML DOM(文档对象模型): 树形结构:HT…...
传输层协议 UDP 与 TCP
🌈 个人主页:Zfox_ 🔥 系列专栏:Linux 目录 一:🔥 前置复盘🦋 传输层🦋 再谈端口号🦋 端口号范围划分🦋 认识知名端口号 (Well-Know Port Number) 二…...
VSCode源码分析参考资料
VSCode Architecture Analysis - Electron Project Cross-Platform Best Practices 中文版 VSCode 架构分析 - Electron 项目跨平台最佳实践 Sihan Li博客上的vscode源码分析系列:分析了微服务架构、事件体系、资源管理、配置系统等 文召博客上的vscode 源码解析…...
使用VCS对Verilog/System Verilog进行单步调试的步骤
Verilog单步调试: System Verilog进行单步调试的步骤如下: 1. 编译设计 使用-debug_all或-debug_pp选项编译设计,生成调试信息。 我的4个文件: 1.led.v module led(input clk,input rst_n,output reg led );reg [7:0] cnt;alwa…...
ROS-激光雷达-消息包格式-获取激光雷达数据-激光雷达避障
文章目录 激光雷达原理 消息包格式获取激光雷达数据激光雷达避障 激光雷达 原理 激光雷达(LiDAR) 是一种利用激光进行距离测量和环境感知的传感器。它通过发射激光束并接收反射光来测量物体的距离,生成点云数据,用于构建环境的三…...
c++之模板进阶
在前面的文章中,我们已经简单的了解了模板的使用,在这篇文章中,我们将继续深入探讨模板 1.模板的特化 1.1 概念 通常情况下,使用模板可以实现一些与类型无关的代码,但对于一些特殊类型的可能会得到一些错误的结果&a…...
关于Internet Download Manager(IDM)强制下载合并相关二次开发
目录 前言 强制下载视频 强制合并 迁移下载列表 免责声明 附录 前言 那个下载工具IDM不说了,确实有很多便捷的功能,不过也有一些限制 常见的包括但不限于: 1.无法下载有版权保护的视频(不管真假) 2.有时候下载…...
鸿蒙HarmonyOS Next 视频边播放边缓存- OhosVideoCache
OhosVideoCache 是一个专为OpenHarmony开发(HarmonyOS也可以用)的音视频缓存库,旨在帮助开发者轻松实现音视频的边播放边缓存功能。以下是关于 OhosVideoCache 的详细介绍: 1. 核心功能 边播放边缓存:将音视频URL传递给 OhosVideoCache 处理后…...
(10) 如何获取 linux 系统上的 TCP 、 UDP 套接字的收发缓存的默认大小,以及代码范例
(1) 先介绍下后面的代码里要用到的基础函数: 以及: (2) 接着给出现代版的 读写 socket 参数的系统函数 : 以及: (3) 给出 一言的 范例代码,获取…...
程序代码篇---项目目录结构HSV掩膜Opencv图像处理
文章目录 前言第一部分:项目目录结构第二部分:HSV提取HSV色调(Hue)含义取值范围 饱和度(Saturation)含义取值范围 亮度(Value)含义取值范围 第三部分:Opencv图像处理1. 读…...
注解与反射基础
注解 概述 注解(Annotation),从jdk5.0引入。 作用 不是程序本身,可以对程序作出解释(这一点和注释没什么区别)可以被其他程序读取 格式 注释是以“注释名”在代码中存在的,还可以添加一些…...
Vue指令v-html
目录 一、Vue中的v-html指令是什么?二、v-html指令与v-text指令的区别? 一、Vue中的v-html指令是什么? v-html指令的作用是:设置元素的innerHTML,内容中有html结构会被解析为标签。 二、v-html指令与v-text指令的区别…...
院校联合以项目驱动联合培养医工计算机AI人才路径探析
一、引言 1.1 研究背景与意义 在科技飞速发展的当下,医疗人工智能作为一个极具潜力的新兴领域,正深刻地改变着传统医疗模式。从疾病的早期诊断、个性化治疗方案的制定,到药物研发的加速,人工智能技术的应用极大地提升了医疗服务…...
CDDIS从2025年2月开始数据迁移
CDDIS 将从 2025 年 2 月开始将我们的网站从 cddis.nasa.gov 迁移到 earthdata.nasa.gov,并于 2025 年 6 月结束。 期间可能对GAMIT联网数据下载造成影响。...
前端 | JavaScript中的reduce方法
1. 什么是reduce reduce 方法是 JavaScript 中数组的重要方法之一,用于对数组中的元素进行累积计算。它接收一个回调函数作为参数,并返回一个最终计算结果。reduce 在许多场景下都非常有用,比如求和、数组扁平化、对象计数、数据转换等。 2…...
【C++】B2124 判断字符串是否为回文
博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 💯前言💯题目描述输入格式:输出格式:样例: 💯方法一:我的第一种做法思路代码实现解析 💯方法二:我…...
人工智能学习(五)之机器学习逻辑回归算法
深入剖析机器学习逻辑回归算法 一、引言 在机器学习领域,逻辑回归是一种极为经典且应用广泛的算法。虽说名字里带有 “回归”,但它主要用于解决分类问题,在医学、金融、互联网等多个领域都发挥着关键作用。例如,在医学上辅助判断…...
Bash 基础与进阶实践指南
目录 Bash 简介与基础基本命令与文件操作权限管理与用户管理重定向与管道变量与环境变量通配符与正则表达式Shell 脚本结构与控制流常用内建命令与技巧文本处理常用命令作业控制与进程管理别名与函数实用技巧与注意事项更多 Bash 进阶话题参考资源 1. Bash 简介与基础 1.1 什…...
【Google全家桶AI功能2026终极前瞻】:20位谷歌AI Lab核心工程师闭门透露的7大颠覆性升级路径
更多请点击: https://intelliparadigm.com 第一章:Google全家桶AI功能2026升级全景图谱 2026年,Google正式将Gemini 3.5 Ultra深度集成至全系生产力产品中,实现跨端、实时、上下文感知的AI协同。核心升级聚焦于“意图理解前置化”…...
锌电池技术解析:长时储能的安全经济新选择
1. 储能技术演进与锌电池的崛起在能源转型的浪潮中,储能系统的角色已经从“锦上添花”变成了“不可或缺的基石”。我们从业者最直观的感受是,早期的储能项目大多围绕“削峰填谷”展开,目标相对单一。但随着可再生能源渗透率的急剧提升&#x…...
定时任务标准化合约:解决Cron Job协作混乱与状态管理难题
1. 项目概述:为定时任务建立“交通规则”在自动化运维和持续集成(CI)领域,定时任务(Cron Job)就像是系统里的“定时闹钟”和“自动工人”。它们负责在后台默默执行数据备份、日志清理、状态检查、报告生成等…...
DeepSeek Serverless冷启动优化实录:从1200ms到47ms的7次迭代,附Go/Rust双语言Runtime调优参数表
更多请点击: https://intelliparadigm.com 第一章:DeepSeek Serverless冷启动优化全景概览 DeepSeek Serverless 平台在 AI 模型推理场景中面临显著的冷启动延迟挑战,尤其当模型权重加载、CUDA 上下文初始化与 Python 运行时预热叠加时&…...
全网珍藏网安学习网站大全,一次性整理齐全,错过容易被删速收藏!
我们学习网络安全,很多学习路线都有提到多逛论坛,阅读他人的技术分析帖,学习其挖洞思路和技巧。但是往往对于初学者来说,不知道去哪里寻找技术分析帖,也不知道网络安全有哪些相关论坛或网站,所以在这里给大…...
动感软膜天花技术白皮书:从异形设计到商业照明的实战解析
动感软膜天花技术白皮书:从异形设计到商业照明的实战解析动感软膜天花的科技内核与市场演进当人们走进现代商业空间,头顶那片既能模拟蓝天白云软膜天花效果,又能实现动态光影变幻的顶面系统,正是动感软膜天花技术的具象化呈现。这…...
2016年FPGA市场格局:巨头并购、技术演进与工程师实战指南
1. 2016年FPGA市场格局:一场没有悬念的卫冕战聊起2016年的FPGA市场,就像看一场结局早已注定的体育比赛。赛灵思(Xilinx)毫无悬念地再次登顶年度营收榜首,这已经是它连续十几年稳坐头把交椅了。根本不需要什么复杂的财务…...
404 Not Found 与 500 Internal Server Error 全方位解析
前言在日常开发与运维中,HTTP 状态码是我们最常打交道的一类信号。其中,404 与 500 两类错误几乎占据了线上问题的一半以上。你是否遇到过:用户反馈页面打不开,浏览器提示 404 Not Found,但实际上资源明明存在…...
TinyRedis随笔
在TinyRedis的内存与AOF之间的关系中,AOF接入点在命令层中,因为只有在执行写命令,修改DB内存之后,再对AOF文件进行写入。但是这里也存在一个问题,如果对aof文件写入失败了呢,那就会造成内存与aof文件数据不…...
长期使用Taotoken Token Plan套餐带来的成本控制感受
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 长期使用Taotoken Token Plan套餐带来的成本控制感受 1. 从按需付费到预算规划 对于个人开发者或小型团队而言,大模型…...
