• SSIS常用的包—大量插入任务(Bulk Insert task)


    大量插入任务允许像 BULK INSERT 语句或者bcp.exe 命令行工具一样 从 txt文件(也叫做平面文件)中插入数据。这个 task工具箱中的 Control Flow Items中,它不会产生数据流。这种 task的一个缺点是在插入的时候不允许任何形式的数据转换。同时,它可以以最快的速度向 SQL Server中写入大量的数据,不论数据量是的是小。

    创建一个大量插入任务,然后设置它的属性,打开编辑页面(图 3-2)。像大多数 task一样编辑页面可以命名,描述这个 task。注意命名要说明这个task完成的任务就像“准备存储” Prepare Staging,这将会帮助在以后的部署和调试工作。

    图3-2

    最重要的配置是连接 Connection,在 Connection编辑页面中允许你设置数据的源和目的地。从下拉列表里面选择数据的目的地,选择一个数据表。当设置了连接之后,还需要在 File下拉列表中设置连接文件的名字。源和目的连接都使用 Connection Manager 。如果还没有简历这样的共享连接,需要从下拉列表中选择 <New Connection…> 新建一个连接。

    设置好连接之后,可以设置插入数据的文件的类型和它的分割符号。选择 UseFile或者从 Format下拉列表框中选择。如果你选择 User File,你将选择一个大量插入文件的格式,它告诉 task文件时如何组织的(文本的行间隔符)。通常选择 Format下拉列表指定文件的格式。选择项中设置间隔符。大多数情况下,默认的间隔符用来指定文件格式。行间隔符 columndelimiter执行行之间的间隔符号默认情况下是制表符分割,也有的是逗号分隔。

    注意。格式文件一定要在 SQL Server上,保证选项生效。如果在本地 SQL Server 上没有,也可以使用远端访问路径(//MachineName/ShareName/FileName.csv)

     在 Option标签页面中,可以设置几个不为人知的选项。可以为源文件设置内码列表,默认选项是 RAW。数据文件类型选项可以指定源文件的种类。选项值包含 char, native, widechar, and widenative。大体上说是 char类型,有时也会有文本文档类型。你将会看到使用命令行语句参数 -n调用bcp.exe创建的文件。

    在 Option标签页面中如果想只插入数据行忽略表头也可以设置 first row 和 last row。 BatchSize选择项显示一次何以写入多少数据。如果设置为 0,是一次将全部记录写入。如果记录多于 100000,可以设置该值为 50000.

    在选项 Option的下拉列表框中包含了 5个可选择的值

    · Check Constraints: 这个选项将在执行时检查表和列中的约束,这个选项是唯一默认为 true的选项。

    · Keep Nulls: 这个选择项将文本中所有的空白替换成 NULL然后写入 SQL Server中

    · Table Lock: 这个选择项将确保在执行 task的时候目标表不能被插入和更新,这个设置将加快 bulk insert ,但是会给其他的更新造成中断。设置时保证 bulk insert 执行的时候没有其他的 task正在执行。

    · Fire Triggers: 默认情况下,为保证执行速度 bulk insert将忽略触发器,设置此选择项, task在执行 bulk insert的时候不再忽略触犯器。

    在 Options标签选项中还有其他的选择项, SortedData选项指定插入数据的时候指定按照一个行的排列循序插入。默认设置是 nothing,如果愿意,可以选择一个你需要的排序的列的列名。 MaxErrors选择项指定在 task停止执行之前可以忍受的最大的错误个数。默认情况下,只要有一行没有正常插入整个 task将失败。

    注意: Bulk Insert 任务不会记录出现错误的行,如果想把这种异常的行记录到一个文件或表中,可以选择 Data Flow任务。

  • 相关阅读:
    小禾满月了
    Gitlab-CI使用及.gitlab-ci.yml配置入门一篇就够了
    什么是CLI?
    什么是root帐户?
    Linux 的目录结构是怎样的?
    什么叫 CC 攻击?什么叫 DDOS 攻击?
    什么是 inode ?
    判断一文件是不是字符设备文件,如果是将其拷贝到 /dev 目录下?
    编写 Shell 程序,实现自动删除 50 个账号的功能,账号名为stud1 至 stud50 ?
    请问当用户反馈网站访问慢,如何处理?
  • 原文地址:https://www.cnblogs.com/martin-roger/p/5937834.html
Copyright © 2020-2023  润新知