使用 SQL Server Integration Services (SSIS) 将数据加载到 SQL Server 或 Azure SQL 数据库中

适用于: SQL Server Azure 数据工厂中的 SSIS Integration Runtime

创建 SQL Server Integration Services (SSIS) 包,将数据加载到 SQL Server 或 Azure SQL 数据库中。 可以选择在数据通过 SSIS 数据流时对其进行重构、转换和清理。

本文演示如何完成以下操作:

  • 在 Visual Studio 中创建新的 Integration Services 项目。
  • 设计可将数据从源加载到目标中的 SSIS 包。
  • 运行 SSIS 包以加载数据。

基本概念

包是 SSIS 中的基本工作单位。 相关包在项目中进行分组。 可使用 SQL Server Data Tools 在 Visual Studio 中创建项目并设计包。 设计过程是一个可视化过程,通过该过程,可将工具箱中的组件拖放到设计图面、连接这些组件并设置其属性。 完成后可以运行包,并可选择将其部署到 SQL Server 或 SQL 数据库,从而实现全面管理、监视和安全性。

本文不对 SSIS 做详细介绍。 若要了解详细信息,请参阅以下文章:

关于解决方案

解决方案是一种典型包,它使用包含源和目标的数据流任务。 此方法支持各种数据源,包括 SQL Server 和 Azure SQL 数据库。

本教程使用 SQL Server 作为数据源。 SQL Server 可在本地或 Azure 虚拟机上运行。

若要连接到 SQL Server 和 SQL 数据库,可使用 ADO.NET 连接管理器以及源和目标,或 OLE DB 连接管理器以及源和目标。 本教程使用 ADO NET,因为它的配置选项最少。 OLE DB 的性能可能略高于 ADO.NET。

可使用 SQL Server 导入和导出向导快速创建基本包。 然后保存此包,在 Visual Studio 或 SSDT 中打开包后进行自定义。 有关详细信息,请参阅使用 SQL Server 导入和导出向导导入和导出数据

必备条件

若要逐步完成本教程,需要以下各项:

  1. SQL Server Integration Services (SSIS) 。 SSIS 是 SQL Server 的一个组件,需要 SQL Server 的许可版、开发人员版或评估版。 要获取 SQL Server 评估版,请参阅评估 SQL Server

  2. Visual Studio(可选)。 要获取免费的 Visual Studio Community Edition,请参阅 Visual Studio Community。 如果不想安装 Visual Studio,可以只安装 SQL Server Data Tools (SSDT)。 SSDT 安装的 Visual Studio 版本功能有限。

  3. 适用于 Visual Studio 的 SQL Server Data Tools (SSDT) 。 要获取适用于 Visual Studio 的 SQL Server Data Tools,请参阅下载 SQL Server Data Tools (SSDT)

  4. 本教程将连接到 SQL Server 或 SQL 数据库实例并向其中加载数据。 必须具有连接、创建表以及加载以下目标之一的数据的权限:

    • Azure SQL 数据库 。 有关详细信息,请参阅 Azure SQL 数据库

    • SQL Server 实例 。 SQL Server 可在本地或 Azure 虚拟机上运行。 若要下载 SQL Server 的免费评估版或开发人员版,请参阅 SQL Server 下载

  5. 示例数据。 本教程使用 AdventureWorks 示例数据库中存储在 SQL Server 中的示例数据,作为源数据。 要获取 AdventureWorks 示例数据库,请参阅 AdventureWorks 示例数据库

  6. 要将数据加载到 SQL 数据库中,请参阅防火墙规则。 必须先使用本地计算机的 IP 地址在 SQL 数据库上创建防火墙规则,才可将数据上传到 SQL 数据库。

创建新的 Integration Services 项目

  1. 启动 Visual Studio。

  2. 在“文件”菜单中,选择“新建”>“项目”

  3. 导航到“已安装”>“模板”>“商业智能”>“Integration Services”项目类型

  4. 选择“Integration Services 项目” 。 提供“名称”和“位置”的值,然后选择“确定” 。

Visual Studio 随即打开,并创建新的 Integration Services (SSIS) 项目。 然后,Visual Studio 在项目中打开单个新 SSIS 包 (Package.dtsx) 的设计器。 可看到以下屏幕区域:

  • 左侧是 SSIS 组件的“工具箱” 。

  • 中间是包含多个选项卡的设计图面。 通常情况下,至少会使用“控制流”和“数据流”选项卡 。

  • 右侧是“解决方案资源管理器”和“属性”窗格 。

    Visual Studio 的屏幕截图,其中显示了“工具箱”窗格、“设计”窗格、“解决方案资源管理器”窗格和“属性”窗格。

创建基本数据流

  1. 将“数据流任务”从“工具箱”拖动到“控制流”选项卡上的设计图面。

    Visual Studio 的屏幕截图,显示数据流任务被拖动到设计窗格的控制流选项卡中。

  2. 双击“数据流任务”以便切换到“数据流”选项卡。

  3. 从工具箱中的其他源列表中,将 ADO.NET 源拖到设计图面。 如果源适配器仍处于选中状态,请在“属性”窗格中将其名称更改为“SQL Server 源” 。

  4. 从“工具箱”的“其他目标”列表中,将 ADO.NET 目标拖动到 ADO.NET 源下的设计图面。 如果目标适配器仍处于选中状态,请在“属性”窗格中将其名称更改为“SQL 目标” 。

    将目标适配器拖动到源适配器正下方的位置的屏幕截图。

配置源适配器

  1. 双击源适配器,打开“ADO.NET 源编辑器”。

    ADO.NET 源编辑器的屏幕截图。“连接管理器”选项卡可见,控件可用于配置数据流属性。

  2. ADO.NET 源编辑器的“连接管理器”选项卡上,选择 ADO.NET 连接管理器 列表旁边的 “新建”按钮,打开 “配置 ADO.NET 连接管理器”对话框,并为本教程从中加载数据的 SQL Server 数据库创建连接设置。

    “配置 ADO.NET 连接管理器”对话框的屏幕截图。控件可用于设置和配置连接管理器。

  3. 配置 ADO.NET 连接管理器 对话框中,选择 “新建”按钮以打开 连接管理器 对话框并创建新的数据连接。

    “连接管理器”对话框的屏幕截图。控件可用于配置数据连接。

  4. 在“连接管理器”对话框中,执行以下操作。

    1. 对于“提供程序”,请选择 SqlClient 数据提供程序。

    2. 对于“服务器名称”,请输入 SQL Server 名称。

    3. 在“登录服务器”部分中,选择或输入身份验证信息。

    4. 在“连接到数据库”部分中,选择 AdventureWorks 示例数据库。

    5. 选择“测试连接”

      显示“确定”按钮和指示测试连接成功的文本的对话框的屏幕截图。

    6. 在报告连接测试结果的对话框中,选择 “确定” 以返回到“连接管理器”对话框。

    7. 在“连接管理器”对话框中,选择“确定”返回到“配置 ADO.NET 连接管理器”对话框。

  5. 配置 ADO.NET 连接管理器 对话框中,选择 “确定” 返回到 ADO.NET 源编辑器

  6. 在“ADO.NET 源编辑器”的“表格或视图名称”列表中,选择 Sales.SalesOrderDetail 表 。

    ADO.NET 源编辑器的屏幕截图。在表或视图列表的名称中,已选择 Sales.SalesOrderDetail 表。

  7. 选择 预览版 以查看 预览查询结果 对话框中源表中的前 200 行数据。

    “预览查询结果”对话框的屏幕截图。源表中的几行销售数据可见。

  8. 预览查询结果 对话框中,选择 关闭 以返回到 ADO.NET 源编辑器

  9. ADO.NET 源编辑器中,选择 “确定” 以完成数据源配置。

将源适配器连接到目标适配器

  1. 在设计图面上选择源适配器。

  2. 选择从源适配器延伸出来的蓝色箭头,并将其拖动到目标编辑器,直到完好入位。

    显示源适配器和目标适配器的屏幕截图。蓝色箭头从源适配器指向目标适配器。

    在典型的 SSIS 包中,您会在源和目标之间使用 SSIS 工具箱中的多个其他组件,在数据通过 SSIS 数据流时重构、转换和清理您的数据。 为了使此示例尽可能简单,我们将源直接连接到目标。

配置目标适配器

  1. 双击目标适配器,打开“ADO.NET 目标编辑器”。

    ADO.NET 目标编辑器的屏幕截图。“连接管理器”选项卡可见,包含用于配置数据流属性的控件。

  2. ADO.NET 目标编辑器的“连接管理器”选项卡上,选择 连接管理器 列表旁边的 “新建”按钮,打开 “配置 ADO.NET 连接管理器”对话框,并为本教程加载数据的数据库创建连接设置。

  3. 配置 ADO.NET 连接管理器 对话框中,选择 “新建”按钮以打开 连接管理器 对话框并创建新的数据连接。

  4. 在“连接管理器”对话框中,执行以下操作。

    1. 对于“提供程序”,请选择 SqlClient 数据提供程序。

    2. 对于“服务器名称”,输入 SQL Server 或 SQL 数据库服务器的名称。

    3. 在“登录服务器”部分中,选择“使用 SQL Server 身份验证”或输入身份验证信息 。

    4. 在“连接到数据库”部分中,选择现有数据库。

      1. 选择“测试连接”

      2. 在报告连接测试结果的对话框中,选择 “确定” 以返回到“连接管理器”对话框。

      3. 连接管理器 对话框中,选择 确定 返回到 配置 ADO.NET 连接管理器 对话框。

  5. 配置 ADO.NET 连接管理器 对话框中,选择 确定,以返回到 ADO.NET 目标编辑器

  6. 在“ADO.NET 目标编辑器”中,选择“使用表格或视图”列表旁边的“新建”,打开“创建表格”对话框,创建包含与源表匹配的列列表的新目标表

    “创建表”对话框的屏幕截图。用于创建目标表的 S Q L 代码可见。

  7. 在“创建表格”对话框中,执行以下操作。

    1. 将目标表的名称更改为 SalesOrderDetail。

      “创建表”对话框的屏幕截图。S Q L 代码可用于创建名为 SalesOrderDetail 的表。

    2. 选择“确定”,创建表格并返回“ADO.NET 目标编辑器”

  8. 在“ADO.NET 目标编辑器”中,选择“映射”选项卡以查看源中的列如何映射到目标中的列 。

    ADO.NET 目标编辑器的“映射”选项卡的屏幕截图。行连接源表和目标表中具有相同名称的列。

  9. 选择确定 以完成目的地配置。

运行包以加载数据

通过在工具栏上选择 “开始”按钮或选择 “调试”菜单上的 运行 选项之一来运行包。

以下段落介绍了使用本文中所述的第二个选项(即使用包含源和目标的数据流)创建包时所显示的内容。

当包开始运行时,可看到黄色的旋转齿轮,指示活动以及目前为止处理的行数。

显示源适配器和目标适配器的屏幕截图。黄色旋转轮位于每个适配器上,文本“89748 行”位于它们之间。

包运行完毕后,您将看到绿色对勾标记,表明操作成功,以及从源到目标加载的数据行总数。

显示源适配器和目标适配器的屏幕截图。绿色复选标记位于每个适配器上,文本“121317行”位于它们之间。

恭喜,你已成功使用 SQL Server Integration Services 将数据加载到 SQL Server 或 Azure SQL 数据库中。