# 数据仓库的创建
背景:Food Mart 是一 家跨国 食品超市,每天有成千上万条来自世界各地的销售、库存等记录 在其 Food Mart 数据库中诞生。基于大数据的背景,该公司的管理层决定为 Food Mart 建立 数据仓库,期望能从庞大的数据中挖掘出有商业价值的信息,来进-一步帮助管理层进行决策。 由于数据仓库的建立是个漫长的过程,需要分期进行。 在项目初期,管理层决定: 先用销售数据建立数据仓库; 然后,在新建的数据仓库上进行 OLAP (联机分析处理); 接着,基于数据仓库建立一个数据挖掘模型,挖掘(研究)办理不同会员卡的老客户有 怎样的特征,进而根据新客户的信息,为新客户推荐不同的会员卡,给公司带来利润; 最后,用 Food Mart 库存数据扩展上述数据仓库的内容,并完成上述相似的工作。
# 装载维表
# 1、将 Foodmart 数据库 bak 文件还原
操作步骤:SQL SERVER 数据库中右键——任务——还原数据库
# 2、在数据库中建立维度表
根据数据库建立维度模型和事实表的模型,方便理清思路,作为维度表的依据 在 Management Studio 中新建维度数据库,根据模型新建维表
# 3、在 BI 中装载数据
利用 BI 的原因:因为在现实场景中,甲方常常不愿原始数据泄露,所以采用数据仓库的方式可以再不查看原始数据的条件下进行数据操作
操作步骤:
① 数据流任务
② 数据流任务中,新建 OLDB 数据源
③ 通过 Access 驱动连接 Access 服务器,获取数据源
④ 通过数据目标,将数据源中的数据装载到维度表中
注意:数据目标中映射很关键;装载维表时需要一个一个按顺序操作,不然很可能出错;出错原因可能是多次装载,导致主键冲突,用 delete 语句清除
# 装载事实表
# 1、获取调整后的数据源
在 Management Studio 中新建 fact 表,以及事实表中的各个列。
由于本例中商品销售地区不同,使用货币不同,所以需要在事实表中统一货币符号
思路:使用 sql 查询结果作为数据源;sql 查询时将多个表 join 到一起形成虚表,从而在虚表中查询经过汇率调整后的价格和成本
sql 代码如下:
SELECT sale_details.product_id, sale_details.customer_id, sale_details.promotion_id, sale_details.store_sales,
sale_details.store_cost, sale_details.unit_sales, sale_details.the_date, [currency].conversion_ratio,
sale_details.store_id
FROM ((store INNER JOIN
sale_details ON store.store_id = sale_details.store_id) INNER JOIN
[currency] ON YEAR(sale_details.the_date) = YEAR([currency].[date]) AND MONTH(sale_details.the_date)
= MONTH([currency].[date]) AND LEFT(store.store_country, 2) = LEFT([currency].[currency], 2))
2
3
4
5
6
7
# 2、将调整后的数据源派生成为新的列
使用派生列生成汇率转换之后的 store_sales 和 store_cost,命名为 store_sales_1 和 store_cost_1,生成新的两列,同时使用二者之差(利润)作为新的一列 profit
# 3、装载到数据目标
在数据目标中调整映射,将汇率转换之后的数据装载到事实表中
# 3、包的装载和部署
# 操作步骤:
①BI 中右键包,生成
② 右键包,部署——服务器选择:localhost
③ 创建路径:到 management studio 中找到管理——Integration service——右键——创建目录——设置密码
④ 回到 BI 进行部署——新建文件夹 eg.Maxmin——部署成功
⑤ 打开包中的.dtsx 文件——右键执行——显示装载结果报告
# 4、包的调度和定期执行装载
为了方便,将数据任务先清除,只剩 FACT 表装载,重新生成项目,重新部署
# 操作步骤:
① 打开 managementstudio——代理——右键——启动
② 用清除脚本 delete 这个事实表的数据
③ 这时,代理前变成 ▲
作业——新建作业——Maxminjob
④ 单机作业——新建步骤——step1——类型 integration service 包——sql 代理——localhost——包——删掉
⑤ 配置——管理器——确定——计划——新建计划——plan1——类型:重复执行——每天频率:执行一次,时间为 XX
⑥ 警报——事件警报
⑦ 手动执行作业:
右键——开始步骤——成功(在事实表中查看前 200 行)
⑧ 查看自动执行情况:
作业属性——查看作业历史记录——刷新多次——可看到作业完成情况