小白的数据仓库学习笔记 2024/5/20 18:25
文章目录
ETL
数据抽取、转换、加载
dim
打开

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


把元数据etl到数据仓库里面
建立元数据的连接

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

新建ssis包
分成两个脚本,一个维度、一个事实

这里做的是dim维度的,应该再dim.disx里面做,我这里选错窗口了
序列容器
如果不创建,整个页面就是容器,一次只能做一个

全量etl
把整张表的数据一下子整过去
- 删除数据(避免重复)
- 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
因为没有中文,这里就不需要转了
直接到目标

右侧增量

运行测试
第一次

第二次
