首页 > 其他分享 >SSIS_控制流(大容量插入任务)

SSIS_控制流(大容量插入任务)

时间:2023-01-10 12:02:49浏览次数:47  
标签:管理器 大容量 控制流 任务 指定 插入 SSIS 连接


大容量插入任务为将大量的数据复制到 SQL Server 表或视图提供了有效的方法。例如,假定贵公司在大型主机系统上存储了数百万行的产品列表,但公司的电子商务系统却使用 SQL Server 来填充网页。您必须每晚都用大型机的主产品列表更新 SQL Server 产品表。若要更新表,请以制表符分隔格式保存产品列表,并使用大容量插入任务将数据直接复制到 SQL Server 表中。
为确保高速数据复制,在从源文件向表或视图移动数据时,请不要对数据执行转换。

可以按照下列方法来配置大容量插入任务:(更多资料:​​​大容量插入任务​​​)

 A . 指定 OLE DB 连接管理器,以便连接到目标 SQL Server 数据库以及要向其插入数据的表或视图。大容量插入任务仅支持目标数据库的 OLE DB 连接。
 B . 指定文件或平面文件连接管理器来访问该源文件。大容量插入任务仅将连接管理器用于源文件位置。该任务将忽略在连接管理器编辑器中所选择的其他选项。
 C . 通过使用格式化文件或通过定义源数据的列和行分隔符来定义大容量插入任务使用的格式。如果使用格式化文件,请指定文件连接管理器来访问该格式化文件。
 D . 指定在任务插入数据时要对目标表或视图执行的操作。选项包括是否检查约束、启用标识插入、保留空值、激发触发器或锁定表。
 E . 提供要插入的数据批的信息,如批大小、文件中要插入的第一行和最后一行、发生多少次插入错误后任务停止插入行以及要排序的列的名称。


本章功能: 用大容量插入任务将TXT中的结构数据插入到数据库表中。


 1 . 创建【大容量插入任务】,创建 txt 文件及模拟数据。

SSIS_控制流(大容量插入任务)_数据


2. 创建表,用于保存插入数据。

CREATE TABLE DRL(
COL1 INT,
COL2 VARCHAR(20),
COL3 INT,
COL4 INT,
COL5 VARCHAR(20),
COL6 VARCHAR(20),
)



3 .编辑【大容量插入任务】,以【OLE DB 】连接数据库;连接要导入的txt文件。

TXT文本截取格式:

RowDelimiter :{CR}{LF}        行分隔符,回车换行

ColumnDelimiter :竖线{|}      列分隔符

SSIS_控制流(大容量插入任务)_Server_02


4. 选项为约束设置。

CodePage: 指定数据文件中数据的代码页

DataFileType : 指定在加载操作中要使用的数据类型值

BatchSize : 指定每批中的行数。默认设置为整个数据文件。如果将 BatchSize 设置为零,则数据是在一批中加载的

LastRow : 指定要复制的最后一行。默认为0,即到最后一行结束。

FirstRow : 指定要开始复制的第一行。默认为1,即第一行开始。

Options : 检查约束  //  保留 Null // 启用标识插入 //  表锁 / / 激发触发器

SortedData : 指定数据表排序的列(order by 后的格式),默认false,不进行排序

MaxErrors :  指定在取消大容量插入操作之前可以发生的最大错误数量。如果值为 0,则指示对错误的数量没有限制。
            注意 : 大容量加载操作不能导入的每一行都被计为一个错误

SSIS_控制流(大容量插入任务)_Server_03


5 . 好了,编译成功!

SSIS_控制流(大容量插入任务)_SQL_04

SSIS_控制流(大容量插入任务)_数据_05


6. 总结下任务是怎样读取TXT格式的。

a.  每一根竖线前后都是要读取的值,每行最后竖线结尾的,后面还有个值。

b.  最后一行保留空行,即到最后一行的时候回车换行,否则最后一行读取不到。

SSIS_控制流(大容量插入任务)_数据_06











标签:管理器,大容量,控制流,任务,指定,插入,SSIS,连接
From: https://blog.51cto.com/hzc2012/6000178

相关文章