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

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介:
原因:数据同步程序出错,现在有已生成的一大堆日志如下图所示:

现在要从日志里找出可能出错的信息。由于每天的日志都比较大,因此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日志并进行多维度分析。
目录
相关文章
|
1月前
|
SQL 关系型数据库 MySQL
数据库导入SQL文件:全面解析与操作指南
在数据库管理中,将SQL文件导入数据库是一个常见且重要的操作。无论是迁移数据、恢复备份,还是测试和开发环境搭建,掌握如何正确导入SQL文件都至关重要。本文将详细介绍数据库导入SQL文件的全过程,包括准备工作、操作步骤以及常见问题解决方案,旨在为数据库管理员和开发者提供全面的操作指南。一、准备工作在导
174 0
|
1月前
|
SQL 存储 关系型数据库
SQL文件导入MySQL数据库的详细指南
数据库中的数据转移是一项常规任务,无论是在数据迁移过程中,还是在数据备份、还原场景中,导入导出SQL文件显得尤为重要。特别是在使用MySQL数据库时,如何将SQL文件导入数据库是一项基本技能。本文将详细介绍如何将SQL文件导入MySQL数据库,并提供一个清晰、完整的步骤指南。这篇文章的内容字数大约在
75 1
|
2月前
|
SQL 关系型数据库 MySQL
Python小技巧——将CSV文件导入到MySQL数据库
Python小技巧——将CSV文件导入到MySQL数据库
37 0
|
3月前
|
关系型数据库 MySQL 大数据
教你使用Python玩转MySQL数据库,大数据导入不再是难题!
教你使用Python玩转MySQL数据库,大数据导入不再是难题!
|
3月前
|
SQL 数据可视化 关系型数据库
成功解决7版本的数据库导入 8版本数据库脚本报错问题
您提供的链接是一篇关于如何解决在MySQL数据库中导入脚本时出现版本兼容性问题的博客文章。文章中提到,如果在MySQL 5.7之前的版本中使用utf8mb4_0900_ai_ci排序规则,会遇到"Unknown collation"错误。解决办法包括升级MySQL版本到8.0或更高,或者更改排序规则为utf8mb4_general_ci或utf8mb4_unicode_ci,并提供了修改SQL脚本的示例。 如果您需要更详细的信息或有其他问题,请告诉我。
|
4月前
|
关系型数据库 MySQL 数据库
使用Python读取xlsx表格数据并导入到MySQL数据库中时遇到的问题24
【7月更文挑战第24天】使用Python读取xlsx表格数据并导入到MySQL数据库中
61 7
|
3月前
|
SQL 关系型数据库 MySQL
如何在 MySQL 或 MariaDB 中导入和导出数据库
如何在 MySQL 或 MariaDB 中导入和导出数据库
469 0
|
3月前
|
JSON NoSQL MongoDB
在Ubuntu 14.04上如何导入和导出MongoDB数据库
在Ubuntu 14.04上如何导入和导出MongoDB数据库
24 0
|
3月前
|
安全 关系型数据库 MySQL
如何在 MySQL 中导入和导出数据库以及重置 root 密码
如何在 MySQL 中导入和导出数据库以及重置 root 密码
45 0
|
4月前
|
分布式计算 DataWorks 关系型数据库
阿里云数加-分析型数据库AnalyticDB数据导入的多样化策略
通过合理利用这些数据导入方法,用户可以充分发挥AnalyticDB的实时计算能力和高并发查询性能,为业务分析和决策提供强有力的数据支持。