进入了新的公司,开始接触新的方向,内心激动而又兴奋,对于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包的认识和设计的更多相关文章

  1. BI之路学习笔记2--SSIS/ETL设计练习三:《DB->定期生成excel表》

    上次笔记记到,用sql任务给参数赋值,映射到变量,然后把数据流任务放到序列容器中进行执行,可以定期生成excel, 现在的问题是: 在EXCEL目标编辑过程中,必须选定某一个特定的excel目标,这样 ...

  2. BI之路学习笔记3--olap cube理解实例

    为什么会产生OLAP? 随着数据库技术的发展应用,数据库存储的数据量从M字节以及G(千兆)字节过渡到T字节和P字节,同时,用户的查询需求也越来越复杂,设计的已不仅是查询或者操纵一张关系表中的一条或几条 ...

  3. [转帖]Linux学习笔记之rpm包管理功能全解

    Linux学习笔记之rpm包管理功能全解 https://www.cnblogs.com/JetpropelledSnake/p/11177277.html rpm 的管理命令 之前学习过 yum 的 ...

  4. Dynamic CRM 2013学习笔记(二十六)报表设计:Reporting Service报表 动态参数、参数多选全选、动态列、动态显示行字体颜色

    上次介绍过CRM里开始报表的一些注意事项:Dynamic CRM 2013学习笔记(十五)报表入门.开发工具及注意事项,本文继续介绍报表里的一些动态效果:动态显示参数,参数是从数据库里查询出来的:参数 ...

  5. Dynamic CRM 2013学习笔记(二十九)报表设计:reporting service 报表开发常见问题

    在报表开发过程中,经常会遇到各种各样的问题,比如The report cannot be displayed. (rsProcessingAborted),一点有意义的提示都没有:再就是分页问题,经常 ...

  6. Netty4 学习笔记之三:粘包和拆包

    前言 在上一篇Netty 心跳 demo 中,了解了Netty中的客户端和服务端之间的心跳.这篇就来讲讲Netty中的粘包和拆包以及相应的处理. 名词解释 粘包: 会将消息粘粘起来发送.类似吃米饭,一 ...

  7. 2017/1/7 学习笔记 jar包,maven

    ① 关于tar,jar,war文件 tar是通用的另一种打包格式,为了部署到服务器时方便. jar是java app server识别的java部署格式,其实是Zip文件,只是内部的文件有规范. wa ...

  8. Python 2.7 学习笔记 模块和包

    我们来考虑下如下几种场景: 1.编写一个python程序,如果程序比较简单,则可以把代码放到一个python文件中.但如果程序功能比较多,可能需要多个python文件来组织源代码.而这些文件之间的代码 ...

  9. node学习笔记2 —— npm包管理

    全局模式安装包 将包安装为全局可用的可执行命令, 并非可以从任意地方require 将 package.json中bin定义的文件软链到统一的目录下, 该目录可以通过如下方式推算出来: path.re ...

随机推荐

  1. 微信小程序把玩(三十三)Record API

    原文:微信小程序把玩(三十三)Record API 其实这个API也挺奇葩的,录音结束后success不走,complete不走,fail也不走, 不知道是不是因为电脑测试的原因,只能等公测或者等他们 ...

  2. 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 ...

  3. UWP开发:获取用户当前所在的网络环境(WiFi、移动网络、LAN…)

    原文:UWP开发:获取用户当前所在的网络环境(WiFi.移动网络.LAN-) UWP开发:获取用户当前所在的网络环境: 在uwp开发中,有时候,我们需要判断用户所在的网络,是WiFi,还是移动网络,给 ...

  4. QT 序列化/串行化/对象持久化

    本文以一个实例讲解Qt的序列化方法: Qt版本 4.8.0 Qt序列化简介 Qt采用QDataStream来实现序列化,QT针对不同的实例化对象有不同的要求.这里主要分两类,即:QT中原生的数据类型, ...

  5. Qt Creator调用VS2008生成的DLL注意事项 good

    问题:生成的dll文件QT无法静态/隐式调用 分析:调用的lib库可能是msvc编译的,而我用Qt调用,Qt默认编译器是minGW,两种编译器生成的函数名不一样,所以调用的时候你要用哪个函数,编译结果 ...

  6. c# html网页源代码浏览器显示

    //环境VS2008,WIN7SP1 //背景:人人网自动登陆,需要把读取到的html源代码显示出来, //test.txt 为html源代码 private void Form1_Load(obje ...

  7. 腾讯云直播录制遇到的bug

    1.录制方式应用:   初始化方法   [[TXUGCRecordshareInstance] startCameraCustom:param preview:_showPlayerView]; ID ...

  8. Dedecms 中,获取某一栏目所有子栏目

    以前从来没写过递归(其实想想,对算法完全没概念),刚好有这个需求,试着写了一下,发现也挺容易的,特别记录一下. 数据库是dedecms默认的,dede_arctype是保存栏目的表,reid是栏目的父 ...

  9. Socket2实现tcp端口扫描

    主要的界面如下: 主要代码如下: //对于每一个线程,传过去的参数 typedef struct ThreadParamStruct { CString strIP; //要扫描的IP地址 UINT ...

  10. 搭建RPC over HTTP 环境遇到的问题

    最近需要做RPC的IPS协议分析,需要了解一下RPC over HTTP的协议格式,由于此类数据包不易构造,故此想搭建一个抓一些包分析一下. 结果搭建这么个环境硬是用了我四个工作日的时间,崩溃加无语. ...