SSIS:用foreach loop将一个目录下的内容导入到数据库中。

简介:
原因:数据同步程序出错,现在有已生成的一大堆日志如下图所示:

现在要从日志里找出可能出错的信息。由于每天的日志都比较大,因此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任务删除无用数据。设置如下图所示:

最终结果为:










本文转自 boyi55 51CTO博客,原文链接:http://blog.51cto.com/boyi55/53940,如需转载请自行联系原作者
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
30天前
|
XML 关系型数据库 MySQL
python将word(doc或docx)的内容导入mysql数据库
用python先把doc文件转换成docx文件(这一步也可以不要后续会说明),然后读取docx的文件并另存为htm格式的文件(上一步可以直接把doc文件另存为htm),python根据bs4获取p标签里的内容,如果段落中有图片则保存图片。(图片在word文档中的位置可以很好的还原到生成的数据库内容) 我见网上有把docx压缩后解压获取图片的,然后根据在根据xml来读取图片的位置,我觉得比较繁琐。用docx模块读取段落的时候还需要是不是判断段落中有分页等,然而转成htm之后就不用判断那么多直接判断段落里的样式或者图片等就可以了。
21 1
|
3月前
|
JSON NoSQL 小程序
Mongodb数据库的导出和导入总结
Mongodb数据库的导出和导入总结
189 0
|
4月前
|
SQL 数据库 Python
记Flask-Migrate迁移数据库失败的两个Bug——详解循环导入问题
Flask-Migrate迁移数据库失败的两个Bug 1、找不到数据库:Unknown database ‘***’ 若还没有创建数据库,该迁移工具不会自动创建。你可以使用SQL命令手动创建一个数据库:
38 0
|
1月前
|
SQL 关系型数据库 MySQL
|
5月前
|
关系型数据库 MySQL 数据库
Navica工具把远程MySQL导入到本地MySQL数据库
Navica工具把远程MySQL导入到本地MySQL数据库
|
6月前
|
Oracle 关系型数据库 数据库
9-2 Oracle数据库(表)的逻辑备份与恢复 --导出与导入
9-2 Oracle数据库(表)的逻辑备份与恢复 --导出与导入
|
5月前
|
SQL 关系型数据库 MySQL
MySql数据库中的视图,索引与数据库sql脚本如何导入与导出---(详细介绍)
MySql数据库中的视图,索引与数据库sql脚本如何导入与导出---(详细介绍)
243 0
|
8月前
|
存储 SQL 关系型数据库
[MySQL]学习笔记目录(尚硅谷宋红康MySQL数据库教程)
[MySQL]学习笔记目录(尚硅谷宋红康MySQL数据库教程)
|
1月前
|
存储 关系型数据库 MySQL
Python导入Excel数据到MySQL数据库
Python导入Excel数据到MySQL数据库
76 0
|
4月前
|
存储 SQL 关系型数据库
Mysql鸡础(从数据库中导入学生数据用list集合存储emp成员)
Mysql鸡础(从数据库中导入学生数据用list集合存储emp成员)