SSIS:用foreach loop将一个目录下的内容导入到数据库中
2011-04-21 15:08
429 查看
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处
、作者信息和本声明。否则将追究法律责任。http://boyi55.blog.51cto.com/4345/53940
原因:数据同步程序出错,现在有已生成的一大堆日志如下图所示:
现在要从日志里找出可能出错的信息。由于每天的日志都比较大,因此txt文件打开很慢。所以决定用SSIS将所有的日志导入到SQL SERVER数据库中进行分析。
日志格式如下图所示:
可
以分为两列,[00:00:09]为time列,后面的为content列。但每天的时间都是相同的。所以还需要把文件名中的日期也同时加到数据库中。这
样数据库中的最终结果要有三列,date,time,content.另外由于如上图所示,有相当多的无用信息。所以还要将这些无用信息删除掉。最终的结
果如下图所示:
---------------------------------------------
步骤:
1,在数据库中建目的表:
CREATE TABLE [dbo].[log_klupdate](
[id] [int] IDENTITY(1,1) NOT NULL,
[date] [varchar](50) NULL,
[time] [varchar](20) NULL,
[content] [text] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
2,新建SSIS包,在控制流中放入一个foreach loop,设置其属性为:
新建一个变量:filepath用来传递每个文件的路径信息。
3,在foreach loop容器中,加入数据流任务,双击打开数据流,拉进一个平面文件源。双击打开。新建数据源如下图所示:
4.拉进一个脚本组件。设置属性如下图所示:
在脚本页面中选择设计脚本,打开VS,添加如下代码:
Row.tcon = Row.con
Row.ttime = Replace(Replace(Row.time, "[", ""), "]", "")
Row.tdate = Left(Right(Variables.filepath.ToString, 16), 8)
关闭VS,一路确定回到设计环境。
5.拉入OLEDB数据目标,新建数据库连接:test.log_klupdate,并设置属性如下所示:
6,在连接管理器中选中log_txt,在右边属性工具栏中点击expression右边的按钮如下图所示:
在以上页面中设置如下面所示内容,将变量值传给connectionstring
这样转换过程设计完成。
7,下面再在foreach loop下一步加入sql任务删除无用数据。设置如下图所示:
最终结果为:
本文出自 “老侯的菜园子
” 博客,请务必保留此出处http://boyi55.blog.51cto.com/4345/53940
、作者信息和本声明。否则将追究法律责任。http://boyi55.blog.51cto.com/4345/53940
原因:数据同步程序出错,现在有已生成的一大堆日志如下图所示:
现在要从日志里找出可能出错的信息。由于每天的日志都比较大,因此txt文件打开很慢。所以决定用SSIS将所有的日志导入到SQL SERVER数据库中进行分析。
日志格式如下图所示:
可
以分为两列,[00:00:09]为time列,后面的为content列。但每天的时间都是相同的。所以还需要把文件名中的日期也同时加到数据库中。这
样数据库中的最终结果要有三列,date,time,content.另外由于如上图所示,有相当多的无用信息。所以还要将这些无用信息删除掉。最终的结
果如下图所示:
---------------------------------------------
步骤:
1,在数据库中建目的表:
CREATE TABLE [dbo].[log_klupdate](
[id] [int] IDENTITY(1,1) NOT NULL,
[date] [varchar](50) NULL,
[time] [varchar](20) NULL,
[content] [text] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
2,新建SSIS包,在控制流中放入一个foreach loop,设置其属性为:
新建一个变量:filepath用来传递每个文件的路径信息。
3,在foreach loop容器中,加入数据流任务,双击打开数据流,拉进一个平面文件源。双击打开。新建数据源如下图所示:
4.拉进一个脚本组件。设置属性如下图所示:
在脚本页面中选择设计脚本,打开VS,添加如下代码:
Row.tcon = Row.con
Row.ttime = Replace(Replace(Row.time, "[", ""), "]", "")
Row.tdate = Left(Right(Variables.filepath.ToString, 16), 8)
关闭VS,一路确定回到设计环境。
5.拉入OLEDB数据目标,新建数据库连接:test.log_klupdate,并设置属性如下所示:
6,在连接管理器中选中log_txt,在右边属性工具栏中点击expression右边的按钮如下图所示:
在以上页面中设置如下面所示内容,将变量值传给connectionstring
这样转换过程设计完成。
7,下面再在foreach loop下一步加入sql任务删除无用数据。设置如下图所示:
最终结果为:
本文出自 “老侯的菜园子
” 博客,请务必保留此出处http://boyi55.blog.51cto.com/4345/53940
相关文章推荐
- SSIS:用foreach loop将一个目录下的内容导入到数据库中。
- SSIS中导入Excel数据到数据库的一个常见小问题
- 将txt文档中内容导入到数据库,并且显示一个对话框,提示用户选择文件的位置
- 遍历目录,把文件内容导入数据库
- SSIS【Foreach 循环容器_Foreach 文件枚举器】(导入路径下的所有txt文件的内容) (转)
- 遍历目录,把文件内容导入数据库
- SSIS【Foreach 循环容器_Foreach 文件枚举器】(导入路径下的所有txt文件的内容)
- SSIS【Foreach 循环容器_Foreach ADO.NET 架构行集枚举器】(循环导入一个Excel所有工作簿)
- 数据库一个表的某字段内容导入到另一个数据库表的某字段中
- 从文件夹目录下导入所有指定文件类型的数据内容到数据库表
- uploadfy导入Excel内容到数据库中
- plsql导入一个目录下全部excel
- 一个PHP一直执行的例子 不会计划任务可以用这个 PHP+jquery前台动态显示数据库内容
- 将数据库中的内容导入到excel
- Mac程序开发基础:得到一个目录内的内容
- 一个存储过程实现将Excel数据导入数据库
- 还原某一个目录下的所有数据库备份文件
- SSIS 把sql中表的数据导入到另一个表时的一个错误
- 将某个目录上的Excel表,导入到数据库中
- ASP 把数据库内容生成Word文档保存到目录下