学习SSIS中的ODBC驱动

361 阅读6分钟

简介

这次我们将在SSIS中使用ODBC驱动进行连接。

ODBC(开放数据库 连接)是一个用于访问数据库系统的API。它现在也被用来连接到CSV文件、API和其他使用第三方插件的东西。我们现在将在SSIS中使用ODBC。

在这篇文章中,我们将学习。

  • 创建ODBC源连接
  • 创建一个数据库和表的目的地
  • 为目的地创建一个ODBC连接
  • 创建一个SSIS包,将数据从Adventureworks表中导入到测试数据库中。

我们将使用ODBC驱动将数据从一个表导入另一个表。

要求

  1. 首先,在Visual Studio中安装SSDT并勾选SSIS选项。
  2. 创建了一个新的集成服务项目

创建一个ODBC数据源连接

首先,我们将创建ODBC数据源。在Windows文本框搜索中写下OD,以搜索ODBC数据源并打开它。

Windows search ODBC Data Sources

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

ODBC Data Source Administrator

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

Name ODBC connection

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

ODBC Authentication options

勾选 "将默认数据库改为 "复选框,选择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 language and logs

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

Test ODBC Data Source

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

TEST SUCCESSFUL

创建一个数据库和表的目的地

我们将创建一个名为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。其余的向导配置将是相同的。

ODBC connection to test database

创建一个SSIS包,将数据从Adventureworks表中导入到测试数据库中。

如果你没有创建一个SSIS项目,请到帮助要求中去,创建一个项目。

在SSIS项目中,拖放数据流任务。

双击数据流任务,拖放ODBC源任务和ODBC目的地,并将它们连接到一个流中。

SSIS ODBC Source and destination

同时,双击ODBC源,并按下新建按钮来创建一个新的连接。选择在ODBC中创建的ODBC SQL连接作为源连接。这个连接是使用SQL Server的ODBC驱动。

select ODBC connection

在表或视图的名称中,选择Production.Culture表,然后按确定。

odbc select tables

接下来,双击ODBC目标任务,按 "新建"按钮,创建一个新的连接。

ODBC Destination connection

按 "新建"按钮,创建一个新的连接。

Create new SSIS connection

使用用户或系统数据源名称中,选择测试连接。这个连接是由ODBC数据源管理员之前创建的。

select ODBC connection

一旦选择了连接,选择dbo.Culture表。这个表是由我们的T-SQL句子在测试数据库创建时创建的。最后,按确定。

ODBC zelect destination table

最后,运行软件包,将数据从Adventureworks导出到测试数据库。

ssis run package

总结

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