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主要是用于做啥的啊?