1 无线射频识别RFID
RFID是Radio Frequency Identification的缩写,中文翻译为无线射频识别。RFID作为一种自动识别标签,是通过射频信号来自动识别目标对象从而获取相应的数据。RFID标签有很多种的识别方式,但最为常见的是存储一个唯一的序列号来标识一个人或者物品的信息。它是通过一个带有天线的微芯片来传输信息,芯片借助天线将识别信息传输给一个RFID阅读器。这种技术让用户能通过一个RFID阅读器远距离、非接触地读取数据,在这个过程中阅读器和芯片之间不需要有机械或光学的接触,并且这个过程不需要人工干预,在任何环境当中均可自发完成。
RFID会使得原来的供应链管理系统变得更为智能,它改进了原始的二维条形码,使得相应的货物跟踪和订单管理的过程变得简易。近几年沃尔玛开始在它们的供应链系统中使用这种技术,RFID还被广泛应用于军事、邮政、航空、医疗等领域。由RFID的广泛应用而带来的新事物就是“物联网”,它意味着人们能通过无线网络随时获取数以亿计物品的位置及相关信息。
Jiawei Han(2006)认为在数据仓库领域对RFID数据的研究主要分为三个方向:第一个方向在于安全地收集和管理RFID标签携带的信息;第二个方向是清理RFID数据中的误差数据;第三个方向是创建一个多维度的数据仓库,以提供对大量RFID数据集的OLAP操作。这也是本文的讨论内容。
2 RFID数据特性
RFID数据完全不同于传统的关联技术或者数据仓库技术中的数据,对这些不同之处的研究正是对RFID数据进行数据建仓工作的起点,RFID数据主要有如下一些特性:
数据简单:RFID所产生的数据可视为一个RFID元数据的流,元数据的结构主要是EPC、LocaTIon、TIme,EPC是Electronic Product Code的缩写,即电子产品代码,它用来唯一识别一个物品。LocaTIon是RFID阅读器读取该物品时的所在位置,TIme就是读取时的时间。这种数据格式并没有携带太复杂的信息,简单易读。
数据海量:RFID应用的重要挑战就是由此产生的海量数据。
数据误差:RFID数据的另一个重要问题是RFID阅读器在产生数据流时会有误差。在实际应用当中RFID阅读率大概在60%~70%之间。
允许冗余:RFID阅读器每隔固定一段时间就会产生一个(EPC,location,time)格式的元数据,当一个物体停留在相同的地点一段时间就会有很多元数据产生,这就形成的数据的冗余,我们同样需要对这些冗余进行处理。
3 RFID数据清理
数据清洗是在数据处理过程中最常见的问题之一,比如在数据仓库当中进行各种预定义的成熟操作当中都涉及到这一过程。在RFID当中的数据主要存在以下三种问题:缺失值,数据错误,数据冗余。
3.1 缺失值和数据错误的处理
缺失值和数据错误这类问题在RFID应用当中非常常见,因为一些简陋的无线阅读器在无线通信过程中会出错。很多学者针对这类问题提出了若干解决方案,Yijian Bai(2007)提出的有效的RFID数据流过滤技术、Shawn(2007)提出的ESP(Extensible Sensor Stream Processing,在线清洗多层框架系统),付菡提出的基于定长滑动窗口的清洗技术等等。其中ESP作为主要的数据流清洗方法分为五个阶段,每个阶段都对应一个不同数据处理的逻辑过程。ESP系统针对数据的时间粒度和空间粒度,通过说明性的查询语言来解决用户定义的功能,并通过实验证明ESP也适合于RFID数据流。
针对RFID数据流固有的不可靠性,以及定长滑动窗口的窗口大小不容易确定,Shawn还提出了一种自适应的改变滑动窗口大小的RFID数据清洗方法——SMURF。
3.2 数据冗余
数据冗余的问题在RFID应用当中也非常严重。数据的冗余主要有两个层面:在阅读层面的冗余以及数据层面的冗余。
①阅读层面的冗余:这种冗余是指一个RFID标签在同一个地点被不同的RFID阅读器重复读取。解决这种问题的一个办法是,当一个RFID阅读器打开时其它有交叉部分的阅读器暂时关闭;其次,每个RFID阅读器计算出它所覆盖的RFID标签的数目,然后将这个数据向它所覆盖的每个RFID标签中书写。如果一个阅读器一个标签都没有锁定,则这个阅读器为多余的。
但是这个算法当中有一个假定,就是每个阅读器会在同一位置持续很长时间,然而在实际中很多阅读器是随时移动的。
②数据层面的冗余:Han JW提出了一种简化RFID数据源的方式。每一个阅读器产生RFID元数据(EPC,location,time),当一个物品停留在一个地方一段时间后会持续产生这样的元数据,解决方法将元数据处理成(EPC,location,time_in,time_out)这样的数据格式。在多数时候许多物品都是一起移动的,比如一整集装箱的洗发水从工厂出来后,在各物流中心中转,直至被摆放到货架上。因此,我们用(EPC list,location,time_in,time_out)格式来进行储存有助于减少冗余。
4 RFID数据仓库的构建
因为RFID数据的诸多特性,RFID数据仓库的建立也不同于传统的数据仓库。假设我们已经将数据进行了清洗,得到了以(EPC,location,time_in,time_out)格式的数据。传统的数据处理技术也许能够找出在指定地点,指定时间的相应信息,但是对这些数据之间的联系则缺少相应的研究方法,比如如何寻找某些类别的商品从A地到B地的相关信息方面,并没有很好的处理技术。为了满足用户对信息的需求,并结合RFID数据本身的特点,Hector Gonzalez,Xiaolei Li(2006)提出了构建RFID数据仓库并进行数据处理的一些相关技术。建立RFID数据仓库,Han等提出了两类模型:一类是Path Cube,另外一类是Workflow Cube。
4.1 Path Cube模型
Path cube 压缩并整合了一些物体移动的过程中的地点时间等信息,它是在物体的维度上建立起来的。这种cube能够有效率的处理一些OLAP的请求。在建立这种RFID的数据仓库时使用清洗过的数据按照RFID-Cuboid的形式组合数据。RFID-Cuboid包含三种类型的表:信息表(Information Table),保存每个RFID标签的物体信息;停留表(Stay Table),存储在同一个地点停留的物体信息;地图表(Map Table),存储多个相互关联的停留记录的路径信息。
信息表(Information Table):该表存储的是例如物品名称,制造商,物品价格,物品类别等和物品所经过路径无关的信息。这类信息的每个维度有一个相互关联的概念层次。在这张表里,所有传统的OLAP操作都可以进行使用,和一般常见的数据仓库类似。
停留表(Stay Table):在RFID数据处理时有一个常见场景就是大批量物品一起移动的。根据上文数据清理部分所述,每个记录可以调整为这样的形式《(gids,location,time_in,time_out):(m1,…,mk)》,gids是一个标记,它指向更低级的gids,最后一个层次的gids指向一组RFID标签的EPC。time_in是物品进入一个地点的时间,time_out是物品离开一个地点的时间。如果物品还没有离开,这个值为空(NULL)。m1,…,mk是物品停留在此地测量的一些记录,例如物品的数目,在此地平均的时间,最大的时间等量等等。
地图表(Map Table):该表是RFID数据当中特有的一张表,它不同于传统意义上数据仓库中的表。这张表中的数据使得处理有联系的、同一条路径上的信息变得容易。在每个阶段使用这张表可以压缩数据、减少数据量,同时让信息的查询过程变得更有效。
Hector指出通过使用Path cube形式的表之后,数据仓库所占空间大大降低,同时I/O处理的速度有效降低,这使得处理RFID数据变得更为容易。
4.2 Workflow Cube模型
Workflow cube是一个data cube的模型,在这个模型在多维的抽象层次上涵盖了物体的移动流中的信息。它主要从两个角度来观察这些数据,一个是从物品的角度,另一个是从路径的角度。
所谓物品的角度就是物品可以有多个抽象层次,物品可以是单个物品层次,也可以是一个小类或者一个大类。如鞋类包括运动鞋、皮鞋等,运动鞋下面又有品牌分类。所谓路径的角度就是物品存储可以有多个抽象层次,作为一个卖场不需要关心运来的货物经过了哪些中转站,而作为中转站也不需要关心货物进入卖场后会放在哪个货架上。
Workflow cube使用流向图计算每个工作流的概率,流向图就是一个树形结构图,树的每个节点是一个地点,树的连线表示物品在两个地点间的移动。
Path Cube和Workflow Cube与传统的data cube有很多共同之处,如每个维度都有一个概念层次,因此它们都可以用星形模式来模拟。Path Cube的不同之处就在于它在多维空间内对物体的移动进行了建模。Workflow Cube则是使用了复杂的概率模型,同时它还从物品和路径两个角度来建模。
5 讨论与展望
RFID数据有很多自己的特性,需要进行复杂的数据清洗工作,这就需要在处理过程中对数据进行压缩,并创建有效的数据仓库结构来存储这些数据,在减少RFID数据量的同时保留数据本身携带的相关信息。这在数据压缩算法、数据仓库模型等方面都提供了可供继续研究的内容。