目录
- 一、SQL Server 2008 R2
- (一)SQL Server 的服务功能
- (二)SQL Server Management Studio
- (三)Microsoft Visual Studio
- 二、创建集成服务项目
- 三、配置“旅馆_ETL”数据流任务
- 四、配置“人员_ETL”数据流任务
- (一)创建“人员_ETL”对象
- (二)配置“人员_ETL”参数
- 五、配置“时间_ETL”数据流任务
- 六、配置“入住_ETL”数据流任务
- 七、SSIS包package的部署
- (一)将包另存到SSIS服务器
- (二)创建作业代理
本文介绍在警务信息数据仓库分析与设计的基础上,应用 Microsoft SQL Server 2008 R2 的集成服务(SQL Server Integration Services,SSIS)功能, 完成警务信息数据仓库 SSIS 包的配置任务,并最终实现将数据源 OLTPHotel 中的数据, 抽取转化后加载到数据仓库 HuangDW_Hotel 之中。
一、SQL Server 2008 R2
Microsoft SQL Server 微软公司推出的一款商品化关系型数据库管理系统(RDBMS),因其中包括了数据仓库的管理功能,也是一款关系数据仓库管理系统(RDWMS),在国际国内有广泛用户群。
Microsoft SQL Server 2008 R2 在 SQL Server 2008 基础上增加了许多新的功能,不仅能为用户的关键商业应用提供可信赖的、高效的、智能的开发平台,支持策略管理和审核、大规模数据仓库、空间数据、高级报告与分析服务等功能,还增强了应用开发能力,提高了可管理性,强化了对商业智能及数据仓库的支持。
我们的警务信息数据仓库是在 SQL Server 2008 R2 平台上实现的,因此,简单介绍 SQL Server 2008 R2 与警务信息数据仓库实现有关的服务功能。
(一)SQL Server 的服务功能
- 数据库引擎(SSDE)是 SQL Server 系统的核心服务,包括传统数据库管理系统(DBMS)和数据仓库管理系统(DWMS)功能。
- 集成服务(SSIS)是一个功能强大的数据集成平台,可以完成有关数据的 “提取-转换-加载(ETL)” 功能。
- 分析服务(SSAS)提供了 OLAP 多维分析和数据挖掘功能,支持用户对所建立的数据仓库进行商业智能分析。
- 报表服务(SSRS)为用户提供了支持企业级的 Web 报表功能。通过使用 SSRS 服务,用户可以方便地定义和发布满足自己需求的报表,且无论是报表的布局格式,还是报表的数据源,用户都可以轻松地实现 Word,PDF,Excel,XML 等格式的报表。
(二)SQL Server Management Studio
SQL Server Management Studio(SSMS)是一个集成的数据库/数据仓库管理环境,用于访问、配置、管理和创建 SQL Server 数据库/数据仓库有关的所有组件,使如数据库引擎(SSDE)、分析服务(SSAS)、报表服务(SSRS)、集成服务(SSIS)和嵌入式数据库(SSC)协同工作。
在其【服务器类型】下拉框内有【数据库引擎】、Analysis Services、Reporting Services、Integration Services 和 SQL Server Compact 等5个选项。选择其中任何一个获得相应服务功能。
(三)Microsoft Visual Studio
1、商业智能开发平台简介
- Microsoft Visual Studio(MVS)是微软公司推出的一个软件集成开发环境,称为商业智能开发平台(SQL Server Business Intelligence Development Studio),是目前最为流行的 Windows 应用程序开发环境之一。
- SQL Server Integration Services(集成服务,简称SSIS)工具,可完成对数据源的数据抽取、转换并装载到数据仓库的集成项目开发,包括控制流、数据流任务参数配置。
- SQL Server Analysis Services(分析服务,SSAS)工具,可完成对数据仓库数据的各种多维数据集重构,为 OLAP 分析提供支持。
- SSIS 是 SQL Server 为用户提供的主要智能服务功能之一,是一个可视化的高性能数据 “抽取-转换-装载”(ETL)集成解决方案的配置和调试平台。
- 对每一个实际应用问题,可利用 SSIS 为其开发一个数据集成方案(称为一个SSIS包)。SSIS 提供了一系列支持应用开发的内置任务和容器,数据源、数据查找、数据转换、数据目的等配置控件。用户只要配置数据流中各种控件的参数,几乎无需编写一行代码,就可以创建 SSIS 包来解决 ETL 等复杂的商业智能数据集成问题。
2、进入商业智能开发平台
选择 Windows 的【SQL Server Business Intelligence Development Studio】菜单命令,进入 SQL Server 商业智能开发平台 Microsoft Visual Studio(MVS)的【起始页】窗口。
3、本章后续内容
本章后面几节将要介绍的内容,就是在这个 MVS 平台上完成如下两项工作。
(1)创建集成服务项目
每一个集成服务项目至少有一个 SSIS 包,所以,当 HuangDC_ETL 成功创建后,它有一个默认的 SSIS 包名称 Package.dtsx。
(2)配置数据流任务
一个 SSIS 包通常由若干个数据流任务连接起来的控制流组成,它们是从数据源中抽取数据,并将其清理、合并转换后加载到数据仓库的一个集成解决方案。下图显示的是已经完成配置的教程实例 SSIS 包,它由7个数据流任务组成,其中的箭头表明了它们的执行顺序。
① 旅馆_ETL。负责将数据源 OLTPHotel 中旅馆信息表 LGXX 的数据抽取出来,经过转换后,加载到数据仓库 HuangDW_Hotel 目的表 DimHotel(旅馆维度表)之中。
OLTPHotel.LGXX → HuangDW_Hotel.DimHotel
② 人员_ETL。将 OLTPHotel 中常住人口表 CZRK、暂住人口表 ZZRK 和人员前科表 RYQK,加载到数据仓库 HuangDW_Hotel 目的表 DimPeople(人员维度表)之中。
OLTPHotel.CZRK, ZZRK, RYQK → HuangDW_Hotel. RYQK
③ 时间_ETL。将 OLTPHotel 中旅馆入住表 LGRZ 的入住时间 RZSJ 和离店时间 LDSJ 抽取出来,派生出年、月、日、时等新列,加载到数据仓库 HuangDW_Hotel 目的表 DimDate(时间维度表)之中。
OLTPHotel. LGRZ → HuangDW_Hotel.DimDate
④ 入住_ETL。将 OLTPHotel 旅馆入住表 LGRZ 的数据抽取出来,派生出年、月、日、时等新列,加载到数据仓库 HuangDW_Hotel 目的表 FactHotel(旅馆事实表)之中。
OLTPHotel.LGRZ → HuangDW_Hotel.FactHotel
⑤ 犯罪_ETL。将 OLTPHotel 中犯罪类型表 FZLX 的数据抽取出来,加载到 HuangDW_Hotel 目的表 DimCaseType(犯罪类型维度表)之中。
OLTPHotel.FZLX → HuangDW_Hotel.DimCaseType
⑥ 地址_ETL。将 OLTPHotel 中所属辖区表 SSXQ 的数据抽取出来,加载到 HuangDW_Hotel 目的表 DimAddress(地址维度表)之中。
OLTPHotel.SSXQHuangDW_Hotel.DimAddress
⑦ 派出所_ETL。将 OLTPHotel 中派出所表 PCS 的数据抽取出来,加载到 HuangDW_Hotel 目的表 DimPolice(派出所维度表)之中。
OLTPHotel.PCS → HuangDW_Hotel. DimPolice
二、创建集成服务项目
在 MVS【起始页】窗口【文件】菜单中依次选择【新建】-【项目】菜单命令,弹出如图所示的【新建项目】窗口。
说明 SSIS 包的设计窗口主要有4个区域。
1、菜单命令及其快捷按钮区域,分布在窗口的第一行和第二行;
2、功能设计区域,在窗口的正中央——包括【控制流】,【数据流】、【事件处理程序】和【包资源管理器】等功能选项卡,是配置SSIS包的操作和显示区域。实例仅使用【控制流】和【数据流】选项卡。
3、【工具箱】区域位于【控制流】选项卡的左边,可折叠/展开窗口。
(1)SSIS 包要想完成从数据源抽取数据,并将其转换和加载到数据仓库等各种操作步骤,都需要借助工具箱中的特定控件来实现。
(2)多个控件组成的一个执行顺序就构成一个数据流任务,多个数据流任务按照执行顺序连接起来称为一个控制流。
4、【解决方案资源管理器】区域分布在窗口的右边,显示了整个项目拥有的对象,如数据源,数据源视图、SSIS 包和杂项等,以方便用户随时查看和引用。
说明:在 SSIS 包的配置实验过程中,可随时停止配置并退出 SQL Server 商业智能开发平台(MVS)。重新启动商业智能开发环境,在【起始页】窗口的【最近的项目】区域内单击 HuangDC_ETL,可重新进入 SSIS 包的设计窗口。
三、配置“旅馆_ETL”数据流任务
配置将数据源 OLTPHotel 中旅馆信息表 LGXX 的数据,抽取、转化并加载到数据仓库 HuangDW_Hotel 目的表 DimHotel 之中所需要的操作控件、操作顺序和相关参数。比如数据源 LGXX 所在的服务器名称、数据库名称,还有目的表 DimHotel 所属数据库名称,以及数据库所在的服务器名称等。
四、配置“人员_ETL”数据流任务
(一)创建“人员_ETL”对象
添加 “数据流任务” 并重命名为 “人员_ETL”。
(二)配置“人员_ETL”参数
“人员_ETL” 对象包括 “ADO NET源”、“数据转换”、“派生列”、“查找”、“排序”、“合并”、“合并联接” 和 “ADO NET Destination” 等多种控件组成。
五、配置“时间_ETL”数据流任务
配置 “时间_ETL” 数据流任务,就是配置将旅馆入住信息表 LGRZ 的入住时间 RZSJ 和离店时间 LDSJ 两个数据,抽取到数据仓库目的表 DimDate 之中所需要的操作控件、操作顺序和相关参数。
六、配置“入住_ETL”数据流任务
“入住_ETL” 对象创建的步骤和操作方法与前面创建 “人员_ETL” 对象完全相同。可以模仿完成 “入住_ETL” 对象的创建。
此外,我们还需 “犯罪_ETL” 数据流任务,“地址_ETL” 数据流任务和 “派出所_ETL” 数据流任务,且其配置过程与旅馆_ETL、入住_ETL的类似。下图所示分别展示了每个数据流任务中所需的控件。
七、SSIS包package的部署
前面已成功创建了一个集成服务项目 HuangDC_ETL,并为该项目的 SSIS 包 package.dtsx 配置了 “旅馆_ETL”、“人员_ETL” 等7个数据流任务。将把包 package.dtsx 部署到 SQL Server 的 SSIS 服务器中,使其能够根据指定的时间节点自动运行这个包,完成从 OLTPHotel 不断抽取数据并追加到数据仓库 HuangDW_Hotel 的任务。
SSIS 包的部署包括如下2项工作。
(1)将 SSIS 包 package.dtsx 另存到 SSIS 服务器,并将其命名为 HDC_ETL_Hotel,使其成为一个 “已存储的包” 对象存储在 SSIS 服务器之中;
(2)配置包的运行作业参数,包括周期和时间,使代理能够在指定时间内执行该包。
(一)将包另存到SSIS服务器
1、进入 SSIS 包文件所在的文件夹
2、打开 SSIS 包的设计窗口
3、指定 SSIS 包另存的服务器
4、为 SSIS 包副本命名
5、配置包保护级别
6、将包另存到服务器
7、查看包另存的结果
服务器类型选择 Integration Services 登录 SSMS。
(二)创建作业代理
1、登录数据库服务器
【服务器类型】选择 “数据库引擎” 登录SSMS。
2、启动 SQL Server 代理
3、配置新建的作业
(1)打开 “新建作业” 窗口。
(2)配置 “常规” 属性。
(3)打开作业 “步骤” 窗口。
(4)配置 “新建作业步骤” 参数。
(5)打开作业 “计划” 窗口。
(6)配置 “新建作业计划”。
4、查看新建作业
在图窗口中右击【SQL Server代理】对象,并在快捷菜单中选择【刷新】命令,再展开【SQL Server代理】,即可在【作业】对象下面看见一个名为 “旅馆数据抽取作业” 的对象。这表明存储在 SSIS 服务器中的包 HDC_ETL_Hotel,已作为 SQL Server 数据库服务器中的一个代理作业。至此以后会,它将在规定时间节点(每天凌晨2点)自动抽取事务数据库 OLTPHotel 中新增加的数据,并将其追加到数据仓库 HuangDW_Hotel 之中。