1、 基于三层存储模型的 RFID 数据压缩存储方法摘要:针对物联网技术中亟待解决的海量数据存储问题,提出了一种基于射频识别(rfid)的三层数据存储压缩模型。该模型将数据分为当前数据层、临时数据层和历史数据层,利用每一层中数据的特点分别设计了相应的数据汇总算法,最终实现 rfid 数据的压缩存储。在该模型的基础之上,提出了针对路径的编码算法,用于对路径进行压缩存储。实验结果表明,该三层存储模型可以有效地压缩存储 rfid 数据,同时数据汇总算法具有较低的时间复杂度与较高的数据压缩比。关键词:射频识别;海量数据;路径编码;数据压缩;三层存储模型rfid data compression stora
2、ge method based on three-level storage model英文作者名 xia xiu-feng, zhao long*英文地址(school of computer, shenyang aerospace university, shenyang liaoning 110136, china)abstract: concerning the problem of massive data storage in the technology of the internet of things, this paper proposed a three-level ra
3、dio frequency identification (rfid) data compression storage model. this model divided the data into the current level, the temporary level and the historical level. corresponding data collection algorithm was designed for every level according to the features of data in each level. and a coding alg
4、orithm for paths based on the model was proposed to store the compressed paths. the experimental results show the three-level storage model can effectively store compression data, and demonstrate the algorithm of data gathering has higher data compression rate as well as lower time complexity.key wo
5、rds: radio frequency identification (rfid); massive data; path coding; data compression; three-level storage model0 引言所谓物联网就是物物相连的互联网,是指通过射频识别、红外感应器等信息传感设备把物品与互联网相连接,进行信息交互和通信的一种网络1-3。物联网这个概念在 1999 年被提出之后,并没有引起人们广泛的关注,由于其包含技术的复杂性,社会普遍质疑物联网大规模实施的可行性。但随着构建物联网的电子芯片费用的不断降低与电子标签(electronic product code,
6、epc)技术的日渐成熟4-5,物联网的普及逐渐变得切实可行。普遍认为,射频识别(radio frequency identification, rfid)的特性为:时空关联性、海量性、不确定性、实时性等6-7。随着物联网技术的日益发展,如何有效并快速地存储与查询 rfid 数据逐渐引起人们的重视。如果电子标签被放置在每个物品上,那么类似于沃尔玛这样的大型超市将会在一天之内得到 7tb 左右的数据,所以像 oracle、ibm、teradata 和一些其他的数据库公司不得不考虑将 rfid 信息整合到企业级数据库中8。在物联网被广泛应用的背景下,rfid 数据存储与管理逐渐成为物联网技术的研究方
7、向之一9-10。之前的研究工作主要采用单一数据层的方式存储 rfid 数据,较少涉及压缩存储与历史数据的处理。如文献11首次给出了一般意义上的 rfid 数据存储结构与数据管理的体系结构,但是其结构并不能完全适应当前的 rfid 应用系统;文献12提出了一个以位置为关键字的 rfid 数据存储模型,并给出了在这个模型之上的查询语句,但是对于历史数据却并没有进行处理;文献8提出了一个简单的 rfid 数据压缩方法,其主要思想是将一个固定的编号来代表一连串情境相关的 epc 编号(如一箱牛奶等),但是对于这个编号的尚未完成的划分方式却是实施这一方法的阻碍;文献13提出了一个 rfid 数据压缩方法
8、,该方法的主要思想是通过合并与连接那些用户不感兴趣的路径片段进行路径的语义压缩,但是如何确定哪些路径用户不感兴趣是一个很大的难题。故本文根据 rfid 数据的特点,提出了 rfid 三层数据存储模型,并给出了相应数据层的数据汇总算法。1rfid 数据压缩存储模型为了更好地区别与阐述当前数据与历史数据,给出 rfid 历史数据的定义。定义 1rfid 历史数据。rfid 历史数据为在某一特定事件驱动前的 rfid 数据,该特定事件与具体的 rfid 系统应用相关。例如在一个超市 rfid 系统之中,一个物品在被卖给消费者之后,它之前被阅读器扫描得到的数据被称为历史数据。而在一个物流监控系统当中,
9、在物品离开物流系统最终到达零售商店中之后,之前它在物流中产生的数据称为历史数据。如图 1 所示。图片图 1rfid 历史数据的产生本文采用了三层存储结构,并给出了相应的数据汇总方法,以达到数据压缩的目的。本文的存储模型结构如图 2 所示。图片图 2 三层存储模型结构图 2 中各层之间通过相应的数据汇总算法进行数据的汇总。本文 rfid 数据流的传递顺序是:阅读器层当前数据层临时数据层历史数据层,并且高层数据层的数据量比低层数据层的数据量小。第 3 期 夏秀峰等:基于三层存储模型的 rfid 数据压缩存储方法计算机应用 第 32 卷 1.1 当前数据层模型在一个 rfid 系统中,将从阅读器得到
10、的原始数据的集合称为观测数据集。其数据形式为 observatione,l,t,其中 e 表示被扫描的物品的 epc 编码,l 表示物品被扫描的地点,t 表示物品被扫描的时间。其具体形式如表 1 所示。表格(有表名)表 1observation 集elteltepc1loc1t1epc1loc2t5epc1loc1t2epc1loc2t6epc1loc1t3epc2loc1t7epc1loc2t4epc2loc1t8随着时间的推移,观测数据集中的数据量将异常庞大,这时需要将观测数据向当前数据层进行汇总。当前数据层的数据形式为currentdatael,locid,ts,te,count,其中
11、ts 与 te 分别表示该物品在这个位置第一次被扫描到的时间与最后一次被扫描到的时间,count 代表该物品在 ts 到 te 这个时间段内在该位置出现的次数。当观测数据集向当前数据集进行汇总时,首先会进行 epc 编号的匹配。如果在 currentdata 集中不存在这个 epc 编号,则将这条信息存入 currentdata 集中;否则将会进行位置信息的匹配,即查找该信息的 locid 是否存在于 currentdata 集中,如果存在则将计数增加,否则同样将这条信息存入 currentdata 集中。下面给出当前数据层的汇总算法:算法 1 当前数据集(current data gathe
12、r, cdg)汇总算法。输入最低粒度集 observatione,l,t。输出当前数据集 currentdatael,locid, ts, te,count。程序前例 1 在一个物联网系统中,实体 epc1 的标签在分别在时刻t1、t2、t3 在 loc1 被读取到,t4、t5、t6 在 loc2 被读取到,epc2的标签在时刻 t7、t8 在 loc1 被读取到,此时 observation 集的内容如表 1 所示。则当运行完 cdg 算法之后,currentdata 集合中的内容如表 2 所示。表格(有表名)表 2currentdata 集ellocidtstecountepc10001t
13、1t33epc10002t4t63epc20001t7t82通过这个例子可看出:经过 cdg 算法之后得到的数据集要比原始的 rfid 数据集的数据量小,即有效地进行了数据压缩。1.2 临时数据层模型临时数据层是中间数据层,其主要工作是将当前数据层中的位置点信息转化为路径信息进行存储,以达到压缩存储的目的。为了便于描述,下面给出 rfid 数据路径的定义。定义 2rfid 数据路径。rfid 数据路径是一串有序的位置点编号的集合,形如 pathidilocidj|jn,其中,pathidi 表示路径的编号,locidj 表示出现在这条路径上的位置点。为了更好地阐述路径之间的关系,下面给出 rf
14、id 数据子路径与主路径的定义。定义 3rfid 数据子路径。对于两条路径 tracex 与 tracey,如果对于任意按序的 locitracex(其中 in),locitracey,则说明tracex 为 tracey 的子路径,记为 tracextracey。定义 4rfid 数据主路径。rfid 数据主路径是指不包含父路径的路径,即如果 tracei 为主路径,则不存在 tracejtrace,使得traceitracej。反之,我们称不是 rfid 数据主路径的路径为rfid 非主路径。对于路径的编号采用改进的二进制哈夫曼编码,其主要思想是将路径的前 n/2 个码位置为其父路径编码的
15、前 n/2 个码位,而后 n/2个码位为其自身的自然序号。一条 rfid 非主路径编号编码如式(1)所示。例 4 对例 3 中的 tempdata 集合执行 hdg 算法之后,history 集中的内容如表 5 所示。表格(有表名)表 5history 集epcchtraceidtstecountepcc100010000t1t61epcc200010000t7t812 实验结果及分析本部分对该三层存储模型及其数据汇总算法进行实验验证。本文的硬件环境是:2.1ghz 的 intel core 2 duo cpu,2.0gb 的主存,160gb 的硬盘。软件环境是:操作系统为 windows x
16、p,编程环境为jdk1.6,数据汇总算法采用 java 语言编写。实验主要分析算法的时间性能、数据压缩率、数据的失真率以及查询的响应时间。2.1 实验数据由于场地与应用的限制,本文采用了模拟的数据集,即通过程序模拟了物品跟踪系统产生的 105 条 rfid 数据。为了更全面地验证算法的可靠性,将这 105 条数据划分为 4 个子集,分别包含1104,2104,3104 和 4104 条数据,分别记为数据集 1、数据集 2、数据集 3 和数据集 4。2.2 算法的时间性能本文分别针对上述 4 个数据集进行 3 层数据汇总算法,实验得到算法消耗时间如图 3 所示。图片图 3 不同数据集的时间消耗通
17、过图 3 可看出:随着数据集数据量的增大,时间消耗将随之增加,并且大部分的时间均消耗在第 3 层数据汇总即 hdg 算法之中,因此可以考虑改进该算法以进一步降低时间开销。2.3 算法的数据压缩率数据的压缩率是指每个算法运行结束之后得到的数据集的大小与原始数据集的大小之比。本实验的数据压缩率如图 4 所示。图片图 4 数据压缩率通过图 4 可看出:hdg 算法的数据压缩率最高,tdg 算法次之,而cdg 算法的数据压缩率最低。同时,随着数据集的不断增大,这 3 个算法的数据压缩率变化不大,即这 3 个算法的数据压缩率趋于固定值。2.4 数据的失真率由于只有第 3 层数据汇总即 hdg 算法采用的
18、是有损压缩方法,所以本实验过程只考虑 hdg 算法的失真率。rfid 数据失真率(data lost, dl)的计算公式为:dl=lost_colums/n(3)其中:lost_colums 表示已经失效的数据条数,n 表示总的数据条数。通过在 4 个数据集上运行 3 层汇总算法之后,实验得到 hdg 算法的失真率如图 5 所示。图片图 5 数据的失真率从图 5 可看出:随着数据集数量的增大,hdg 算法的失真率将会变小,这是由于主路径数量的增加随着数据集的增大而趋于缓慢所造成的。该实验数据表明,随着主路径数据量的增加,使用主路径替代原始路径将使数据更加真实。2.5 查询的响应时间分别在本文提
19、出的三层模型与原始数据集下运行 1000 条标准查询语句来检验模型的查询响应时间,实验结果如图 6 所示。图片图 6 查询的响应时间从图 6 可看出:随着数据集数据量的不断增加,查询的响应时间也相应增大。但是在不同的数据集中,运行在原始数据之上的查询响应时间与运行在本文提出的模型数据之上的查询响应时间基本相同,说明本文数据的压缩存储结构对数据的查询影响并不明显。3 结语本文建立了一种针对 rfid 数据的三层压缩存储模型,并给出了相应的数据层的数据汇总算法。对数据汇总算法的复杂度分析及实验数据分析,表明本文提出的三层数据存储结构可以有效地压缩数据,具有较低的时间复杂度和较少的查询响应时间,同时
20、,存储模型的第三层压缩数据具有较低的数据失真率,说明该模型可适应大规模 rfid 数据集。参考文献:1gustavo r, mario m, carlos d. early infrastructure of an internet of things in spaces for learning c/ proceedings of the 8th ieee international conference on advanced learning technologies. piscataway, nj: ieee press,2008:381-383.2hu ying, sundara s
21、, chorma t, et al. supporting rfid-based item tracking applications in oracle dbms using a bitmap datatype c/ proceedings of the 31st international conference on very large data bases. new york: acm press,2005:1140-1151.3cocci r, tran t, diao y, et al. efficient data interpretation and compression over rfid streams c/ proceedings of the 24th international conference on data engineering. piscataway, nj: ieee press, 2008:1445-1447.