简介
这次我们将在SSIS中使用ODBC驱动进行连接。
ODBC(开放数据库 连接)是一个用于访问数据库系统的API。它现在也被用来连接到CSV文件、API和其他使用第三方插件的东西。我们现在将在SSIS中使用ODBC。
在这篇文章中,我们将学习。
- 创建ODBC源连接
- 创建一个数据库和表的目的地
- 为目的地创建一个ODBC连接
- 创建一个SSIS包,将数据从Adventureworks表中导入到测试数据库中。
我们将使用ODBC驱动将数据从一个表导入另一个表。
要求
- 首先,在Visual Studio中安装SSDT并勾选SSIS选项。
- 创建了一个新的集成服务项目。
创建一个ODBC数据源连接
首先,我们将创建ODBC数据源。在Windows文本框搜索中写下OD,以搜索ODBC数据源并打开它。

在ODBC数据源管理员中,按下添加按钮,添加一个新的数据源。

为数据源写一个名称,可选择一个描述,并提供SQL服务器名称。我们将与SQL Server ODBC驱动程序一起工作。

有几个选项可以对SQL Server的ODBC驱动程序进行验证。在这个例子中,我们将使用**"集成Windows认证**"连接到企业内部的SQL服务器。你也可以使用AD认证或SQL Server登录进行连接。其他选项是Azure认证方法,不在本教程的范围之内。

勾选 "将默认数据库改为 "复选框,选择AdventureWorks数据库。如果你没有安装Adventureworks数据库,请使用这个链接。
ANSI引号标识符是用来处理双引号是否为字符串的。
ANSI NULL用于控制空值的等价和不等价运算符的使用,Padding用于控制尾部的空格。最后,警告控制ISO标准来处理错误。
你还可以控制访问数据库的权限。默认情况下,它分配了读和写的权限,但你可以把它改为只读。
你也可以使用多子网故障转移,如果你的SQL Server处于故障转移环境中,就可以使用这个功能。透明网络IP解析是在IP没有响应的情况下使用的。在这种情况下,与该主机名相关的其他IP可能会响应。默认情况下,被选中。
加密列是用来处理总是加密的SQL功能。默认情况下,该选项未被选中。
FMTOnly是在SQL Server 2012或更高版本中使用。默认情况下,这个选项是禁用的。该选项通常在试图发现临时表数据或sp_describe_first_result_set存储过程不支持的查询时使用。
另外,在下一个向导中,你可以选择显示错误信息的语言。默认情况下,错误信息是以英语显示的。
你可以检查数据的强加密,以加密信息和使用证书。默认情况下,该选项是不被选中的。该选项将对通过连接传递的数据进行加密。
对字符数据执行翻译,默认情况下,是启用的。该选项在客户端和服务器之间使用UNICODE转换字符串。
我们也有在**输出货币、数字、日期和时间时使用区域设置。**该选项用于采取客户端的区域设置。默认情况下,这个选项是不被选中的。
保存长期运行的查询到日志文件,默认情况下也是不被选中的。如果查询的时间很长,你可以把信息储存在日志文件中。你可以指定日志文件的路径并设置长查询时间。默认情况下,它是30秒。
最后,你可以将日志ODBC驱动程序的统计数据保存到日志文件中。你可以为统计数据配置日志文件的路径,并指定连接重试次数和重试间隔。默认情况下,这两个值分别为1和10。按完成。

如果一切正常,你会收到一条信息,新的ODBC数据源将被创建。按 "测试数据源"按钮。

如果一切正常,应该显示TEST COMPLETED SUCCESSFULLY消息。按确定。

创建一个数据库和表的目的地
我们将创建一个名为test的新数据库作为目标。
要创建带有表的数据库,请使用以下命令行。
CREATE DATABASE TEST
GO
CREATE TABLE dbo.[Culture](
[CultureID] [nchar](6) NOT NULL,
[Name] nchar NOT NULL,
[ModifiedDate] [datetime] NOT NULL,
)
GO
该代码将创建一个名为to test的数据库和一个名为culture的表。这个表将被用来从Adventureworks数据库和文化表中导入数据。
为目的地创建一个ODBC连接
我们将创建另一个名为test connection的连接,并且不连接到Adventureworks数据库,而是使用SQL Server的ODBC驱动程序连接到之前创建的测试数据库。
创建ODBC目标连接的步骤与创建ODBC源连接的步骤相同,只是连接的名称将是测试连接而不是SQL连接。
另一个区别是,我们将把默认的数据库改为Test,而不是Adventureworks。其余的向导配置将是相同的。

创建一个SSIS包,将数据从Adventureworks表中导入到测试数据库中。
如果你没有创建一个SSIS项目,请到帮助要求中去,创建一个项目。
在SSIS项目中,拖放数据流任务。
双击数据流任务,拖放ODBC源任务和ODBC目的地,并将它们连接到一个流中。

同时,双击ODBC源,并按下新建按钮来创建一个新的连接。选择在ODBC中创建的ODBC SQL连接作为源连接。这个连接是使用SQL Server的ODBC驱动。
在表或视图的名称中,选择Production.Culture表,然后按确定。
接下来,双击ODBC目标任务,按 "新建"按钮,创建一个新的连接。
按 "新建"按钮,创建一个新的连接。

在使用用户或系统数据源名称中,选择测试连接。这个连接是由ODBC数据源管理员之前创建的。
一旦选择了连接,选择dbo.Culture表。这个表是由我们的T-SQL句子在测试数据库创建时创建的。最后,按确定。
最后,运行软件包,将数据从Adventureworks导出到测试数据库。

总结
在这篇文章中,我们学习了如何在SSIS中使用SQL Server的ODBC驱动。我们创建了源连接和目标连接,并了解了创建过程中的相关选项。然后,我们创建了一个SSIS包并添加了ODBC源和目标。我们使用ODBC连接连接到源和目的地,然后我们选择表来导入数据。最后,我们运行包,将数据从Adventureworks导入到测试目标表。




