2.1 使用Import and Export Wizard

和任何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所示)。

然后将回到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

你可能感兴趣的:(Services)