SSIS配置连接PostgreSQL数据库
业名词解释:
1、ODBC: Open DataBase Connectivity开放式数据库互联。
简单说就是他一个中间层,你开发的软件连上它,它连上数据源(也就是数据库)。这个数据库是access,还是sql server的,或者是oracle的,只要在odbc里设置就行了。这样odbc隔离了数据库的实现细节,解放了软件开发者,而不用再掉入具体数据库的实现细节里了。
在方便了软件开发的同时,也方便了软件系统的升级。
2、DSN:Data Source Name,数据源名称
1、由于SSIS连接上数据库需要一个中间层,即 ODBC,下载地址是:http://www.postgresql.org/ftp/odbc/versions/msi/
我下载的是最后两个,也就是如下:
psqlodbc_10_03_0000-x86.zip psqlodbc_10_03_0000-x86.zip
psqlodbc_10_03_0000-x64.zip psqlodbc_10_03_0000-x64.zip
2、下载结束后安装上面你的两个(注意:不管你的Windows系统是32位还是64位两个都需要安装)
安装好之后,在DSN的Drivers界面就能看到对应的ODBC信息了,下面2个一个是32位一个是64位的(打开该界面的指令:ODBCAD32),只有设置了User DSN后面在SSIS里面才能选择到对应的服务器。
3、点击到如下界面,没有配置之前该界面可能是空的,配置流程如下 0到6,1可以自定义2自己需要连接的DB,3 serverIP,4 是登录名和登陆密码, 5 是连接的端口号,该信息需要厂商提供, 6 这个目前默认就行了 7 配置好之后可以点击“Test”进行测试SSIS连接DB的情况(注意:如果开始的时候你只是测试,使用adm_Scottzhang这个账号去配置凭据和proxy去执行SSIS Job,那么这里你需要如下的配置,但是导入正式环境后你想用另一个账号去配置凭据和proxy去执行SSIS Job,那么"ODBC Data Source Administrator"的配置还是要再配置一次,这个是跟着账号走的,后面的实际情况验证我发现,只需要配置32位的就行了,64位的不需要,也就是说下面的第二个地址)
加64位的User DSN C:\Windows\System32\odbcad32.exe
加32位的User DSN C:\Windows\SysWOW64\odbcad32.exe
4、到这里DSN配置也结束了,可以开始SSIS开发了,如下界面是新建一个“连接管理”,这个“连接管理”在后面新建“SSIS Packages”的“Data Flow”设计里面的“ODBC Source”里面的“ODBC connection manager”会用到(数字的数字顺序就是实际操作的顺序) 2:因为我们配置的是 ODBC 数据连接接口,所以就选择这个,4:这里需要指定数据源,通过下拉框选择我们 第三步的 1 处配置的信息(这里不一样的原因是因为我新定义的一个PostgreSQL_10.90.20.119,大家实际操作的时候是一样的) 5:输入自己登陆 PostgreSQL的用户名和密码,设置好后还可以测试下链接情况。
5、上一步结束后“连接管理”就设置结束了,新建一个包的流程如下:
6、如下流程是建立一个ODBC数据源(就是需要从这个DB里面取资料),2:就是第4步建立的连接,现在显示的格式是:数据源名称.登陆该数据库的用户名 3:使用指令的方式,如果需要筛选字段还可以使用 4 进行字段筛选
7、目标DB(就是把资料塞到这个DB里面) 1:这一项如果之前没有可能就要新建 2:对应的表
8、如果 第6和第7步的表的字段名称是一样的,那么会自动匹配,如下图,如果不是一样自己指定就行了。
注意: 在设计的时候不要用如下(project)的连接,不然你部署的时候会非常非常麻烦,如果你连接的是SQL Server,只要用ADO.NET就行了,直接在如下区域右键创建就行,如果你连接PostgreSQL需要用ODBC,你就先右键选择ADO.NET,再在最上面选择ODBC连接,然后选择自己配置好的PostgreSQL就行了