数据仓库ETL

小白的数据仓库学习笔记 2024/5/20 18:25

文章目录

ETL

数据抽取、转换、加载

dim

打开

创建项目(选这个,这个是做etl的)

把元数据etl到数据仓库里面

建立元数据的连接

同样的,建立与数据仓库的连接

新建ssis包

分成两个脚本,一个维度、一个事实

这里做的是dim维度的,应该再dim.disx里面做,我这里选错窗口了

序列容器

如果不创建,整个页面就是容器,一次只能做一个

全量etl

把整张表的数据一下子整过去

  1. 删除数据(避免重复)
  2. etl

增量etl

一天一天的,没过一天抽一次,每天多一点

建立sql任务

双击打开,设置连接、内容

双击数据流任务

OLE DB源、数据转换、OLE DB目标

确定数据源,清洗转换

这里易错,sql命令写的是从数据源查询过来的

成功

再做两个

同样的,再做两个全量

两个表列的数据类型不一致

然后修改列的数据类型并保存

先全量,后增量

为什么先全量,后增量?

在你数据分析之前,已经产生了大量的数据

fact

sql任务

左侧分支做全量

双击线

等于0的时候走左侧

把CreateDate转成varcher类型,再转成int类型

sql 复制代码
select 
[FrameNo]
 ,[SaleShop]
 ,datekey
 ,[SalePrice]
 ,[FactoryPrice]
 ,[SaleType]
from(
SELECT [FrameNo]
 ,[SaleShop]
 ,convert(int,convert(varchar,[CreateDate],112)) datekey 
 ,[SalePrice]
 ,[FactoryPrice]
 ,[SaleType]
  FROM [jtxy_source].[dbo].[tbl_EXE_SaleCar])a
  where a.datekey<=20110814;

数据转换、连接、映射

这里SaleType是中文,要转一下

右侧做增量

双击线

数据转换和目标和左侧一致

运行测试

第一次

第二次

做另外一个

同样的

创建序列容器,和上面的基本一致

这个就可以,因为datekey再order by时已经存在

sql 复制代码
 SELECT 
distinct(convert(int,convert(varchar,[SubmitTime],112))) datekey

  FROM [jtxy_source].[dbo].[tbl_EXE_TargetData] order by datekey

这个就不对,因为执行where时datakey还不存在,所以报错

SELECT TargetValue

,TargetRange

,TargetData

,convert(int,convert(varchar,SubmitTime,112)) datekey

,TargetFor

,TargetShop

FROM jtxy_source.dbo.tbl_EXE_TargetData

where datekey<=20110809

​ OLE DB源

sql 复制代码
select
[TargetValue]
,[TargetRange]
,TargetData
,datekey
,[TargetFor]
,[TargetShop]
from

(SELECT [TargetValue]
,[TargetRange]
,TargetData
,convert(int,convert(varchar,[SubmitTime],112)) datekey
,[TargetFor]
,[TargetShop]
  FROM [jtxy_source].[dbo].[tbl_EXE_TargetData])a
  where a.datekey<=20110809

因为没有中文,这里就不需要转了

直接到目标

右侧增量

运行测试

第一次

第二次

相关推荐
乌暮14 分钟前
JVM 原理与实践:从运行时数据区到线上故障排查
java·开发语言·jvm·后端·学习·面试
维克兜率天35 分钟前
【维克】配对交易的季节性:哪些品种适合长拿?
android·开发语言·笔记·python·算法·kotlin·量化
路弥行至1 小时前
【Head First 设计模式】第 2 章:观察者模式 —— 用现代 C++ 重新解读“交互对象的松耦合
c++·经验分享·笔记·观察者模式·设计模式·入门教程·headfirst
酬谢神明则必安1 小时前
git学习记录01
linux·git·学习
m4Rk_3 小时前
【论文阅读】Agent 记忆机制(89):PersonaAgent——构建 Memory、Persona 与 Action 的持续反馈闭环
论文阅读·人工智能·学习·开源·github
坤坤子吖3 小时前
Python基础语法学习:条件、循环与程序控制
开发语言·笔记·python·学习
远离UE43 小时前
UE5.8 Substrate Glint 笔记
笔记
用户14036058193833 小时前
Phase A · Step 3:模型导出 ONNX
笔记
胡二拉二胡3 小时前
抗遗忘单词表 App:让单词记忆不再「背了就忘」
经验分享·笔记·学习