做增量的ETL时,经常遇见的需求是:根据本地的文件名,来判断ETL程序是否需要再次运行,如果文件已经运行过,则跳过,否则执行。满足整个需求,需要把本地文件的名或路径放入到数据库的表中,然后再根据文件名判断是否要运行后面的etl。网上找了好久,也没有找到答案,因此我自己写了一段代码,实现了通过SSIS组件把本地文件的完整路径插入到数据库表中,供大家参考。
下面是详细步骤:
准备工作:先在数据库里面新建一个表(用于接收本地的csv文件数据),在本地路径新建一个csv文件。如图所示:
数据库:

本地文件:

第一步:在页面拖一个Foreach循环编辑器,然后编辑,选择文件编辑器,然后在下面的文件夹路径中选择本地文件存放的路径,最后确定。

你可以在这里编辑你本地文件存放的路径、需要读取的文件类型,此处以csv文件为例。
第二步:新建两个字符串类型的变量,csvfilein(容器读取到的文件)、csvfileout(需要插入到数据表的文件名路径),并编辑Foreach循环容器,把读取到的文件赋值给csvfilein。

因为foreach容器传输给变量的是一个文件,而不是单纯的文件名,因此需要另外一个变量来根据读到的文件接收其文件存放的本地完整路径。
第三步:在foreach容器里面,新建一个脚本任务,然后把变量分别赋值给参数,并编辑脚本,如图所示:

备注:一定要注意变量的大小写。大小写不一致会导致SSIS报错。
编辑脚本→保存→关闭→确定:


第四步:新建一个数据流任务,并在连接管理器中添加一个平面文件源管理器,如图所示:

文件名路径必须要是foreach容器里面编辑的路径,具体的文件可以选择其中任意一个。
第五步:编辑此平面文件源管理器的属性,把其connectionstring赋值为接收foreach容器读取到的文件变量。


第六步:编辑数据流任务(双击),新建平面文件源,指定其平面文件源管理器(上一步做好的平面文件源管理器)。如图所示:

第七步:添加一个组件派生列,并把过程任务中得到的csv文件路径赋给派生列。如图所示:

第八步,新建数据库连接管理器,并添加一个ODBC目标,把其字段映射到数据库的表字段即可。如图所示:



test_id是csv文件中的路径,filename是接收到的csv文件存放路径。
第九步,运行这个SSIS包,看是否正常运行并看后台数据库是否有想要的数据。如图所示:


至此,用SSIS组件把本地文件的路径作为变量插入到数据库表中的ETL成功完成。

热爱技术,靠技术吃饭。

解决用SSIS组件导入CSV文件时,把CSV文件名一起插入到数据库表中的问题相关推荐

  1. 写入CSV文件时乱码与格式问题

    1.中文乱码问题 例如下面这句代码,只需要将encoding='utf-8'改为'utf-8-sig'即可. with open('temp.csv', 'w', encoding='utf-8') ...

  2. python2.7读取csv文件_13.1. csv — CSV 文件读写 — Python 2.7.18 文档

    13.1.csv - CSV 文件读写¶ 2.3 新版功能. The so-called CSV (Comma Separated Values) format is the most common ...

  3. pycharm 同一个目录下导入py文件时,模块下方出现红色波浪线时如何解决

    此解决方案来自于:https://www.cnblogs.com/my-blogs-for-everone/articles/12270938.html 问题如下: pycharm 同一个目录下导入p ...

  4. SPSS Modeler导入excel文件时出现“无法读取文件列名”解决方法

    SPSS Modeler导入excel文件时出现"无法读取文件列名"解决方法 经过本人多次尝试,终于发现了原因 原因是:excel文件在后台打开了,因此spss modeler读取 ...

  5. mysql转储导入错误_数据库MYSQL导入SQL文件时错误的解决方法(2种)

    从服务器数据库用navicate导出的.sql文件后再用navicate导入到本地的数据库中会出现若干条记录的错误: [Err] 1064 – You have an error in your SQ ...

  6. csv逗号分割不兼容 解决_关于Excel保存为csv文件时提示 “可能含有与CSV(逗号分隔)不兼容的功能”...

    关于Excel保存为csv文件时提示"可能含有与CSV(逗号分隔)不兼容的功能" 当我们用Excel去保存一个文件为 .csv文件时,会弹出对话框: *.csv 可能含有与CSV( ...

  7. csv文件 内容转义_保存csv文件时的生僻字处理和格式控制

    应用场景 Web应用中导入导出报表是一个非常常见的需求,而普通用户使用最多的表格文件都是用Excel保存的. 一般来说,对于数据量较小的导入导出,使用xls/xlsx文件和用户交互是最佳选择,即有相应 ...

  8. python存成csv文件时中文乱码_Python在向CSV文件写中文时乱码的处理办法

    前言 python2最大的坑在于中文编码问题,遇到中文报错首先加u,再各种encode.decode. 当list.tuple.dict里面有中文时,打印出来的是Unicode编码,这个是无解的. 对 ...

  9. python读取csv文件并修改指定内容-pandas读取CSV文件时查看修改各列的数据类型格式...

    下面给大家介绍下pandas读取CSV文件时查看修改各列的数据类型格式,具体内容如下所述: 我们在调bug的时候会经常查看.修改pandas列数据的数据类型,今天就总结一下: 1.查看: Numpy和 ...

  10. python导入csv文件-python读写csv文件

    今天闲来无事,写了会CSV,简单总结下csv具体操作 什么是csv 逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本 ...

最新文章

  1. android 定位的几种方式介绍
  2. 四川300家旅游企业将用上阿里云
  3. 记sentinel里防止多并发下读取脏数据的操作
  4. 读书笔记 effective c++ Item 16 成对使用new和delete时要用相同的形式
  5. 10行代码AC——UVa 10940(Throwing cards away II 数学规律+约瑟夫环)
  6. LeetCode 04检查平衡性-简单
  7. 4 网络、挂载、关机
  8. LintCode 378. 将二叉树转换成双链表(非递归遍历)
  9. express 4.*升级后带来的影响
  10. 收藏 | 可解释机器学习发展和常见方法!
  11. 人人影视字幕组因盗版视频被查 涉案金额1600余万元
  12. 存储过程 触发器 约束
  13. 一些值得注意的算法题——双指针
  14. Vue-图片切换实例
  15. Access、Trunk、Hybrid三种端口收发规则以及tagged端口和untagged端口的区别
  16. 计算机ps基础知识教案范文,平面设计基础教案范文
  17. [收集编辑]管理故事216则
  18. Annotated Potholes Image Dataset下载
  19. linux卸载mysql(完全卸载)
  20. MP4测试视频URL地址分享,亲测有效。可用于测试HTML5播放器效果。

热门文章

  1. GHOST文件修改OEM的方法
  2. 200行Python实现连连看辅助
  3. 深度linux清理空间,怎样清理内存缓存
  4. 两变频调速电机系统的神经网络逆同步控制
  5. 绝招!谷歌浏览器(Chrome)各种版本支持Flash
  6. FFmpeg 视频裁剪
  7. HackTheBox-Magic-Walkthrough
  8. 手游无限多开器安卓版_万能多开助手app下载-万能多开助手 安卓版v3.8.2-PC6安卓网...
  9. Excel 做统计学分析
  10. 08cms php5.4,08CMS - 内容管理CMS - PHP开源项目 - 开源吧