警务数据仓库的实现
目录
- 一、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 之中。
相关文章:

警务数据仓库的实现
目录 一、SQL Server 2008 R2(一)SQL Server 的服务功能(二)SQL Server Management Studio(三)Microsoft Visual Studio 二、创建集成服务项目三、配置“旅馆_ETL”数据流任务四、配置“人员_ETL”数据流任…...

Excel·VBA数组分组问题
看到一个帖子《excel吧-数据分组问题》,对一组数据分成4组,使每组的和值相近 目录 代码思路1,分组形式、可分组数代码1代码2代码2举例 2,数组所有分组形式举例 这个问题可以转化为2步:第1步,获取一组数据…...
【笔记】Hbase基础笔记
启动hbase:进入hbase安装目录 输入bin/start-hbase.sh 打开shell命令行模式:进入hbase安装目录 输入bin/hbase shell 退出shell命令行模式:exit 停止hbase:进入hbase安装目录 输入bin/stop-hbase.sh 启动关闭Hadoop和HBase的顺序一…...

创建vue3项目并集成cesium插件运行
创建vue3项目并集成cesium插件 一、vue项目创建 1、前期准备 node.js&npm或yarn 本地开发环境已经安装好。 参考安装 2、安装vue-cli,要求3以上版本 #先查看是否已经安装 vue -V#安装 npm install -g vue/cli4.5.17 示例:Idea工具 页面 Termin…...

Mac 装 虚拟机 vmware、centos7等
vmware: https://www.vmware.com/products/fusion.html centos7 清华镜像: 暂时没有官方的 m1 arm架构镜像 centos7 链接: https://pan.baidu.com/s/1oZw1cLyl6Uo3lAD2_FqfEw?pwdzjt4 提取码: zjt4 复制这段内容后打开百度网盘手机App,操…...

工厂能耗管控物联网解决方案
工厂能耗管控物联网解决方案 工厂能耗管控物联网解决方案是一种创新的、基于先进技术手段的能源管理系统,它深度融合了物联网(IoT)、云计算、大数据分析以及人工智能等前沿科技,以实现对工业生产过程中能源消耗的实时监测、精确计…...
中间件学习
一、ES 场景:某头部互联⽹公司的好房业务,双⼗⼀前⼀天,维护楼盘的运营⼈员突然接到合作开发商的通知,需要上线⼀批热⻔的楼盘列表,上传完成后,C端⼩程序⽀持按楼盘的名称、户型、⾯积等产品属性全模糊搜索…...

iOS开发进阶(十一):ViewController 控制器详解
文章目录 一、前言二、UIViewController三、UINavigationController四、UITabBarController五、UIPageViewController六、拓展阅读 一、前言 iOS 界面开发最重要的首属ViewController和View,ViewController是View的控制器,也就是一般的页面,…...

修改mysql密码
1.在此处文件夹下打开cmd 2.输入命令mysqladmin -uroot -p旧密码 password 新密码 3.在navicat进行测试连接...

uniapp 使用命令行创建vue3 ts 项目
命令行创建 uni-app 项目: vue3 ts 版 npx degit dcloudio/uni-preset-vue#vite-ts 项目名称注意 Vue3/Vite版要求 node 版本^14.18.0 || >16.0.0 如果下载失败,请去gitee下载 https://gitee.com/dcloud/uni-preset-vue/repository/archive/vite-ts…...

一周学会Django5 Python Web开发-Django5模型定义
锋哥原创的Python Web开发 Django5视频教程: 2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~共计41条视频,包括:2024版 Django5 Python we…...
kingbaseESV8逻辑备份还原
数据库逻辑备份还原 sys_dump -h127.0.0.1 -Usystem -f/home/kingbase/db01.dmp db01 ksql -h127.0.0.1 test system -c drop database db01 ksql -h127.0.0.1 test system -c create database db01 ksql -h127.0.0.1 -Usystem -ddb01 -f/home/kingbase/db01.dmp --------…...

FreeRtos作业1
1.总结keil5下载代码和编译代码需要注意的事项 代码写完之后的操作流程 2.总结STM32Cubemx的使用方法和需要注意的事项 选择芯片型号 生成代码 3.总结STM32Cubemx配置GPIO的方法 4、使用定时器2让黄灯闪烁 /* USER CODE END Header */ /* Includes --------------------------…...
spring boot dynamic 动态数据数据源配置连接池
前言 我们可以使用 dynamic-datasource 来快速实现多数据源,但是多数据源配置连接池 以及说明文档都是收费的。 这里整理的连接池的配置以及配置说明 连接池配置 (druid或者 hikari 选择一个即可) 特此说明 如果配置配到了 spring.datasour…...
vue3中如何使用 watch 函数来观察响应式数据的变化
前言 在 Vue 3 中,可以使用 watch 函数来观察响应式数据的变化。这个函数可以在组件的 setup 函数中使用。watch()方法还可以实现更多复杂的功能,比如异步获取数据并在数据更新时重新渲染页面。 代码示例 1、以下是一个使用 Vue 3 watch 函数的简单示例…...

自建机房私有云吗?
大家好,我是小码哥,之前一种有没搞清楚公有云、私有云的概念,今天算是弄清楚了,这里给大家分享一下公有云、私有云的区别,以及自建机房算不算私有云! 其实私有云(Private Cloud)和公…...

解决npm init vue@latest证书过期问题:npm ERR! code CERT_HAS_EXPIRED
目录 一. 问题背景 二. 错误信息 三. 解决方案 3.1 临时解决办法 3.2 安全性考量 一. 问题背景 我在试图创建一个新的Vue.js项目时遇到了一个问题:npm init vuelatest命令出现了证书过期的错误。不过这是一个常见的问题,解决起来也简单。 二. 错误…...

缓存和缓存的常用使用场景
想象一下,一家公司在芬兰 Google Cloud 数据中心的服务器上托管一个网站。对于欧洲用户来说,加载可能需要大约 100 毫秒,但对于墨西哥用户来说,加载需要 3-5 秒。幸运的是,有一些策略可以最大限度地减少远程用户的请求延迟。 这些策略称为缓存和内容交付网络 (CDN),它们是…...

模板方法模式(继承的优雅使用)
目录 前言 UML plantuml 类图 实战代码 AbstractRoutingDataSource DynamicDataSource DynamicDataSourceContextHolder 前言 在设计类时,一般优先考虑使用组合来替代继承,能够让程序更加的灵活,但这并不意味着要完全抛弃掉继承。 …...

百度智能云千帆,产业创新新引擎
本文整理自 3 月 21 日百度副总裁谢广军的主题演讲《百度智能云千帆,产业创新新引擎》。 各位领导、来宾、媒体朋友们,大家上午好。很高兴今天在石景山首钢园,和大家一起沟通和探讨大模型的发展趋势,以及百度最近一段时间的思考和…...

地震勘探——干扰波识别、井中地震时距曲线特点
目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波:可以用来解决所提出的地质任务的波;干扰波:所有妨碍辨认、追踪有效波的其他波。 地震勘探中,有效波和干扰波是相对的。例如,在反射波…...
mongodb源码分析session执行handleRequest命令find过程
mongo/transport/service_state_machine.cpp已经分析startSession创建ASIOSession过程,并且验证connection是否超过限制ASIOSession和connection是循环接受客户端命令,把数据流转换成Message,状态转变流程是:State::Created 》 St…...

深入理解JavaScript设计模式之单例模式
目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式(Singleton Pattern&#…...

学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1
每日一言 生活的美好,总是藏在那些你咬牙坚持的日子里。 硬件:OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写,"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...

前端开发面试题总结-JavaScript篇(一)
文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包(Closure)?闭包有什么应用场景和潜在问题?2.解释 JavaScript 的作用域链(Scope Chain) 二、原型与继承3.原型链是什么?如何实现继承&a…...
CSS设置元素的宽度根据其内容自动调整
width: fit-content 是 CSS 中的一个属性值,用于设置元素的宽度根据其内容自动调整,确保宽度刚好容纳内容而不会超出。 效果对比 默认情况(width: auto): 块级元素(如 <div>)会占满父容器…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现企业微信功能
1. 开发环境准备 安装DevEco Studio 3.1: 从华为开发者官网下载最新版DevEco Studio安装HarmonyOS 5.0 SDK 项目配置: // module.json5 {"module": {"requestPermissions": [{"name": "ohos.permis…...
Monorepo架构: Nx Cloud 扩展能力与缓存加速
借助 Nx Cloud 实现项目协同与加速构建 1 ) 缓存工作原理分析 在了解了本地缓存和远程缓存之后,我们来探究缓存是如何工作的。以计算文件的哈希串为例,若后续运行任务时文件哈希串未变,系统会直接使用对应的输出和制品文件。 2 …...
深入浅出WebGL:在浏览器中解锁3D世界的魔法钥匙
WebGL:在浏览器中解锁3D世界的魔法钥匙 引言:网页的边界正在消失 在数字化浪潮的推动下,网页早已不再是静态信息的展示窗口。如今,我们可以在浏览器中体验逼真的3D游戏、交互式数据可视化、虚拟实验室,甚至沉浸式的V…...
Yii2项目自动向GitLab上报Bug
Yii2 项目自动上报Bug 原理 yii2在程序报错时, 会执行指定action, 通过重写ErrorAction, 实现Bug自动提交至GitLab的issue 步骤 配置SiteController中的actions方法 public function actions(){return [error > [class > app\helpers\web\ErrorAction,],];}重写Error…...