SSIS入门--读取文件、跨库读表,写数据入表

1、 ssis读取文件读取数据写入表:

本文使用工具:
SSIS入门--读取文件、跨库读表,写数据入表
组件自我理解:

名称 描述
数据流 是具体任务逻辑的实现(类似于kettle的转换ktr)
任务流 是宏观任务的实现,大体代表任务的步骤的意思(类似于kettle的作业kjb)
数 据 转 换 类似于kettle的字符串加工()
有条件拆分 类似于kettle的case/swich、条件判断组件
查找组件 类似于kettle的case/swich、条件判断组件(即查找到的如何处理,找不到的如何处理,但是要注意此组件数据源的配置,怎么感觉仅针对于sqlserver呢?)
派生列 感觉类似于kettle的计算组件(即俩个/多个字段进行计算和组合,组合成一个新的字段)
OLE DB命令 个人感觉类似于kettle转换中的失去了组件,可以时sql传入参数的形式来执行?
数据类型转换 为了兼容多种数据源(比如平面文件、MssQL、ORACLE、DB2、MYSQL等)将组件内的数据类型转换为需要数据库需要的类型
查找(Lookup) 类似于Sql 中的Left Join 、Right Join 数据流转换(派生列、数据类型转换)都是为Lookup 铺路搭桥的

查找lookUp
完全缓存:是指在查找转换前,先把引用数据集,完全缓存在内存中,供以后查找时用。
  部分缓存:在执行“查找转换”时生成引用数据集,并将有匹配的数据行加载到缓存中,没有匹配的数据行则丢弃。
  无缓存:在执行“查找转换”的过程中生成引用数据集,但不加载入缓存。
  通过上面的解释,利弊已经很明显了,不同的情况,可能需要不同的处理策略,自已权衡吧。
  连接类型,实际上也很清楚了,就不多说了。
  指定如何处理无匹配的行:这一选项非常重要,共有四个选项:
  **忽略失败:**就是说遇到无匹配的项,忽略,程序继续执行。
  将行定位到错误输出:无匹配的记录,通过错误数据流路径(红色箭头)输出,供以后人手分析处理。
  组件失败:如果遇到无匹配的项,组件立即失败,程序停止执行。
  **将行定位到无匹配输出:**输出无匹配的记录集。此选项通常用于查找是否有新的记录产生,如果有新记录出现,则导入,已有匹配的记录集忽略。


1、新建ssis项目?或者已有项目,至需要这个类型的操作:

以下内容基本实在数据流的实现

  • 数据流:是具体任务逻辑的实现
  • 任务流:是宏观任务的实现,大体代表任务的步骤的意思

SSIS入门--读取文件、跨库读表,写数据入表
配置:
SSIS入门--读取文件、跨库读表,写数据入表
上图需注意编码格式,忽略行数等

【特别注意上图中要跳过的标题行数标签,否则会没有数据或者丢数据】

SSIS入门--读取文件、跨库读表,写数据入表
SSIS入门--读取文件、跨库读表,写数据入表

2、读取异构数据库表数据写入异构数据库的表内

SSIS入门--读取文件、跨库读表,写数据入表
2、配置目标
SSIS入门--读取文件、跨库读表,写数据入表

再此一个简单的读取数据和写入数据的操作就基本实现了,

其实内部还有很多插件可以使用的:例如sql等,在同一个数据时,使用还是比较好的

3、有条件拆分组件的使用

SSIS入门--读取文件、跨库读表,写数据入表

SSIS入门--读取文件、跨库读表,写数据入表
 优先约束控制着包的工作流,它会判断包的约束是否满足,然后再按照约束条件来选择包是继续运行,还是停止运行。在以前的DTS中,优先约束仅限于前面的任务是“成功”、“失败”、“完成”这三种状态,而现在除了以上三种状态外,还多了一个“表达式和约束”,即我们可以通过定义表达式来定义约束,比如上图所示,如果我们需要定义当错误数量超过5次以后,包才失败,停止运行。这就要用到表达式约束了。