DTS使用索引

    技术2022-05-11  79

    DTS使用索引

    DTS(Data Transformation Services) is a set of graphical tools and programmable objects to extract transform and consolidate data from disparate sources into single or multiple destinations.

        what can DTS do?             1.Access heterogeneous data sources             2.Import,export and transform data             3.Creat reusable data transformations and functions             4.Automate data loads             5.Manage metadata             6.Customize and extend functionality  
        DTS包的组成部分             DTS包由四部分组成        1. DTS 连接          在进行数据转换之前,必须先打开数据源,即源连接和目的连接。DTS连接可以打开任何提供OLD DB Provider的数据库,如SQL Server、Oracle、Access等,也支持一些常用的数据库,如dbase、foxpro、excel等,还支持Unicode和ANSI 格式的文本文件。值得注意的是,DTS连接是单线程的,这就意味着同一时刻每个连接只能运行一个任务,如果要提高性能的话,可以对同一个数据源建立多个连接。       2. DTS 任务        在建立不同的连接后,要做的就是将这些连接关联起来,而这些所谓的关联就是从一个连接到另一个连接的通道,数据在这些通道中被加工处理,而这些加工具处理的过程就是DTS任务。一个DTS包可以建立多个任务,甚至在两个连接之间也可以建立多个不同配置的任务。       3. DTS转换       在DTS任务中对字段的一次处理,可以称为一个转换。也就是说,转换是发生在DTS任务中的。在DTS任务中,一般是在源连接和目的连接之间进行相应字段之间的赋值操作,更复杂的可以使用VBScript或JScript对源连接中的字段进行检验、净化等操作后,再赋给目的连接的字段。因此,也可以将 DTS转换看成是字段级的操作。      4. DTS包工作流      由于在DTS包中可以建立多个任务,这就有一个先执行谁,后执行谁的问题。如任务2必须在任务1执行成功后才能执行,如果任务1执行失败,则执行任务3。从这一点看,DTS包工作流有点像条件判断语句。    
    建立DTS包一般有两种方法      1. 通过导入导出向导建立     导入导出向导可以从数据库、表或是数据转换服务等处的弹出菜单中的导入数据、导出数据中运行。在启动后,首先得选择源连接和目的连接,然后可以从简单到复杂对源连接中的表或视图进行三种选择。     (1) 直接选择表或视图。     (2) 通过SQL语句对表或视图进行过滤。     (3) 复制源连接中的对象(包括索引、存储过程、约束等信息)。     以上过程中可以通过脚本语言对每一个字段进行单独处理。    图示如下 :                在最后可以选择保存“DTS包选项”。DTS包可以以4种形式保存。     (1) SQL Server(保存在SQl Server中的msdb数据库中)     (2) SQL Server Meta Data Services     (3) 结构化存储文件     (4) Visual basic文件             这种建立DTS包的方式是一种简易的方式,它只能建立一对连接,并可以将这个包以上述的4种形式保存。要想更深层次地控制包,可以使用下述的方法。       2. 在数据转换服务中的本地包中建立     在本地包中选择“新建包”,可以启动DTS包生成器。在左侧面板上是可供选择的连接和任务。读者可以打开上面保存的“新建包”,打开后里面只有刚才建立的两个连接和一个任务。如果想继续增加连接和任务,可以通过选择左侧的连接和任务完成。     当DTS包中含有多个任务时,就需要建立DTS包工作流了。可以通过任务的弹出菜单中的“工作流属性”设置任务的执行先后顺序。当一个任务执行时,可以有3种选择是否执行下面的任务。     (1) 任务成功后执行。(success workflow)     (2) 任务失败后执行。(failure workflow)     (3) 任务完成后,不管成功还是失败,都执行下面的任务。(completion workflow)
    如何调用DTS包

        一般有4种方式执行DTS包。

        1. 在Enterprise Manager中执行。

        这种方式使用得最为广泛。在导入导出向导中,如果在最后一步选中“立即执行”,就可以执行当前建立的包。在本地包中选择“执行包”,同样也可以执行保存后的包。当然,还可以使用“调度包管理”定期执行相应的包。

        2. 使用命令行工具dtsrun执行DTS包。

        dtsrun是SQL Server提供的一个用来执行保存在SQL Server中或是保存成文件的DTS包的一个工具。它的参数比较复杂,读者可以查阅相关的资料。在这里只举几个例子说明如何使用dtsrun。

        执行结构化存储文件DTS包

         dtsrun  / Ffilename  / Npackage_name  / Mpackage_password       3. 使用图形界面工具dtsrunui执行DTS包。

        使用这个工具非常简单,它没有任何参数,只需在控制台中输入dtsrunui并执行后,就会出现一个操作界面,只需要按提示输入相应的信息,并选择相应的DTS包执行即可。

        4. 通过程序调用DTS包。

        由于DTS提供了COM接口,因此,可以通过它所提供的COM组件中的Execute方法来执行DTS包。    DTS的COM组件非常复杂,在这里只给出了使用VB如何执行DTS包的程序片段以供参考。        一般可分为4步设计这个程序。

        (1) 声明变量。    在这里需要声明4个类型的变量。DTS.Package2、DTS.Step、DTS.Task和DTS.ExecutePackageTask。

        (2) 初始化变量。    除了DTS.Package变量需要使用Set Package1 = new DTS.Package实例化外,其它的变量需要Package1实例进行初始化。

     Set Step1  =  Package1.Steps.New  ' 建立一个新步骤     Set Task1  =  Package1.Tasks.New( " NewTask " )   ' 建立一个新任务     Set Exec1  =  Task1.CustomTask    Exec1.FileName  =   " abc.dts "    ' 用于执行以结构化存储的DTS包     Exec1.Name  =   " ExecTask "     Step1.TaskName  =  Exec1.Name    Step1.Name  =   " Step1 "     Step1.ExecuteInMainThread  =   true     Package1.Steps.Add Step1    Package1.Tasks.Add Task1     (3) 执行DTS包。     只需要执行一条语句即可:Package1.Execute

        (4) 释放引用

        Set Exec1  =  Nothing    Set Task1  =  Nothing    Set Step1  =  Nothing    Package1.UnInitialize  ' 调用UnInitialize方法释放包     Set Package1  =  Nothing    

    Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1307048

     

    最新回复(0)