数据仓库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

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

直接到目标

右侧增量

运行测试

第一次

第二次

相关推荐
一木 之林4 小时前
Dify学习笔记 03 · RAG检索增强生成:三代范式、评估与落地(第40-45、55-56集)
笔记·小程序·交互·dify
apple-mapping5 小时前
网络RTK定位学习总结
学习·网络rtk
楚山之石6 小时前
【Lancet Neurology 】多发性硬化认知障碍的 SDMT 筛查、灰质萎缩标志与认知康复循证路径
图像处理·人工智能·学习·mri
海海不掉头发7 小时前
CSDN博客_时序预测9模型复现对比
人工智能·学习·软件工程
蓝祁子yoky9 小时前
Qt学习日记 Day13:网络编程(一)-TCP基础与Socket实战
网络·qt·学习
箓维10 小时前
TCP Socket的进阶实现
网络·笔记·tcp/ip
二哈赛车手10 小时前
新人笔记---hermes定时功能设计,具体讲解以及可优化点
java·人工智能·笔记·spring·ai·typescript
架构师伯子明10 小时前
Ros 学习十三:IK Demo
学习
小羊没烦恼!10 小时前
关于分布式锁原理的一些学习与思考-redis分布式锁,zookeeper分布式锁
java·服务器·网络·学习·负载均衡
幼儿园蛋小黄10 小时前
从 STM32N647 的 AI 部署入门嵌入式:一条可落地的学习路线
人工智能·stm32·学习