2.1 使用Import and Export Wizard

本文介绍如何使用SQL Server的导入导出向导进行数据迁移,包括配置源连接、目标连接、选择数据迁移方式及保存执行程序包等步骤。

和任何Microsoft产品一样,SQL Server附带了许多的向导来方便用户使用并减少产品开发周期以尽快面世。在本章中我们将学习用户可用的一些向导。这些向导使得转换数据以及部署程序包更为容易,而且可以节省用户的工作时间。本章的重点着眼于Import and Export Wizard(导入和导出向导)。该向导允许创建一个可以快速导入和导出数据的程序包。事实上,你可能在日常工作中运行该向导而甚至不会意识到SSIS作为其后端充当幕后英雄。本章的后半部分将讨论可用的其他工具,例如Business Intelligence Development Studio(商业智能开发工具集)。

2.1  Import and Export Wizard

Import and Export Wizard是将来自诸如Oracle、DB2、SQL Server以及文本文件等数据源的数据转移到目的地的最便捷方法。该向导在后端使用SSIS,与SQL Server 2000差别不大。它是一种极好的方式来创建以后可以添加的SSIS程序包解释器。通常,作为一个SSIS程序员,用户希望将提取和转移数据等繁琐工作交给向导来完成,然后自己将精力主要集中于更复杂的编码工作上。

使用Import and Export Wizard

要访问Import and Export Wizard,可以在Business Intelligence Development Studio(BIDS)中在自己希望导入数据或导出数据的数据库上右击,然后选择Tasks→Import Data(或Export Data,根据你所执行的任务而定)。此外,也可以通过在BIDS中右击SSIS Packages,然后选择SSIS Import and Export Wizard来访问该向导。最后一种打开此向导的方法是在命令行提示符或在Run提示符下输入dtswizard.exe命令。无论用户是希望导入或导出数据,所见到的前几个屏幕都是非常类似的。

在向导启动时,将看到典型的Microsoft向导欢迎屏幕。单击Next来指定源连接,在该屏幕中,需要在Source下拉框中指定数据来自哪里,一旦选定了源,则对话框上的剩余选项将因连接的类型而异。默认的源为SQL Native Client,它如图2-1所示。可以选择诸如SQL Server、Oracle和Access等OLE DB源,也可以选择文本文件、Excel文件和XML文件。在选择源之后,必须填充具体提供程序(provider)的信息。对于SQL Server,必须输入服务器名称,以及希望使用的用户名和密码。如果打算使用自己的Windows账户来连接,则可以选择Use Windows Authentication。最后,选择自己希望连接的数据库。对于本书中的大多数例子而言,将使用AdventureWorks数据库。

如果安装了供应商的OLE DB提供程序,则也可以使用额外的源,例如Sybase和DB2。安装Microsoft提供的Host Integration Service同样会包括常用的提供程序,例如DB2。

在单击Next后,将看到向导中的下一个屏幕,其中可以指定数据的目的地。该屏幕的属性几乎和前一个屏幕的属性相同。再次单击Next将看到Specify Table Copy or Query屏幕(参见图2-2)。在下一个屏幕上,如果选择“Copy data from one or more tables or views”,则选中自己所希望的表。如果选择“Write a query to specify the data to transfer”,则可以编写一个即席查询(在单击Next之后),以确定在哪里选择数据或者使用何种存储过程来获取数据。

图  2-1                                                                               图  2-2

对于本例子,我们选择“Copy data from one or more tables or views”并单击Next,这将允许用户选择表或视图来将数据转换到目的地的屏幕(参见图2-3)。对于本书,我们在此选中所有属于Adventure数据库中HumanResoures架构的表。

可以选择“Optimize for Many Tables”和“Run in a Transaction”复选框将整个数据移动过程封装到单个事务中,该事务在出现问题时可以返回到原先状态。

如果用户愿意,可以单击Edit按钮来访问针对每个表的Column Mapping对话框(参见图2-4)。在此可以修改每个源和目的地列之间的映射。例如,若希望DepartmentID列的数据移动到目的地上的DepartmentID2列,则选择DepartmentID列的Destination单元格,然后指向新列,或者是选择SSIS来忽略列。

图  2-3

图  2-4

注意:由于是将数据移动到一个尚未具有Department表的新数据库,Create Destination Table选项将是默认启用的选项之一。该选项可以在把数据填充到目的地之前,在目的地上创建Department表。如果该表已经存在,则可以选择在填充数据之前删除目的地表中的所有行。如果已经具有该表,则默认设置是将来自源的数据追加到目的地。也可以指定丢弃原先的表并重新创建新表。Edit SQL选项允许为希望创建的目的地表指定其架构(schema)。

最后,如果打算移入数据到其中的表具有一个标识(identity)列,则可以启用Identity Insert选项。如果表已经具有标识列,则向导将自动启用该选项。如果未启用该选项并且试图移动数据到某个标识列中,则向导将执行失败。

单击OK应用Column Mapping对话框中的设置,并单击Next继续到Save and Execute Package屏幕,在此可以指定是否只执行一次程序包,还是希望保存程序包以便以后使用。如前面所了解的,在此并不需要执行程序包。因此可以取消选中Execute Immediately并将程序包保存以备以后修改。在本例子中,我们将向导设置为Execute Immediately(立即执行),将程序包保存为一个File System(文件系统)文件,并单击Next。在第3章,将了解更多关于在何处保存SSIS程序包的内容。

向导随后将询问如何保护程序包中的敏感数据。同样,在第3章中将了解更多有关该部分的内容。这里我们先指定使用密码来保护敏感数据,并在对话框中输入一个密码(如图2-5所示)。

文本框:  
图  2-5

然后将回到Save SSIS Package屏幕,其中可以输入程序包名称以及希望保存程序包的位置。作为一个选择,可以加入一个说明到程序包中。这在以后当需要确定程序包的用途时可以提供帮助(参见图2-6)。

单击Next并确定希望向导所执行的任务。然后当单击Finish时程序包将执行,而且将看到如图2-7所示的页面。在Message列将显示出现的错误。在该列中还可以看到所复制的列数。双击某个失败条目将了解到失败的原因。

 

图  2-6                                                                             图  2-7

在向导执行后,可以在指定的位置找到程序包,但是其默认位置为My Document目录。可以打开在BIDS中执行的程序包。在图2-8中可以看到针对程序包的Data Flow选项卡。这也是一个控制流步骤,其中包含了准备步骤,例如创建表。

在程序包中可以看到其中只有两个连接:一个针对目的地,另一个针对源。即使这是个共享连接,每个转换过程也是并行运行的,这是自SQL Server 2000以来的显著改进,在SQL Server 2000中,当使用单个连接时,只能串行运行过程。

图  2-8

Import Wizard 是一种用于数据导入的工具,通常用于将外部数据源导入到数据库、应用程序或数据仓库中。它在数据处理和集成领域具有多项优势和特点,能够显著提升数据导入的效率和准确性。 ### 数据导入的高效性 Import Wizard 提供了直观的向导式界面,使得用户能够通过简单的步骤完成复杂的数据导入任务。这种设计降低了用户的技术门槛,即使是非技术背景的用户也能轻松上手。此外,它支持多种数据格式的导入,包括 CSV、Excel、JSON 等,从而满足了不同场景下的数据需求。 ### 数据映射与转换的灵活性 在数据导入过程中,Import Wizard 提供了强大的数据映射功能,允许用户将源数据字段与目标数据库表的字段进行精确匹配。这种映射可以是简单的字段对应,也可以是复杂的表达式转换。此外,它还支持数据清洗和转换操作,例如格式转换、空值处理以及数据校验,确保导入的数据质量。 ### 自动化与批处理能力 Import Wizard 支持自动化数据导入功能,可以通过脚本或计划任务定期执行导入操作。这种能力特别适合需要频繁更新数据的场景,例如每日的销售数据汇总或库存更新。通过批处理,用户可以节省大量手动操作的时间,并减少人为错误的发生。 ### 错误处理与日志记录 在数据导入过程中,可能会遇到数据不一致、格式错误或网络问题等情况。Import Wizard 提供了完善的错误处理机制,能够在遇到问题时暂停或中止导入,并记录详细的错误信息。这些日志可以帮助用户快速定位问题并进行修复,从而提高了数据导入的可靠性和可维护性。 ### 兼容性与扩展性 Import Wizard 通常设计为插件或模块化组件,能够与多种数据库系统和应用程序无缝集成。它的兼容性确保了在不同平台和环境下的稳定运行,同时其扩展性也允许用户根据具体需求进行定制开发。例如,用户可以通过插件添加新的数据源支持或增强数据转换功能。 ### 安全性与权限管理 Import Wizard 在数据导入过程中注重安全性,支持加密传输和访问控制。用户可以根据角色或权限设置不同的数据访问级别,确保敏感数据不会被未经授权的人员访问。此外,它还支持数据备份和恢复功能,以防止数据丢失或损坏。 ### 示例代码 以下是一个使用 Import Wizard 导入 CSV 文件到数据库的简单示例代码: ```python import import_wizard # 配置数据源 data_source = { "type": "csv", "path": "data.csv" } # 配置目标数据库 target_database = { "type": "mysql", "host": "localhost", "user": "root", "password": "password", "database": "test_db" } # 定义字段映射规则 field_mapping = { "name": "customer_name", "email": "customer_email", "phone": "customer_phone" } # 执行导入操作 import_wizard.import_data(data_source, target_database, field_mapping) ``` 通过上述代码,用户可以轻松地将 CSV 文件中的数据导入到 MySQL 数据库中,并根据需要调整字段映射规则。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值