1.一种近似查询系统,其特征在于,包括:
查询请求接收模块,用于接收查询请求;
精确查询模块,用于根据查询请求接收模块接收的查询请求,从数据集中匹配与查询请求对应的信息,输出查询结果,并形成历史查询信息;所述数据集按照设定的近似聚合查询框架存储数据;
历史查询模块,用于按照设定的历史信息索引结构存储历史查询信息,并根据查询请求接收模块接收的查询请求,从历史查询信息中匹配与查询请求对应的信息,输出查询结果。
2.根据权利要求1所述的近似查询系统,其特征在于,所述查询请求接收模块对接收到的查询请求进行预处理,然后使用最小边界矩形将查询请求中的查询区域进行抽象,统一为矩形形式,形成查询矩形;其中,一个任意多边形的最小边界矩形,指的是能包含该多边形的最小外边界矩形。
3.根据权利要求2所述的近似查询系统,其特征在于,按照设定的近似聚合查询框架存储数据,包括:通过结合数据立方体和基于采样的查询结构,建立树状模型,当位于非叶子节点时采用精确的数据立方体查询,当查询落在叶子节点时利用采样技术近似估计查询结果。
4.根据权利要求3所述的近似查询系统,其特征在于,设定的历史信息索引结构利用空间填充曲线进行降维,即通过空间填充曲线将二维点集映射到一维坐标系中,用于通过分层索引模型建立坐标点和实际存储位置的映射关系,并使用学习型索引结构建立索引,即对于每条历史查询信息,仅保存其左上结点的位置信息ZLT;之后通过机器学习的方法学习位置信息ZLT和id值的概率密度函数,最终生成分层索引模型。
5.根据权利要求4所述的近似查询系统,其特征在于,历史查询模块包括历史查询记录表和谓词映射表;
历史查询信息以边界矩形的方式定义一个谓词空间,取矩形区域的左上和右下两个顶点的z‑order曲线值存储于历史查询记录表中;同时将查询结果记录在聚合值列中;历史查询记录表作为后续数据结构的基础,在后续的查询过程中只允许添加操作,不允许对已有记录做修改和删除;
谓词映射表用于建立空间填充曲线值和真实经纬度值的对应关系;当查询矩形通过分层索引模型获得与之具有相交或包含关系的第一条历史数据后,通过指针找到该范围对应的真实数据值用于相交面积的计算,同时,谓词映射表中的数据按序排列,用于顺序查找后续相交区域。
6.根据权利要求5所述的近似查询系统,其特征在于,在历史查询模块中,历史查询信息的二维谓词坐标放置于被划分完毕的空间网格中,并与应用于该空间网格的空间填充曲线上的值一一对应。
7.根据权利要求5所述的近似查询系统,其特征在于,历史查询模块通过已经建立的分层索引模型,查询到第一个与查询矩形相交的历史矩形;通过该相交矩形左上节点与谓词映射表的指针,找到谓词索引表中的对应项,依次扫描后续历史记录即可找到所有的相交区域。
8.根据权利要求7所述的近似查询系统,其特征在于,历史查询模块找到所有相交矩形后,计算这些矩形与查询矩形的有效相交面积,进而判断该次查询是否有效命中历史查询记录;
已知查询区域Q,备选历史记录集合S={Qh1,Qh2…Qhn},设阈值τ,若Q与S相交面积大于τ,则该历史查询有效命中;
当判断为有效命中时,遍历与查询矩形相交的历史矩形,并通过真实经纬度坐标计算其相交面积,此时针对不同的聚合函数值,计算方式包括:(1)AVG均值,根据各相交区域的大小,按权重计算所有均值的加权平均作为查询窗口矩形的均值;
(2)SUM求和,按各历史矩形相交区域占该历史矩形总面积的比例进行等比缩放,再计算所有相交区域的总和作为查询矩形的SUM值;
当历史查询矩形有重叠区域,且该区域位于查询窗口矩形范围内时,需要对该区域聚合值进行重评估;设集合Soverlap={Qh1,Qh2…Qhk}相交于查询窗口矩形Q内的某一区域Ω,该区域的聚合值等于各区域值的平均值。
9.根据权利要求8所述的近似查询系统,其特征在于,精确查询模块采用树状近似查询结构进行查询;通过分片索引树状结构,对完整数据集进行划分,并存储非叶子结点的精确聚合结果,预建立数据立方体进行保存,当查询进行到的非叶子结点所表示范围完全被查询矩形包含时,该叶子结点所存储的精确预聚合值直接被使用;当出现部分覆盖,即次底层结点的范围与查询矩形部分相交时,进入叶子结点所表示的采样聚合估计阶段对范围内的点进行实时采样,并通过统计方法估计整体的概率分布,最终得出估计的聚合函数结果。
10.一种近似查询方法,其特征在于,采用权利要求1~9任一项所述的近似查询系统,所述方法,包括:将输入的查询请求进行预处理,使用最小边界矩形将查询请求中的查询区域进行抽象,统一为矩形形式,形成查询矩形,用于通过历史查询模块和/或精确查询模块进行信息查询;
当存在历史查询模块时,根据查询请求从存储于历史查询模块的历史查询信息中匹配与查询请求对应的信息,输出查询结果;
当不存在历史查询模块或在历史查询模块中没有匹配到与查询请求对应的信息时,根据查询请求通过精确查询模块从数据集中匹配与查询请求对应的信息,输出查询结果,并形成历史查询信息存储于历史查询模块。