23
1 A Continuous Query Index for Processing Queries on RFID Data Stream 种种种 RFID 种种种 种种种种种种种

A Continuous Query Index for Processing Queries on RFID Data Stream

  • Upload
    vivian

  • View
    47

  • Download
    1

Embed Size (px)

DESCRIPTION

A Continuous Query Index for Processing Queries on RFID Data Stream. 一种处理 RFID 数据流 查询的索引技术. 摘要. - PowerPoint PPT Presentation

Citation preview

Page 1: A Continuous Query Index for Processing Queries on RFID Data Stream

1

A Continuous Query Index for Processing Queries on RFID Data

Stream

一种处理 RFID数据流查询的索引技术

Page 2: A Continuous Query Index for Processing Queries on RFID Data Stream

2

摘要 RFID 中间件系统过滤和汇总阅读器收集来的数据流,这些数据是处理应用系统的请求时产生的,这些请求叫做连续查询,因为在标签运动时这些查询会被持续地查询。为了提高 RFID 中间件的性能,需要建立一个索引去有效处理连续查询,目前已经有几种对连续查询建立索引的方法, EPCglobal 提出一种 ECspec 模型,它是一种 RFID 应用系统的标准接口。连续查询是基于 ECSpec 之上的, ECSpec 包含很多代表查询条件的段。而这些索引的问题是,当为连续查询当为连续查询建立索引时,它们都需要花费太多时间,因为它们要插入大量的段到索引中。

Page 3: A Continuous Query Index for Processing Queries on RFID Data Stream

3

摘要 为了解决这个问题,我们提出一种能把一组段转换成压缩数据的聚合转换方法。我们也为转换空间提出一种有效的查询索引方案。我们对已经存在的查询索引方法做了比较,我们的方法在多个数据集上都有更高的索引效率。

Page 4: A Continuous Query Index for Processing Queries on RFID Data Stream

4

1.介绍 本文中我们提出一种索引 RFID 连续查询的技术,基本思想是把压缩大量的查询段,并保存成一个对象。我们分析了这些连续查询并找出合适的关系和有规律的重复,然后我提出一种叫做聚合转换的技术,找出重复的查询段组并把它们转换成压缩数据。另外,为了转换空间,我们提出一种基于 KDB-tree 的索引方法,相比以前的索引方法,我们的方法提升了我们提出的索引方案的性能。

Page 5: A Continuous Query Index for Processing Queries on RFID Data Stream

5

2.相关工作以前对数据流连续查询的索引研究可以分为

两类:基于移动对象的查询索引和基于传感数据流的查询索引。

对于移动对象数据库,人们已经提出了有多种处理连续查询的索引方法。 CQI 是基于内存的索引方案,这个方案要比基于 R-tree 的方法好。它的基本思想是吧查询把分解成多个单元,每个单元有多个查询列表,利用这些列表可以找到查询。 VCR也是基于内存的方案,提供一种间接的有效益的搜索计算方法。它使用虚拟结构( VCs )把一个查询域分解成段,并每个 VC 插入一个查询 ID 。

Page 6: A Continuous Query Index for Processing Queries on RFID Data Stream

6

2.相关工作用这种方法的检索可以遍历包含移动对象位置的 VCs 。这个方法把连续查询看重一个监视区域。然而源于 ECSpec 的连续查询不是一个单独的域,而是多个段,因为它包含一个 RID 范围和 TID 范围。因此,当索引 RFID 查询时很难应用这种方法,因为它需要太多数据插入。

为了处理传感器网络的连续查询,传感器数据流系统 NiagaraCQ 和 TelegraphCQ 采用一种查询索引方案。它使用一种类似 IBS 间隔二进制检索树的索引作为查询索引。 IBS-tree 是一个平衡二叉树,每个属性都生产这样的树。

Page 7: A Continuous Query Index for Processing Queries on RFID Data Stream

7

3、问题定义和传统的数据索引相比,查询索引方法特别

适用于流数据的连续查询,因为这些查询在一个时间段内都是激活的,而且数据会持续地到达。查询索引方法也能应用于处理 RFID 流数据的连续查询,然而,查询和 RFID 查询索引的数据不用于之前的研究。

对各个标签事件的查询我们叫做 stabbing 查询,这些事件在一个 RFID 阅读器识别到某个标签时发生。这些 stabbing 查询是用查询索引去找到数据的。定义如下:

Page 8: A Continuous Query Index for Processing Queries on RFID Data Stream

8

3、问题定义定义 1 : Stabbing 查询代表一个标签被一个阅读器感知的事件。这个标签事件在查询检索中变成一个点查询。 StabbingQuery = {(ridi, tidj) R2}∈

定义 2 :查询数据代表一个源于 ECSpec 的连续查询,查询数据包括针对阅读器和标签的过滤条件。阅读器的条件用 RID 的范围表示,标签的条件用 EPC 模式表示,它是一个 TID 的范围。因此,查询数据是一个包括一个 RID 范围集和一个 TID 范围集的对象。

Page 9: A Continuous Query Index for Processing Queries on RFID Data Stream

9

3、问题定义在二维空间( RID , TID )的查询数据是包含离散段的复杂对象。如图 1 所示,如果一个用户搜索“在仓库 A ,今年生产的三星手机”,然后应用系统发生一个 ECspec ,包含CQ1 : readerID=1 , EPC—Pattern=<10.[1-3].[3001-4000]> ,假设安装在仓库 A 的阅读器 ID 是 1 。 CQ1 到达 RFID 中间件并插入到查询索引,那么查询数据三个离散段:第一个是 {(1, 10·260+ 1·236 + 3001), (1, 10·260+ 1·236+ 4000)},

第二个是 {(1, 10·260+ 2·236+ 3001), (1, 10·260+ 2·236+ 4000)}

最后一个是 {(1, 10·260+ 3·236+ 3001), (1, 10·260+ 3·236+ 4000)} 。原因是 EPC 模式指定了离散的 TID 范围。

Page 10: A Continuous Query Index for Processing Queries on RFID Data Stream

10

3、问题定义在二维空间( RID , TID )的查询数据是包含离散段的复杂对象。如图 1 所示,如果一个用户搜索“在仓库 A ,今年生产的三星手机”,然后应用系统发生一个 ECspec ,包含CQ1 : readerID=1 , EPC—Pattern=<10.[1-3].[3001-4000]> ,假设安装在仓库 A 的阅读器 ID 是 1 。 CQ1 到达 RFID 中间件并插入到查询索引,那么查询数据三个离散段:第一个是 {(1, 10·260+ 1·236 + 3001), (1, 10·260+ 1·236+ 4000)},

第二个是 {(1, 10·260+ 2·236+ 3001), (1, 10·260+ 2·236+ 4000)}

最后一个是 {(1, 10·260+ 3·236+ 3001), (1, 10·260+ 3·236+ 4000)} 。原因是 EPC 模式指定了离散的 TID 范围。

Page 11: A Continuous Query Index for Processing Queries on RFID Data Stream

11

3、问题定义定义 1 : Stabbing 查询代表一个标签被一个阅读器感知的事件。这个标签事件在查询检索中变成一个点查询。 StabbingQuery = {(ridi, tidj) R2}∈

定义 2 :查询数据代表一个源于 ECSpec 的连续查询,查询数据包括针对阅读器和标签的过滤条件。阅读器的条件用 RID 的范围表示,标签的条件用 EPC 模式表示,它是一个 TID 的范围。因此,查询数据是一个包括一个 RID 范围集和一个 TID 范围集的对象。

Page 12: A Continuous Query Index for Processing Queries on RFID Data Stream

12

3、问题定义在二维空间( RID , TID )的查询数据是包含离散段的复杂对象。如图 1 所示,如果一个用户搜索“在仓库 A ,今年生产的三星手机”,然后应用系统发生一个 ECspec ,包含CQ1 : readerID=1 , EPC—Pattern=<10.[1-3].[3001-4000]> ,假设安装在仓库 A 的阅读器 ID 是 1 。 CQ1 到达 RFID 中间件并插入到查询索引,那么查询数据三个离散段:第一个是 {(1, 10·260+ 1·236 + 3001), (1, 10·260+ 1·236+ 4000)},

第二个是 {(1, 10·260+ 2·236+ 3001), (1, 10·260+ 2·236+ 4000)}

最后一个是 {(1, 10·260+ 3·236+ 3001), (1, 10·260+ 3·236+ 4000)} 。原因是 EPC 模式指定了离散的 TID 范围。

Page 13: A Continuous Query Index for Processing Queries on RFID Data Stream

13

3、问题定义

Page 14: A Continuous Query Index for Processing Queries on RFID Data Stream

14

3、问题定义如果 EPC 模式的产品和系列值是一个范围,那么查

询数据会包含多个段。如图 1 所示,段的大小取决于系列值的范围,段的数目等于产品值的范围。查询数据是一个复杂对象,最多包含 224 段 , 因为标签 ID 的产品编码是 24 位的,所以很有必要对这些数据建立索引,因为当保存一个连续查询时,需要插入很多段到索引中,另外在多次插入操作后,索引会变得很庞大,这时处理 stabbing 查询就会很没效率。

为了避免多次插入,可以把多维索引如 R-tree 应用到数据查找中,假如这样,索引必须用四维空间保存这些数据:RID , manager , product 和 serial 。这种索引的查询性能会成指数幂的衰弱,因此,虽然传统的索引能避免多次数据插入,但它们在处理查询时是低效率的。

Page 15: A Continuous Query Index for Processing Queries on RFID Data Stream

15

4、有效的转换方案查询索引中的查询数据取决于 EPC 模式。因

此,有必要研究所有的 EPC 模式去发现查询数据的属性。我们分析了 27 种模式,因为模式中的每部分是一个常数或者 [低 -- 高 ]或者 * 。

Page 16: A Continuous Query Index for Processing Queries on RFID Data Stream

16

3、问题定义 如表 1 所示,有 11 种模式是有意义的。 EPC 模式串

的第一部分标识 manager ,第二部分标识 product ,第三部分标识 serial 。 Manager 可以给每个厂家一个全球唯一编号,而 product 和 serial 可以根据厂家编制。因此有一些模式是不合理的,如 <[a1-a2].*.*> 和 <*.*.*>等。以上表明查询数据包含单个或者多个段以及段的数目和 product部分的值有关。

查询数据包含二维空间( RID , TID )的单个或者多个段。我们称单个段的查询数据为简单查询数据,我也把包含多个段的查询数据称为复杂查询数据。复杂查询数据有两个或者更多段,最多为 224 段。一个查询段是组成复杂查询数据的最小单位,我们把查询数据设为 d , d={d1,….,dn}其中 1<=n<=224 。查询数据段表示为 di={(minrid,mintid),(maxrid,maxtid)} ,其中 di d∈ 。

Page 17: A Continuous Query Index for Processing Queries on RFID Data Stream

17

4、有效的转换方案复杂查询数据有多于两个的离散段,它们之间有几何

级的关系。段之间的关系是一致的:它们的表示方式和大小是一样的,但他们在几何形态上处于不同位置。案例 1:复杂查询数据的 EPC 模式的普通格式是 <M1.[P1—P2].[S1—S2]> 。假设复杂查询数据包含 RID坐标轴范围 (rida,ridb) 的非, TID坐标轴的模式 <m1.[p1--p2].[s1—s2]> 。假设复杂查询数据 d 包含段 {d0 , d1 ,… dp2-p1} ,那么 di和 dj 之间就存在一致关系。

复杂查询数据的另一个属性是:查询数据段在 TID坐标轴的位置间隔是有规律的。每个段存在同样的 RID ,第 i个段 di 的开始点和第 i+1 个段 di+1 的开始点的距离是 236 。

Page 18: A Continuous Query Index for Processing Queries on RFID Data Stream

18

4、有效的转换方案案例 2:查询数据段在 TID坐标轴上以间隔 236 不断重复。

因为插入时间成本和存储成本,不可能把所有的复杂查询数据插入到查询索引中。因此,我们必须把复杂查询数据转换成简单的形式。我提出一种新的转换技术,叫聚合转换,它利用了案例 1 和 2 中提到的查询数据段之间的属性关系。

复杂查询数据的段存在多个一致性属性和规律重复。为了简化复杂查询数据,最主要是找到数据的重复形式。可以用一种网结构去抽取复杂查询数据的规律重复形式,因为它包含固定的规律重复的单元格,它就象复杂查询数据一样。

Page 19: A Continuous Query Index for Processing Queries on RFID Data Stream

19

4、有效的转换方案

Page 20: A Continuous Query Index for Processing Queries on RFID Data Stream

20

4、有效的转换方案如图 2 所示,图 2 ( a )显示复杂查询数据 d 包含三

个离散的段 d1 , d2 和 d3. 。在案例 1 和案例 2 中, d1 , d2 和 d3. 在各自的单元空间是同个形状的,如果复杂查询数据由一个固定的网格覆盖,那么它们有不同的单元 IDs 。我们假设 IDs 为 c , c+1 , c+2 ,如果我们用三维空间表示 d1 ,d2 和 d3 ,增加一个 ID 维度进入单元空间( RID , TIDcell ), d1 , d2 和 d3 的形状完全一样,他们的 cell ID 是从 c到 c+2 的序列,如图 3 ( b )所示,我们通过聚合 d1 , d2和 d3 产生新的矩形数据。我们把这个对象叫做聚合数据,表示为 {(1,3001,c),(1,4000,c+2)} 。

把这些步骤统一起来,我们能制定一个转换规则,它让转换处理得更快。

Page 21: A Continuous Query Index for Processing Queries on RFID Data Stream

21

4、有效的转换方案我们假设查询数据在 RID坐标轴为范围 (rida,ridb) 的非, TID坐标轴的模式 <m1.[p1--p2].[s1—s2]> , d0 , d1…. 和 dp2-p1 为查询数据的段。 Cellsize 是网格单元在 TID坐标轴的长度, c1 为包含( rida , d0.mintid )的单元 ID , c2 为包含( ridb,db2-b1,.maxtid )的单元 ID , h1 和 h2 为 di 之间的最短和最长距离。转换规则如图 2 :

Page 22: A Continuous Query Index for Processing Queries on RFID Data Stream

22

4、有效的转换方案聚合转换解决了插入索引时用时过长和存储

量太大的问题。这个技术的主要思想是从复杂查询数据中抽取规则重复形状,把复杂查询数据表示成聚合数据,这是通过转换规则来简化的过程。

Page 23: A Continuous Query Index for Processing Queries on RFID Data Stream

23

5.总结本文我们提出一种复杂连续查询的的索引技

术,我们首先建立了查询段之间的一致的和规则重复的属性,基于这些属性我们提出一种叫做聚合转换的技术,它能从把查询段组转换成聚合数据。这些聚合数据代表查询段,及它允许查询索引存储成一个对象,而不是插入所有的段。我们提出的索引技术在很多数据集上的索引性能都比其他方法要好。