CN111587429B - 用于关联数据集的系统和方法 - Google Patents

用于关联数据集的系统和方法 Download PDF

Info

Publication number
CN111587429B
CN111587429B CN201780097937.7A CN201780097937A CN111587429B CN 111587429 B CN111587429 B CN 111587429B CN 201780097937 A CN201780097937 A CN 201780097937A CN 111587429 B CN111587429 B CN 111587429B
Authority
CN
China
Prior art keywords
partitions
data set
modified
initial
data
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.)
Active
Application number
CN201780097937.7A
Other languages
English (en)
Other versions
CN111587429A (zh
Inventor
郭明浩
温翔
柴艺
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Didi Infinity Technology and Development Co Ltd
Original Assignee
Beijing Didi Infinity Technology and Development Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Didi Infinity Technology and Development Co Ltd filed Critical Beijing Didi Infinity Technology and Development Co Ltd
Publication of CN111587429A publication Critical patent/CN111587429A/zh
Application granted granted Critical
Publication of CN111587429B publication Critical patent/CN111587429B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/278Data partitioning, e.g. horizontal or vertical partitioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/907Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/909Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using geographical or spatial information, e.g. location

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Library & Information Science (AREA)
  • Navigation (AREA)
  • User Interface Of Digital Computer (AREA)
  • Information Transfer Between Computers (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Processing Or Creating Images (AREA)
  • Electron Beam Exposure (AREA)

Abstract

用于优化空间大数据分区的系统可以执行包括获取第一数据集的方法,该第一数据集是与目标区域内的空间信息相关的空间大数据集。该方法还可以包括基于空间信息,将第一数据集划分为至少两个第一初始分区。该方法还可以包括基于至少两个第一初始分区,确定第一数据集的第一空间索引。该方法还可以包括基于第一空间索引,通过获取与至少两个第一初始分区相关的至少两个第一边界数据集,生成至少两个第一修改分区,并对至少两个第一边界数据集进行第一洗牌操作。

Description

用于关联数据集的系统和方法
交叉引用
本申请要求于2017年12月29日提交的国际申请PCT/CN2017/119699的优先权,以上内容通过引用包含于此。
技术领域
本申请一般涉及空间大数据的管理,更具体地,涉及用于关联数据集的系统和方法。
背景技术
在互联网时代,在线按需服务平台可以从其用户或其他实体接收包括用户的实时或历史位置的空间大数据集。可以执行关联操作以将空间大数据集与另一个数据集组合。例如,可以执行关联操作以将空间大数据集与包括路网图的数据集进行比较,以确定未包括在路网图中的新道路。然而,由于空间大数据集中的数据量非常大,因此难以有效地处理空间大数据集。因此,期望提供用于关联数据集的系统和方法,以有效地处理空间大数据集。
发明内容
根据本申请的第一方面,用于优化空间大数据分区的数据处理电子系统可包括至少一个存储设备和至少一个处理器,该至少一个处理器被配置为与至少一个存储设备通信。该至少一个存储设备可包括一组指令。当执行一组指令时,可指示至少一个处理器执行一个或以上以下操作。至少一个处理器可以获取第一数据集。第一数据集可以是与目标区域内的空间信息相关的空间大数据集。至少一个处理器可以基于空间信息,将第一数据集划分为至少两个第一初始分区。至少一个处理器可以基于至少两个第一初始分区,确定第一数据集的第一空间索引。所述至少一个处理器可以基于第一空间索引,通过获取与所述至少两个第一初始分区相关的至少两个第一边界数据集以及对至少两个第一边边数据集进行第一次洗牌操作,生成至少两个第一修改分区。至少两个第一边界数据集可包括与至少两个第一初始分区周围的一个或以上第一区域相关的数据。
在一些实施例中,至少一个处理器可以基于第一空间索引,确定至少两个第一初始分区中的每一个分区的空间索引范围。所述至少一个处理器可以基于所述至少两个第一初始分区的空间索引范围,确定与所述至少两个第一初始分区相关的至少两个第一边界数据集。
在一些实施例中,至少一个处理器可以根据分布式计算方法,对至少两个第一初始分区进行分布式计算,以生成至少两个第一修改分区。
在一些实施例中,至少一个处理器可以获取目标区域内的第二数据集。至少一个处理器可以将第二数据集划分为至少两个第二初始分区。至少一个处理器可以基于至少两个第二初始分区,确定第二数据集的第二空间索引。至少一个处理器可以根据分布式计算方法和第二空间索引,对至少两个第二初始分区进行分布式计算,以生成至少两个第二修改分区。
在一些实施例中,为了生成至少两个第二修改分区,所述至少一个处理器可以基于第二空间索引,获取与至少两个第二初始分区相关的至少两个第二边界数据集。至少两个第二边界数据集可包括与至少两个第二初始分区周围的一个或以上第二区域相关的数据。所述至少一个处理器可以对所述至少两个第二边界数据集进行第二洗牌操作,以生成所述至少两个第二修改分区。
在一些实施例中,至少一个处理器可以将第一数据集中的至少两个第一修改分区中的至少一个分区和第二数据集中的至少两个第二修改分区中的至少一个分区进行关联。
在一些实施例中,第一数据集可以包括与电子系统通信的至少两个用户终端的轨迹点,并且第二数据集包括目标区域的路网信息。
在一些实施例中,对于至少两个第二修改分区中的每一个分区,第二修改分区的位置、第二修改分区的面积、以及第二修改分区的形状均可以与至少两个第一修改分区中的其中一个分区相同。
在一些实施例中,第一空间索引或第二空间索引可以与希尔伯特曲线或Z曲线中的至少一个相关。
在一些实施例中,分布式计算方法可以包括Spark框架、Hadoop、Phoenix、Disco或Mars中的至少一种方法。
根据本申请的另一方面,优化空间大数据分区的方法可包括以下操作的一个或以上。至少一个处理器可以获取第一数据集。第一数据集可以是与目标区域内的空间信息相关的空间大数据集。至少一个处理器可以基于空间信息,将第一数据集划分为至少两个第一初始分区。至少一个处理器可以基于至少两个第一初始分区,确定第一数据集的第一空间索引。至少一个处理器可以基于第一空间索引,通过获取与至少两个第一初始分区相关的至少两个第一边界数据集以及对至少两个第一边界数据集进行第一洗牌操作生成至少两个第一修改分区。至少两个第一边界数据集可包括与至少两个第一初始分区周围的一个或以上第一区域相关的数据。
根据本申请的又一方面,非暂时性计算机可读介质可包括至少一组指令。至少一组指令可以由计算机服务器的至少一个处理器执行。至少一个处理器可以获取第一数据集。第一数据集可以是与目标区域内的空间信息相关的空间大数据集。至少一个处理器可以基于空间信息,将第一数据集划分为至少两个第一初始分区。至少一个处理器可以基于至少两个第一初始分区,确定第一数据集的第一空间索引。至少一个处理器可以基于第一空间索引,通过获取与至少两个第一初始分区相关的至少两个第一边界数据集以及对至少两个第一边界数据集进行第一洗牌操作,生成至少两个第一修改分区。至少两个第一边界数据集可包括与至少两个第一初始分区周围的一个或以上第一区域相关的数据。
根据本申请的又一方面,用于优化空间大数据分区的系统可包括获取模块,被配置为获取第一数据集。第一数据集可以是与目标区域内的空间信息相关的空间大数据集。系统还可以包括数据集处理模块,被配置为基于空间信息,将第一数据集划分为至少两个第一初始分区,以及基于至少两个第一初始分区,确定第一数据集的第一空间索引。该系统还可以包括扩展模块,被配置为基于第一空间索引,通过获取与至少两个第一初始分区相关的至少两个第一边界数据集以及对至少两个第一边界数据集进行第一洗牌操作,生成至少两个第一修改分区。至少两个第一边界数据集可包括与至少两个第一初始分区周围的一个或以上第一区域相关的数据。
本申请的一部分附加特性可以在下面的描述中进行说明。通过对以下描述和相应附图的研究或者对实施例的生产或操作的了解,本申请的一部分附加特性对于本领域技术人员是明显的。本申请的特征可以通过对以下描述的具体实施例的各种方面的方法、手段和组合的实践或使用得以实现和达到。
附图说明
本申请将通过示例性实施例进行进一步描述。这些示例性实施例将通过附图进行详细描述。这些实施例是非限制性的示例性实施例,在这些实施例中,各图中相同的编号表示相似的结构,其中:
图1是根据本申请的一些实施例所示的示例性按需服务系统的示意图;
图2是根据本申请的一些实施例所示的可以在其上实现处理引擎112的计算设备的示例性硬件和/或软件组件的示意图;
图3是根据本申请的一些实施例所示的可以在其上实现用户终端140的移动设备的示例性硬件和/或软件组件的示意图;
图4是根据本申请的一些实施例所示的示例性处理引擎的框图;
图5A是根据本申请的一些实施例所示的用于生成至少两个第一修改分区的示例性过程的流程图;
图5B是根据本申请的一些实施例所示的用于关联两个数据集的示例性过程的流程图;
图6是根据本申请的一些实施例所示的用于将数据集划分为至少两个分区的示例性过程的流程图;
图7是根据本申请的一些实施例所示的用于生成至少两个修改分区的示例性过程的流程图;
图8是根据本申请的一些实施例所示的示例性边界数据集的示意图;
图9是根据本申请的一些实施例所示的根据分布式计算方法基于至少两个初始分区确定至少两个修改分区的示例性过程的示意图;
图10是根据本申请的一些实施例所示的示例性修改分区和示例性初始分区的示意图;
图11是根据本申请的一些实施例所示的示例性相对应的修改分区的示意图;以及
图12是根据本申请的一些实施例所示的基于分布式计算方法关联两个数据集的示例性过程的示意图。
具体实施方式
以下描述是为了使本领域的普通技术人员能够实施和利用本申请,并且该描述是在特定的应用场景及其要求的环境下提供的。对于本领域的普通技术人员来讲,显然可以对所披露的实施例作出各种改变,并且在不偏离本申请的原则和范围的情况下,本申请中所定义的普遍原则可以适用于其他实施例和应用场景。因此,本申请并不限于所描述的实施例,而应该被给予与权利要求一致的最广泛的范围。
本申请中所使用的术语仅用于描述特定的示例性实施例,并不限制本申请的范围。如本申请使用的单数形式“一”、“一个”及“该”可以同样包括复数形式,除非上下文明确提示例外情形。还应当理解,如在本申请中,术语“包括”、“包含”仅提示存在所述特征、整体、步骤、操作、组件和/或部件,但并不排除存在或添加一个或以上其他特征、整体、步骤、操作、组件、部件和/或其组合的情况。
根据以下对附图的描述,本申请的这些和其他的特征、特点以及相关结构元件的功能和操作方法,以及部件组合和制造经济性,可以变得更加显而易见,这些附图都构成本申请说明书的一部分。然而,应当理解的是,附图仅仅是为了说明和描述的目的,并不旨在限制本申请的范围。应当理解的是,附图并不是按比例绘制的。
本申请中使用了流程图用来说明根据本申请的一些实施例的系统所执行的操作。应当理解的是,流程图中的操作可以不按顺序执行。相反,可以按照倒序或同时处理各种步骤。同时,也可以将一个或以上其他操作添加到这些流程图中。也可以从流程图中删除一个或以上操作。
此外,尽管本申请中披露的系统和方法主要是关于关联数据集的,但是还应该理解,这仅是一个示例性实施例。本申请的系统或方法可以应用于可以产生空间大数据的任何应用场景。例如,本申请的系统和方法可以应用于不同的运输系统,包括陆地、海洋、航空航天等或其任意组合。运输系统的车辆可以包括出租车、私家车、顺风车、公共汽车、火车、动车、高铁、地铁、船只、飞机、宇宙飞船、热气球、无人驾驶车辆、自行车、三轮车、摩托车等、或其任意组合。本申请的系统和方法可以应用于出租车、司机服务、送货服务、拼车、公交车服务、外卖服务、司机雇用、车辆租赁、自行车共享服务、火车服务、地铁服务、班车服务、定位服务等等。如这里所使用的,大数据指的是数量大到需要索引以进行有效处理的程度的数据。
本申请中使用的定位技术可以包括全球定位系统(Global Positioning System,GPS)、全球卫星导航系统(Global Navigation Satellite System,GLONASS)、北斗导航系统(Compass Navigation System,COMPASS)、伽利略定位系统、准天顶卫星系统(Quasi-Zenith Satellite System,QZSS)、无线保真(Wireless Fidelity,WiFi)定位技术等或其任意组合。以上定位技术中的一个或以上可以在本申请中交换使用。
本申请的一个方面涉及用于关联数据集的系统和方法。本申请中的系统和方法可以被配置为关联具有空间大数据集的路网数据集,所述空间大数据集包括在线按需服务平台通信的用户终端的大量(从数十亿到数千亿的规模)轨迹点。为此,该系统和方法提供索引系统以支持有效地管理和处理数据集。根据本申请的实施例,系统和方法可以将特殊大数据集划分为多个分区并单独对每个分区添加索引。然后,系统和方法可以通过向分区周围的区域添加边界数据集并对边界数据集进行洗牌操作来修改每个分区。该系统和方法可以对路网数据集执行相同的操作。当在线按需服务平台需要关联两个数据集中的几个分区时,例如,当平台的用户想知道现有路网地图中是否存在未包含的新道路时,两个数据集的上述索引系统可以在两个数据集的相应分区中进行数据搜索和关联,特别是当两个数据集的数据规模为十亿或更大并且搜索和关联操作需要在几微秒或几纳秒内完成时。
图1是根据本申请的一些实施例所示的示例性按需服务系统的示意图。按需服务系统100可以包括服务器110、网络120、用户终端140、存储设备150和定位系统160。
在一些实施例中,服务器110可以是单个服务器,也可以是服务器组。所述服务器组可以是集中式的,也可以是分布式的(例如,服务器110可以是分布式的系统)。在一些实施例中,服务器110可以是本地的,也可以是远程的。例如,服务器110可以通过网络120访问存储在用户终端140和/或存储设备150中的信息和/或数据。又例如,服务器110可以直接连接到用户终端140和/或存储设备150以访问存储的信息和/或数据。在一些实施例中,服务器110可以在云平台上实施。仅作为示例,该云平台可以包括私有云、公共云、混合云、社区云、分布云、内部云、多层云等或其任意组合。在一些实施例中,服务器110可以在本申请中的图2描述的包含了一个或以上组件的计算设备200上执行。
在一些实施例中,服务器110可以包括处理引擎112。处理引擎112可以处理信息和/或数据,以执行本申请中描述的一个或以上功能。例如,处理引擎112可以对空间大数据集中的分区执行洗牌操作。在一些实施例中,所述处理引擎112可包括一个或以上处理引擎(例如,单芯片处理引擎或多芯片处理引擎)。仅作为示例,处理引擎112可以包括一个或以上硬件处理器,例如中央处理单元(CPU)、特定应用集成电路(ASIC)、特定应用指令集处理器(ASIP)、图像处理单元(GPU)、物理运算处理单元(PPU)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、可编程逻辑设备(PLD)、控制器、微控制器单元、精简指令集计算机(RISC)、微处理器等或其任意组合。
网络120可以促进信息和/或数据的交换。在一些实施例中,按需服务系统100中的一个或以上组件(例如,服务器110、用户终端140、存储设备150和定位系统160)可以通过网络120将信息和/或数据发送到按需服务系统100中的其他组件。例如,处理引擎112可以通过网络120从存储设备150和/或用户终端140获取至少两个数据点。在一些实施例中,网络120可以是有线网络或无线网络等或其任意组合。仅作为示例,网络120可以包括缆线网络、有线网络、光纤网络、远程通信网络、内部网络、互联网、局域网络(LAN)、广域网路(WAN)、无线局域网络(WLAN)、城域网(MAN)、公共交换电话网络(PSTN)、蓝牙网络、紫蜂网络、近场通信(NFC)网络等或其任意组合。在一些实施例中,网络120可以包括一个或以上网络接入点。例如,网络120可以包括有线或无线网络接入点,如基站和/或互联网交换点120-1、120-2、……。通过接入点,按需服务系统100的一个或以上部件可以连接到网络120以交换数据和/或信息。
在一些实施例中,用户终端140可以包括移动设备140-1、平板计算机140-2、膝上型计算机140-3等,或其任何组合。在一些实施例中,移动设备140-1可以包括智能家居设备、可穿戴设备、智能移动设备、虚拟现实设备、增强现实设备等,或其任意组合。在一些实施例中,智能家居设备可以包括智能照明设备、智能电器控制设备、智能监控设备、智能电视、智能摄像机、对讲机等,或其任意组合。在一些实施例中,可穿戴设备可以包括手环、鞋袜、眼镜、头盔、手表、衣物、背包、智慧配饰等或其任意组合。在一些实施例中,移动设备可以包括移动电话、个人数字助理(PDA)、游戏设备、导航设备、销售点(POS)、膝上型计算机、台式机等或其任意组合。在一些实施例中,虚拟现实设备和/或增强型虚拟现实设备可以包括虚拟现实头盔、虚拟现实眼镜、虚拟现实眼罩、增强现实头盔、增强现实眼镜、增强现实眼罩等,或其任意组合。例如,虚拟现实设备和/或增强现实设备可以包括Google GlassTM、RiftConTM、FragmentsTM、Gear VRTM等。在一些实施例中,用户终端140可以是具有定位技术的设备,用于定位用户终端140的位置。在一些实施例中,用户终端140可以将定位信息发送到服务器110。
存储设备150可以存储数据和/或指令。在一些实施例中,存储设备150可以存储从用户终端140和/或处理引擎112获取的数据。例如,存储设备150可以存储从用户终端140获取的至少两个数据点。又例如,存储设备150可以存储由处理引擎112确定的空间大数据集中的已被洗牌的分区。在一些实施例中,存储设备150可以存储服务器110可执行或用于执行本申请中描述的示例性方法的数据和/或指令。例如,存储设备150可以储存处理引擎112可以执行或使用的指令以在空间大数据集中的分区上执行洗牌操作。在一些实施例中,存储设备150可包括大容量存储器、可移动存储器、易失性读写存储器、只读存储器(ROM)等或其任意组合。示例性大容量存储器可以包括磁盘、光盘和固态驱动器等。示例性可移动存储器可以包括闪存驱动器、软盘、光盘、存储卡、压缩盘和磁带等。示例性易失性读写存储器可以包括随机存取存储器(RAM)。示例性RAM可包括动态随机存取存储器(DRAM)、双倍数据速率同步动态随机存取存储器(DDR SDRAM)、静态随机存取存储器(SRAM)、晶闸管随机存取存储器(T-RAM)和零电容随机存取存储器(Z-RAM)等。示例性只读存储器可以包括掩模型只读存储器(MROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、光盘只读存储器(CD-ROM)和数字多功能磁盘只读存储器等。在一些实施例中,所述存储设备150可以在云平台上实现。仅作为示例,该云平台可以包括私有云、公共云、混合云、社区云、分布云、内部云、多层云等或其任意组合。
在一些实施例中,存储设备150可以连接到网络120,以与按需服务系统100中的一个或以上组件(例如,服务器110、用户终端140等)通信。按需服务系统100中的一个或以上组件可以通过网络120访问储存在存储设备150中的数据或指令。在一些实施例中,存储设备150可以直接连接到按需服务系统100中的一个或以上组件(例如,服务器110、用户终端140等)或与之通信。在一些实施例中,存储设备150可以是服务器110的一部分。
定位系统160可以确定与对象(例如,用户终端140)相关的信息。例如,定位系统160可以实时确定用户终端140的位置。在一些实施例中,定位系统160可以是全球定位系统(GPS)、全球导航卫星系统(GLONASS)、罗盘导航系统(COMPASS)、北斗导航卫星系统、伽利略定位系统、准天顶卫星系统(QZSS)等。该信息可以包括对象的位置、高度、速度或加速度、累积里程数或当前时间。位置可以是坐标的形式,例如纬度坐标和经度坐标等。定位系统160可以包括一个或以上的卫星,例如卫星160-1、卫星160-2和卫星160-3。卫星160-1至160-3可以独立地或共同地确定上述信息。卫星定位系统160可以通过无线连接将上述信息发送给网络120或用户终端140。
图2是根据本申请的一些实施例所示的可以在其上实现处理引擎112的计算设备的示例性硬件和/或软件组件的示意图如图2所示,计算设备200可以包括处理器210、存储器220、输入/输出(I/O)230和通信端口240。
处理器210(例如,逻辑电路)可以执行计算机指令(例如,程序代码)并且根据这里描述的技术来执行处理引擎112的功能。例如,处理器210可以包括接口电路210-a和其中的处理电路210-b。接口电路可以被配置为接收来自总线(图2中未示出)的电子信号,其中电子信号编码用于处理电路的结构化数据和/或指令。处理电路可以进行逻辑计算,然后将结论、结果和/或指令编码确定为电信号。然后,接口电路可以通过总线从处理电路发出电信号。
所述计算机指令可以包括例如例程、程序、对象、组件、数据结构、过程、模块以及函数,并由其执行本文描述的特定功能,。例如,处理器210可以处理从用户终端140、存储设备150和/或按需服务系统100的任何其他组件获取的至少两个数据点。在一些实施例中,处理器210可以包括一个或以上硬件处理器,诸如微控制器、微处理器、精简指令集计算机(RISC)、特定应用集成电路(ASIC)、特定应用指令集处理器(ASIP)、中央处理单元(CPU)、图形处理单元(GPU)、物理处理单元(PPU)、微控制器单元、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、高阶RISC机器(ARM)、可编程逻辑设备(PLD),能够执行一个或以上功能的任何电路或处理器等,或其任何组合。
仅仅为了说明,在计算设备200中仅描述了一个处理器。然而,应该注意的是,本申请中的计算设备200还可以包括多个处理器,由此执行的操作和/或方法步骤可以由本申请中所描述的一个处理器也可以由多个处理器联合地或单独地执行。例如,如果在本申请中,计算设备200的处理器执行步骤A和步骤B,应当理解的是,步骤A和步骤B也可以由计算设备200的两个或以上不同的处理器共同地或独立地执行(例如,第一处理器执行步骤A,第二处理器执行步骤B,或者第一和第二处理器共同地执行步骤A和步骤B)。
存储器220可以存储从用户终端140、存储设备150和/或按需服务系统100的任何其他组件获取的数据/信息。在一些实施例中,存储器220可包括大容量存储器、可移动存储器、易失性读写存储器、只读存储器(ROM)等或其任意组合。例如,大容量存储器可以包括磁盘、光盘、固态硬盘等。可移动存储器可以包括闪存驱动器、软盘、光盘、存储卡、压缩盘和磁带等。易失性读取和写入存储器可以包括随机存取存储器(RAM)。RAM可以包括动态RAM(DRAM)、双倍速率同步动态RAM(DDR SDRAM)、静态RAM(SRAM)、晶闸管RAM(T-RAM)和零电容(Z-RAM)等。只读存储器可以包括掩模型只读存储器(MROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、光盘只读存储器(CD-ROM)和数字多功能磁盘只读存储器等。在一些实施例中,存储器220可以存储一个或以上程序和/或指令以执行在本申请中描述的示例性方法。例如,存储器220可以存储用于处理引擎112的程序,用于对空间大数据集中的分区执行洗牌操作。
I/O 230可以输入和/或输出信号、数据、信息等。在一些实施例中,I/O 230可以使用户与处理引擎112进行交互。在一些实施例中,I/O 230可以包括输入设备和输出设备。示例性的输入设备可以包括键盘、鼠标、触控屏幕、麦克风等,或其任何组合。示例性的输出设备可以包括显示设备、扬声器、打印机、投影机等,或其任何组合。显示设备的示例可以包括液晶显示器(LCD)、基于发光二极管(LED)的显示器、平板显示器、弯曲屏幕、电视设备、阴极射线管(CRT)、触控屏幕等,或其任何组合。
通信端口240可以连接到网络(例如,网络120)以促进数据通信。通信端口240可以在处理引擎112、用户终端140、定位系统160或存储设备150之间建立连接。连接可以是有线连接、无线连接、可以启用数据传输和/或接收的任何其他通信连接,和/或这些连接的任何组合。有线连接可以包括例如电缆、光缆、电话线等,或其任何组合。有线连接可以包括例如电缆、光缆、电话线等或其任意组合。所述无线连接可以包括例如蓝牙连接、无线网连接、WiMax连接、WLAN连接、紫蜂连接、移动网络连接(例如,3G、4G、5G网络等)等或其任意组合。在一些实施例中,通信端口240可以是和/或包括标准化通信端口,诸如RS232、RS485等。
图3是根据本申请的一些实施例所示的可以在其上实现用户终端140的移动设备的示例性硬件和/或软件组件的示意图。如图3所示,移动设备300可以包括通信平台310、显示器320、图形处理单元(GPU)330、中央处理单元(CPU)340、I/O 350、内存360和存储器390。在一些实施例中,任何其他合适的组件,包括但不限于系统总线或控制器(未示出),也可包括在移动设备300内。在一些实施例中,移动操作系统370(例如,iOSTM、AndroidTM、WindowsPhoneTM等)和一个或以上应用程序380可从存储器390下载至内存360,以用于CPU 340执行。应用程序380可以包括一浏览器或任何其他合适的移动应用程序,用于接收及呈现与图像处理相关的信息或处理引擎112中的其他信息。用户与信息流的交互可以通过I/O 350来实现并且通过网络120被提供给处理引擎112和/或按需服务系统100的其他组件。
为了实施本申请描述的各种模块、单元及其功能,计算机硬件平台可用作本文中描述的一个或以上组件的硬件平台。具有用户界面元素的计算机可用于实施个人计算机(PC)或任何其他类型的工作站或终端设备。若程控得当,计算机亦可用作服务器。
本领域普通技术人员应当理解,当按需服务系统100中的一个组件进行操作时,该组件可以通过电信号和/或电磁信号执行操作。例如,当处理引擎112处理诸如做出确定或识别信息的任务时,处理引擎112可以在其处理器中操作逻辑电路以处理这样的任务。当处理引擎112从用户终端140接收数据(例如,至少两个数据点)时,处理引擎112的处理器可以接收包括数据的电信号。处理引擎112的处理器可以通过输入端口接收电信号。如果用户终端140通过有线网络与处理引擎112通信,则输入端口可以物理连接到电缆。如果用户终端140通过无线网络与处理引擎112通信,则处理引擎112的输入端口可以是一个或以上天线,其可以将电信号转换为电磁信号。在诸如用户终端140和/或服务器110的电子设备内,当其处理器处理指令,发出指令和/或执行动作时,指令和/或动作通过电信号进行。例如,当处理器从存储介质(例如存储设备150)检索或保存数据时,它可以向存储介质的读/写设备发送电信号,该读/写设备可以在存储介质中读取或写入结构化数据。该结构数据可以通过电子设备的总线,以电信号的形式传输至处理器。此处,电信号可以指一个电信号、一系列电信号和/或至少两个不连续的电信号。
图4是根据本申请的一些实施例所示的示例性处理引擎的框图。处理引擎112可包括获取模块401、数据集处理模块403、扩展模块405和关联模块407。
获取模块401可以被配置为获取数据集,例如包括与目标区域内的空间信息相关的至少两个数据点的第一数据集,和/或包括目标区域内的路网信息的第二数据集。在一些实施例中,获取模块401可以从存储介质(例如,存储设备150或计算设备200中的存储器220)获取数据集。
数据集处理模块403可以被配置为将数据集划分为至少两个初始分区,以及基于至少两个初始分区,确定数据集的空间索引(例如,如本申请中其他地方结合图6详细描述的那样)。在一些实施例中,初始分区可以表示目标区域中的地理区域。在一些实施例中,对应于初始分区的地理区域可以具有规则的(例如,三角形、矩形、正方形、圆形、五边形和六边形)或不规则的形状。在一些实施例中,空间索引可以指示至少两个初始分区中的任何两个之间的关系。例如,对于至少两个初始分区中的目标分区,空间索引可以指示所述至少两个初始分区中的哪个邻近于目标分区。
扩展模块405可以被配置为基于至少两个初始分区,生成至少两个修改分区。在一些实施例中,扩展模块405可以为至少两个初始分区中的每一个分区确定边界数据集,并对至少两个第一初始分区中的每一个分区的边界数据集进行洗牌操作,以确定至少两个修改分区(例如,如本申请中其他地方结合图7详细描述的那样)。
关联模块407可以被配置为关联两个数据集。在一些实施例中,关联模块407可以将第一数据集中的至少两个第一修改分区中的至少一个分区和第二数据集中的至少两个第二修改分区中的至少一个分区进行关联。
处理引擎112中的模块可以通过有线连接或无线连接进行彼此连接或通信。有线连接可以包括金属线缆、光缆、混合电缆等或其任意组合。无线连接可以包括局域网络(LAN)、广域网络(WAN)、蓝牙、紫蜂网络、近场通信(NFC)等或其任意组合。两个或以上模块可以合并成一个模块,以及任意一个模块可以被拆分成两个或以上单元。例如,数据集处理模块403可以作为单个模块集成在扩展模块405中,其可以确定至少两个初始分区和至少两个修改分区。又例如,数据集处理模块403可以分为两个单元。第一单元可以被配置为确定至少两个初始分区。第二单元可以被配置为基于至少两个初始分区,确定空间索引。
应该注意的是,上述仅出于说明性目的而提供,并不旨在限制本申请的范围。对于本领域的普通技术人员来说,可以根据本申请的描述,做出各种各样的变化和修改。然而,这些变化和修改不会背离本申请的范围。例如,处理引擎112还可以包括存储模块(图4中未示出)。存储模块可以被配置为存储在处理引擎112中的任何组件执行的任何过程期间生成的数据。又例如,处理引擎112的每个组件可包括存储装置。附加地或替代地,处理引擎112的组件可以共享公共存储装置。
本申请中的系统和方法可以被配置为将空间大数据集和路网数据集进行关联,所述空间大数据集包括与在线按需服务平台通信的用户终端的大量(从数十亿到数千亿的规模)轨迹点。为此,该系统和方法提供索引系统以支持有效地管理和处理数据集。根据本申请的实施例,系统和方法可以将特殊大数据集划分为分区并单独为每个分区添加索引。然后,系统和方法可以通过向分区周围的区域添加边界数据集并对边界数据集进行洗牌操作来修改每个分区。该系统和方法可以对路网数据集执行相同的操作。当在线按需服务平台需要关联两个数据集的几个分区时,例如,当平台的用户想知道现有路网地图中是否存在未包含的新道路时,两个数据集的上述索引系统可以在两个数据集的相应分区中进行数据搜索和关联,特别是当两个数据集的数据规模为十亿或更大并且搜索和关联操作需要在几微秒或几纳秒内完成时。
图5A是根据本申请的一些实施例所示的用于生成至少两个第一修改分区的示例性过程的流程图。在一些实施例中,过程500-1可以在图1所示的按需服务系统100中实现。例如,过程500-1可以作为指令的形式存储在存储介质(例如,存储设备150或处理引擎112的存储器220)中,并且由服务器110(例如,服务器110的处理引擎112、处理引擎112的处理器210,或图4所示的处理引擎112中的一个或以上模块)调用和/或执行。以下呈现的所示过程500-1的操作旨在说明。在一些实施例中,过程500-1可以通过未描述的和/或没有讨论的一个或以上附加操作来完成。另外,如图5A所示和下面描述的过程500-1的操作顺序不是限制性的。
在501中,获取模块401(和/或处理引擎112,和/或接口电路210-a)可以获取与目标区域内的空间信息相关的第一数据集。在一些实施例中,处理引擎112可以从存储介质(例如,存储设备150或计算设备200中的存储器220)获取第一数据集。
如这里所使用的,第一数据集可以是包括至少两个数据点的空间大数据集。每个数据点可以是空间坐标或表示与在线点播运输平台100通信的用户终端(例如,诸如智能电话的移动设备)的位置。当持有用户终端的乘客或司机在一个区域中移动时,平台100(或服务器110、处理器210等)可以以特定频率收集用户终端的位置并将该位置记录在空间大数据集中。随着时间的推移,用户终端的位置可以在空间大数据集中形成一系列轨迹点。由于每秒有数百万个移动设备与平台100通信,因此所述至少两个数据点的数量可能很多。例如,所述至少两个数据点的数量可以是十亿量级(例如,数千亿)。商业上,当平台100接收到搜索和/或处理空间大数据集的请求时,平台必须在几微秒或几纳秒内反馈结果以响应该请求。因此,必须正确地为空间大数据集添加索引以支持上述处理要求。本申请中的词语“用户”可以指代请求服务、订购服务、提供服务或促进提供服务的个体、实体或工具。在本申请中,术语“用户”和“用户终端”可以互换使用。
所述至少两个数据点中的每一个数据点可以包括空间信息。包括在第一数据集中的数据点的空间信息可以包括时间点以及与该数据点相对应的用户在该时间点处的地理位置。在一些实施例中,地理位置可以由纬度和经度的坐标、地址或兴趣点(POI)名称或其组合来表示。在一些实施例中,所述至少两个数据点可以对应于特定时间段和/或目标区域。例如,获取模块410可以获取对应于北京一天的至少两个数据点。
在一些实施例中,用户终端140可以通过安装在用户终端140中的应用程序与处理引擎112和/或存储设备150建立通信(例如,无线通信)。该应用程序可以与按需服务系统100相关。例如,应用程序可以是出租车应用程序或导航应用程序。提供者终端140可以通过用户终端140中的定位技术获取用户的位置,例如,GPS、GLONASS、COMPASS、QZSS和WiFi定位技术等,或其任何组合。应用程序可以指示用户终端140不断地或周期性地将用户的实时或历史位置发送到处理引擎112和/或存储设备150。因此,处理引擎112和/或存储设备150可以实时或基本上实时地接收用户的位置。另外,处理引擎112和/或存储设备150还可以接收对应于特定时间点或时间段的用户的历史位置。
在一些实施例中,所述至少两个数据点中的每一个数据点还可以包括与数据点相对应的用户的用户标识(ID)。当用户第一次使用该应用程序时,用户可以注册该应用程序的帐户。处理引擎112可以在用户注册之后为用户生成用户ID。应用程序可以指示用户终端140将用户ID连同用户的实时或历史位置一起发送到处理引擎112和/或存储设备150。
在一些实施例中,所述至少两个数据点中的至少一个数据点可以包括与对应于所述至少两个数据点中的所述至少一个数据点的用户相关的信息。与用户相关的信息可以包括用户的姓名、用户的年龄、用户的电话号码、用户的性别、用户的职业、与用户有关的车辆、车辆的车牌号、车辆的品牌和车辆的颜色等,或其任何组合。在一些实施例中,这种用户信息包括在所有数据点或数据点的一部分中。用户可以通过应用程序的界面输入与用户相关的信息。应用程序可以指示用户终端140将与用户相关的信息连同用户的实时或历史位置一起发送到处理引擎112和/或存储设备150。
在一些实施例中,当用户处于请求、使用或提供按需服务(例如,司机向乘客提供出租车服务)的过程中时,应用程序可以指示与用户相关的用户终端140将与按需服务相关的信息连同用户的实时或历史位置一起发送到处理引擎112和/或存储设备150。例如,当用户(例如,司机)向乘客提供出租车服务时,与提供的出租车服务相关的信息可以包括行程起点、行程目的地等,或其任何组合。
在503中,数据集处理模块403(和/或处理引擎112,和/或处理电路210-b)可以基于空间信息,将第一数据集划分为至少两个第一初始分区(例如,如本申请中其他地方结合图6详细描述的那样)。在一些实施例中,第一初始分区可以表示目标区域中的地理区域。在一些实施例中,对应于第一初始分区的地理区域可以具有规则的(例如,三角形、矩形、正方形、圆形、五边形和六边形)或不规则的形状。
在505中,数据集处理模块403(和/或处理引擎112,和/或处理电路210-b)可以基于所述至少两个第一初始分区,确定第一数据集的第一空间索引(例如,如本申请中其他地方结合图6详细描述的那样)。第一空间索引可以指示所述至少两个第一初始分区中的任何两个之间的关系。例如,对于所述至少两个第一初始分区中的目标分区,第一空间索引可以指示所述至少两个第一初始分区中的哪一个分区与目标分区相邻。
在507中,扩展模块405(和/或处理引擎112,和/或处理电路210-b)可以基于所述至少两个第一初始分区,生成至少两个第一修改分区。在一些实施例中,扩展模块405可以为所述至少两个第一初始分区中的每一个分区确定边界数据集,并对所述至少两个第一初始分区中的每一个分区的边界数据集进行洗牌操作,以确定至少两个第一修改分区(例如,如本申请中其他地方所述,结合图7详细描述)。在一些实施例中,第一初始分区可以对应于第一修改分区。例如,第一修改分区可以是修改后的第一初始分区。在一些实施例中,所述至少两个第一初始分区可具有不规则形状(例如,图8中所示的802、图10中所示的初始分区),其可能会影响所述至少两个第一初始分区中数据点的完整性和/或连续性。因此,扩展模块405可以将所述至少两个第一初始分区修改为规则形状(例如,图10中所示的修改分区),以改善所述至少两个第一初始分区中的数据点的完整性和/或连续性。
在一些实施例中,扩展模块405可以根据分布式计算方法,基于所述至少两个第一初始分区,确定至少两个第一修改分区。分布式计算方法可以包括Storm框架、Spark框架、Hadoop、Phoenix、Disco和Mars等,或其任何组合。在一些实施例中,分布式计算方法可以由至少两个工作节点和将任务分配给所述至少两个工作节点的管理器来执行。在一些实施例中,可以将所述至少两个第一初始分区发送给管理器。管理器可以将所述至少两个第一初始分区分发给所述至少两个工作节点。例如,可以将所述至少两个第一初始分区中的每一个分区发送到不同的工作节点。又例如,可以将所述至少两个第一初始分区中的一个分区发送到第一工作节点,并且可以将所述至少两个第一初始分区中的另外两个发送到第二工作节点。在一些实施例中,管理器和/或所述至少两个工作节点可以是处理引擎112的一部分或者通过网络(例如,网络120)与处理引擎112通信。
仅作为示例,如图9所示,可以将所述至少两个第一初始分区发送给管理器901。管理器901可以将所述至少两个第一初始分区分发给至少两个工作节点(例如,工作节点903-1、903-i和903-n等)。如图9所示,所述至少两个第一初始分区中的每一个分区被发送到不同的工作节点。例如,初始分区PP1被发送到工作节点903-1,初始分区PPi被发送到工作节点903-i,初始分区PPn被发送到工作节点903-n。所述至少两个工作节点中的每一个节点可以处理其自己的初始分区并生成修改分区。例如,工作节点903-1可以处理PP1并基于PP1生成修改分区MP1,工作节点903-i可以处理PPi并基于PPi生成修改分区MPi,工作节点903-n可以处理PPn并基于PPn生成修改分区MPn。
图5B是根据本申请的一些实施例所示的用于关联两个数据集的示例性过程的流程图。在一些实施例中,过程500-2可以在图1所示的按需服务系统100中实现。例如,过程500-2可以作为指令的形式存储在存储介质(例如,存储设备150或处理引擎112的存储器220)中,并且由服务器110(例如,服务器110的处理引擎112、处理引擎112的处理器210,或图4所示的处理引擎112中的一个或以上模块)调用和/或执行。以下呈现的所示过程500-2的操作旨在说明。在一些实施例中,过程500-2可以通过未描述的和/或没有讨论的一个或以上附加操作来完成。另外,如图5B所示和下面描述的过程500-2的操作顺序不是限制性的。在一些实施例中,可以在过程500-1之后执行过程500-2。
在509中,获取模块401(和/或处理引擎112,和/或接口电路210-a)可以获取目标区域内的第二数据集。在一些实施例中,获取模块401可以从存储介质(例如,存储设备150或计算设备200中的存储器220)获取第二数据集。
在一些实施例中,第二数据集可以是包括目标区域内的路网信息的路网地图。在一些实施例中,路网信息可包括至少两个运输路线,例如道路、街道、高速公路、立交桥、河流、地铁路线和地下通道等,或其任何组合。
在一些实施例中,获取模块401可以获取包括至少两个第二修改分区的第二数据集,以将第一数据集中的至少两个第一修改分区中的至少一个分区和第二数据集中的至少两个第二修改分区中的至少一个分区进行关联。在一些实施例中,对于所述至少两个第二修改分区中的每一个分区,第二修改分区的位置、第二修改分区的面积、以及第二修改分区的形状均可以与所述至少两个第一修改分区不同。或者,对于第二修改分区中的一些或每一个分区,第二修改分区的位置、第二修改分区的面积、以及第二修改分区的形状均可以与所述至少两个第一修改分区的对应分区相同,表示第二修改分区对应于第一修改分区。例如,如图11所示,数据集A(例如,空间大数据集和/或用户终端轨迹点数据集)中的修改分区1102可以对应于数据集B(例如,路网图)中的修改分区1102'。修改分区1102的位置、面积和形状与修改分区1102'的位置、面积和形状相同。数据集A中的修改分区1104对应于数据集B中的修改分区1104'。修改分区1104的位置、面积和形状与修改分区1104'的位置、面积和形状相同。在一些实施例中,包括在两个对应的修改分区中的数据和/或两个对应的修改分区的数据量可以是不同的。例如,第一修改分区可以包括指示用户位置的数据点,与第一修改分区对应的第二修改分区可以包括路网信息。
在一些实施例中,用于生成至少两个第二修改分区的过程可以与用于生成过程500-1中的503-507中所示的至少两个第一修改分区的过程相同。仅作为示例,用于生成至少两个第二修改分区的过程可以包括511-515。
在511中,数据集处理模块403(和/或处理引擎112,和/或处理电路210-b)可以将第二数据集划分为至少两个第二初始分区(例如,如本申请中其他地方结合图6详细描述的那样)。第二初始分区可以表示目标区域中的地理区域。在一些实施例中,对于至少两个第二初始分区中的每一个分区,第二初始分区的位置、第二初始分区的面积、以及第二初始分区的形状均可以与至少两个第一初始分区中的一个分区相同,表示第二初始分区对应于第一初始分区。在一些实施例中,包括在两个对应的初始分区中的数据和/或两个对应的初始分区的数据量可以是不同的。例如,第一初始分区可以包括指示用户位置的数据点,与第一修改分区对应的第二初始分区可以包括路网信息。在一些实施例中,为了使至少两个第一初始分区和至少两个第二初始分区具有一对一的对应关系,数据集处理模块403可以基于至少两个第一初始分区,将第二数据集划分为至少两个第二初始分区。
在513中,数据集处理模块403(和/或处理引擎112,和/或处理电路210-b)可以基于所述至少两个第二初始分区,确定第二数据集的第二空间索引(例如,如本申请中其他地方结合图6详细描述的那样)。第二空间索引可以指示所述至少两个第二初始分区中的任何两个之间的关系。例如,对于所述至少两个第二初始分区中的目标分区,第二空间索引可以指示所述至少两个第二初始分区中的哪个是邻近于目标分区的。
在515中,扩展模块405(和/或处理引擎112,和/或处理电路210-b)可以基于所述至少两个第二初始分区,生成至少两个第二修改分区。在一些实施例中,扩展模块405可以为所述至少两个第二初始分区中的每一个分区确定边界数据集,并对所述至少两个第二初始分区中的每一个分区的边界数据集进行洗牌操作,以确定至少两个第二修改分区(例如,如本申请中其他地方详细描述的,结合图7)。在一些实施例中,第二初始分区可以对应于第二修改分区。在一些实施例中,用于生成至少两个第二修改分区的过程可以与用于生成至少两个第一修改分区的过程相同。在一些实施例中,扩展模块405可以以与507中描述的分布计算方法相同的分布计算方法生成至少两个第二修改分区。
在517中,连接模块307(和/或处理引擎112,和/或处理电路210-b)可以将所述至少两个第一修改分区中的至少一个分区和所述至少两个第二修改分区中的至少一个分区进行关联。在一些实施例中,第一修改分区可以与对应于第一修改分区的第二修改分区进行关联。例如,如图11所示,修改分区1102可以与对应于修改分区1102的修改分区1102'进行关联,并且修改分区1104可以与对应于修改分区1104的修改分区1104'进行关联。
在一些实施例中,对于第一修改分区(或第二修改分区),关联模块407可以搜索第二数据集(或第一数据集)以确定对应于第一修改分区(或第二修改分区)的第二修改分区(或第一修改分区)以执行关联操作。在一些实施例中,第一空间索引中的第一修改分区的分区编号可以和第二空间索引中的与第一修改分区对应的第二修改分区的分区编号相关。例如,第一修改分区和第二修改分区的分区编号可以是MP1,或者,第一修改分区的分区编号可以是MP1-A,第二修改分区的分区编号可以是MP1-B。关联模块407可以搜索第二数据集,以基于“MP1”,确定与第一修改分区对应的第二修改分区。在一些实施例中,关联模块407可以搜索第二数据集,以基于第一修改分区的位置、面积和形状,确定与第一修改分区对应的第二修改分区。
在寻找未包含在路网地图中的一条或以上新运输路线的应用场景中,关联模块407可以将第一数据集(例如,至少两个数据点)和第二数据集(例如,路网地图)进行关联,以将第一数据集与第二数据集进行比较,找到第二数据集(例如,路网地图)中未包括的一个或以上新的运输路径。例如,第一数据集和第二数据集的关联可以就像在路网地图上覆盖包括至少两个点(例如,第一数据集中的数据点)的透明掩模一样。如果特定数量的点(例如,超过1000个点)对应于路网图中的未包括运输路线的区域,则可能存在未包括在路网图中的一个或以上新的运输路线。
在一些实施例中,关联模块407可以根据分布式计算方法,将至少两个第一修改分区中的至少一个分区和在至少两个第二修改分区中的至少一个分区进行关联。仅作为示例,如图12所示,可以将至少两个第一初始分区中的至少一个分区(例如,MP11、MP1i、MP1n)和至少两个第二初始分区中的至少一个分区(例如,MP21、MP2i、MP2n)发送到管理器901。管理器901可以将MP11和与MP11相对应的MP21分发给工作节点903-1。管理器901可以将MP1i和与MP1i相对应的MP2i分发给工作节点903-i。管理器901可以将MP1n和与MP1n相对应的MP2n分配给工作节点903-n。工作节点903-1可以关联MP11和MP21。工作节点903-i可以关联MP1i和MP2i。工作节点903-n可以关联MP1n和MP2n。
图6是根据本申请的一些实施例所示的用于将数据集划分为至少两个分区的示例性过程的流程图(关于将数据集划分为至少两个分区的过程描述也可以在例如2017年12月29日提交的国际申请No、PCT/CN2017/119699中找到,该申请通过引用结合于此)。在一些实施例中,过程600可以在图1所示的按需服务系统100中实现。例如,过程600可以作为指令的形式存储在存储介质(例如,存储设备150或处理引擎112的存储器220)中,并且由服务器110(例如,服务器110的处理引擎112、处理引擎112的处理器210,或图4所示的处理引擎112中的一个或以上模块)调用和/或执行。下面呈现的所示过程600的操作旨在说明性的。在一些实施例中,过程600在实现时可以添加一个或以上个未描述的额外操作,和/或删减一个或以上此处所描述的操作。另外,如图6所示和下面描述的过程600的操作顺序不是限制性的。在一些实施例中,可以根据过程600执行图5A中所示的过程500-1的503和505,以及图5B中所示的过程500-2的511和513。
在601中,获取模块401(和/或处理引擎112,和/或接口电路210-a)可以获取目标区域内的数据集(例如,第一数据集、第二数据集)。在一些实施例中,获取模块401可以从存储介质(例如,存储设备150或计算设备200中的存储器220)获取数据集。
在603中,数据集处理模块403(和/或处理引擎112,和/或处理电路210-b)可以将数据集划分为至少两个数据块。在一些实施例中,数据块可以表示地理区域。在一些实施例中,每个地理区域可以具有规则的(例如,三角形、矩形、正方形、圆形、五边形、六边形等)或不规则的形状。在一些实施例中,地理区域的大小可以相同。例如,每个地理区域可以是边长为500米的正方形。在一些实施例中,地理区域的大小可以不同。例如,地理区域A可以是边长为200米的正方形,地理区域B是边长为300米的正方形。
在一些实施例中,对于包括具有空间信息的至少两个数据点的第一数据集,数据集处理模块403可以将第一数据集对应的目标区域划分为至少两个第一数据块,然后基于所述至少两个数据点的空间信息,确定每个第一数据块中有多少数据点和/或哪些数据点。在一些实施例中,对于包括路网信息的第二数据集,数据集处理模块403可以将路网信息对应的目标区域划分为至少两个第二数据块。对于所述至少两个第二数据块中的每一个数据块,第二数据块的位置、面积和形状可以与至少两个第一数据块中的一个数据块相同,其表示第二数据块对应于第一数据块。在一些实施例中,包括在两个对应数据块中的数据和/或两个对应数据块的数据量可以是不同的。例如,第一数据块可以包括指示用户位置的数据点,对应于第一数据块的第二数据块可以包括路网信息。
在605中,数据集处理模块403(和/或处理引擎112,和/或处理电路210-b)可以确定所述至少两个数据块中的每一个数据块的数据块编号。在一些实施例中,数据集处理模块403可以基于空间填充曲线,确定数据块编号,例如,希尔伯特曲线、Z阶曲线、四叉树、R树、希尔伯特R树、二元空间分区(BSP)树、格雷曲线、龙曲线、戈斯珀曲线、皮亚诺曲线等,或其任何组合。在一些实施例中,空间填充曲线是希尔伯特曲线,当使用地图时,该希尔伯特曲线不遗漏且不重复地穿过对应于数据块的地理区域。数据集处理模块403可以根据空间填充曲线通过对应于至少两个数据块的地理区域的顺序,对所述至少两个数据块进行编号。
在一些实施例中,两个对应数据块的数据块编号可以彼此相关。例如,两个对应数据块的数据块编号可以相同。又例如,两个相应数据块的数据块编号的一部分可以是相同的,例如B1-A和B1-B。
在607中,数据集处理模块403(和/或处理引擎112,和/或处理电路210-b)可以将所述至少两个数据块划分为至少两个初始分区。
在一些实施例中,对于包括具有空间信息的至少两个数据点的第一数据集,数据集处理模块403可以基于所述至少两个数据块的数据点的预估分布和所述至少两个数据块的数据块编号,将所述至少两个数据块划分为至少两个初始分区。
如这里所使用的,所述至少两个数据块的数据点预估分布可以指示哪些数据块包括相对更多的数据点以及哪些数据块包括相对更少的数据点。预估分布可以包括所述至少两个数据点的估计密度分布、所述至少两个数据点的估计数量分布等,或其任何组合。
例如,对于预估密度分布,数据集处理模块403可以针对每个数据块,基于数据块中的数据点数量和对应于数据块的地理区域大小,确定数据点的密度,并基于每个数据块中的数据点密度,确定预估密度分布。又例如,对于估计的数量分布,数据集处理模块403可以确定每个数据块中的数据点数量,并且基于每个数据块中的数据点数量,确定估计的数量分布。或者,数据集处理模块403可以从所述至少两个数据块中选择一个或以上数据块作为样本,并且基于所选择的一个或以上数据块中的每个数据块的数据点密度和/或数据点数量,确定预估分布。
为了提高数据点处理的效率,每个初始分区中的数据点数量可以基本相似(例如,任何两个分区中的数据点数量之间的差异小于诸如100、500、1000、5000或10000个数据点的阈值)。在一些实施例中,数据集处理模块403可以基于所述至少两个数据点的预估分布,将所述至少两个数据块划分为至少两个初始分区,以使每个初始分区中的数据点数量基本相似。在一些实施例中,初始分区中的数据块数据块编号可以是连续的。例如,初始分区中的数据块数据块编号可以是1-10000。
在一些实施例中,两个对应的初始分区的数据块数量可以相等。两个对应的初始分区中的数据块可以具有一对一的对应关系。
在609中,对于所述至少两个初始分区中的每一个分区,数据集处理模块403(和/或处理引擎112,和/或处理电路210-b)可以基于每个初始分区中包括的数据块的数据块编号对数据块进行排序。
例如,初始分区可以包括1000个数据块,其数据块编号是10001-11000。在一些实施例中,数据集处理模块403可以按照升序对这1000个数据块进行排序,并将数据块编号为10001的数据块确定为初始分区中的第一数据块。或者,在一些实施例中,数据集处理模块403可以按降序对这1000个数据块进行排序,并将数据块编号为11000的数据块确定为初始分区中的第一数据块。
在611中,数据集处理模块403(和/或处理引擎112,和/或处理电路210-b)可以基于所述至少两个数据块的数据块编号,通过对所述至少两个初始分区进行排序,确定每个初始分区的分区编号。例如,数据集处理模块403可以确定一个初始分区的分区编号为PP1,该初始分区包括数据块编号为1-10000的数据块,并且确定另一个初始分区的分区编号为PP2,该初始分区包括数据块编号为10001-11000的数据块。
在一些实施例中,两个对应分区的分区编号可以彼此相关。例如,两个对应分区的分区编号可以相同。又例如,两个相应分区的分区编号的一部分可以相同,例如PP1-A和PP1-B。
在613中,数据集处理模块403(和/或处理引擎112,和/或处理电路210-b)可以基于所述至少两个数据块的数据块编号和所述至少两个初始分区的分区编号,确定数据集的空间索引。空间索引可以指示所述至少两个数据块和所述至少两个初始分区的关系。例如,对于数据块,空间索引可以指示哪个初始分区包括该数据块,以及哪个数据块与该数据块相邻。又例如,对于初始分区,空间索引可以指示哪些数据块包含在该初始分区中,以及哪个初始分区与该初始分区相邻。
上述描述仅用于说明目的而不是旨在限制本申请的范围。对于本领域的普通技术人员来说,可以根据本申请的描述,做出各种各样的变化和修改。但是,那些变化与修改并不背离本申请。例如,在一些实施例中可以省略步骤609。
图7是根据本申请的一些实施例所示的用于生成至少两个修改分区的示例性过程的流程图。在一些实施例中,过程700可以在图1所示的按需服务系统100中实现。例如,过程700可以作为指令的形式存储在存储介质(例如,存储设备150或处理引擎112的存储器220)中,并且由服务器110(例如,服务器110的处理引擎112、处理引擎112的处理器210,或图4所示的处理引擎112中的一个或以上模块)调用和/或执行。下面呈现的示例过程700的操作旨在说明性的。在一些实施例中,过程700在实现时可以添加一个或以上个未描述的额外操作,和/或删减一个或以上此处所描述的操作。另外,如图7所示和下面描述的过程700的操作顺序不是限制性的。在一些实施例中,可以根据过程700执行图5A中所示的过程500-1的步骤507和图5B中所示的过程500-2的步骤515。
在701中,获取模块401(和/或处理引擎112,和/或接口电路210-a)可以获取包括至少两个初始分区(例如,第一初始分区、第二初始分区)的数据集(例如,第一数据集或第二数据集)。在一些实施例中,可以基于图6中所示的过程600将数据集划分为初始分区。
在703中,扩展模块405(和/或处理引擎112,和/或处理电路210-b)可以为所述至少两个初始分区中的每一个分区确定边界数据集集。在一些实施例中,初始分区的边界数据集可以与该初始分区相邻并围绕该初始分区。在一些实施例中,初始分区的边界数据集可包括在图6所示过程600的603中确定的至少两个数据块。例如,如图8所示,数据集被分成至少两个数据块(例如,806)。对于初始分区802,扩展模块405可以确定边界数据集804,该数据集804包括与初始分区802相邻并围绕初始分区802的数据块(例如,图8中806的灰色方块)。
在一些实施例中,数据集处理模块403可以基于数据集的空间索引,确定初始分区的边界数据集。在一些实施例中,数据集处理模块403可以基于空间索引,确定初始分区中包括哪些数据块。包括在初始分区中的数据块的数据块编号可以被称为初始分区的空间索引范围。例如,初始分区可以表示为PP1-[1-10000],表示该初始分区的分区编号是PP1,并且数据块编号为1-10000的数据块包含在该初始分区中。1-10000的范围可以是该初始分区的空间索引范围。在一些实施例中,扩展模块405可以基于初始分区的空间索引范围和数据集的空间索引,通过确定与该初始分区相邻并围绕该初始分区的数据块的数据块编号以及确定哪些初始分区包括与该初始分区相邻并围绕该初始分区的数据块,来确定该初始分区的边界数据集。
在705中,扩展模块405(和/或处理引擎112,和/或处理电路210-b)可以对所述至少两个初始分区中每一个分区的边界数据集进行洗牌操作。在一些实施例中,洗牌操作可以指两个或以上初始分区之间的数据交换。在一些实施例中,对初始分区的边界数据集的洗牌操作可以包括,基于数据块的数据块编号对包括在边界数据集中的数据块进行排序,以及将包括已排序数据块的边界数据集添加到初始分区。初始分区和边界数据集的组合可以被称为修改分区。例如,扩展模块405可以为[1-10000]的初始分区确定[10001-10400]的边界数据集。集合[1-10400]可以是修改分区。
在一些实施例中,因为可以用对初始分区的边界数据集进行洗牌操作代替对该初始分区或整个数据集进行洗牌操作,来生成对应于初始分区的修改分区,所以生成修改分区的计算量的量级可以是初始分区中数据量的量级的平方根,与现有技术中通过处理数据集中的所有数据生成修改分区相比,其提高了生成修改分区的效率。
图8是根据本申请的一些实施例所示的示例性边界数据集的示意图。如图8所示,初始分区802的边界数据集804包括至少两个数据块(例如,灰色方块,如806)。边界数据集804可以与初始分区802相邻并且包围初始分区802。
图9是根据本申请的一些实施例所示的根据分布式计算方法基于至少两个初始分区来确定至少两个修改分区的示例性过程的示意图。在一些实施例中,扩展模块405可以根据分布式计算方法,基于至少两个第一(或第二)初始分区,确定至少两个第一(或第二)修改分区。分布式计算方法可以包括Storm框架、Spark框架、Hadoop、Phoenix、Disco、Mars等,或其任何组合。在一些实施例中,分布式计算方法可以由至少两个工作节点和将任务分配给所述至少两个工作节点的管理器来执行。以确定至少两个第一修改分区为例,可以将至少两个第一初始分区发送给管理器。管理器可以将所述至少两个第一初始分区分发给所述至少两个工作节点。例如,可以将所述至少两个第一初始分区中的每一个分区发送到不同的工作节点。又例如,可以将所述至少两个第一初始分区中的一个分区发送到第一工作节点,并且可以将所述至少两个第一初始分区中的另外两个分区发送到第二工作节点。在一些实施例中,管理器和/或所述至少两个工作节点可以是处理引擎112的一部分或者通过网络(例如,网络120)与处理引擎通信。
仅作为示例,如图9所示,可以将所述至少两个第一初始分区(例如,PP1、PPi、PPn)发送给管理器901。管理器901可以将所述至少两个第一初始分区分发给至少两个工作节点(例如,工作节点903-1、903-i、903-n等)。如图9所示,所述至少两个第一初始分区中的每一个分区被发送到不同的工作节点。例如,PP1被发送到工作节点903-1,PPi被发送到工作节点903-i,并且PPn被发送到工作节点903-n。所述至少两个工作节点中的每一个节点可以处理其自己的初始分区并生成修改分区。例如,工作节点903-1可以处理PP1并基于PP1生成修改分区MP1,工作节点903-i可以处理PPi并基于PPi生成修改分区MPi,工作节点903-n可以处理PPn并基于PPn生成修改分区MPn。
图10是根据本申请的一些实施例所示的示例性修改分区和示例性初始分区的示意图。如图10所示,初始分区的形状是不规则的。基于过程500-1、过程600和/或过程700,通过处理初始分区而生成的修改分区的形状是规则的,这改善了初始分区的完整性和连续性。
图11是根据本申请的一些实施例所示的示例性相对应的修改分区的示意图。如图11所示,数据集A中的修改分区1102对应于数据集B中的修改分区1102'。修改分区1102的位置、面积和形状与修改分区1102'的位置、面积和形状相同。数据集A中的修改分区1104对应于数据集B中的修改分区1104'。修改分区1104的位置、面积和形状与修改分区1104'的位置、面积和形状相同。
图12是根据本申请的一些实施例所示的基于分布式计算方法关联两个数据集的示例性过程的示意图。在一些实施例中,关联模块407可以根据分布式计算方法关联第一数据集和第二数据集。分布式计算方法可以包括Storm框架、Spark框架、Hadoop、Phoenix、Disco、Mars等,或其任何组合。在一些实施例中,分布式计算方法可以由至少两个工作节点和将任务分配给所述至少两个工作节点的管理器来执行。可以将至少两个第一初始分区中的至少一个分区(例如,MP11、MP1i、MP1n)和至少两个第二初始分区中的至少一个分区(例如,MP21、MP2i、MP2n)发送到管理器901。管理器901可以将MP11和与MP11相对应的MP21分发给工作节点903-1。管理器901可以将MP1i和与MP1i相对应的MP2i分发给工作节点903-i。管理器901可以将MP1n和与MP1n相对应的MP2n分配给工作节点903-n。工作节点903-1可以关联MP11和MP21。工作节点903-i可以关联MP1i和MP2i。工作节点903-n可以关联MP1n和MP2n。
上文已对基本概念做了描述,显然,对于阅读此申请后的本领域的普通技术人员来说,上述发明披露仅作为示例,并不构成对本申请的限制。虽然此处并未明确说明,但本领域的普通技术人员可能会对本申请进行各种修改、改进和修正。该类修改、改进和修正在本申请中被建议,所以该类修改、改进、修正仍属于本申请示范实施例的精神和范围。
同时,本申请使用了特定词语来描述本申请的实施例。例如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本申请至少一个实施例相关的某一特征、结构或特性。因此,应当强调并注意的是,本说明书中在不同位置两次或以上提及的“一实施例”或“一个实施例”或“一替代性实施例”并不一定是指同一实施例。此外,本申请的一个或以上实施例中的某些特征、结构或特点可以进行适当的组合。
此外,本领域的普通技术人员可以理解,本申请的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的过程、机器、产品或物质的组合,或对其任何新的和有用的改进。相应地,本申请的各个方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可以被称为“模块”、“单元”、“组件”或“系统”。此外,本申请的各方面可以采取体现在一个或以上计算机可读介质中的计算机程序产品的形式,其中计算机可读程序代码包含在其中。
计算机可读信号介质可能包含一个内含有计算机程序代码的传播数据信号,例如在基带上或作为载波的一部分。此类传播信号可以有多种形式,包括电磁形式、光形式等或任何合适的组合。计算机可读信号介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通信、传播或传输供使用的程序。位于计算机可读信号介质上的程序代码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、RF等,或任何上述介质的组合。
本申请各部分操作所需的计算机程序编码可以用任意一种或以上程序语言编写,包括面向主体编程语言如Java、Scala、Smalltalk、Eiffel、JADE、Emerald、C++、C#、VB.NET、Python等,常规程序化编程语言如C语言、Visual Basic、Fortran 2003、Perl、COBOL 2002、PHP、ABAP,动态编程语言如Python、Ruby和Groovy,或其他编程语言等。该程序代码可以完全在用户计算机上运行、或作为独立的软件包在用户计算机上运行、或部分在用户计算机上运行部分在远程计算机运行、或完全在远程计算机或服务器上运行。在后种情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网(LAN)或广域网(WAN),或连接至外部计算机(例如通过因特网),或在云计算环境中,或作为服务使用如软件即服务(SaaS)。
此外,除非权利要求中明确说明,本申请所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本申请流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本申请实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的服务器或移动设备上安装所描述的系统。
同理,应当注意的是,为了简化本申请披露的表述,从而帮助对一个或以上发明实施例的理解,前文对本申请实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。然而,本申请的该方法不应被解释为反映所声称的待扫描对象物质需要比每个权利要求中明确记载的更多特征的意图。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。

Claims (31)

1.一种优化空间大数据分区的数据处理电子系统,包括:
至少一个存储介质,包括用于划分空间大数据集的一组指令;
至少一个处理器,与所述至少一个存储介质通信,其中当执行所述一组指令时,所述至少一个处理器用于:
获取第一数据集,所述第一数据集是与目标区域内的空间信息相关的空间大数据集;
基于所述空间信息,将所述第一数据集划分为至少两个第一初始分区;
基于所述至少两个第一初始分区,确定所述第一数据集的第一空间索引;以及
通过以下操作生成至少两个第一修改分区:
基于所述第一空间索引,获取与所述至少两个第一初始分区相关的至少两个第一边界数据集,其中所述至少两个第一边界数据集包括与所述至少两个第一初始分区周围的一个或以上第一区域相关的数据;以及
对所述至少两个第一边界数据集进行第一洗牌操作。
2.根据权利要求1所述的系统,其特征在于,获取与所述至少两个第一初始分区相关的所述至少两个第一边界数据集包括:
基于所述第一空间索引,确定所述至少两个第一初始分区中的每一个分区的空间索引范围;以及
基于所述至少两个第一初始分区的所述空间索引范围,确定与所述至少两个第一初始分区相关的所述至少两个第一边界数据集。
3.根据权利要求1所述的系统,所述至少一个处理器还用于:
根据分布式计算方法,对所述至少两个第一初始分区进行分布式计算,以生成所述至少两个第一修改分区。
4.根据权利要求3所述的系统,所述至少一个处理器还用于:
获取在所述目标区域内的第二数据集;
将所述第二数据集划分为至少两个第二初始分区;
基于所述至少两个第二初始分区,确定所述第二数据集的第二空间索引;以及
根据所述分布式计算方法和所述第二空间索引,对所述至少两个第二初始分区进行分布式计算,以生成至少两个第二修改分区。
5.根据权利要求4所述的系统,其特征在于,为了生成所述至少两个第二修改分区,所述至少一个处理器还用于:
基于所述第二空间索引,获取与所述至少两个第二初始分区相关的至少两个第二边界数据集,其中所述至少两个第二边界数据集包括与所述至少两个第二初始分区周围的一个或以上第二区域相关的数据;以及
对所述至少两个第二边界数据集进行第二洗牌操作,以生成所述至少两个第二修改分区。
6.根据权利要求4所述的系统,所述至少一个处理器还用于:
将所述第一数据集中的所述至少两个第一修改分区中的至少一个分区与所述第二数据集中的所述至少两个第二修改分区中的至少一个分区进行关联。
7.根据权利要求4所述的系统,其特征在于,所述第一数据集包括与所述电子系统通信的至少两个用户终端的轨迹点,并且所述第二数据集包括所述目标区域的路网信息。
8.根据权利要求4所述的系统,其特征在于,对于所述至少两个第二修改分区中的每一个分区,其所述第二修改分区的位置、所述第二修改分区的面积、以及所述第二修改分区的形状均与所述至少两个第一修改分区中的其中一个分区相同。
9.根据权利要求4所述的系统,其特征在于,所述第一空间索引或所述第二空间索引与希尔伯特曲线或Z曲线中的至少一个相关。
10.根据权利要求3所述的系统,其特征在于,所述分布式计算方法包括Spark框架、Hadoop、Phoenix、Disco或Mars中的至少一种方法。
11.一种在具有至少一个处理器和至少一个存储介质的计算设备上实现的优化空间大数据分区的方法,所述方法包括:
通过所述至少一个处理器,获取第一数据集,所述第一数据集是与目标区域内的空间信息相关的空间大数据集;
通过所述至少一个处理器,基于所述空间信息,将所述第一数据集划分为至少两个第一初始分区;
通过所述至少一个处理器,基于所述至少两个第一初始分区,确定所述第一数据集的第一空间索引;以及
通过所述至少一个处理器,根据以下操作生成至少两个第一修改分区:
基于所述第一空间索引,获取与所述至少两个第一初始分区相关的至少两个第一边界数据集,其中所述至少两个第一边界数据集包括与所述至少两个第一初始分区周围的一个或以上第一区域相关的数据;以及
对所述至少两个第一边界数据集进行第一洗牌操作。
12.根据权利要求11所述的方法,其特征在于,获取与所述至少两个第一初始分区相关的所述至少两个第一边界数据集包括:
基于所述第一空间索引,确定所述至少两个第一初始分区中的每一个分区的空间索引范围;以及
基于所述至少两个第一初始分区的所述空间索引范围,确定与所述至少两个第一初始分区相关的所述至少两个第一边界数据集。
13.根据权利要求11所述的方法,所述方法还包括:
根据分布式计算方法,通过所述至少一个处理器,对所述至少两个第一初始分区进行分布式计算,以生成所述至少两个第一修改分区。
14.根据权利要求13所述的方法,所述方法还包括:
通过所述至少一个处理器,获取所述目标区域内的第二数据集;
通过所述至少一个处理器,将所述第二数据集划分为至少两个第二初始分区;
通过所述至少一个处理器,基于所述至少两个第二初始分区,确定所述第二数据集的第二空间索引;
通过所述至少一个处理器,根据所述分布式计算方法和所述第二空间索引,对所述至少两个第二初始分区进行分布式计算,以生成至少两个第二修改分区。
15.根据权利要求14所述的方法,其特征在于,所述至少两个第二修改分区的生成包括:
通过所述至少一个处理器,基于所述第二空间索引,获取与所述至少两个第二初始分区相关的至少两个第二边界数据集,其中所述至少两个第二边界数据集包括与所述至少两个第二初始分区周围的一个或以上第二区域相关的数据;以及
通过所述至少一个处理器,对所述至少两个第二边界数据集进行第二洗牌操作,以生成所述至少两个第二修改分区。
16.根据权利要求14所述的方法,所述方法还包括:
将所述第一数据集中的所述至少两个第一修改分区中的至少一个分区和所述第二数据集中的所述至少两个第二修改分区中的至少一个分区进行关联。
17.根据权利要求14所述的方法,其特征在于,所述第一数据集包括与电子系统通信的至少两个用户终端的轨迹点,并且所述第二数据集包括所述目标区域的路网信息。
18.根据权利要求14所述的方法,其特征在于,对于所述至少两个第二修改分区中的每一个分区,其所述第二修改分区的位置、所述第二修改分区的面积、以及所述第二修改分区的形状均与所述至少两个第一修改分区的其中一个分区相同。
19.根据权利要求14所述的方法,其特征在于,所述第一空间索引或所述第二空间索引与希尔伯特曲线或Z曲线中的至少一个相关。
20.根据权利要求13所述的方法,其特征在于,所述分布式计算方法包括Spark框架、Hadoop、Phoenix、Disco或Mars中的至少一种方法。
21.一种优化空间大数据分区的系统,包括:
获取模块,被配置为获取第一数据集,所述第一数据集是与目标区域内的空间信息相关的空间大数据集;
数据集处理模块,被配置为
基于所述空间信息,将所述第一数据集划分为至少两个第一初始分区;以及
基于所述至少两个第一初始分区,确定所述第一数据集的第一空间索引;以及
扩展模块,被配置为通过以下操作生成至少两个第一修改分区:
基于所述第一空间索引,获取与所述至少两个第一初始分区相关的至少两个第一边界数据集,其中所述至少两个第一边界数据集包括与所述至少两个第一初始分区周围的一个或以上第一区域相关的数据;以及
对所述至少两个第一边界数据集进行第一洗牌操作。
22.根据权利要求21所述的系统,其特征在于,获取与所述至少两个第一初始分区相关的所述至少两个第一边界数据集包括:
基于所述第一空间索引,确定所述至少两个第一初始分区中每一个分区的空间索引范围;以及
基于所述至少两个第一初始分区的所述空间索引范围,确定与所述至少两个第一初始分区相关的所述至少两个第一边界数据集。
23.根据权利要求21所述的系统,其特征在于,所述扩展模块进一步被配置为:
根据分布式计算方法,对所述至少两个第一初始分区进行分布式计算,以生成所述至少两个第一修改分区。
24.根据权利要求23所述的系统,其特征在于,
获取模块进一步被配置为获取所述目标区域内的第二数据集;
数据集处理模块进一步被配置为
将所述第二数据集划分为至少两个第二初始分区;以及
基于所述至少两个第二初始分区,确定所述第二数据集的第二空间索引;以及
扩展模块进一步被配置为根据所述分布式计算方法和所述第二空间索引,对所述至少两个第二初始分区进行分布式计算,以生成至少两个第二修改分区。
25.根据权利要求24所述的系统,其特征在于,所述至少两个第二修改分区的生成包括:
通过所述至少一个处理器,基于所述第二空间索引,获取与所述至少两个第二初始分区相关的至少两个第二边界数据集,其中所述至少两个第二边界数据集包括与所述至少两个第二初始分区周围的一个或以上第二区域相关的数据;以及
通过所述至少一个处理器,对所述至少两个第二边界数据集进行第二洗牌操作,以生成所述至少两个第二修改分区。
26.根据权利要求24所述的系统,所述系统还包括:
连接模块,被配置为将所述第一数据集中的所述至少两个第一修改分区中的至少一个分区和所述第二数据集中的所述至少两个第二修改分区中的至少一个分区进行关联。
27.根据权利要求24所述的系统,其特征在于,所述第一数据集包括与电子系统通信的至少两个用户终端的轨迹点,并且所述第二数据集包括所述目标区域的路网信息。
28.根据权利要求24所述的系统,其特征在于,对于所述至少两个第二修改分区中的每一个分区,其所述第二修改分区的位置、所述第二修改分区的面积、以及所述第二修改分区的形状均与所述至少两个第一修改分区的其中一个分区相同。
29.根据权利要求24所述的系统,其特征在于,所述第一空间索引或所述第二空间索引与希尔伯特曲线或Z曲线中的至少一个相关。
30.根据权利要求23所述的系统,其特征在于,所述分布式计算方法包括Spark框架、Hadoop、Phoenix、Disco或Mars中的至少一种方法。
31.一种暂时性计算机可读介质,包括至少一组用于索引数据的指令,其特征在于,当由计算设备的一个或以上处理器执行时,所述至少一组指令使所述计算设备执行一种方法,所述方法包括:
通过所述至少一个处理器,获取第一数据集,所述第一数据集是与目标区域内的空间信息相关的空间大数据集;
通过所述至少一个处理器,基于所述空间信息,将所述第一数据集划分为至少两个第一初始分区;
通过所述至少一个处理器,基于所述至少两个第一初始分区,确定所述第一数据集的第一空间索引;以及
通过所述至少一个处理器,根据以下操作生成至少两个第一修改分区:
基于所述第一空间索引,获取与所述至少两个第一初始分区相关的至少两个第一边界数据集,其中所述至少两个第一边界数据集包括与所述至少两个第一初始分区周围的一个或以上第一区域相关的数据;以及
对所述至少两个第一边界数据集进行第一洗牌操作。
CN201780097937.7A 2017-12-29 2017-12-29 用于关联数据集的系统和方法 Active CN111587429B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
PCT/CN2017/119699 WO2019127314A1 (en) 2017-12-29 2017-12-29 Systems and methods for indexing big data
PCT/CN2017/119894 WO2019127384A1 (en) 2017-12-29 2017-12-29 Systems and methods for joining data sets

Publications (2)

Publication Number Publication Date
CN111587429A CN111587429A (zh) 2020-08-25
CN111587429B true CN111587429B (zh) 2023-12-05

Family

ID=67064353

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201780097937.7A Active CN111587429B (zh) 2017-12-29 2017-12-29 用于关联数据集的系统和方法
CN201780080860.2A Active CN110352414B (zh) 2017-12-29 2017-12-29 为大数据添加索引的系统和方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201780080860.2A Active CN110352414B (zh) 2017-12-29 2017-12-29 为大数据添加索引的系统和方法

Country Status (4)

Country Link
US (2) US20200151197A1 (zh)
CN (2) CN111587429B (zh)
TW (2) TWI720390B (zh)
WO (2) WO2019127384A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI756963B (zh) * 2020-12-03 2022-03-01 禾聯碩股份有限公司 目標物件之區域定義辨識系統及其方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102902742A (zh) * 2012-09-17 2013-01-30 南京邮电大学 一种云环境下的空间数据划分方法
CN107391745A (zh) * 2017-08-10 2017-11-24 国家基础地理信息中心 大规模空间数据分级快速索引方法和装置

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6826663B2 (en) * 2003-01-13 2004-11-30 Rambus Inc. Coded write masking
US7177882B2 (en) * 2003-09-05 2007-02-13 Oracle International Corporation Georaster physical data model for storing georeferenced raster data
US7877405B2 (en) * 2005-01-07 2011-01-25 Oracle International Corporation Pruning of spatial queries using index root MBRS on partitioned indexes
US20080228783A1 (en) * 2007-03-14 2008-09-18 Dawn Moffat Data Partitioning Systems
US8799668B2 (en) * 2009-11-23 2014-08-05 Fred Cheng Rubbing encryption algorithm and security attack safe OTP token
CN102375853A (zh) * 2010-08-24 2012-03-14 中国移动通信集团公司 分布式数据库系统、在其中建立索引的方法和查询方法
US10929501B2 (en) * 2013-08-08 2021-02-23 Sap Se Managing and querying spatial point data in column stores
CN105159895A (zh) * 2014-05-28 2015-12-16 国际商业机器公司 用于存储和查询数据的方法和系统
CN106796589B (zh) * 2014-05-30 2021-01-15 湖北第二师范学院 空间数据对象的索引方法和系统
CN104112011B (zh) * 2014-07-16 2017-09-15 深圳国泰安教育技术股份有限公司 一种海量数据提取的方法及装置
EP3311494B1 (en) * 2015-06-15 2021-12-22 Ascava, Inc. Performing multidimensional search, content-associative retrieval, and keyword-based search and retrieval on data that has been losslessly reduced using a prime data sieve
US9690488B2 (en) * 2015-10-19 2017-06-27 Intel Corporation Data compression using accelerator with multiple search engines
CN107229940A (zh) * 2016-03-25 2017-10-03 阿里巴巴集团控股有限公司 数据伴随分析方法及装置
TW201743280A (zh) * 2016-06-13 2017-12-16 趙尚威 基於區域偵測之載具聯網資訊系統

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102902742A (zh) * 2012-09-17 2013-01-30 南京邮电大学 一种云环境下的空间数据划分方法
CN107391745A (zh) * 2017-08-10 2017-11-24 国家基础地理信息中心 大规模空间数据分级快速索引方法和装置

Also Published As

Publication number Publication date
US20200327108A1 (en) 2020-10-15
TWI720390B (zh) 2021-03-01
WO2019127384A1 (en) 2019-07-04
CN110352414B (zh) 2022-11-11
CN110352414A (zh) 2019-10-18
WO2019127314A1 (en) 2019-07-04
TW201939309A (zh) 2019-10-01
CN111587429A (zh) 2020-08-25
TWI701564B (zh) 2020-08-11
US20200151197A1 (en) 2020-05-14
TW201939308A (zh) 2019-10-01

Similar Documents

Publication Publication Date Title
US10969239B2 (en) Systems and methods for determining a point of interest
US11024163B2 (en) Systems and methods for monitoring traffic congestion
US11017662B2 (en) Systems and methods for determining a path of a moving device
CN109074396B (zh) 推荐个性化内容的系统和方法
CN111507732B (zh) 用于识别相似轨迹的系统和方法
CN110914855B (zh) 区域划分系统和方法
US20200158522A1 (en) Systems and methods for determining a new route in a map
CN111882977A (zh) 一种高精度地图构建方法及系统
JP2020504344A (ja) 推定された到着時間を決定するためのシステムおよび方法
CN112055867B (zh) 用于推荐个性化上车位置的系统和方法
US20200133951A1 (en) Systems and methods for data storage and data query
CN110782652A (zh) 速度预测系统和方法
WO2021035577A1 (en) Systems and methods for identifying island areas in a road network
CN111587429B (zh) 用于关联数据集的系统和方法
US20210034686A1 (en) Systems and methods for improving user experience for an on-line platform
CN116562585A (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