BI之路学习笔记1--SSIS包的认识和设计
进入了新的公司,开始接触新的方向,内心激动而又兴奋,对于BI以前知道的极少,从今天开始要好好学习了~
BI的概念,功能,强大之处在此先不做赘述,BI之路先要一步一个脚印扎实做起,现在正在看的也是之前好多大神们推荐的《SQL SERVER 2008商业智能完美解决方案》,相信无论对初学者还是BI高级开发人员都有启示。
首先,ETL工作之一,最简单的是SSIS包的设计-调试-执行-部署,做完我才发现原来微软Integration Services工具集的强大之处,比如今天做的Excel-->DB表的导入,只要设计一个SSIS包,执行一下就完成了EXCEL数据的导入,相比之前用C# 在VS里开发,不用写一行代码,不仅有可视化环境,还有强大的参数功能设置,甚是好用,如果使用了这个思路,相信以后开发会少很多繁琐,思路更加清晰,也会爱上BI这条路。
======================================================================================================
SSIS简介:
SSIS是Microsoft SQL Server Integration Services的简称,是生成高性能数据集成解决方案(包括数据仓库的提取、转换和加载 (ETL) 包)的平台,
Integration Services 包括用于生成和调试包的图形工具和向导;用于执行工作流函数(如 FTP 操作)、执行 SQL 语句或发送电子邮件的任务<基础第一步>;用于提取和加载数据的数据源和目标;用于清理、聚合、合并和复制数据的转换;用于管理 Integration Services 的管理服务 Integration Services 服务;以及用于对 Integration Services 对象模型编程的应用程序编程接口 (API)。
SSIS的典型用途:
1>合并来自异类数据存储区的数据
2>使管理功能和数据加载自动化
3>填充数据仓库和数据集市
4>清除数据和讲数据标准化
5>讲商业智能置入数据转换过程
SSIS/ETL设计练习一:《excel ->DB 表》
要求:把excel一次性导到数据库中。
步骤:
1、打开VS(BIDS),新建Integration Services项目,在SSIS包文件夹右键新建一个Package包(.dtsx)格式,
2、在控制流界面从工具箱拖放‘数据流任务’空间,右键编辑-->打开数据流界面编辑‘数据源’,‘转换’,‘数据目标’控件分别编辑
excel源:位置路径,列,映射
DB数据目标:server IP,用户名,密码,映射
编辑过程中,有红色X的话说明有问题,绿色说明检查通过。执行包或者数据流任务时,可以查看执行进度以及设置断点调试
右键执行包。可以看到执行进度,完成后导入数据库相应记录条数。
Notes:
为了避免数据类型不匹配不匹配导致需要增加数据转换,或者长度不匹配导致的字符串截,可以简单的在oledb目标里直接自动创建数据库连接里新的表,以达到自动适应的目的。
SSIS/ETL设计练习二:《DB->excel表》
要求:把设计好的包部署到sql server JOB中,每个月末定期运行一次,包的功能是:分别把段sql 查询语句段结果查询出来,导出到连个excel中,方案解析看Notes。
步骤:
1>建立数据流任务1,编辑数据流任务,添加oleDB源,添加excel目标源,分别编辑,(等出现提示不匹配的时候再增加‘数据转换’的控件)
2>oledb数据源编辑:连接器,访问模式:sql命令,sql文本:填写SQL查询语句,参数用?代替,然后编辑参数映射,参数值为设定的默认值,如:string /datetime类型:‘2015-09-01’,然后点击“分析查询”,能正确分析说明没有问题。
2>编辑excel目标路径。需要在filepath路径下新建立一个excel目标文件,然后在.xlsx目标文件内写入数据。
Notes:
因为要求是两段sql语句都是用相同的参数,并且需要每个月末运行一次,查询的是从月初到月末这一参数范围内的记录数,所以可以把两段SQL放在一个控制流的序列容器中,然后在开始的时候(序列容器之前)添加一个给SQL 语句段参数赋值的SQL任务,这样的话部署到sqlAgent后每个月末执行的时候不会再取默认值,而是把当前时间作为第二个参数,第一个参数为计算出的本月初时间《选取10位nvarcha(10)字符串格式,不会出错,如‘2015-09-30’》
如图:
这样的话就做好了,可以看到执行结果
BI之路学习笔记1--SSIS包的认识和设计的更多相关文章
- BI之路学习笔记2--SSIS/ETL设计练习三:《DB->定期生成excel表》
上次笔记记到,用sql任务给参数赋值,映射到变量,然后把数据流任务放到序列容器中进行执行,可以定期生成excel, 现在的问题是: 在EXCEL目标编辑过程中,必须选定某一个特定的excel目标,这样 ...
- BI之路学习笔记3--olap cube理解实例
为什么会产生OLAP? 随着数据库技术的发展应用,数据库存储的数据量从M字节以及G(千兆)字节过渡到T字节和P字节,同时,用户的查询需求也越来越复杂,设计的已不仅是查询或者操纵一张关系表中的一条或几条 ...
- [转帖]Linux学习笔记之rpm包管理功能全解
Linux学习笔记之rpm包管理功能全解 https://www.cnblogs.com/JetpropelledSnake/p/11177277.html rpm 的管理命令 之前学习过 yum 的 ...
- Dynamic CRM 2013学习笔记(二十六)报表设计:Reporting Service报表 动态参数、参数多选全选、动态列、动态显示行字体颜色
上次介绍过CRM里开始报表的一些注意事项:Dynamic CRM 2013学习笔记(十五)报表入门.开发工具及注意事项,本文继续介绍报表里的一些动态效果:动态显示参数,参数是从数据库里查询出来的:参数 ...
- Dynamic CRM 2013学习笔记(二十九)报表设计:reporting service 报表开发常见问题
在报表开发过程中,经常会遇到各种各样的问题,比如The report cannot be displayed. (rsProcessingAborted),一点有意义的提示都没有:再就是分页问题,经常 ...
- Netty4 学习笔记之三:粘包和拆包
前言 在上一篇Netty 心跳 demo 中,了解了Netty中的客户端和服务端之间的心跳.这篇就来讲讲Netty中的粘包和拆包以及相应的处理. 名词解释 粘包: 会将消息粘粘起来发送.类似吃米饭,一 ...
- 2017/1/7 学习笔记 jar包,maven
① 关于tar,jar,war文件 tar是通用的另一种打包格式,为了部署到服务器时方便. jar是java app server识别的java部署格式,其实是Zip文件,只是内部的文件有规范. wa ...
- Python 2.7 学习笔记 模块和包
我们来考虑下如下几种场景: 1.编写一个python程序,如果程序比较简单,则可以把代码放到一个python文件中.但如果程序功能比较多,可能需要多个python文件来组织源代码.而这些文件之间的代码 ...
- node学习笔记2 —— npm包管理
全局模式安装包 将包安装为全局可用的可执行命令, 并非可以从任意地方require 将 package.json中bin定义的文件软链到统一的目录下, 该目录可以通过如下方式推算出来: path.re ...
随机推荐
- 微信小程序把玩(三十三)Record API
原文:微信小程序把玩(三十三)Record API 其实这个API也挺奇葩的,录音结束后success不走,complete不走,fail也不走, 不知道是不是因为电脑测试的原因,只能等公测或者等他们 ...
- ORA-02085: database link string connect to string
ORA-02085: database link string connects to string Cause: a database link connected to a database wi ...
- UWP开发:获取用户当前所在的网络环境(WiFi、移动网络、LAN…)
原文:UWP开发:获取用户当前所在的网络环境(WiFi.移动网络.LAN-) UWP开发:获取用户当前所在的网络环境: 在uwp开发中,有时候,我们需要判断用户所在的网络,是WiFi,还是移动网络,给 ...
- QT 序列化/串行化/对象持久化
本文以一个实例讲解Qt的序列化方法: Qt版本 4.8.0 Qt序列化简介 Qt采用QDataStream来实现序列化,QT针对不同的实例化对象有不同的要求.这里主要分两类,即:QT中原生的数据类型, ...
- Qt Creator调用VS2008生成的DLL注意事项 good
问题:生成的dll文件QT无法静态/隐式调用 分析:调用的lib库可能是msvc编译的,而我用Qt调用,Qt默认编译器是minGW,两种编译器生成的函数名不一样,所以调用的时候你要用哪个函数,编译结果 ...
- c# html网页源代码浏览器显示
//环境VS2008,WIN7SP1 //背景:人人网自动登陆,需要把读取到的html源代码显示出来, //test.txt 为html源代码 private void Form1_Load(obje ...
- 腾讯云直播录制遇到的bug
1.录制方式应用: 初始化方法 [[TXUGCRecordshareInstance] startCameraCustom:param preview:_showPlayerView]; ID ...
- Dedecms 中,获取某一栏目所有子栏目
以前从来没写过递归(其实想想,对算法完全没概念),刚好有这个需求,试着写了一下,发现也挺容易的,特别记录一下. 数据库是dedecms默认的,dede_arctype是保存栏目的表,reid是栏目的父 ...
- Socket2实现tcp端口扫描
主要的界面如下: 主要代码如下: //对于每一个线程,传过去的参数 typedef struct ThreadParamStruct { CString strIP; //要扫描的IP地址 UINT ...
- 搭建RPC over HTTP 环境遇到的问题
最近需要做RPC的IPS协议分析,需要了解一下RPC over HTTP的协议格式,由于此类数据包不易构造,故此想搭建一个抓一些包分析一下. 结果搭建这么个环境硬是用了我四个工作日的时间,崩溃加无语. ...