microsoft ssis 可以做啥

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了microsoft ssis 可以做啥相关的知识,希望对你有一定的参考价值。

参考技术A 关于微软ETL工具SSIS的一些资源

SSIS的全称是SQL Server Integration Service, 其前身是随SQL Server 7.0而发布的DTS
(Data Transformation Service),后改名为Integration Service。 它和SQL Server的另两个组件:
AS

(Analysis Service)和RS(Reporting Service)组成了完整的商务智能平台,覆盖了BI的整个生命周期,

从最开始的数据清洗、集成,到中间的多维分析和数据挖掘,再到最后的报表服务。 当然,

微软BI平台组件并不仅如此,还有些前端工具放在Office产品中,如ProClarity等。

SSIS一些有用的资源链接如下:

(1) SSIS的官方网站:

http://www.microsoft.com/sql/technologies/integration/default.mspx

(2) SSIS在MSDN上的论坛,有问题可以在上面提问, 有SSIS的开发人员回答:

http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=80&SiteID=1

(3) SQL Server Books Online & Samples

强烈推荐,尤其是其中有全面的例子,包括Package的设计、编程访问、自定子组件

等。SQL Server 2005在安装时选择Custom,然后可以选择安装所有的Documents和Samples。

SQL Server 2008 CTP版本中没这个选项了,需要到网站上下载,不知道正式版发布时会不会

带上。

(4) 一个叫ProjectREAL的BI参考实现项目,有SSIS在其中的详细应用与最佳实践:

http://www.microsoft.com/technet/prodtechnol/sql/2005/realetldp.mspx

(5) 一个专门讨论SSIS的第三方站点:

http://www.sqlis.com/

(6) 一本关于SSIS极好的书,全面深入,尤其是在开发自定义task、component等

方面,连SSIS开发组都人手一本:

http://www.amazon.com/Microsoft-Server-2005-Integration-Services/dp/0672327813/ref=pd_bbs_sr_1/104-9970106-1466329?ie=UTF8&s=books&qid=1175821768&sr=8-1

中文翻译版链接:

http://www.china-pub.com/37758

(7) SQL Server Magazine, 免费的,可以在线看全文,上面有很多关于SQL Server

BI的文章,可以知道SSIS的最新进展:

http://www.sqlmag.com/

(8) 微软BI方面的虚拟实验室,就是每个主题有个简单课程,你登录到它的机器上体验,

这样就免去安装、配置环境的烦恼了。没用过SSIS的可以用这个体验一把,不过在国内访问

貌似很慢,还不如自己安装了...:

http://technet.microsoft.com/en-us/bb499788.aspx

SSIS读取Excel空值问题解决

SSIS抽Excel数据,遇到一些问题,特将解决办法记录之,一来备忘,二来给广大开发网友提供参考:

数据访问驱动问题

报错:Microsoft.ACE.OLEDB.xxx provider is not registered on the local machine

微软自家产品访问Excel一般都要安装Microsoft.ACE.OLEDB(后面简称为ACE),安装一个正确版本的ACE到SSDT所在的机器上即可。

注意:由于SSDT目前只有32位版本,最好安装32bit的ACE驱动,而且相同版本的驱动或Office软件,要么装32位,要么装64位,无法并存。比如已安装了Office 2016 64 bit,就无法安装ACE16.0 32bit,但可以同时安装ACE 12.0 64bit。

多余空行

用户提供的Excel中间存在空行,或肉眼看上去没有空行,但实际SSIS抽取的数据中最后会有多余空行。

如何去除这些空行呢?方法两有种:

  • SSIS不做任何转换,先将原始数据加载到一个中间表,比如stg_xxx,然后再执行过滤空行的SQL语句,将中间表数据加载到最终表;
  • 在SSIS中用 Conditional Split 组件过滤空行

Excel中有值,但抽出来为NULL

这种情况一般出现在含纯数字文本的列中,Excel默认按前8行数据推测数据类型,若某列前8行数据都是数字,ACE抽出来的数,会认定为Float类型,后续行若与Float类型不兼容,会被自动转为NULL。

避免以上情况也有两种办法:

  • a)更新注册表,将默认8行,改为更大的数,或者0(无限大),同时连接字符串加上IMEX=1
    • 连接字符串示例:Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\my_file.xlsx;Extended Properties=“EXCEL 12.0 XML;HDR=YES;IMEX=1”`)
    • 注册表路径:
      • Computer\\HKEY_LOCAL_MACHINE\\SOFTWARE\\WOW6432Node\\Microsoft\\Office\\14.0\\Access Connectivity Engine\\Engines\\Excel\\TypeGuessRows(32位)
      • HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Office\\14.0\\Access Connectivity Engine\\Engines\\Excel\\TypeGuessRows (64位)
  • b)将Excel中对应列都改为Text类型,而不是General类型
    若没有权限无法更新注册表,就只能更新Excel文件单元格字段属性

总结

用SSIS直接抽取Excel数据真是问题多多,如果可以,还是用平面文件(如CSV)更方便。


参考资料:

  • https://stackoverflow.com/questions/46170343/reading-excel-sheet-using-ace-oledb-12-0-with-imex-1-not-working
  • https://docs.microsoft.com/en-us/sql/integration-services/load-data-to-from-excel-with-ssis?view=sql-server-ver15

以上是关于microsoft ssis 可以做啥的主要内容,如果未能解决你的问题,请参考以下文章

Microsoft Office Project是做啥的软件?

安装sql server 2008 R2,提示错误:此计算机上安装了 Microsoft Visual Studio 2008 的早期版本。请在安装 SQL Server 2008 前将 Micros

Talend Open Studio:脚本语言与 Microsoft SSIS

Microsoft.Xna.Framework 里面的Vector2主要是用于做啥的啊?

SSIS 包中 ReadUncommitted 隔离级别的解决方法

microsoft .net framework4简体中文语言包 能删除吗 做啥用的。