CN113449208A - 空间查询方法、设备、系统及存储介质 - Google Patents
空间查询方法、设备、系统及存储介质 Download PDFInfo
- Publication number
- CN113449208A CN113449208A CN202010224727.3A CN202010224727A CN113449208A CN 113449208 A CN113449208 A CN 113449208A CN 202010224727 A CN202010224727 A CN 202010224727A CN 113449208 A CN113449208 A CN 113449208A
- Authority
- CN
- China
- Prior art keywords
- grid
- data
- query
- target
- data sets
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9537—Spatial or temporal dependent retrieval, e.g. spatiotemporal queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/29—Geographical information databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
- G06Q30/0639—Item locations
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Finance (AREA)
- Data Mining & Analysis (AREA)
- Accounting & Taxation (AREA)
- General Engineering & Computer Science (AREA)
- Remote Sensing (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请实施例提供一种空间查询方法、设备、系统及存储介质。在本申请实施例中,在进行空间查询时,可自动创建网格单元宽度大于或等于查询距离空间网格;并根据多个数据集中的数据点在空间网格内的分布情况,从待查询的多个数据集中确定出满足查询距离的目标数据组,得到查询结果。这种空间查询方式,可创建网格单元宽度与查询距离视适配的自适应空间网格,这样,在基于该空间网格进行空间查询时,有助于提高空间查询的准确度。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及一种空间查询方法、设备、系统及存储介质。
背景技术
空间查询为基于空间信息的数据查询方式,被广泛应用于电子地图、交通运输以及商务等领域之中。例如,在一种应用场景中,商家可利用空间查询确定店铺附近的用户,并根据查询结果确定是否增设商铺等;又例如,快递公司可利用空间查询确定商圈内的用户,并根据查询结果进行运力调度等等。因此,空间查询的准确性至关重要。
发明内容
本申请的多个方面提供一种空间查询方法、设备、系统及存储介质,用以提高空间查询的准确性。
本申请实施例提供一种空间查询方法,包括:获取待关联的多个数据集以及查询距离;所述多个数据集中的数据点表示各自对应的数据对象的位置信息;根据所述查询距离,创建空间网格,所述空间网格的网格单元宽度大于或等于所述查询距离;将所述多个数据集中的数据点映射至所述空间网格,以得到所述多个数据集中的数据点在所述空间网格中的分布情况;根据所述多个数据集中的数据点在所述空间网格内的分布情况,从所述多个数据集中确定目标数据组,以得到查询结果;其中,所述目标数据组中属于不同数据集的数据点之间的距离小于或等于所述查询距离。
本申请实施例还提供一种计算机设备,包括:存储器和处理器;其中,所述存储器,用于存储计算机程序;
所述处理器耦合至所述存储器,用于执行所述计算机程序以用于:获取待关联的多个数据集以及查询距离;所述多个数据集中的数据点表示各自对应的数据对象的位置信息;根据所述查询距离,创建空间网格,所述空间网格的网格单元宽度大于或等于所述查询距离;将所述多个数据集中的数据点映射至所述空间网格,以得到所述多个数据集中的数据点在所述空间网格中的分布情况;并根据所述多个数据集中的数据点在所述空间网格内的分布情况,从所述多个数据集中确定目标数据组,以得到查询结果;其中,所述目标数据组中属于不同数据集的数据点之间的距离小于或等于所述查询距离。
本申请实施例还提供一种数据处理系统,包括:客户端设备和服务端设备;其中;所述客户端设备用于向服务端设备指定待关联的多个数据集和查询距离;所述多个数据集中的数据点表示各自对应的数据对象的位置信息;
所述服务端设备,用于根据所述查询距离,创建空间网格,所述空间网格的网格单元宽度大于或等于所述查询距离;将所述多个数据集中的数据点映射至所述空间网格,以得到所述多个数据集中的数据点在所述空间网格中的分布情况;根据所述多个数据集中的数据点在所述空间网格内的分布情况,从所述多个数据集中确定目标数据组;并向所述客户端设备返回所述目标数据组和/或所述目标数据组的关联信息;所述目标数据组中属于不同数据集的数据点之间的距离小于或等于所述查询距离。
本申请实施例还提供一种存储有计算机指令的计算机可读存储介质,其特征在于,当所述计算机指令被一个或多个处理器执行时,致使所述一个或多个处理器执行权利要求上述空间查询方法中的步骤。
在本申请实施例中,在进行空间查询时,可自动创建网格单元宽度大于或等于查询距离空间网格;并根据多个数据集中的数据点在空间网格内的分布情况,从待查询的多个数据集中确定出满足查询距离的目标数据组,得到查询结果。这种空间查询方式,可创建网格单元宽度与查询距离视适配的自适应空间网格,这样,在基于该空间网格进行空间查询时,有助于提高空间查询的准确度。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1a为本申请实施例提供的数据处理系统的结构示意图;
图1b为本申请实施例提供的Hilbert曲线网格的示意图;
图1c为本申请实施例提供的一种数据点分布示意图;
图1d为本申请实施例提供的空间网格边界问题的数据点分布示意图;
图1e为本申请实施例提供的目标单元网格的邻域示意图;
图1f为本申请实施例提供的不同数据集的数据点在空间网格内的分布示意图;
图1g为本申请实施例提供的另一种数据点分布示意图;
图1h为本申请实例提供的空间查询方法与其它空间查询方法的查询效率结果对比图;
图2为本申请实施例提供的空间查询方法的流程示意图;
图3为本申请实施例提供的计算机设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
针对现有空间查询准确度较低的技术问题,本申请实施例一些实施例,在进行空间查询时,可自动创建网格单元宽度大于或等于查询距离空间网格;并根据多个数据集中的数据点在空间网格内的分布情况,从待查询的多个数据集中确定出满足查询距离的目标数据组,得到查询结果。这种空间查询方式,可创建网格单元宽度与查询距离视适配的自适应空间网格,这样,在基于该空间网格进行空间查询时,有助于提高空间查询的准确度。
以下结合附图,详细说明本申请各实施例提供的技术方案。
应注意到:相同的标号在下面的附图以及实施例中表示同一物体,因此,一旦某一物体在一个附图或实施例中被定义,则在随后的附图和实施例中不需要对其进行进一步讨论。
图1a为本申请实施例提供的一种数据处理系统的结构示意图。如图1a所示,该系统包括:客户端设备10a和服务端设备10b。
在本实施例中,客户端设备10a和服务端设备10b之间可以是无线或有线连接。可选地,客户端设备10a可以通过移动网络和服务端设备10b通信连接,相应地,移动网络的网络制式可以为2G(GSM)、2.5G(GPRS)、3G(WCDMA、TD-SCDMA、CDMA2000、UTMS)、4G(LTE)、4G+(LTE+)、5G、WiMax等中的任意一种。可选地,客户端设备10a也可以通过蓝牙、WiFi、红外线等方式和服务端设备10b通信连接。
在本实施例中,客户端设备10a是指用户使用的,具有用户所需计算、上网、通信等功能的计算机设备,例如可以是智能手机、平板电脑、个人电脑、穿戴设备等终端设备,也可以是服务器、云化的服务器阵列,或者为云化的服务器阵列中运行的虚拟机(VirtualMachine,VM)等。
在本实施例中,服务端设备10b是指可以进行数据管理,可响应客户端设备10a的查询请求,为用户提供与数据查询处理相关的服务的计算机设备,一般具备承担服务并保障服务的能力。服务端设备10b可以为单一服务器设备,也可以云化的服务器阵列,或者为云化的服务器阵列中运行的虚拟机(Virtual Machine,VM)。另外,服务端设备10b也可以指具备相应服务能力的其他计算设备,例如电脑等终端设备(运行服务程序)等。
在本实施例中,用户可通过客户端设备10a向服务端设备10b指定待关联的多个数据集和查询距离。在本实施例中,多个是指2个或2个以上。一个数据对象对应一个或多个数据集,每个数据集对应一个数据对象,且每个数据集中的数据点表示其对应的数据对象的位置信息。其中,数据点可以坐标形式进行表示。在不同的应用场景中,待关联的数据集对应的数据对象不同。例如,在零售应用场景中,待关联的数据集可分别为无人超市的位置信息集合和用户的位置信息集合,相应地,数据对象分别为无人超市和用户。又例如,在物流场景中,待关联的数据集可分别为配送无人车的位置信息集合和收寄方用户的位置信息集合,相应地,数据对象分别为配送无人车和收寄方用户。又例如,在外卖场景中,待关联的数据集可分别为商家的位置信息集合和消费用户的位置信息集合,相应地,数据对象分别为商家和消费用户;等等。
在本实施例中,查询距离是指空间查询的距离条件,主要用于限定不同数据集中的数据点之间需要满足的距离范围。在本实施例中,空间查询的查询结果为:从不同数据集中获取数据点之间小于或等于查询距离的数据点组成的目标数据组。即,在空间查询得到的目标数据组中,每个目标数据组中的属于不同数据集的数据点之间的距离小于或等于上述查询距离。不同数据集表示不同的数据对象的位置信息的集合。一个目标数据组中的数据点可分别表示不同数据对象的位置信息,也可包含多个同一数据集中的数据点以及1个或多个另一数据集中的数据点。在一个目标数据组中,不限定属于同一数据集的数据点之间的距离,即不限定表示同一数据对象的位置信息的数据点之间的距离。例如,数据集A为商铺的位置信息集合,数据集B为用户位置信息集合,则空间查询结果为从数据集A和数据集B中查询出商铺和用户之间的距离小于或等于查询距离的商铺-用户集,即目标数据组。一个目标数据组可包含1个商铺位置信息和1个或多个用户位置信息,也可包含1个或多个商铺位置信息和1个商铺位置信息;或者包含多个商铺位置信息和多个用户位置信息。每个目标数据组中商铺和用户之间的距离小于或等于查询距离。对于同一目标数据组中商铺和商铺之间的距离以及用户和用户之间的距离不做限定。
在本申请实施例中,不限定数据集的存储形式,其可以任意数据结构形式进行存储。例如,数据集可以表项、数组、堆栈、队列或图等数据结构的形式进行存储。
在本实施例中,用户可通过客户端设备10a向服务端设备10b指定待关联的多个数据集和查询距离。在本申请实施例中,不限定客户端设备10a向服务端设备10b指定进行关联查询的多个数据集的实施方式,下面以几种可选实施方式进行示例性说明。
实施方式1:待关联的数据集存储于服务端设备10b可访问的存储介质中。例如,待关联的多个数据集存储于服务端设备10b本地存储介质中,或者,待关联的多个数据集存储于服务端设备10b可访问的其它存储介质中。其它存储介质可以为服务端设备10b可访问的云服务器等。
相应地,客户端设备10a可向用户提供交互界面,用户可通过该交互界面设置查询距离和待关联查询的数据集。待用户设置完成后,可触发相应的发送控件,将查询请求发送给服务端设备10b。相应地,客户端设备10a可响应于针对待关联数据集和查询距离的设置操作,生成查询请求,并将查询请求发送给服务端设备10b。该查询请求中携带有待关联的多个数据集标识和查询距离。相应地,服务端设备10b可接收查询请求,并对查询请求进行解析,得到查询请求携带的多个数据集标识和查询距离。进一步,服务端设备10b可获取与多个数据集标识对应的数据集,作为待关联的多个数据集。可选地,服务端设备10b可从本地存储的数据中,读取与多个数据集标识对应的数据集;或者从其它存储介质(例如云服务器)存储的数据中,拉取与多个数据集标识对应的数据集。
实施方式2:待关联的多个数据集存储于客户端设备10a可访问的存储介质中。例如,待关联的多个数据集存储于客户端设备10a本地存储介质中,或者,待关联的多个数据集存储于客户端设备10a可访问的其它存储介质中。其它存储介质可以为客户端设备10a可访问的云服务器等。
基于此,客户端设备10a可向用户提供交互界面。用户可通过交互界面导入待关联的多个数据集,并通过该交互界面设置查询距离。待用户设置完成后,可触发相应的发送控件,并将导入的多个数据集和查询距离发送给服务端设备10b。相应地,服务端设备10b可接收客户端设备10a发送的多个数据集和查询距离。
对于服务端设备10b,在获取客户端设备10a指定的待关联的多个数据集和查询距离之后,还可将查询距离作为空间查询条件对待关联的多个数据集进行空间查询,并从多个数据集中,确定表示不同数据对象的位置信息的数据点之间的距离小于或等于该查询距离的目标数据组。即从多个数据集中,确定属于不同数据集且不同数据集中的数据点之间的距离小于或等于查询距离的目标数据组。在本实施例中,为了减少数据计算量,提高查询效率,可利用空间网格对空间进行划分,并基于空间网格进行空间距离查询,这样空间上相邻的数据点会邻近存储在一块,能够降低IO的时间,提高内存中数据处理效率。基于此,服务端设备10b可根据查询距离,创建网格单元宽度大于或等于查询距离的空间网格。这样,空间网格便可将空间进行分区,每个网格单元对应一个空间分区。
可选地,服务端设备10b可根据查询距离,确定空间网格所需的网格单元宽度和网格单元数量,其中,网格单元宽度大于或等于查询距离。进一步,服务端设备10b可按照空间网格所需的网格单元宽度和网格单元数量,创建空间网格。空间网格构建速度快,不占用额外内存。
可选地,可在服务端设备10b中预先设置多级网格精度等级,其中,不同网格精度等级对应不同的网格单元宽度和网格单元数量。其中,网格精度等级划分越精细,确定出的自适应空间网格的网格单元宽度与查询距离的差值越小,后续基于空间网格进行空间查询时,基于空间网格进行数据点过滤时的过滤颗粒度越细,经过空间网格过滤保留下来的数据点满足查询距离条件的概率越大,进而得到查询结果的准确度越高。
例如,对于针对GeoHash技术创建空间网格,GeoHash技术提供1-12级精度,每级精度下每个网格代表的空间距离如下表1所示:
表1 GeoHash分级及空间网格大小
对于GeoHash空间网格,由于只有12级精度,各个精度等级下的网格单元空间距离跨度大。这在处理海量数据空间查询时,颗粒度太粗,过滤效果不理想。
为了解决上述问题,本申请实施例中,预设的多个网络精度等级采用基于希尔伯特(Hilbert)曲线网格对应的网格精度等级。可选地,基于Hilbert曲线网格可以为:Hilbert曲线网格,或者为基于Hilbert曲线的变形曲线对应的网格精度等级。这是因为:Hilbert曲线对应的网格精度等级之间的距离跨度较小,即相邻网格精度等级之间的网格单元宽度的差值较小,使得后续进行Hilbert曲线网格进行数据过滤的颗粒度更精细,而且确定出的目标精度等级的网格单元宽度与查询距离越接近,有助于提高后续查询结果的准确性。
其中,对于Hilbert曲线网格,每级网格精度等级对应的网格单元数量可表示为Hilbert曲线阶数。例如,n阶Hilbert曲线表示网格单元的数量为2n*2n个。
在本实施例中,若网格单元宽度小于查询距离,则位于不同网格单元内的数据点也可能属于满足距离查询条件,而后续根据多个数据集中的数据点在空间网格内的分布情况,确定满足距离查询条件的目标数据组时,则会将这些位于不同网格单元内的数据点但满足距离查询条件的数据点过滤掉,降低了查询准确率,所以空间网格的网格单元宽度大于或等于查询距离;进一步,若选取的网格单元宽度过大,则位于同一网格单元内的数据点也可能不满足距离查询条件,而后续根据多个数据集中的数据点在空间网格内的分布情况,确定满足距离查询条件的目标数据组时,则会将这些位于同一网格单元内的数据点但不满足距离查询条件的数据点也作为目标数据组,这样无疑也降低了查询准确率。因此,可在大于或等于查询距离的网格单元宽度中,选取与查询距离差值最小的网格单元宽度,作为待创建的空间网格所需的空间网格宽度。
服务端设备10b在确定待创建的空间网格所需的网格单元宽度和网格单元数量时,可将查询距离在已知的网格精度等级中进行匹配,确定目标网格等级。其中,目标网格等级是已知的多级网格精度等级中网格单元宽度大于或等于查询距离,且与查询距离的差值最小的网格精度等级。
可选地,可先从已知的多级网格精度等级中,选择出网格单元宽度大于或等于查询距离的网格精度等级;再分别计算这些网格单元宽度大于或等于查询距离的网格精度等级对应的网格单元宽度分别与查询距离的差值,并从中选择与查询距离最小的网格精度等级,作为目标网格等级。进一步,服务端设备10b可将目标网格精度等级对应的网格单元宽度和网格单元数量,作为空间网络所需的网格单元宽度和网格单元数量。
例如,对于Hilbert曲线网格,可以无限划分网格,即Hilbert曲线网格可支持无限多级网格精度等级。可选地,可选用30级网格精度等级。对于30个网格精度等级来说,每级网格精度等级对应的Hilbert网格阶数等于N,相应地,每级网格精度等级对应的网格单元数量为2N*2N。其中,N为网格精度等级的级数。
假设查询距离为1km,则可确定大于1km,且与1km的差值最小的网格精度等级为第15级,其网格单元宽度为1.1km,Hilbert曲线的阶数为15阶,则网格单元的数量为:215*215。
进一步,服务端设备10b可按照空间网格所需的网格单元宽度和网格单元数据,创建空间网格。在本实施例中,由于多个数据集中的数据点分别表示各自对应的数据对象的位置信息,而空间网格中的每个网格单元对应一个空间分区,因此,多个数据集中的数据点均可映射至空间网格内,得到多个数据集中的数据点在空间网格内的分布情况。由于空间网格的网格单元宽度大于或等于查询距离,因此,不同数据集中位于同一网格单元或位于相邻网格单元的数据点之间的距离小于或等于上述查询距离。基于此,服务端设备10b可根据多个数据集中的数据点在空间网格内的分布情况,确定不同数据集中的数据点之间的距离小于或等于查询距离的目标数据组,进而得到查询结果。其中,查询结果包括:目标数据组。在每个目标数据组中,属于不同的数据集的数据点之间的距离小于或等于查询距离。
进一步,空间查询的需求不同,服务端设备10b在得到查询结果之后,向客户端设备10a返回的信息不同。在一些实施例中,用户只需获取不同数据集中满足查询距离的目标数据组,则服务端设备10b可向客户端设备10a返回目标数据组,即直接返回查询结果。在另一些实施例中,用户需要知晓目标数据组的关联信息,则服务端设备10b可向客户端设备10a返回目标数据的关联信息。在又一些实施例中,用户不仅需要不同数据集中满足查询距离的目标数据组,还需要知晓目标数据组的关联的信息,则服务端设备10b向客户端设备10a返回目标数据组以及目标数据组的关联信息。
相应地,服务端设备10b可根据查询结果进行数据处理,得到目标数据组的关联信息。其中,在不同应用场景和不同查询需求下,服务端设备10b根据查询结果进行数据处理的方式不同,目标数据组的关联信息也有差异。下面以待关联的数据集为2个为例,结合几种查询需求进行示例性说明。
查询需求A:空间查询的目的是为了确定2个数据集满足设定的查询距离的数据对象的信息,相应地,目标数据组的关联信息为目标数据组中的数据点对应的数据对象的信息。例如,在零售、外卖等商业应用场景中,待关联的2个数据集分别为商家的位置信息集合和消费用户的位置信息集合,空间查询的目的为确定与每个商家之间距离在查询距离范围内的用户信息。在该应用场景中,服务端设备10b可利用上述空间查询方法,确定出与每个商家之间的距离小于或等于查询距离的用户。进一步,服务端设备10b可确定每个商家的信息以及与该商家之间的距离小于或等于查询距离的用户的信息,并将这些信息返回给客户端设备10a。在该应用场景中,目标数据组中的数据点表示商家的位置信息以及与商家之间的距离小于或等于查询距离的用户的位置信息。相应地,一个目标数据组中的数据点对应的数据对象分别为:商家以及与该商家之间的距离小于或等于查询距离的用户。其中,商家的信息可以为商家的画像,可包括商家的位置信息、商家的服务特征等等。用户的信息为:与商家之间的距离小于或等于查询距离的用户的数量、用户的位置信息和用户的画像等,其中,用户的画像包括用户的基本信息、行为特征等等,但不限于于此。
查询需求B:空间查询的目的是为了基于2个数据集中满足设定的查询距离的数据对象的信息,进行后续策略部署。相应地,目标数据组的关联信息为针对目标数据组中的数据点对应的数据对象的服务策略。同样以上述在零售、外卖等商业应用场景为例,则服务端设备10b还可根据与每个商家之间的距离小于或等于查询距离的用户的信息,确定相应的服务策略,并向客户端设备10a返回该服务策略。例如,在外卖应用场景中,可根据与每个商家之间的距离小于或等于查询距离的用户的数量,进行运力调度等;或者也可根据与每个商家之间的距离小于或等于查询距离的用户的行为特征,向用户推荐适配的商品等等。
本实施例提供的数据处理系统包括:客户端设备和服务端设备,其中,服务端设备在进行空间查询时,可自动创建网格单元宽度大于或等于查询距离空间网格;并根据多个数据集中的数据点在空间网格内的分布情况,从待查询的多个数据集中确定出满足查询距离的目标数据组,得到查询结果。这种空间查询方式,可自动创建网格单元宽度与查询距离视适配的自适应空间网格,这样,在基于该空间网格进行空间查询时,有助于提高空间查询的准确度。
另一方面,由于空间网格构建速度快,不占用额外内存,相较于传统的RTree等空间索引,可减少磁盘占用空间,有助于提高空间查询效率。而且RTree等空间索引数据膨胀,分裂大数据量,因此索引构建性差。
在本申请实施例中,不限定将多个数据集中的数据点映射至空间网格的具体实施方式。在一种实施例中,由于多个数据集中的数据点表示各自对应的数据对象的位置信息,而空间网格的每个网格单元表示一个空间分区,因此,可将多个数据集中的每个数据点与空间网格中网格单元决定的空间分区进行匹配,来确定多个数据集中的数据点位于空间网格的哪个网格单元决定的空间分区内,并将该数据点映射至该网格单元内,进而将多个数据集中的数据点映射至空间网格内。
在另一些实施例中,为了降低计算量,可对空间网格进行编码,得到每个网格单元对应的编码;之后根据每个网格单元对应的编码以及编码规则,将多个数据集中的数据点映射至空间网格内。可选地,可利用空间填充曲线对空间网格进行编码,得到每个网格单元对应的编码。这是因为空间填充曲线能够将高维空间中没有良好顺序的数据映射到一维空间,经过这样的编码方式,空间上相邻的数据点会邻近存储在一块,能够降低IO的时间,提高内存中数据处理效率。其中,空间填充曲线可为Z型曲线、Hilbert曲线或者基于Hilbert曲线的变形曲线等等,但不限于于此。
优选地,Hilbert曲线根据自身空间填充曲线的特性,能够线性地贯穿二维或者更高维度每一个网格单元,而且只穿过一次,并对每一个网格单元进行线性排序和编码。该编码作为该单元的唯一标识。由于Hilbert编码没有出现大步幅的跳转,所以Hilbert空间排列的局部保序性能较好,即Hilbert曲线上相邻的点,在原始空间上一定相邻。其中,局部保序性是指:在实际空间中距离相邻较远的数据点,在空间网格中的相邻距离也较远。例如,在实际空间中,A点和B点之间的距离大于A点和C点之间的距离,那么在空间网格中A点的映射点和B点的映射点之间的距离也大于A点的映射点和C点的映射点之间的距离。因此,可利用Hilbert曲线或基于Hilbert曲线的变形曲线对空间网格进行编码。
服务端设备10b在利用空间填充曲线对空间网格进行编码,得到每个网格单元对应的编码之后,可根据每个网格单元对应的编码以及每个网格单元对应的坐标范围,将多个数据集中的数据点映射至空间网格内。其中,空间填充曲线不同,编码规则也不同,将多个数据集中的数据点映射至空间网格的实施方式也不同。下面以空间填充曲线为Hilbert曲线为例进行示例性说明。
如图1b所示,Hilbert曲线对应的空间网格为3阶空间网格,则可按照3阶网格对应的Hilbert曲线填充方式,在空间网格上绘制Hilbert曲线以填充整个空间网格。进一步,以填充好的Hilbert曲线的起点开始依次从0开始进行编码,得到每个空间网格对应的编码。之后,可根据每个网格单元对应的编码以及每个网格单元对应的坐标范围,将多个数据集中的数据点映射至空间网格内。例如,多个数据集中某个数据点为(5,2),则利用图1b所示的3阶Hilbert空间网格,可确定数据点(5,2)对应的网格单元为编码55所在的网格单元。即将数据点的横坐标在网格单元中每个网格单元的横坐标范围中进行匹配,确定数据点映射在空间网格中的哪一列;将数据点的纵坐标在网格单元中每个网格单元的纵坐标范围中进行匹配,确定数据点映射在空间网格中的哪一行,进而确定数据点映射在空间网格的哪个网格单元。按照同样的方式,可将多个数据集中的数据点映射至空间网格内,进而得到多个数据集中的数据点在空间网格内的分布情况。
进一步,服务端设备10b可根据多个数据集中的数据点在空间网格内的分布情况,确定目标数据组。目标数据组中属于不同的数据集的数据点之间的距离小于或等于查询距离。
在一些实施例中,由于空间网格的网格单元宽度大于或等于查询距离,这样对于位于同一网格单元内的数据点之间的距离也可能大于查询距离。例如,如图1c所示,网格单元宽度大于或等于查询距离,数据点E和数据点F分别位于网格单元的对角线上,则数据点E和F之间的距离大于查询距离。另一方面,对于位于不同网格单元的数据点之间的距离也可能小于或等于距离,例如,存在边界问题等。边界问题为不同网格单元内的数据点之间的距离比这些网格单元内的数据点之间的距离还要小。例如,如图1d所示,数据点E和F在同一网格单元,而数据点G位于另一网格单元,但是数据点GF之间的距离要小于数据点EF之间的距离。
为了解决上述问题,服务端设备10b可从多个数据集中选择数据量最小的数据集作为目标数据集,并根据多个数据集中的数据点在空间网格内的分布情况,目标数据集中的数据点所在的目标网格单元;之后,根据多个数据集中的数据点在空间网格内的分布情况,判断除目标数据集之外的其它数据集中的数据点是否映射在目标网格单元的邻域内。其中,所述目标网格单元的邻域包括:所述目标网格单元以及与所述目标网格单元相邻的网格单元确定的区域。例如,如图1e所示,灰色网格单元1为目标网格单元,可先确定目标网格单元的4个边,再确定与目标网格单元共边的4个网格单元2-5;然后根据与目标网格单元共左右边的2个网格单元2和3,确定与这2个网格单元分别共上下边的网格单元6-9,进而得到以目标网格单元为中心的9个网格单元,类似于九宫格,并将这9个网格单元确定的区域作为目标网格单元的邻域。
进一步,若判断结果为:除目标数据集之外的其它数据集中存在映射在目标网格单元的邻域内的数据点,则对于邻域内映射有除目标数据集之外的其它数据集中的数据点的第一目标网格单元,可根据其它数据集中映射在第一目标网格单元的邻域内的数据点和目标数据集中映射在第一目标网格单元中的数据点,确定目标数据组。相应地,对于邻域内没有映射有除目标数据集之外的其它数据集中的数据点的第二目标网格单元,则滤除目标数据集映射在第二目标网格单元内的数据点,并滤除除目标数据集之外的其它数据集中没有映射在目标网格单元的邻域内的数据点。这样,在进行空间查询时,滤除了目标数据集映射在第二目标网格单元内的数据点以及滤除除目标数据集之外的其它数据集中没有映射在目标网格单元的邻域内的数据点,只针对目标数据集中映射在第一目标网格单元内的数据点以及其它数据集中映射在第一目标网格单元的邻域内的数据点进行计算,有助于进一步提高查询效率。
为了更清楚地说明上述目标数据组的确定过程,下面以待关联的多个数据集为数据集A和数据集B为例进行示例性说明,假设数据集A的数据量小于数据集B。如图1f所示,圆点表示数据集A中的数据点,三角形表示数据集B中的数据点,图1f右图的一个网格表示左图的一个九宫格。目标单元网格的邻域为图1f中的灰色网格,对于图1f右图中的灰色网格来说,数据集A中的数据点所在的目标网格单元,位于图1f左图的中心。这样,在确定目标数据组时,便可将图1f右图中白色网格中的数据点全部滤除,只针对图1f中灰色网格中的数据点进行计算来确定目标数据组。
相应地,若除目标数据集之外的其它数据集中的数据点均未映射在目标网格单元的邻域内,则说明多个数据集中没有满足距离查询条件的数据点,则滤除多个数据集。
上述将多个数据集中数据量最小的数据集作为目标数据集,在进行查询时,可将目标数据集作为驱动表,进行外层循环;将其它数据量较大的数据集作为被驱动表,进行里层循环,这样可降低循环次数,有助于提高查询效率。
进一步,因为本实施例根据查询距离,创建的空间网格中的网格单元的宽度大于或等于查询距离,因此,基于空间网格单元的过滤是粗级过滤,对距离有所放大,因此,第一目标网格单元的邻域内的数据点仍然可能存在不满足查询条件的数据点。例如,如图1g所示,假设查询距离为1km,数据集A的数据量小于数据集B的数据量,则数据集A为目标数据集。数据点s1表示数据集A中的数据点,数据点s1所在的网格单元为目标网格单元。图1g中的数据点s2和s3为数据集B中的数据点,且位于目标网格单元的邻域内,因此数据点s1所在的网格单元为第一目标网格单元。如图1g所示,只有数据点s2与数据点s1之间的距离小于1km,满足距离查询条件,但是数据点s3与数据点s1之间的距离不满足,需要过滤掉。
为了解决上述问题,下面以邻域内映射有目标数据之外的其它数据集中的数据点的任一第一目标网格单元为例,对根据其它数据集中映射在第一目标网格单元的邻域内的数据点和目标数据集中映射在第一目标网格单元中的数据点,确定目标数据组的具体实施方式进行示例性说明。其中,为了便于描述和区分,任一第一目标网格单元定义为目标网格单元C,目标数据集中映射在目标网格单元C的数据点,定义为第一数据点S1,则可计算其它数据集映射在目标网格单元C的邻域内的第二数据点分别与第一数据点S1之间的距离;并从第二数据点中选择与第一数据点之间的距离小于或等于查询距离的目标数据点;并将目标数据点和第一数据点作为一个目标数据组。其中,第二数据点的数量可为1个或多个,其具体取值可根据多个数据集中目标数据集与其它数据集中数据点之间的空间距离关系来确定。
本申请实施例提供的空间查询方法,在根据多个数据集中的数据点在空间网格内的分布情况,滤除除目标数据集之外的其它数据集中没有映射在目标网格单元的邻域内的数据点,因此即便后续对除目标数据集之外的其它数据集中映射在目标网格单元的邻域内的数据点进行进一步精细计算,计算量仍然大大降低,计算量仍然比geomesa spark的笛卡尔积暴力计算要小很多。而且,由于第一目标网格单元的邻域内的数据点不会产生边界问题,可以把不同网格的数据投递到不同机器上并行计算,相互之间不会产生数据交换(shuffle),可进一步提高空间查询速率。
为了验证本申请实施例提供的空间查询方法的高效性,申请人分别用基于geomesa spark的空间查询方法和本申请实施例提供的空间查询方法进行了测试计算。其中,采用的数据集A和数据集B的数据量分别为9万和3300万,参加计算的计算机配置为9台32核(2.5GHZ)、128GB的docker容器,得到图1h所示的测试结果。如图1h所示,基于geomesaspark的空间查询方法利用数据集A和B进行空间查询所需时间,即响应时间(ReactionTime,RT)为987s;本申请实施例提供的空间查询方法所需时间为96s。因此可知本申请实施例提供的空间查询方法可明显提高查询效率。
除了上述数据处理系统实施例之外,本申请实施例还提供空间查询方法,下面从服务端设备的角度进行示例性说明。
图2为本申请实施例提供的空间查询方法的流程示意图。如图2所示,该方法包括:
201、获取待关联的多个数据集以及查询距离;所述多个数据集中的数据点表示各自对应的数据对象的位置信息。
202、根据查询距离,创建空间网格,其中,空间网格的网格单元宽度大于或等于所述查询距离。
203、将多个数据集中的数据点映射至空间网格,以得到多个数据集中的数据点在空间网格中的分布情况。
204、根据多个数据集中的数据点在空间网格内的分布情况,从多个数据集中确定目标数据组,以得到查询结果;其中,目标数据组中属于不同数据集的数据点之间的距离小于或等于查询距离。
在本实施例中,多个数据集可为用户指定的待关联的数据集。在步骤201中,可获取待关联的多个数据集。可选地,用户可通过客户端设备向服务端设备指定待关联的多个数据集和查询距离。在本申请实施例中,不限定客户端设备向服务端设备指定进行关联查询的多个数据集的实施方式,下面以几种可选实施方式进行示例性说明。
实施方式1:待关联的数据集存储于服务端设备可访问的存储介质中。例如,待关联的多个数据集存储于服务端设备本地存储介质中,或者,待关联的多个数据集存储于服务端设备可访问的其它存储介质中。其它存储介质可以为服务端设备可访问的云服务器等。
相应地,客户端设备可向用户提供交互界面,用户可通过该交互界面设置查询距离和待关联查询的数据集。待用户设置完成后,可触发相应的发送控件,将查询请求发送给服务端设备。相应地,客户端设备可响应于针对待关联数据集和查询距离的设置操作,生成查询请求,并将查询请求发送给服务端设备。该查询请求中携带有待关联的多个数据集标识和查询距离。相应地,服务端设备可接收查询请求,并对查询请求进行解析,得到查询请求携带的多个数据集标识和查询距离。进一步,服务端设备可获取与多个数据集标识对应的数据集,作为待关联的多个数据集。可选地,服务端设备可从本地存储的数据中,读取与多个数据集标识对应的数据集;或者从其它存储介质(例如云服务器)存储的数据中,拉取与多个数据集标识对应的数据集。
实施方式2:待关联的多个数据集存储于客户端设备可访问的存储介质中。例如,待关联的多个数据集存储于客户端设备本地存储介质中,或者,待关联的多个数据集存储于客户端设备可访问的其它存储介质中。其它存储介质可以为客户端设备可访问的云服务器等。
基于此,客户端设备可向用户提供交互界面。用户可通过交互界面导入待关联的多个数据集,并通过该交互界面设置查询距离。待用户设置完成后,可触发相应的发送控件,可将导入的多个数据集和查询距离发送给服务端设备。相应地,服务端设备可接收客户端设备发送的多个数据集和查询距离。
接着,在步骤201之后,还可将查询距离作为空间查询条件对待关联的多个数据集进行空间查询,并从多个数据集中,确定属于不同数据集的数据点之间的距离小于或等于该查询距离的目标数据组。在本实施例中,为了减少数据计算量,提高查询效率,可利用空间网格对空间进行划分,并基于空间网格进行空间距离查询,这样空间上相邻的数据点会邻近存储在一块,能够降低IO的时间,提高内存中数据处理效率。基于此,在步骤202中,可根据查询距离,创建网格单元宽度大于或等于查询距离的空间网格。这样,空间网格便可将空间进行分区,每个网格单元对应一个空间分区。
可选地,可根据查询距离,确定空间网格所需的网格单元宽度和网格单元数量,其中,网格单元宽度大于或等于查询距离。进一步,可按照空间网格所需的网格单元宽度和网格单元数量,创建空间网格。
可选地,可预先设置多级网格精度等级,其中,不同网格精度等级对应不同的网格单元宽度和网格单元数量;并将查询距离在已知的网格精度等级中进行匹配,确定目标网格等级。其中,目标网格等级是已知的多级网格精度等级中网格单元宽度大于或等于查询距离,且与查询距离的差值最小的网格精度等级。
可选地,预设的多级网络精度等级可为基于希尔伯特(Hilbert)曲线网格对应的网格精度等级。可选地,基于Hilbert曲线网格可以为:Hilbert曲线网格,或者为基于Hilbert曲线的变形曲线对应的网格精度等级。
进一步,可按照空间网格所需的网格单元宽度和网格单元数据,创建空间网格。在本实施例中,由于多个数据集中的数据点分别表示各自对应的数据对象的位置信息,而空间网格中的每个网格单元对应一个空间分区,因此,在步骤203在,多个数据集中的数据点均可映射至空间网格内,得到多个数据集中的数据点在空间网格内的分布情况。由于空间网格的网格单元宽度大于或等于查询距离,因此,不同数据集中位于同一网格单元或位于相邻网格单元的数据点之间的距离小于或等于上述查询距离。基于此,在步骤204中,可根据多个数据集中的数据点在空间网格内的分布情况,从多个数据集中确定属于不同数据集的数据点之间的距离小于或等于查询距离的目标数据组,进而得到查询结果。其中,查询结果包括:目标数据组。在每个目标数据组中,属于不同的数据集的数据点之间的距离小于或等于查询距离。
进一步,空间查询的需求不同,在得到查询结果之后,可输出目标数据组合/或输出目标数据组的关联信息。其中,在不同应用场景和不同查询需求下,根据查询结果进行数据处理的方式不同,目标数据组的关联信息也有差异,其具体描述可参见上述查询需求A和B中的相关内容,在此不再赘述。
在本实施例中,在进行空间查询时,可自动创建网格单元宽度大于或等于查询距离空间网格;并根据多个数据集中的数据点在空间网格内的分布情况,从待查询的多个数据集中确定出满足查询距离的目标数据组,得到查询结果。这种空间查询方式,可自动创建网格单元宽度与查询距离视适配的自适应空间网格,这样,在基于该空间网格进行空间查询,时有助于提高空间查询的准确度。
在一些实施例中,步骤203的一种可选实施方式为:对空间网格进行编码,得到每个网格单元对应的编码;并根据每个网格单元对应的编码以及每个网格单元对应的坐标范围,将多个数据集中的数据点映射至空间网格。
可选地,对所述空间网格进行编码的可选实施方式为:利用空间填充曲线对空间网格进行编码,得到每个网格单元对应的编码。
其中,空间填充曲线为希伯尔特曲线或基于希伯尔特曲线的变形曲线。
在一些实施例中,根据多个数据集中的数据点在空间网格内的分布情况,从多个数据集中确定目标数据组的一种可选实施方式为:根据多个数据集中的数据点在空间网格内的分布情况,确定多个数据集中数据量最小的目标数据集中的数据点所在的目标网格单元;根据多个数据集中的数据点在空间网格内的分布情况,判断除目标数据集之外的其它数据集中的数据点是否映射在目标网格单元的邻域内;若判断结果为是,则根据邻域内映射有其它数据集中的数据点的第一目标网格单元以及其它数据集中映射在第一目标网格单元的邻域内的数据点,确定目标数据组。其中,目标网格单元的邻域包括:目标网格单元以及与目标网格单元相邻的网格单元确定的区域。
可选地,根据邻域内映射有其它数据集中的数据点的第一目标网格单元以及其它数据集中映射在第一目标网格单元的邻域内的数据点,确定目标数据组的一种可选实施方式为:计算其它数据集映射在第一目标网格单元的邻域内的第二数据点分别与目标数据集中映射在第一目标网格单元的第一数据点之间的距离;从第二数据点中选择与第一数据点之间的距离小于或等于查询距离的目标数据点;并将目标数据点和第一数据点作为一个目标数据组。
需要说明的是,上述实施例所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤201和202的执行主体可以为设备A;又比如,步骤201的执行主体可以为设备A,步骤202的执行主体可以为设备B;等等。
另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如201、202等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。
相应地,本申请实施例还提供一种存储有计算机指令的计算机可读存储介质,当计算机指令被一个或多个处理器执行时,致使一个或多个处理器执行上述空间查询方法中的步骤。
图3为本申请实施例提供的一种计算机设备的结果示意图。如图3所示,该计算机设备包括:存储器30a和处理器30b。其中,所述存储器30a,用于存储计算机程序。
处理器30b耦合至存储器30a,用于执行计算机程序以用于:获取待关联的多个数据集以及查询距离;多个数据集中的数据点表示各自对应的数据对象的位置信息;根据查询距离,创建空间网格,空间网格的网格单元宽度大于或等于查询距离;将多个数据集中的数据点映射至空间网格,以得到多个数据集中的数据点在空间网格中的分布情况;并根据多个数据集中的数据点在空间网格内的分布情况,从多个数据集中确定目标数据组,以得到查询结果;其中,目标数据组中属于不同数据集的数据点之间的距离小于或等于查询距离。
可选地,处理器30b还用于:在得到查询结果之后,输出目标数据组;和/或,输出目标数据组的关联信息。
在一些实施例中,处理器30b在获取待关联的多个数据集以及查询距离时,具体用于:获取查询请求,查询请求包含待关联的多个数据集的标识和查询距离;从查询请求中解析出多个数据集的标识和查询距离;并获取与多个数据集的标识对应的数据集。
在另一些实施例中,处理器30b在创建空间网格时,具体用于:根据查询距离,确定空间网格所需的网格单元宽度和网格单元数量;网格单元宽度大于或等于查询距离;按照空间网格组所需的网格单元宽度和网格单元数量,创建空间网格。
可选地,处理器30b在确定空间网格所需的网格单元宽度和网格单元数量时,具体用于:将查询距离在已知的网格精度等级中进行匹配,以确定目标网格精度等级;其中,不同网格精度等级对应不同的网格单元宽度和网格单元数量;目标网格精度等级是已知的网格精度等级中网格单元宽度大于或等于查询距离且与查询距离的差值最小的网格精度等级;将目标网格精度等级对应的网格单元宽度和网格单元数量,作为空间网络所需的网格单元宽度和网格单元数量。
其中,已知的空间网格精度等级为基于Hilbert曲线网格对应的网格精度等级。
在又一些实施例中,处理器30b在将多个数据集中的数据点映射至空间网格时,具体用于:对空间网格进行编码,得到每个网格单元对应的编码;根据每个网格单元对应的编码以及每个网格单元对应的坐标范围,将多个数据集中的数据点映射至空间网格。
可选地,处理器30b在对空间网格进行编码时,具体用于:利用空间填充曲线对空间网格进行编码,得到每个网格单元对应的编码。
其中,空间填充曲线为希伯尔特曲线或基于希伯尔特曲线的变形曲线。
在其它一些实施例中,处理器30b在从多个数据集中确定目标数据组时,具体用于:根据多个数据集中的数据点在空间网格内的分布情况,确定多个数据集中数据量最小的目标数据集中的数据点所在的目标网格单元;根据多个数据集中的数据点在空间网格内的分布情况,判断除目标数据集之外的其它数据集中的数据点是否映射在目标网格单元的邻域内;若判断结果为是,则根据邻域内映射有其它数据集中的数据点的第一目标网格单元以及其它数据集中映射在第一目标网格单元的邻域内的数据点,确定目标数据组。
进一步,处理器30b在确定目标数据组时,具体用于:计算其它数据集映射在第一目标网格单元的邻域内的第二数据点分别与目标数据集中映射在第一目标网格单元的第一数据点之间的距离;从第二数据点中选择与第一数据点之间的距离小于或等于查询距离的目标数据点;并将目标数据点和第一数据点作为一个目标数据组。
可选地,目标网格单元的邻域包括:目标网格单元以及与目标网格单元相邻的网格单元确定的区域。
在一些可选实施方式中,如图3所示,该计算机设备还可以包括:通信组件30c和电源组件30d等组件。若计算机设备为终端设备,还可包括:显示屏30e、音频组件30f等可选组件。图3中仅示意性给出部分组件,并不意味着计算机设备必须包含图3所示全部组件,也不意味着计算机设备只能包括图3所示组件。
在本申请实施例中,存储器用于存储计算机程序,并可被配置为存储其它各种数据以支持在其所在设备上的操作。其中,处理器可执行存储器中存储的计算机程序,以实现相应控制逻辑。存储器可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
在本申请实施例中,处理器可以为任意可执行上述方法逻辑的硬件处理设备。可选地,处理器可以为中央处理器(Central Processing Unit,CPU)、图形处理器(GraphicsProcessing Unit,GPU)或微控制单元(Microcontroller Unit,MCU);也可以为现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程阵列逻辑器件(ProgrammableArray Logic,PAL)、通用阵列逻辑器件(General Array Logic,GAL)、复杂可编程逻辑器件(Complex Programmable Logic Device,CPLD)等可编程器件;或者为先进精简指令集(RISC)处理器(Advanced RISC Machines,ARM)或系统芯片(System on Chip SOC)等等,但不限于此。
在本申请实施例中,通信组件被配置为便于其所在设备和其他设备之间有线或无线方式的通信。通信组件所在设备可以接入基于通信标准的无线网络,如WiFi,2G或3G,4G,5G或它们的组合。在一个示例性实施例中,通信组件经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件还可基于近场通信(NFC)技术、射频识别(RFID)技术、红外数据协会(IrDA)技术、超宽带(UWB)技术、蓝牙(BT)技术或其他技术来实现。
在本申请实施例中,显示屏可以包括液晶显示器(LCD)和触摸面板(TP)。如果显示屏包括触摸面板,显示屏可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。
在本申请实施例中,电源组件被配置为其所在设备的各种组件提供电力。电源组件可以包括电源管理系统,一个或多个电源,及其他与为电源组件所在设备生成、管理和分配电力相关联的组件。
在本申请实施例中,音频组件可被配置为输出和/或输入音频信号。例如,音频组件包括一个麦克风(MIC),当音频组件所在设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器或经由通信组件发送。在一些实施例中,音频组件还包括一个扬声器,用于输出音频信号。例如,对于具有语言交互功能的设备,可通过音频组件实现与用户的语音交互等。
本实施例提供的计算机设备,在进行空间查询时,可自动创建网格单元宽度大于或等于查询距离空间网格;并根据多个数据集中的数据点在空间网格内的分布情况,从待查询的多个数据集中确定出满足查询距离的目标数据组,得到查询结果。这种空间查询方式,可创建网格单元宽度与查询距离视适配的自适应空间网格,这样,在基于该空间网格进行空间查询时,有助于提高空间查询的准确度。
需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (15)
1.一种空间查询方法,包括:
获取待关联的多个数据集以及查询距离,所述多个数据集中的数据点表示各自对应的数据对象的位置信息;
根据所述查询距离,创建空间网格,所述空间网格的网格单元宽度大于或等于所述查询距离;
将所述多个数据集中的数据点映射至所述空间网格,以得到所述多个数据集中的数据点在所述空间网格中的分布情况;
根据所述多个数据集中的数据点在所述空间网格内的分布情况,从所述多个数据集中确定目标数据组,以得到查询结果;
其中,所述目标数据组中属于不同数据集的数据点之间的距离小于或等于所述查询距离。
2.根据权利要求1所述的方法,所述根据所述查询距离,创建空间网格,包括:
根据所述查询距离,确定所述空间网格所需的网格单元宽度和网格单元数量;所述网格单元宽度大于或等于所述查询距离;
按照所述空间网格组所需的网格单元宽度和所述网格单元数量,创建所述空间网格。
3.根据权利要求2所述的方法,所述根据所述查询距离,确定空间网格所需的网格单元宽度和网格单元数量,包括:
将所述查询距离在已知的网格精度等级中进行匹配,以确定目标网格精度等级;其中,不同网格精度等级对应不同的网格单元宽度和网格单元数量;所述目标网格精度等级是所述已知的网格精度等级中网格单元宽度大于或等于所述查询距离且与所述查询距离的差值最小的网格精度等级;
将所述目标网格精度等级对应的网格单元宽度和网格单元数量,作为所述空间网络所需的网格单元宽度和网格单元数量。
4.根据权利要求3所述的方法,所述已知的空间网格精度等级为基于Hilbert曲线网格对应的网格精度等级。
5.根据权利要求1所述的方法,所述将所述多个数据集中的数据点映射至所述空间网格,包括:
对所述空间网格进行编码,得到每个网格单元对应的编码;
根据所述每个网格单元对应的编码以及每个网格单元对应的坐标范围,将所述多个数据集中的数据点映射至所述空间网格。
6.根据权利要求5所述的方法,所述对所述空间网格进行编码,包括:
利用空间填充曲线对所述空间网格进行编码,得到每个网格单元对应的编码。
7.根据权利要求6所述的方法,所述空间填充曲线为希伯尔特曲线或基于希伯尔特曲线的变形曲线。
8.根据权利要求1-7任一项所述的方法,所述根据所述多个数据集中的数据点在所述空间网格内的分布情况,从所述多个数据集中确定目标数据组,包括:
根据所述多个数据集中的数据点在所述空间网格内的分布情况,确定所述多个数据集中数据量最小的目标数据集中的数据点所在的目标网格单元;
根据所述多个数据集中的数据点在所述空间网格内的分布情况,判断除所述目标数据集之外的其它数据集中的数据点是否映射在所述目标网格单元的邻域内;
若判断结果为是,则根据邻域内映射有所述其它数据集中的数据点的第一目标网格单元以及所述其它数据集中映射在所述第一目标网格单元的邻域内的数据点,确定所述目标数据组。
9.根据权利要求8所述的方法,所述根据邻域内映射有所述其它数据集中的数据点的第一目标网格单元以及所述其它数据集中映射在所述第一目标网格单元的邻域内的数据点,确定所述目标数据组,包括:
计算所述其它数据集映射在所述第一目标网格单元的邻域内的第二数据点分别与所述目标数据集中映射在所述第一目标网格单元的第一数据点之间的距离;
从所述第二数据点中选择与所述第一数据点之间的距离小于或等于所述查询距离的目标数据点;并将所述目标数据点和所述第一数据点作为一个目标数据组。
10.根据权利要求8所述的方法,所述目标网格单元的邻域包括:所述目标网格单元以及与所述目标网格单元相邻的网格单元确定的区域。
11.根据权利要1所述的方法,在得到所述查询结果之后,所述方法还包括:
输出所述目标数据组;和/或,输出所述目标数据组的关联信息。
12.根据权利要求1所述的方法,所述获取待关联的多个数据集以及查询距离,包括:
获取查询请求,所述查询请求包含待关联的多个数据集的标识和查询距离;
从所述查询请求中解析出所述多个数据集的标识和查询距离;并获取与所述多个数据集的标识对应的数据集。
13.一种计算机设备,包括:存储器和处理器;其中,所述存储器,用于存储计算机程序;
所述处理器耦合至所述存储器,用于执行所述计算机程序以用于:获取待关联的多个数据集以及查询距离;所述多个数据集中的数据点表示各自对应的数据对象的位置信息;根据所述查询距离,创建空间网格,所述空间网格的网格单元宽度大于或等于所述查询距离;将所述多个数据集中的数据点映射至所述空间网格,以得到所述多个数据集中的数据点在所述空间网格中的分布情况;并根据所述多个数据集中的数据点在所述空间网格内的分布情况,从所述多个数据集中确定目标数据组,以得到查询结果;其中,所述目标数据组中属于不同数据集的数据点之间的距离小于或等于所述查询距离。
14.一种数据处理系统,包括:客户端设备和服务端设备;其中;所述客户端设备用于向服务端设备指定待关联的多个数据集和查询距离;所述多个数据集中的数据点表示各自对应的数据对象的位置信息;
所述服务端设备,用于根据所述查询距离,创建空间网格,所述空间网格的网格单元宽度大于或等于所述查询距离;将所述多个数据集中的数据点映射至所述空间网格,以得到所述多个数据集中的数据点在所述空间网格中的分布情况;根据所述多个数据集中的数据点在所述空间网格内的分布情况,从所述多个数据集中确定目标数据组;并向所述客户端设备返回所述目标数据组和/或所述目标数据组的关联信息;所述目标数据组中属于不同数据集的数据点之间的距离小于或等于所述查询距离。
15.一种存储有计算机指令的计算机可读存储介质,当所述计算机指令被一个或多个处理器执行时,致使所述一个或多个处理器执行权利要求1-12任一项所述方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010224727.3A CN113449208B (zh) | 2020-03-26 | 2020-03-26 | 空间查询方法、设备、系统及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010224727.3A CN113449208B (zh) | 2020-03-26 | 2020-03-26 | 空间查询方法、设备、系统及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113449208A true CN113449208A (zh) | 2021-09-28 |
CN113449208B CN113449208B (zh) | 2022-09-02 |
Family
ID=77807157
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010224727.3A Active CN113449208B (zh) | 2020-03-26 | 2020-03-26 | 空间查询方法、设备、系统及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113449208B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115357849A (zh) * | 2022-10-24 | 2022-11-18 | 中国空气动力研究与发展中心计算空气动力研究所 | 笛卡尔网格下的壁面距离的计算方法及装置 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103559213A (zh) * | 2013-10-10 | 2014-02-05 | 河南大学 | 一种公路网高效空间最近邻查询方法 |
CN103729802A (zh) * | 2013-12-20 | 2014-04-16 | 深圳供电局有限公司 | 基于电网设备地理信息分层索引的快速定位方法及装置 |
US20150324373A1 (en) * | 2014-05-09 | 2015-11-12 | Edward-Robert Tyercha | Querying Spatial Data in Column Stores Using Grid-Order Scans |
CN106055563A (zh) * | 2016-05-19 | 2016-10-26 | 福建农林大学 | 一种基于网格划分的并行空间查询方法及其系统 |
CN106599189A (zh) * | 2016-12-14 | 2017-04-26 | 大连大学 | 基于云计算的动态Skyline查询装置 |
CN106599190A (zh) * | 2016-12-14 | 2017-04-26 | 大连交通大学 | 基于云计算的动态Skyline查询方法 |
CN106708989A (zh) * | 2016-12-14 | 2017-05-24 | 大连大学 | 基于空间时序数据流应用的Skyline查询方法 |
CN106777093A (zh) * | 2016-12-14 | 2017-05-31 | 大连大学 | 基于空间时序数据流应用的Skyline查询系统 |
CN107563400A (zh) * | 2016-06-30 | 2018-01-09 | 中国矿业大学 | 一种基于网格的密度峰值聚类方法及系统 |
CN108549690A (zh) * | 2018-04-12 | 2018-09-18 | 石家庄铁道大学 | 基于空间距离约束的空间关键字查询方法及系统 |
CN108846013A (zh) * | 2018-05-04 | 2018-11-20 | 昆明理工大学 | 一种基于geohash与Patricia Trie的空间关键词查询方法及装置 |
CN110471946A (zh) * | 2019-07-08 | 2019-11-19 | 广东工业大学 | 一种基于网格剪枝的lof离群点检测方法及系统 |
CN110580506A (zh) * | 2019-08-30 | 2019-12-17 | 深圳市瑞立视多媒体科技有限公司 | 基于密度的聚类计算方法、装置、设备和存储介质 |
-
2020
- 2020-03-26 CN CN202010224727.3A patent/CN113449208B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103559213A (zh) * | 2013-10-10 | 2014-02-05 | 河南大学 | 一种公路网高效空间最近邻查询方法 |
CN103729802A (zh) * | 2013-12-20 | 2014-04-16 | 深圳供电局有限公司 | 基于电网设备地理信息分层索引的快速定位方法及装置 |
US20150324373A1 (en) * | 2014-05-09 | 2015-11-12 | Edward-Robert Tyercha | Querying Spatial Data in Column Stores Using Grid-Order Scans |
CN106055563A (zh) * | 2016-05-19 | 2016-10-26 | 福建农林大学 | 一种基于网格划分的并行空间查询方法及其系统 |
CN107563400A (zh) * | 2016-06-30 | 2018-01-09 | 中国矿业大学 | 一种基于网格的密度峰值聚类方法及系统 |
CN106708989A (zh) * | 2016-12-14 | 2017-05-24 | 大连大学 | 基于空间时序数据流应用的Skyline查询方法 |
CN106599190A (zh) * | 2016-12-14 | 2017-04-26 | 大连交通大学 | 基于云计算的动态Skyline查询方法 |
CN106777093A (zh) * | 2016-12-14 | 2017-05-31 | 大连大学 | 基于空间时序数据流应用的Skyline查询系统 |
CN106599189A (zh) * | 2016-12-14 | 2017-04-26 | 大连大学 | 基于云计算的动态Skyline查询装置 |
CN108549690A (zh) * | 2018-04-12 | 2018-09-18 | 石家庄铁道大学 | 基于空间距离约束的空间关键字查询方法及系统 |
CN108846013A (zh) * | 2018-05-04 | 2018-11-20 | 昆明理工大学 | 一种基于geohash与Patricia Trie的空间关键词查询方法及装置 |
CN110471946A (zh) * | 2019-07-08 | 2019-11-19 | 广东工业大学 | 一种基于网格剪枝的lof离群点检测方法及系统 |
CN110580506A (zh) * | 2019-08-30 | 2019-12-17 | 深圳市瑞立视多媒体科技有限公司 | 基于密度的聚类计算方法、装置、设备和存储介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115357849A (zh) * | 2022-10-24 | 2022-11-18 | 中国空气动力研究与发展中心计算空气动力研究所 | 笛卡尔网格下的壁面距离的计算方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113449208B (zh) | 2022-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9454580B2 (en) | Recommendation system with metric transformation | |
US10803638B2 (en) | Efficient display of data points in a user interface | |
CN111753041B (zh) | 数据聚合渲染方法、装置、系统、电子设备及存储介质 | |
US10068033B2 (en) | Graph data query method and apparatus | |
CN111464583B (zh) | 计算资源分配方法、装置、服务器及存储介质 | |
CN110168529A (zh) | 数据存储方法、装置和存储介质 | |
CN113312361B (zh) | 轨迹查询方法、装置、设备、存储介质及计算机程序产品 | |
US10394907B2 (en) | Filtering data objects | |
CN108764319A (zh) | 一种样本分类方法和装置 | |
CN106202092A (zh) | 数据处理的方法及系统 | |
CN109117433B (zh) | 一种索引树对象的创建及其索引方法和相关装置 | |
CN102932416B (zh) | 一种信息流任务的中间数据存储方法、处理方法及装置 | |
CN113300982B (zh) | 资源分配方法、设备、系统及存储介质 | |
CN113449208B (zh) | 空间查询方法、设备、系统及存储介质 | |
CN113657577A (zh) | 模型训练方法及计算系统 | |
CN116415862A (zh) | 货运信息处理方法及系统 | |
CN105095515A (zh) | 支持快速查询Map-Reduce输出结果的分桶方法、装置及设备 | |
CN113191891A (zh) | 数据处理方法、装置及系统 | |
CN116932935A (zh) | 地址匹配方法、装置、设备、介质和程序产品 | |
CN111127481A (zh) | 基于tof图像联通区域的图像识别方法及装置 | |
CN106897331B (zh) | 用户关键位置数据获取方法及装置 | |
CN106021349A (zh) | 一种外汇数据报送的方法及装置 | |
CN111639260B (zh) | 内容推荐方法及其装置、存储介质 | |
CN110019356B (zh) | 数据查询方法及装置 | |
CN113919696A (zh) | 基于住建大数据的项目全生命周期预警方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |