记住该记住的,忘记该忘记的。改变能改变的,接受不能改变的! 本站域名:www.xyzlotus.cn

毕业设计二:日志导入

上一篇 / 下一篇  2008-05-11 16:55:11 / 个人分类:数据挖掘

毕业设计二:日志导入

 

数据源为广西大学网站日志。单个文件100M,大约有100万条记录。为了保证能得到一定数量的会话,所以导入四个文件,总共大约400M,包含有400万条记录。

 

由于日志格式和原来测试的有些不同,再加上数据量比较大,所以这次处理比较复杂。

日志格式如下:

210.36.21.101 - - [12/Feb/2007:09:43:45 +0800] "GET / HTTP/1.1" 200 38148

210.36.21.101 - - [12/Feb/2007:09:43:45 +0800] "GET /040310/text.css HTTP/1.1" 304 -

210.36.21.101 - - [12/Feb/2007:09:43:45 +0800] "GET /text.css HTTP/1.1" 304 –

观察日志格式后,发现可以用空格来分隔每个字段。不过这样的话,将会有些分散。比如日期与时间会被分成两列:[12/Feb/2007:09:43:45+0800]。而URL会被分为三列。只能全部以字符的形式导入数据库,然后在进行一些格式转换工作,比如日期等。

 

1、 创建表

create table weblog

(

 cip varchar2(20),

 ident varchar2(10),

 authorized_user varchar2(10),

 access_time varchar2(30),

 time_zone varchar2(10),

 method varchar2(20),

 url varchar2(500), //之前测试的时候,发现有些URL相当长,所以应将该字段的值设大。

 protocol varchar2(50),

 status varchar2(10),

 req_bytes varchar2(100)

);

2、 创建控制文件

//input.ctl

load data

infile 'F:\毕业设计\datasets\广西大学网络日志\www.gxu.edu.001'

infile 'F:\毕业设计\datasets\广西大学网络日志\www.gxu.edu.002'

infile 'F:\毕业设计\datasets\广西大学网络日志\www.gxu.edu.003'

infile 'F:\毕业设计\datasets\广西大学网络日志\www.gxu.edu.004'

replace into table weblog

fields terminated by X'09'

(cip               TERMINATED BY WHITESPACE,

ident                    TERMINATED BY WHITESPACE,

authorized_user     TERMINATED BY WHITESPACE,

access_time          TERMINATED BY WHITESPACE,

time_zone             TERMINATED BY WHITESPACE,

method                 TERMINATED BY WHITESPACE,

url                       TERMINATED BY WHITESPACE,

protocol        TERMINATED BY WHITESPACE,

status                   TERMINATED BY WHITESPACE,

req_bytes)

 

3、使用SQL*LOADER导入

在命令行,使用如下语句:

sqlldr userid=dm/oracle@XYZLOTUS control=F:\毕业设计\DataPreparation\input.ctl log=F:\毕业设计\DataPreparation\weblog.log errors=10000

由于在导入的时候会出现一些错误,比如有些字段太长而被拒绝写入表中。所以应该注意设置errors为一个比较高的值,以免错误数量超过允许的值而中止数据继续导入。如果不显式设置,默认为50。考虑到本实验数据记录庞大,所以我设为errors=10000

4、 通过日志记录来查看信息

在导入过程中,出现的错误以及导入的相关信息会保存在LOG文件中。

//weblog.log

WEBLOG:

4213740加载成功

由于数据错误, 407没有加载。

由于所有WHEN子句失败, 0没有加载。

由于所有字段都为空的, 0没有加载。

 

 

为结合数组分配的空间:  165120字节(64行)

读取  缓冲区字节数: 1048576

 

跳过的逻辑记录总数:       0

读取的逻辑记录总数: 4214147

拒绝的逻辑记录总数:     407

废弃的逻辑记录总数:       0

 

从星期五4 25 08:14:40 2008开始运行

在星期五4 25 08:57:20 2008处运行结束

 

经过时间为: 00: 42: 39.39

CPU时间为: 00: 04: 11.65

5、 登录SQL*PLUS

SQL> select count(*) from weblog;

 

 COUNT(*)

----------

  4213740


TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2008-05-17  
    123
45678910
11121314151617
18192021222324
25262728293031

数据统计

  • 访问量: 948
  • 日志数: 27
  • 文件数: 3
  • 建立时间: 2007-12-17
  • 更新时间: 2008-05-11

RSS订阅

Open Toolbar