通用数据挖掘系统
v3.0
需求分析说明书
通用数据挖掘系统 V3.0
需求说明书
Version 1.0
文档编号 TTS***
2009-7-23
达内 IT 集团
通用数据挖掘系统
v3.0
需求分析说明书
文档历史
版本
标题
内容
作者
时间
v1.0
需求说明书
唐亮
2009-07-23
通用数据挖掘系统
v3.0
需求分析说明书
1. 编写目的
本文档的目的是明确 DMS3.0 项目的业务背景、业务范围、定义项目的专业名词,分析
项目的核心功能和系统需求。期望读者包括:项目发起人、最终用户、项目投资方、项目管
理团队、项目执行团队,以及其他项目关系人。
2. 参考文档
【无】
3. 名称解释
DMS:数据挖掘系统(Data Mining System)
用户:需要使用 Unix 实验室出租业务的客户,用户通过电信公司提供的帐号和密码登录指
定的 Unix 机器,并使用 Unix 服务。
终端机器:用户通过一台本地终端机器来访问我们的 Unix 机器,并使用 Unix 服务,该本地
终端就是我们所说的终端机器。在我们的程序中要记录这一终端的 IP,做为向用户收费的
依据之一。
登 录 日 志 文 件 : 在 Unix 机 器 中 自 动 记 录 用 户 登 入 / 登 出 日 志 的 文 件 , 该 文 件 为 :
/var/adm/wtmpx;在我们的程序中该文件也可以是程序外部指定的另一个文件。我们的程序
需要提取该文件的数据来匹配出用户登入/登出的记录,并将其作为将来的收费依据。
用户登入记录:在登录日志文件中记录的用户登入 Unix 系统的日志记录,该日志记录包含
用户的登录名,用户登入 Unix 的时刻,登录的终端机器 IP 等信息。
用户登出记录:在登录日志文件中记录的用户登出 Unix 系统的日志记录,该日志记录包含
用户的登录名,用户登出 Unix 的时刻,登录的终端机器 IP 等信息。我们需要将用户的登入
通用数据挖掘系统
v3.0
需求分析说明书
记录和登出记录匹配起来,得到一条条完整的登录信息,并计算出用户本次登录的时长。
用户的登录记录:将用户的登入记录和登出记录按照对应关系匹配起来,形成一条完整的登
录记录,登录记录中包含以下信息:用户登录名,登入时刻,登出时刻,登录时长,登录终
端机器 IP 等。
匹配的登入/登出记录:等同于用户的登录记录。
未匹配的登入记录:在登录日志文件中理论上一条登入记录跟一条登出记录匹配,但有可能
在我们采集数据时用户还没有登出,所以日志文件中可能出现没有登出记录与之匹配的登入
记录,这些登入记录我们将其保存在一个指定的文件中,在下次采集时再读取。
4. 项目背景
4.1. 项目业务背景
在电信的业务中,有一种 Unix 实验室出租业务。只要用户向电信运营商申请一个 Unix
帐号,就可以远程登录 Unix 实验室,并使用 Unix 系统。
用户使用电信运营商提供的 Unix 实验室的服务需要缴纳一定的费用,电信运营商需要
一套数据采集系统,把用户登录实验室的时间长度数据采集起来,便于在指定的时间范围内
作为对用户的收费依据。
要求数据采集系统必须采集如下信息:登录用户名,登录的时间,登出的时间,登录总
的在线时间,登录的实验室 IP,用户的终端 IP 等信息。
DMS3.0 项目需要开发这样一个通用的数据采集系统程序,来采集 Unix 机器记录的用户
登入和登出的原始记录,并将这些记录解析匹配成用户的登录记录,然后发送给数据采集服
务器,在服务器端将这些数据以日期为单位保存在数据库中,然后整合这些数据形成日报表,
月报表和年报表。
通用数据挖掘系统
v3.0
需求分析说明书
4.2. 项目业务原理
任何用户登录 Unix 系统,Unix 系统都会记录用户的登录信息,所有用户登入/登出的信
息都保存在 Unix 的系统日志文件中。数据采集系统就是通过读取 Unix 系统日志文件中用户
登入/登出信息,并找出成对的登入/登出记录,得到用户登录实验室的登入时刻、登出时刻、
登录时间长度等电信用户收费需要使用的数据,最后把匹配处理好的数据保存成电信工作人
员可以阅读的文本文件,做为电信收费依据。
用户登录 Unix 系统的日志记录文件在 Unix 的/var/adm 目录下,文件名是 wtmpx,日志
记录文件是一个二进制文件,在 Unix 中可以使用 last 指令查看,last 命令格式为:
last [-a] [-n number | -number] [-f filename] [name | tty]
wtmpx 文件中一条登录记录包含 372 字节,每条记录包含的数据项格式说明如下表 1-1
所示: (其中黄色背景标识的数据项就是要采集的数据项)
位置范围
字节长度
含义
000-031
32
/* 用户登录名 */
032-035
4
/* inittab id */
036-067
32
/* device name (console, lnxx) */
068-071
4
/* 进程 ID*/
072-073
2
/* 登录类型 7-登入,8 登出 */
074-075
2
/* process termination*/
076-077
2
/* exit status*/
2
/* 这是 C 数据类型补齐产生的空位*/
080-083
4
/* 登录时刻*//*单位是秒 */
084-087
4
/* and microseconds */
088-091
4
/* session ID, used for windowing */
092-111
20
/* reserved for future use */
112-113
2
/* significant length of ut_host */
114-371
258
/* 登录 IP*/