本发明涉及信息技术领域,具体是一种移动网络上网日志数据的压缩算法。
背景技术:
移动网络上网日志数据,是通过运营商蜂窝通讯技术访问网络时产生的数据,包括访问开始时间、访问结束时间、手机号码、源ip、目的ip、访问url等,运营商需要将这些数据存储成文件,用于计费、数据查询等功能。由于上网数据量非常巨大,通常会选用类似gzip的压缩算法,将数据压缩到原始数据的30%左右,但仍然需要使用大量的存储资源存储这些数据。因此,需要一种压缩比更高的压缩算法。
技术实现要素:
本发明的目的在于提供一种移动网络上网日志数据的压缩算法,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:
一种移动网络上网日志数据的压缩算法,包括以下步骤:
步骤一:获取上网日志数据,并根据源数据格式进行数据解析;
步骤二:压缩开始时间和结束时间;
解析出开始时间字段,并与文件名所标记时间做差值,将差值转换成整型数据,若差集超过65536则存储4个字节并置标记位1为true,否则存储2个字节的差值;
解析出结束时间字段,并与开始时间做差值,如果差值为0,则置标记位2为true,不存储结束时间,否则存储2个字节的差值;
步骤三:压缩手机号码;
解析出手机号字段,并检测是否已经出现过,如果出现过则置标记位3为true,并将上次出现的行号转换成3个字节的整型存储,否则将手机号转换成5个字节的整型存储;
步骤四:压缩源ip;
解析出源ip字段,并检测是否与上次同手机号记录源ip一致,如果一致,则置标记位4为true,本次不存储,否则将源ip转成4个字节,每字节标识ip地址的一个段存储;
步骤五:压缩目标ip;
解析出目标ip字段,并检测是否与上次同手机号记录目标ip一致,如果一致,则置标记位5为true,本次不存储,否则将源ip转成4个字节,每字节标识ip地址的一个段存储;
步骤六:将压缩后的所有字段连同标记位存盘。
与现有技术相比,本发明的有益效果是:
本发明针对上网日志数据的特点,开发了一种压缩比更高的压缩算法,将上网日志数据的压缩比从原数据的30%优化到17%左右,将节省一半左右的存储资源。
附图说明
图1为一种移动网络上网日志数据的压缩算法中时间字段的压缩方式示意图。
图2为一种移动网络上网日志数据的压缩算法中手机号码的压缩方式示意图。
图3为一种移动网络上网日志数据的压缩算法中源ip的压缩方式示意图。
图4为一种移动网络上网日志数据的压缩算法中目标ip的压缩方式示意图。
具体实施方式
下面结合具体实施方式对本专利的技术方案作进一步详细地说明。
请参阅图1-4,一种移动网络上网日志数据的压缩算法,包括以下步骤:
步骤一:获取上网日志数据,并根据源数据格式进行数据解析;
步骤二:压缩开始时间和结束时间;
解析出开始时间字段,并与文件名所标记时间做差值,将差值转换成整型数据,若差集超过65536则存储4个字节并置标记位1为true,否则存储2个字节的差值;
解析出结束时间字段,并与开始时间做差值,如果差值为0,则置标记位2为true,不存储结束时间,否则存储2个字节的差值;
步骤三:压缩手机号码;
解析出手机号字段,并检测是否已经出现过,如果出现过则置标记位3为true,并将上次出现的行号转换成3个字节的整型存储,否则将手机号转换成5个字节的整型存储;
步骤四:压缩源ip;
解析出源ip字段,并检测是否与上次同手机号记录源ip一致,如果一致,则置标记位4为true,本次不存储,否则将源ip转成4个字节,每字节标识ip地址的一个段存储;
步骤五:压缩目标ip;
解析出目标ip字段,并检测是否与上次同手机号记录目标ip一致,如果一致,则置标记位5为true,本次不存储,否则将源ip转成4个字节,每字节标识ip地址的一个段存储;
步骤六:将压缩后的所有字段连同标记位存盘。
上面对本专利的较佳实施方式作了详细说明,但是本专利并不限于上述实施方式,在本领域的普通技术人员所具备的知识范围内,还可以在不脱离本专利宗旨的前提下做出各种变化。
1.一种移动网络上网日志数据的压缩算法,其特征在于,包括以下步骤:
步骤一:获取上网日志数据,并根据源数据格式进行数据解析;
步骤二:压缩开始时间和结束时间;
解析出开始时间字段,并与文件名所标记时间做差值,将差值转换成整型数据,若差集超过65536则存储4个字节并置标记位1为true,否则存储2个字节的差值;
解析出结束时间字段,并与开始时间做差值,如果差值为0,则置标记位2为true,不存储结束时间,否则存储2个字节的差值;
步骤三:压缩手机号码;
解析出手机号字段,并检测是否已经出现过,如果出现过则置标记位3为true,并将上次出现的行号转换成3个字节的整型存储,否则将手机号转换成5个字节的整型存储;
步骤四:压缩源ip;
解析出源ip字段,并检测是否与上次同手机号记录源ip一致,如果一致,则置标记位4为true,本次不存储,否则将源ip转成4个字节,每字节标识ip地址的一个段存储;
步骤五:压缩目标ip;
解析出目标ip字段,并检测是否与上次同手机号记录目标ip一致,如果一致,则置标记位5为true,本次不存储,否则将源ip转成4个字节,每字节标识ip地址的一个段存储;
步骤六:将压缩后的所有字段连同标记位存盘。