CN111797174A - 管理时空数据的方法和装置 - Google Patents

管理时空数据的方法和装置 Download PDF

Info

Publication number
CN111797174A
CN111797174A CN201910277531.8A CN201910277531A CN111797174A CN 111797174 A CN111797174 A CN 111797174A CN 201910277531 A CN201910277531 A CN 201910277531A CN 111797174 A CN111797174 A CN 111797174A
Authority
CN
China
Prior art keywords
time
space
edges
dimension
working node
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.)
Pending
Application number
CN201910277531.8A
Other languages
English (en)
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201910277531.8A priority Critical patent/CN111797174A/zh
Publication of CN111797174A publication Critical patent/CN111797174A/zh
Pending legal-status Critical Current

Links

Images

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/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请提供一种管理时空数据的方法,可应用于包括协调节点和多个工作节点的分布式系统中。该方法首先通过二分时空图模型G=(VL,VO,E)来表达时空数据,以直接反映数据在时间和空间的关联关系,其中VL是含位置信息的位置顶点的集合,VO是不含位置信息的对象顶点的集合,E是连接相关顶点之间的时空边的集合。对于采用二分时空图模型表达的时空数据,利用时空查询的特性,对对象顶点、位置顶点、边采用差异化的划分和存储方案:对象顶点哈希划分并存入分布式数据库;全部位置顶点发送给每个工作节点并存在工作节点的内存;对时空边分别采用对象‑时间和空间‑时间两个维度划分并将划分后的时空边数据采用列式压缩的存储方案。

Description

管理时空数据的方法和装置
技术领域
本申请涉及信息技术领域,尤其涉及一种管理时空数据的方法和装置。
背景技术
随着物联网、各种服务联网以及信息化建设的发展,大量包含时间信息和空间信息的数据(以下称作时空数据)产生。例如,在安全城市应用的场景下,人们使用身份证、信用卡,入住旅店、乘坐高铁,进行飞机值机等,这些行为都将产生时空数据。又例如,在套牌车检测的场景下,交通摄像头记录汽车车牌、自动车牌识别等行为也会产生大量的时空数据。又例如,在物流跟踪的场景下,快递的物流网点、转运站对包裹的记录操作也会产生大量的时空数据。
这些时空数据的产生是动态且海量的。以安全城市应用为例,中国有超过13亿人口,美国有超过3亿人口,全世界有超过70亿人口。每天有许多人在旅店入住、乘坐高铁或飞机,每个这样的事件都可以认为是一条时空数据(或时空记录)。如果将信息获取的粒度再缩小一点,那么许多人的日常活动,例如在公交车上刷公交卡、移动支付、扫描二维码解锁共享单车等行为,都会产生时空数据。所以,每天产生的时空记录可能达到10亿条的级别。
对如此巨大的时空数据进行管理,将是非常大的挑战。目前,行业内大多采用图模型来表达时空数据,并采用建立在图模型基础上的图划分技术以及一些数据库系统来对时空数据进行管理(例如,查询、分析和存储等)。但是,由于建立在图模型基础之上的很多技术或者数据库系统对于表达和管理真实世界的实体以及实体之间关联关系是普遍适用的,它并不是针对时空数据的特性而设计,因此在应用于时空数据的管理时性能都较差。例如,查询效率低,数据分析结果不准确,存储占用磁盘空间大等问题是普遍存在的。
发明内容
本申请提供一种管理时空数据的方法和装置,能够提高时空数据的管理性能。例如,可以支持高效查询、提升数据分析的准确性,降低存储开销等。
第一方面,本申请提供一种管理时空数据的方法,应用于包括协调节点和多个工作节点的系统中,该方法包括:所述多个工作节点中的第一工作节点接收包含时间和空间信息的时空数据,其中,所述时空数据通过时空图(VL,VO,E)表示,其中,VL是包含位置信息的多个位置顶点,VO是不包含位置信息的多个对象顶点,E是连接顶点之间的多个时空边;第一工作节点将所述多个时空边按照第一组合维度划分,以得到所述多个时空边的第一备份;第一工作节点将所述多个时空边按照第二组合维度划分,以得到所述多个时空边的第二备份,第一组合维度和第二组合维度分别由空间维度、对象维度和时间维度中的至少两个维度组合而成;第一工作节点将第一备份存入第一组合维度对应的第一缓冲区,将第二备份存入第二组合维度对应的第一缓冲区。
应理解,本申请中所述的对注入系统的多个时空边进行划分,是指将所述多个时空边划分到对应的工作节点上。
在本申请的技术方案中,通过提出时空图模型(VL,VO,E),并针对时空图中的顶点是否包含位置信息分别定义了对象顶点和位置顶点。针对注入系统的多个时空边,工作节点按照不同的组合维度对其进行划分,可以提高时空数据的管理性能。例如,支持更高效的查询,减少机器间通信的开销以及达到负载均衡的效果等。
结合第一方面,在第一方面的某些实现方式中,第一组合维度为空间-时间维度,第一工作节点将所述多个时空边按照第一组合维度进行划分包括:第一工作节点根据所述多个时空边中的每个时空边包含的空间信息,计算每个时空边对应的区域标识;
第一工作节点根据每个时空边对应的区域标识查询映射表,以确定每个时空边对应的工作节点,其中,所述映射表中记录有区域标识和工作节点标识之间的映射关系,其中,每个区域标识用于唯一标识一个空间区域,每个工作标识用于唯一标识所述多个工作节点中的一个工作节点;第一工作节点将每个空间区域内的时空边按照时间维度进行划分,以得到第一备份。
将时空边按照多个不同的组合维度进行划分,使得每个组合维度对应一个备份。也即,将时空边的划分和备份相结合。不同的查询请求可以选择不同的备份进行查询,可以提高时空数据的查询效率。
结合第一方面,在第一方面的某些实现方式中,第二组合维度为对象-时间维度,第一工作节点将所述多个时空边按照第二组合维度进行划分包括:第一工作节点将所述多个时空边划分为多个组,每个组包含至少一个对象顶点的多个时空边;第一工作节点将每个组内的时空边按照时间维度进行划分,以得到第二备份。
结合第一方面,在第一方面的某些实现方式中,第一备份和第二备份是第一工作节点在第一周期的一个时间片内对所述多个时空边进行划分得到并分别存入第一组合维度对应的第一缓冲区和第二组合维度对应的第一缓冲区的,第一周期包含N个时间片,N≥1且为整数,所述方法还包括:第一工作节点在第二周期从所述多个工作节点上读取第一周期的所述时间片内被划分给第一工作节点的时空边,其中,第一周期的所述时间片内被划分给第一工作节点的时空边存储在所述多个工作节点中每个工作节点的第一组合维度对应的第一缓冲区和第二组合维度对应的所述第一缓冲区;第一工作节点将读取的第一周期的所述时间片内被划分给第一工作节点的时空边存入数据存储系统。
此外,时空边的划分和存储以时间片为单位,可以支持更小时间粒度的查询,可以较为准确地读取相关数据,以降低不相关数据的读取和处理,同时也可以减少工作节点之间的通信开销,从而获得更优的查询性能。
结合第一方面,在第一方面的某些实现方式中,所述数据存储系统包括键值对系统,第一工作节点读取的所述时空边在所述数据存储系统中以键-值的格式存储,其中,所述键包括工作节点标识、时空边的划分方式标识,内部标识和时间片,所述值包括包含所述键的所有时空边;其中,所述时空边的划分方式包括第一组合维度和第二组合维度,当所述多个时空边按照第一组合维度划分时,所述内部标识为区域标识,当所述多个时空边按照第二组合维度划分时,所述内部标识为组标识。
结合第一方面,在第一方面的某些实现方式中,所述值包括多个数据域,所述多个数据域至少包括对象顶点、位置顶点和时间戳,第一工作节点将读取的所述第一周期的所述时间片内被划分给第一工作节点的时空边存入数据存储系统包括:第一工作节点针对所述多个数据域中的每个数据域各自创建表格进行列式存储。
在对时空边进行存储时,采用列式存储的方式,可以节省大量的磁盘开销。同时针对不同的数据域分别创建表格进行存储,可以过滤掉不相关的数据域。
结合第一方面,在第一方面的某些实现方式中,该方法还包括:第一工作节点在第二周期的一个时间片内接收新注入的多个时空边;第一工作节点在第二周期的所述时间片内将所述新注入的多个时空边按照第一组合维度进行划分,以得到所述新注入的多个时空边的第一备份;第一工作节点在第二周期的所述时间片内将所述新注入的多个时空边按照第二组合维度进行划分,以得到所述新注入的多个时空边的第二备份;第一工作节点在第二周期的所述时间片内将所述新注入的多个时空边的第一备份存入第一组合维度对应的第二缓冲区,将所述新注入的多个时空边的第二备份存入第二组合维度对应的第二缓冲区。
在本申请实施例中,时空边的分发是以周期为单位的。每个周期包括将上个周期接收并完成划分的时空边分发到对应的工作节点,同时还需要对本周期新注入的时空边完成划分和存储。时空边的流入采用动态分布的方式,可以解决分布式环境下时空图的动态更新以及时空图划分之间的平衡(trade-off)。
结合第一方面,在第一方面的某些实现方式中,第一工作节点在第二周期从所述多个工作节点上读取第一周期的所述时间片内被划分给第一工作节点的时空边,包括:第一工作节点生成工作节点列表,所述工作节点列表指示多个工作节点的顺序,所述顺序是随机的;第一工作节点在第二周期内按照所述工作节点列表指示的顺序,依序读取每个工作节点并判断所读取的工作节点是否空闲;当第一工作节点读取到所述工作节点列表中的第二工作节点且确定所述第二工作节点空闲时,第一工作节点从所述第二工作节点的第一组合维度对应的第一缓冲区和第二组合维度对应的第一缓冲区中读取第一周期内被划分给第一工作节点的时空边。
完成划分和存储的时空边在分发到各工作节点时,每个工作节点都是随机选取工作节点读取数据,可以避免热点工作节点。
应理解,工作节点列表中工作节点的顺序是随机生成的,因此,第一工作节点按照工作节点列表指示的顺序依序读取每个工作节点,并在所读取的工作节点空闲时,再从该读取的工作节点上获取上个周期被划分给第一工作节点的时空边,就可以避免热点工作节点。
结合第一方面,在第一方面的某些实现方式中,该方法还包括:当第一工作节点读取到所述工作节点列表中的第三工作节点且确定所述第三工作节点忙碌时,第一工作节点将所述第三工作节点加入忙碌列表,并读取顺序位于所述第三工作节点之后的下一个工作节点。
在从工作节点列表中读取到的工作节点忙碌时,暂时先将读取到的工作节点添加到忙碌列表,直到工作节点列表中的工作节点已经遍历完,再从忙碌列表中的工作节点上读取数据,可以避免产生热点工作节点。
结合第一方面,在第一方面的某些实现方式中,该方法还包括;第一工作节点确定已经遍历完所述工作节点列表;第一工作节点读取所述忙碌列表中的工作节点,并在读取到的工作节点i空闲时,从所述工作节点i的第一组合维度对应的第一缓冲区和第二组合维度对应的第一缓冲区中读取第一周期内被分配给第一工作节点的时空边,直至所述忙碌列表为空,i为正整数,i≥1,且i等于所述忙碌列表中的工作节点的数量。
结合第一方面,在第一方面的某些实现方式中,所述多个工作节点的每个工作节点的内存中存储有所述时空图包含的全部位置顶点,该方法还包括:第一工作节点对所述时空图包含的多个对象顶点进行划分,使得所述多个对象顶点被分配到所述多个工作节点;第一工作节点将划分后被分配到第一工作节点上的对象顶点存储到数据存储系统中。
结合第一方面,在第一方面的某些实现方式中,该方法还包括:第一工作节点接收时空关联分析查询请求;第一工作节点,或者第一工作节点协同所述多个工作节点中的一个或多个其它工作节点根据所述时空关联分析查询请求,从所述数据存储系统中选择按照第一组合维度和/或者第二组合维度存储的时空数据进行查询计算,得到查询结果;第一工作节点汇总所述查询结果并输出。
本申请中时空边是按照多个不同的组合维度分别进行划分和存储的,因此,在进行时空关联分析查询时,既可以支持一个组合维度的查询,也可以支持多个不同组合维度的同时查询,可以提高查询性能。
第二方面,本申请提供一种管理时空数据的装置,其特征在于,应用于包括协调节点和多个工作节点的系统中,该方法包括:所述协调节点将预设的空间范围划分为多个区域;根据所述多个区域中每个区域覆盖的时空图的位置顶点的数目,确定每个区域的权重;根据所述每个区域的权重,建立所述多个区域和所述多个工作节点的映射关系表。
协调节点结合Z-code编码技术和权重统计的方法建立区域和工作节点之间的映射关系,可以避免时空数据的倾斜,同时起到空间-时间维度的负载均衡的作用。
结合第二方面,在第二方面的某些实现方式中,所述根据所述每个区域的权重,建立所述多个区域和所述多个工作节点的映射关系表,包括:将所述多个区域分为多个区域块,所述多个区域块的数量和所述多个工作节点的数量相等,所述多个区域块的权重相等;将所述多个区域块分配给所述多个工作节点,以建立所述区域标识和所述多个工作节点标识的映射关系。
第三方面,本申请提供一种管理时空数据的装置,用于执行第一方面或第一方面的任意可能的实现方式中的方法。具体地,该装置包括执行第一方面或第一方面的任意可能的实现方式中的方法的单元。
在一种可能的实现中,所述装置包括存储器和处理器,其中,存储器用于存储计算机程序;处理器用于执行存储器中存储的计算机程序,当所述计算机程序被执行时,所述装置可以实现第一方面或第一方面的任一种可能的实现方式中所述的管理时空数据的方法。
在另一种可能的实现中,所述装置包括处理器。其中,用于存储计算机程序的存储器位于装置之外,处理器通过电路/电线与存储器连接,用于读取并执行存储器中存储的计算机程序,以执行第一方面或第一方面的任意可能的实现方式中的管理时空数据的方法。
可选地,所述装置还包括通信接口。所述通信接口可以为收发器或输入输出接口。作为一种实现方式,所述输入输出接口可以为收发电路。
第四方面,本申请提供一种管理时空数据的装置,用于执行第二方面或第二方面的任意可能的实现方式中的方法。具体地,该装置包括执行第二方面或第二方面的任意可能的实现方式中的方法的单元。
在一种可能的实现中,所述装置包括存储器和处理器,其中,存储器用于存储计算机程序;处理器用于执行存储器中存储的计算机程序,当所述计算机程序被执行时,所述装置可以实现第二方面或第二方面的任一种可能的实现方式中所述的管理时空数据的方法。
在另一种可能的实现中,所述装置包括处理器。其中,用于存储计算机程序的存储器位于装置之外,处理器通过电路/电线与存储器连接,用于读取并执行存储器中存储的计算机程序,以执行第二方面或第二方面的任意可能的实现方式中的管理时空数据的方法。
可选地,所述装置还包括通信接口。所述通信接口可以为收发器或输入输出接口。作为一种实现方式,所述输入输出接口可以为收发电路。
第五方面,本申请提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行上述第一方面或第一方面任意可能的实现方式中的方法。
第六方面,本申请提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行上述第二方面或第二方面任意可能的实现方式中的方法。
第七方面,本申请提供一种芯片,包括存储器和处理器,存储器用于存储计算机程序,处理器用于从存储器中调用并运行该计算机程序,以执行上述第一方面及其第一方面任意可能的实现方式中的方法。
第八方面,本申请提供一种芯片,包括存储器和处理器,存储器用于存储计算机程序,处理器用于从存储器中调用并运行该计算机程序,以执行上述第二方面及其第二方面任意可能的实现方式中的方法。
第九方面,本申请提供一种计算机程序产品,所述计算机程序产品包括计算机程序代码,当计算机程序代码在计算机上运行时,使得计算机执行第一方面或第一方面任意可能的实现方式中的方法。
第十方面,本申请提供一种计算机程序产品,所述计算机程序产品包括计算机程序代码,当计算机程序代码在计算机上运行时,使得计算机执行第二方面或第二方面任意可能的实现方式中的方法。
可选的,上述各方面中涉及的存储器与处理器可以是物理上相互独立的单元,或者,存储器也可以和处理器集成在一起。
附图说明
图1为安全城市的应用场景的示例。
图2为适用于本申请实施例的系统架构的一个示例。
图3的(a)和(b)分别为协调器和工作节点的示意图。
图4为本申请的技术方案在平台软件中的实现形态。
图5是时空数据的划分、存储和查询的流程示意图。
图6为本申请提供的管理时空数据的系统架构的示例。
图7为时空图的对象顶点和位置顶点划分流程的一个示例。
图8为时空图的对象顶点和位置顶点存储流程的一个示例。
图9为工作节点接收新注入的时空边的流程的一个示例。
图10为时空边划分流程的一个示例。
图11为协调节点对空间划分进行负载均衡分布控制的一个示例。
图12为存储时空边的示意性流程图。
图13为工作节点处理时空查询请求的示意性流程图。
图14为每台机器平均每秒注入数据量的对比图。
图15为负载均衡的效果示意图。
图16为查询处理性能的对比图。
图17为本申请提供的管理时空数据的系统架构的另一个示例。
图18为本申请提供的管理时空数据的装置的示意性框图。
图19为本申请提供的管理时空数据的装置的示意性框图。
图20为本申请提供的网络设备的示意性结构图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
为了便于理解,首先对本申请涉及到的相关概念作简单介绍。
事件:软件或硬件等在运行过程中产生的一条数据(或者称为记录)。这里,软件例如可以是计算机程序,硬件例如可以是计算机、传感器等。
时空数据:包含时间信息和空间信息的数据。一条时空数据表示一个事件,其中,时间信息表示该事件发生的时间,空间信息表示该事件相关的空间。这里,空间可以是地理位置空间(例如,经纬度坐标),也可以是概念上的空间,例如商品空间、用户空间等。
图:一种直接呈现对象之间关联关系的表达方式。图由一系列顶点和顶点之间相连接的边构成。顶点和边可以包含一些属性,这些属性是键-值对。
图划分:将一张图划分为多个子图,每个子图分开存储。例如,可能将一张图存储到多台不同的物理计算机上。
Z-code编码:一种空间编码方式,可以将二维连续的空间映射到一维空间。
时间片:以秒为单位。t秒为一个时间片,其中,t为正整数。
此外,本申请的技术方案中还提出了如下概念。
时空边:时空图中的时空边包含时间信息和空间信息。具体地,时空边是对象标识(identifier,ID)、时间戳(timestamp)以及位置(location)标识三元组。一条时空边可以表示为(对象ID,timestamp,位置ID)。
位置顶点:包含位置信息的顶点。位置顶点对应时空边中的位置ID,一个位置顶点对应了一个位置ID。
对象顶点:区分于位置顶点,不包含位置顶点,但包含某个对象的信息的顶点。对象顶点对应时空边中的对象ID,一个对象顶点对应了一个对象ID。
本申请提供的技术方案可以应用于在广义的时空图领域,用于对时空数据进行管理,例如,存储、处理、查询以及分析等。
首先介绍几个典型的应用场景。
1、安全城市应用。
人们使用身份证件、信用卡,入住旅店,在饭店消费或者乘坐高铁,飞机值机等,这些行为都将产生时空图数据。
参见图1,图1为安全城市的应用场景的示例。如图1所示,人(身份证、信用卡)、旅店和饭店等为图的顶点,每条行为映射成连接两个顶点的一条时空边。时空边包含的时间信息可以反映事件的发生时间。
2、套牌车检测。
交通摄像头记录汽车车牌、自动车牌识别等行为将产生时空图数据。汽车(或者车牌)和交通摄像头构成图的顶点,每条行为映射为时空图的一条时空边,时空边包含的时间信息反映了事件的记录时间。
3、物流跟踪。
快递物流网点、转运站对包裹的记录操作会产生时空图数据。物流网店、包裹为顶点,每条记录操作对应一条时空边,时空边包含的时间信息反映了记录时间。
目前,管理这种数量巨大、动态变化的时空数据面临非常大的挑战。
以安全城市为例来说,现有的信息查询是通过扫描过滤关键字来筛选结果,效率非常差。并且还不能支持关联数据分析。
再以套牌车检测为例来说,现有方法主要分为两类:(1)信息匹配。对数据库中读取的汽车信息(例如,汽车的图片)进行特征匹配。这类方法可能会提供不准确的结果。例如,当套牌车和数据中注册的车为同一个型号时,套牌车将无法被识别出。(2)采样并进行数据分析。一种方式是通过设立监测点,提取出短时间内的数据,并比较相邻监测点的最短旅行时间是否超出阈值。另一种方式是分析相邻时间内的运行轨迹是否符合可行路线(例如,没有经过某一必经的中间点)。但是,这两种方式都存在很大的局限性。前一种方式无法判断距离较远的两个地区的套牌车和原则。后一种方式严重依赖于实际的道路设计情况以及驾驶路线。一旦道路信息有缺失或者是未及时更新,原车将会有很大的概率被判别为真实车。
再以物流跟踪为例,目前,物流公司基本都是将物流相关的信息存入关系型数据库实现增加、删除以及修改等操作。虽然,关系型数据库提供可靠且丰富的数据分析,但是大数据处理能力和时空查询性能都是受限的。
有鉴于此,本申请提供一种管理时空数据的方法。
在本申请中,基于时空数据提取出顶点的概念,这些顶点有的包含位置信息,称为位置顶点。不包含位置信息的顶点称为对象顶点。例如,在安全城市应用的场景下,人(身份证、信用卡)为对象顶点,旅店、饭店、高铁站和机场等为位置顶点。在套牌车检测的场景下,汽车为对象顶点,安装在不同位置的交通摄像头为位置顶点。在物流跟踪的应用场景下,包裹为对象顶点,快递物流网点和转运站为位置顶点。一条时空数据代表一次事件,构成连接相关顶点之间的时空边,时空边包含时间信息,时间信息表示事件的发生时间。
时空数据可以用二分图模型(bipartite graph)表达G=(VL,VO,E),其中,VL为位置顶点的集合,VO为对象顶点的集合,E是时空边的集合。每条时空边可以表示为e,e=(obj,time,loc),其中,obj表示对象顶点,loc表示位置顶点,time表示事件的发生时间。也就是说,每一条时空边连接一个位置顶点和一个对象顶点,并且包含时间属性,用于表示特定对象在特定位置以及特定位置发生的事件。基于二分图模型呈现的时空图可以直接反映数据在时间和空间上的关联关系。
进一步地,基于上述二分图模型,本申请提供了对基于二分图模型表达的时空数据的管理方法,主要涉及以下几个方面:
(1)时空数据的划分。
根据时空数据的特性,本申请对时空图的对象顶点、位置顶点和时空边采用差异化的划分方案。
具体地,在一个实施例中,对象顶点被分配到全部的工作节点,全部的位置顶点发送给每一个工作节点(下文会作详细说明),时空边采用多组合维度划分,每个组合维度都得到一个备份。
需要说明的是,本申请中的组合维度是指两个或两个以上的维度组合而成的维度。例如,将空间维度和时间维度组合,得到空间时间维度(或者,记作空间-时间维度)。采用空间-时间维度对时空边划分,是指先将时空边按照空间维度划分(即根据时空边对应的位置顶点所在区域将时空边划分至不同的区域组),然后再将每个区域组内的时空边按照时间维度划分为更小的分组,比如将事件发生时间落入同一设定时间区间的时空边划分为同一组。类似地,也可以将对象维度和时间维度组合,得到对象时间维度(也即,对象-时间维度)。采用空间-时间维度对时空边划分,是指将时空边先按照对象维度进行划分,每个对象维度分组包含一组对象顶点的所有时空边,每个对象维度分组内包含的时空边又按照时间维度划分为更小的分组。
在一个实施例中,将空间-时间维度称为第一组合维度,将对象-时间维度称为第二组合维度。
例如,按照空间-时间维度对时空边进行划分,即为先按照空间维度将时空边划分到空间范围的某个区域(region),在区域内部再按照时间维度进行划分。又例如,按照对象-时间维度对时空边进行划分,可以是先按照对象维度,将时空边划分到对应的组,在一个组内部再按照时间维度进行划分。关于按照不同的组合维度对时空边进行划分,下文会作详细说明。
另外,本申请实施例中仅以第一组合维度和第二组合维度是对空间维度、时间维度、对象维度中的两个维度的组合作为示例,本申请不限定为了查询效率的目的,而增加其它的维度,以和空间维度、时间维度和对象维度进行组合,得到其它的组合维度。
并且,本申请中也不限定组合维度必须为两个维度的组合,也可以是两个以上的维度的组合。此外,也不限定第一组合维度和第二组合维度由不同个数的维度组合而成。例如,第一组合维度由2个维度组合而成,第二组合维度由3个维度组合而成等。
这样的划分方案,可以准确有效地选择出和时空图关联分析相关的数据,减少所需读取和处理的数据量,并减少跨工作节点通信的开销,均衡工作节点的负载,提高时空数据的查询性能。
(2)时空数据的存储。
类似地,对象顶点、位置顶点和时空边采用差异化的存储方案。
具体地,系统运行时将对象顶点和位置顶点存入分布式数据存储系统(例如,分布式数据库,分布式键值对系统),同时位置顶点在系统初始化阶段被读取并缓存在内存中,时空边采用列式存储以及压缩存储的存储方案。
这样的存储方案,在节省磁盘存储开销的同时可以提高时空数据查询的性能。
(3)时空图的时空边的注入。
时空图的新时空边的流入采用动态分布算法。具体地,按周期接收新时空边的注入,N轮周期的新时空边缓冲后随机发送给各个工作节点,在充分利用网络带宽的同时避免热点机器。
时空图的新时空边的流入过程完成图划分,可以解决分布式环境下时空图的新时空边快速注入和划分的问题。
(4)时空图的关联分析。
针对时空图的关联分析,选择不同维度进行时空边读取以及处理。在关联分析的过程中,利用时空图的特性快速过滤不满足条件的数据。
下面结合图2介绍适用于本申请的技术方案的系统架构。
参见图2,图2为适用于本申请实施例的系统架构的一个示例。如图2所示,系统包括一个协调节点(coordinator)和多个工作节点(worker)。工作节点也可称为工作机器。系统由多台服务器节点通过数据中心网络(data center network)连接而成。所谓数据中心网络,是指网络的时延和带宽远优于广域网。例如,万兆以太网已经广泛应用于数据中心。
下面结合图3,分别对协调节点和工作节点作详细说明。
图3的(a)和(b)分别为运行在协调节点和机器节点上的软件模块的示意图。
1、协调节点。
参见图3的(a),图3的(a)为协调节点的示意图。协调节点上运行3个模块,分别为元数据管理模块,周期同步控制模块和负载均衡控制模块。
其中,元数据管理模块负责记录时空图划分的元数据,包括每个时空图划分有关的空间到工作节点的映射表以及对象到工作节点的映射表,周期同步控制所需的信息以及负载均衡监控所需的信息。周期同步控制模块负责协调多个工作节点完成时空数据的注入、划分和分布的操作。这些操作是一轮一轮地按照周期进行的。负载均衡监控模块动态实时地监控时空数据的流入、工作节点上的注入存储(ingest store)模块的数据处理、工作节点上的图存储(graph store)模块的数据存储以及ingest store和graph store之间数据传输的速率。当发现差异值超过预先设定的阈值,系统将调整数据的流入速度。
这里,工作节点上的ingest store和graph store会在下文介绍。
需要说明的是,本申请实施例中所述的目标工作节点是相对于一个工作节点而言的。如果一个工作节点完成图划分之后,有一些时空数据分配到其它工作节点,这些其它工作节点相对于这个工作节点而言,称之为目标工作节点。
另外,时空图划分和工作节点的对应关系用于指示完成图划分之后的时空数据和需要存储这些时空数据的工作节点之间的对应关系。
2、工作节点。
参见图3的(b),图3的(b)为工作节点的示意图。工作节点上运行2个模块:注入存储(ingest store)模块和图存储(graph store)模块。其中,ingest store负责缓存高速注入的时空数据,对注入的时空数据完成图划分,并把注入的时空数据发送到经过图划分后确定的需要存储的工作节点。graph store负责接收和存储ingest store划分后的数据,并且支持时空图的关联分析运算。
可选地,graph store接收ingest store划分后的数据可以是通过pull模式拉取数据,或者可以是ingest store通过push模式向graph store推送数据。
在每一个周期中,工作节点上的注入存储ingest store中的一组多维缓冲区存储本周期中流入并划分好的时空数据,同时支持另一组缓冲区中的在上个周期中处理好的时空数据向目标工作节点进行分发。
参见图4,图4为本申请的工作节点的结构示意图。根据图4,工作节点的注入存储模块包括:
(1)注入缓冲区(ingestion buffer)。
在一个实施例中,ingest store包括一个用于缓冲新注入的时空数据的缓冲区(如图4中所示的注入缓冲区)。这个缓冲区可以作为图划分模块的数据输入源。
(2)图划分模块。
图划分模块从注入缓冲区获取新注入的时空数据,并进行图划分。划分结果放入多维度双缓冲区。
应理解,本申请所说的多维度指的是多个组合维度。关于组合维度的说明参见上文。
(3)多维度双缓冲区。
这里,多维度双缓冲区包含了“多维度”和“双缓冲区”两层含义。
其中,多维度是指针对不同维度分别维护缓冲区。在本申请实施例中,分别为空间-时间维度和对象-时间维度(也即,两个维度)维护不同的缓冲区。其中,空间-时间维度对应的缓冲区缓存有按照空间-时间维度划分时空边后得到的数据(时空边数据备份);对象-时间维度对应的缓冲区缓存有按照对象-时间维度划分时空边后得到的数据(时空边数据备份)。每个维度的缓冲区中为每个目标工作节点都保留了一个缓冲片,用于暂存该维度的将要发送给目标工作节点的划分后的数据。
可选地,也可以针对更多的组合维度设计缓冲区,不限于本文中所述的两个组合维度,本申请对此不作限定。
此外,每个维度的缓冲区有两组,也即每个维度采用双缓冲区机制。
如上文所述,注入的时空数据的划分、分布是按照周期进行的。在每个周期中,工作节点接收和划分新注入的时空数据,同时并行地将上个周期已经完成划分的数据分发到目标工作节点上完成存储。因此,每个维度的一组缓冲区中存储有上个周期已经完成划分的数据,并支持在当前周期将这些已经完成划分的数据分发到相应的工作节点,另一组缓冲区缓冲本周期新注入的完成划分之后的时空数据。
本申请实施例中,为了描述上的清楚,将每个组合维度对应的多个缓冲区中存储有上个周期已经完成划分的时空边的缓冲区称为第一缓冲区。将每个组合维度对应的多个缓冲区中缓冲有本周期新注入的完成划分的时空边的缓冲区称为第二缓冲区。
可替换地,第一组合维度的第一缓冲区也称为第一组合维度对应的第一缓冲区,第一组合维度的第二缓冲区也称为第一组合维度对应的第二缓冲区。第二组合维度的第一缓冲区也称为第二组合维度对应的第一缓冲区,第二组合维度的第二缓冲区也称为第二组合维度对应的第二缓冲区。
需要理解的是,每个组合维度的第一缓冲区和第二缓冲区并不限定其功能上的区别,仅仅是为了描述相邻两个周期之间时空数据的划分、存储以及分发的过程而定义的。实际上,每个组合维度对应的第一缓冲区和第二缓冲区构成环形缓冲区。并且,两个缓冲区的设计是为了周期管理,与此同时提高数据注入(体现在数据流入、ingest store划分、graphstore存储、ingest store和graph store数据传输整个过程)的吞吐率。
还应理解,系统中的每个工作节点(例如,第一工作节点)上都具有第一组合维度对应的第一缓冲区和第一组合维度对应的第二缓冲区,以及,第二组合维度对应的第一缓冲区和第二组合维度对应的第二缓冲区,本文仅是以第一工作节点为例进行说明。
在本申请实施例中,每个周期新注入的时空数据认为只包括时空边。
另外,在图4中所示的ingest store中的注入缓冲区用虚线框示出,表示该缓冲区是可选的模块。在一种实现中,ingest store中可以仅包括图划分模块和多维度双缓冲区。在ingest store中设计注入缓冲区可以提高时空数据注入的速度。
在graph store中,包含数据存取模块、用户查询接口模块和查询处理模块。
(1)数据存取模块。
数据存取模块接收ingest store发送过来的时空数据,存储到数据存储系统,如数据库(DB)中。
进一步地,数据存取模块可以包括行列格式转换模块和数据压缩/解压模块。行列格式转换模块用于对数据进行行列格式转换。数据压缩/解压模块用于对数据进行压缩或解压缩处理。
应理解,数据存取模块向数据存储系统中存入数据时,对数据执行的是压缩处理。数据存取模块从数据存储系统中读出数据时,对数据执行的是解压处理。
在存取数据的过程中,数据存取模块进行数据的行列格式转换和压缩/解压处理,从而减少存储在数据存储系统中的数据量。
后续,在进行时空数据查询时,数据存取模块根据查询处理模块的调用要求,从数据存储系统中读取数据。
(2)用户查询接口模块。
用户查询接口模块接收用户输入的时空图关联分析查询运算请求,用户查询接口模块协调分布式系统中的多个工作节点完成相应的运算,收集运算结果,并将运算结果返回给用户。
(3)查询处理模块。
查询处理模块根据分布式查询控制模块的调用要求,调用数据存取模块完成数据读取,并进一步完成查询相关的运算。其中,针对时空维度和对象维度的计算和处理的方法不同。
在一个实施例中,图4中的数据存储系统(例如,数据库)表示任何可以提供数据存储功能的数据存储系统,例如,键值对(key-value)系统、关系型数据库等。
可以理解的是,图4中所示的组件模块或组件,可以是软件实现,也可以是硬件实现,也可以是由软件和硬件结合实现。例如,注入缓冲区、多维度双缓冲区、位置顶点内存缓冲为存储器之类的硬件;图划分模块、数据存取模块、用户查询接口模块、查询处理模块为软件模块,通过计算机程序实现,这些程序被处理器执行时实现相应的功能。
下面给出本申请提供的时空数据的划分、存储以及查询流程。
参见图5,图5是时空数据的划分、存储和查询的流程示意图。
301、时空图的对象顶点和位置顶点划分。
本申请旨在支持百亿个对象顶点和千万个位置顶点,针对对象顶点和位置顶点采用不同的划分策略。
应理解,流入系统的时空数据涉及的对象顶点和位置顶点的相关信息是已知的。考虑到全部的对象顶点的数据量较大,因而本申请中将全部的对象顶点划分到所有的工作节点。
而全部的位置顶点由于数据量较小,千万个位置顶点的数据量可能小于1GB,因而本申请中将全部的位置顶点都拷贝到每个工作节点上,即每个工作节点上都存储一份所有的位置顶点。
302、对象顶点和位置顶点的存储。
考虑到不同类型的顶点的数据特性以及划分策略,时空图的顶点存储也分别采用不同的存储方案。如上文所述,系统运行时,对象顶点和位置顶点都存储在数据存储系统,如分布式数据库中,同时位置顶点在系统初始化时被读取并缓存在内存中。
从而,各个工作节点可以快速地在内存中访问位置顶点的相关信息(例如,经纬度坐标),减少了外存访问开销和跨机器网络通信的开销,提高了系统的计算性能。
303、时空边的流入、划分和分布。
本申请旨在支持百万亿条时空边,并且支持高效的时空关联分析运算。对于接收到的时空边,工作节点调用图划分模块进行划分。
本文中以时空边的划分采用两个组合维度作为示例进行说明,还可以采用更多组合维度,本申请对此不作限定。
(1)对象-时间维度划分。
先按照对象维度进行划分,每个对象维度划分包含一组对象顶点的所有时空边,每个对象维度划分被协调节点分配到一个工作节点上。在一个对象维度划分的内部,时空边又按照时间维度划分为小块进行存储。这里,时间维度可以是时间片。
(2)空间-时间维度划分。
先按照空间维度进行划分,每个空间维度划分对应一个空间区域,包含该空间区域的所有时空边,每个空间维度划分被协调节点分配到一个工作节点上。在一个空间维度划分的内部,时空边又按照时间维度划分为小块进行存储。
可选地,在一个实施例中,工作节点是根据从协调节点获取的映射表对空间-时间维度进行划分的,其中,映射表中记录了区域(也即,空间区域)和工作节点之间的映射关系。具体地,协调节点对空间维度划分进行Z-code编码,对于每个空间维度划分,统计其中位置顶点的数量作为该空间维度划分的权重。然后,协调节点在将空间维度划分分配到工作节点时,将相邻的Z-code空间维度划分分配到一个工作节点上。并且,使分配到每个工作节点上的划分权重大致相同,可以避免数据倾斜,同时起到均衡负载的作用。
304、时空边的存储。
步骤304涉及到图4中所示的工作节点上的graph store。步骤304的输入数据是步骤303完成分布得到的划分数据。在步骤304中,工作节点上的graph store通过调用数据存取模块对不同划分策略(对象-时间维度、空间-时间维度)的数据分别存入数据存储系统。
具体过程可以为:首先调用行列格式转换模块将输入数据以时间片为单元,按照不同的数据域(例如,对象顶点ID,位置顶点ID,时间戳)进行行列格式转换。然后,调用数据压缩/解压模块对各个数据域转换后的数据分别进行压缩。最后,将各个数据域压缩后的数据存入数据存储系统。
采用列式压缩存储的方式,可以节省磁盘的存储空间。
在一种可能的实现中,数据存储系统具体可以为键值(key-value)对系统。其中,key可以包括多个部分,所述多个部分至少包括工作节点标识(identifier,ID)、时空边的划分方式的标识,时空边的划分方式的内部标识(以下简称为内部标识)以及时间片。参见表1所示。
表1
worker ID 时空边的划分方式ID 内部ID 时间片
其中,表1中,worker ID是指目标worker的ID。时空边的划分方式ID是指划分时空边所采用的组合维度的方式,例如,如果采用第一组合维度(即,上文所述的空间-时间维度)进行划分,时空边的划分方式ID记作A,如果采用第二组合维度(即,上文所述的对象-时间维度)进行划分,时空边的划分方式ID记作B。也即,时空边的划分方式包括第一组合维度的划分和第二组合维度的划分。
对于第一组合维度的划分方式,划分方式的内部ID为区域ID(也即,region ID),对于第二组合维度的划分方式,划分方式的内部ID为组ID(也即,slot ID)。关于region和slot下文会作介绍。
时间片可以表达为floor(timestamp/TRU),其中,floor表示向下取整,TRU表示时间片的长度。另外,value部分,可以针对不同的数据域分别定义一个表格(table),从而进行列式存储。
例如,针对对象顶点ID、位置顶点ID以及时间戳分别定义3个表格,如表2-表4所示。
表2
value object ID
同一个key的时空边压缩存储
表3
value timestamp
同一个key的时空边压缩存储
表4
value location ID
同一个key的时空边压缩存储
这种对时空边进行列式压缩存储的方法,在很大程度上可以节省磁盘空间。
需要说明的是,本申请实施中,时空边的划分以及存储是以时间片为单位的。
305、时空关联分析查询。
步骤305涉及到图4所示的工作节点上的graph store。步骤305可以和步骤301-304同时执行。步骤301-304对新注入的时空数据进行划分、分布和存储,步骤305,在系统已有的时空数据的基础上进行时空关联分析。
具体地,用户查询接口接收用户的时空图关联分析查询请求,协调分布式系统中的多个工作节点完成相应的运算,收集运算结果,并返回给用户。
查询处理模块根据分布式查询控制模块的调用要求,调用数据存取模块完成数据读取,并进一步完成和查询相关的计算。
下面给出本申请的技术方案的几种类型的时空查询的示例。
Q1:踪迹查询。
给定对象顶点标识(object identifier,obj ID)和时间范围,查询所述对象顶点标识对应的对象在所述时间范围内所有的边事件。
应理解,对象顶点标识用于唯一标识一个对象顶点。在时空图中,每个对象顶点对应一个对象,因此,可以认为每个对象顶点标识对应一个对象。
踪迹查询适合采用对象-时间维度划分完成查询处理。
Q2:组行为简单检测。
给定对象顶点标识1(记作objID1)和对象顶点标识2(记作objID2)以及时间范围,找出两者在所述时间范围内的相关行为。
这里,行为的相关性的定义可以为:给定两条边e1,e2。其中,e1=(obj1,time1,loc1),e2=(obj2,time2,loc2),当且仅当如下条件式(1)和(2)同时满足时认为具有相关。
|e1.time1-e2.time2|≤THtime (1)
dist(e1.loc1-e2.loc2)≤THloc (2)
其中,THtime为预先设定的时间差的阈值,THloc为预先设定的空间距离的阈值。
在一种实现方式中,Q2可以分解为两个踪迹查询,先读取obj1和obj2的踪迹,然后完成相关性的计算。
应理解,obj1和obj2分别代表objID1和objID2对应的对象。
Q3:组行为复杂检测。
给定对象顶点标识3(记作objID3)和时间范围,查询和objID3对应的对象有关的所有对象,并输出查询结果。也即,查询和obj3有关的全部对象。
可选地,查询结果按照相关性从高到低输出。相关性的定义可以参见Q2中的说明。
对于Q3,先通过对象-时间维度划分完成对objID踪迹的查询,提取踪迹中所有的位置顶点标识(也即,locID)。然后,采用空间-时间维度划分,同时处理这些位置顶点,找到时间和空间满足阈值条件的所有时空边。同时,在每个工作节点上对满足条件的时空边的对象顶点进行统计。最后,将统计信息进行汇总,就可以得到所有和objID3相关的对象及其相关性度量。
Q4:速度检测。
给定时间范围和速度阈值。查询所有速度超过阈值的异常情况,即套牌车。
对于所有的对象顶点,在对象-时间维度划分中,计算对象的速度,检测异常。
应理解,以上4种类型的查询仅是作为示例。根据本申请技术方案的设计思路,针对其它类型的查询,可以按照其它的组合维度进行划分和存储,以提高查询性能,本申请对此不作限定。
下面对本申请提供的技术方案进行举例说明。
参见图6,图6为本申请提供的管理时空数据的系统架构的示例。与图4所示的实施例相比,图6中所示的系统采用键值对(Key-Value)系统作为数据存储系统的一个示例,该Key-Value可以基于开源的分布式键-值存储系统Cassandra作为存储后台。
在图6所示的系统架构下,实现分布式环境下的动态时空数据的管理,具体可以通过如下步骤实现。
401、时空图的对象顶点和位置顶点的划分。
步骤401由worker的图划分模块执行。图划分模块的流程可以参见图7所示。
参见图7,图7为时空图的对象顶点和位置顶点划分流程的一个示例。如图7所示,对于对象顶点,可以借鉴Redis的划分策略,采用随机划分的方法。
这里,Redis是指远程日志服务器(remote dictionary server),属于键-值(key-value)存储系统,详细内容可以参考现有技术,本文不作详述。
可选地,对象顶点的划分可以采用哈希函数进行划分。此时,步骤401中的对象顶点的划分可以包括如下(1)和(2)两个过程。
(1)应用哈希函数将对象ID划分到组。
可选地,这里的“组”可以是指hash函数中的“slot”。
例如,图划分模块根据slot ID=hash(对象顶点ID)进行划分。
可选地,对象顶点ID的划分还可以采用hash函数之外的其它的函数,本申请对此不作限定。
另外,关于hash函数将多个元素映射到若干个slot的过程,可以参考现有技术。
此外,本申请不限定采用哈希函数之外的其它函数对对象顶点进行划分。
(2)将组分配到worker。
例如,根据worker ID=(slot ID%worker数目)进行划分。
对于位置顶点,由于位置顶点数据很小(小于1GB),完全可以存入单机内存,因此将每个位置顶点分给所有的worker。这样可以使每个worker在本地快速地得到所有的位置信息,从而避免机器之间的通信带来的开销。
402、时空图的对象顶点和位置顶点的存储。
步骤402由worker的数据存取模块进行。
参见图8,图8为时空图的对象顶点和位置顶点存储流程的一个示例。如图8所示,顶点数据(包括对象顶点和位置顶点)将被写入数据存储系统。系统运行时,运行在worker上的进程在初始化时从数据存储系统中读取所有的位置顶点并载入内存。假设每个位置顶点100B,千万个位置顶点的存储量共约1GB。可见,位置顶点的数据量是较小的,通过将其存在内存,各个工作节点可以快速地在内存中访问位置顶点的相关信息,减少了外存访问开销,可以提高了系统的计算性能。
403、时空边的流入、动态和分布。
步骤403的详细流程可以参见图9-图11所示。
参见图9,图9为工作节点接收新注入的时空边的流程的一个示例。在图9中,以任意一个工作节点(以下记作第一工作节点)作为示例,来说明工作节点接收新注入的时空边的流程。
新时空边注入系统中之后,第一工作节点对新时空边进行划分,并将划分后的数据存入多维度双缓冲区。关于时空边划分和存入双缓冲区的过程可以参见上文的说明,这里不再赘述。
第一工作节点判断当前周期是否结束。如果当前周期未结束,第一工作节点切换双缓存区,继续接收新注入的数据。如果当前周期结束,第一工作节点通知协调节点当前周期的时空数据可以获取。协调节点在收到所有的工作节点发送的本周期数据完成消息后,通知各个工作节点当前周期的时空数据已经准备好,可以被读取到graph store的数据存储系统中。
这里,双缓冲区即是指上文所述的第一缓冲区和第二缓冲区。
以下将当前周期记作第一周期,将第一周期的下一个周期记作第二周期。
可选地,各工作节点从其它工作节点的graph中读取数据是以周期为单位的。或者说,时空数据的分发是以周期为单位的。
这里,所述周期可以N个时间片,N≥1且为整数。当一个周期定义为一个时间片时,一个周期也可以替换表达为一个时间片,本申请对此不作限定。
在第二周期,每个工作节点产生一个包含所有工作节点的列表,以下将这个列表称之为工作节点列表。工作节点列表中包含的各工作节点的排序(或者说顺序)是随机的。
第一工作节点从工作节点列表中按序读取工作节点i,并判断工作节点i为忙碌或空闲。如果工作节点i忙碌,则第一工作节点将工作节点i加入忙碌列表。之后,第一工作节点重新读取下一个工作节点j,并判断工作节点j忙碌或空闲。
如果工作节点j空闲,第一工作节点从工作节点j上读取第一周期已经划分好并被分配到该第一工作节点的数据。
这里,需要说明是,工作节点j需要将第一周期中已经划分好并存入多个不同组合维度的缓冲区中为第一工作节点保留的缓存片中的时空数据都发送给第一工作节点。
之后,第一工作节点判断是否已经遍历完工作节点列表中的工作节点,如果未遍历完,第一工作节点从工作节点列表中剩余的工作节点中再按序读取一个工作节点,并判断读取的工作节点忙碌或空闲。如此反复,直至将工作节点列表中的工作节点全部遍历完。
如果工作节点判断已经遍历完工作节点列表,则从忙碌列表中按序读取一个工作节点r。工作节点r将第一周期中存入多个不同维度的缓冲区中的为第一工作节点保留的缓存片中的数据发送给第一工作节点。然后,第一工作节点再从忙碌列表中按序读取下一个工作节点s,如此反复,直至忙碌列表中工作节点也全部遍历完。
参见图10,图10为时空边划分流程的一个示例。如图10所示,系统接收新注入的时空边之后,对所述时空边按照空间-时间维度划分。具体地,计算注入的时空边包含的位置坐标(例如,经纬度信息)映射到的网格的Z-code码。网格的Z-code码也称为网格ID(也为region ID),用于在时空图所代表的空间范围内唯一地标识一个网格。
得到所述注入的时空边的网格ID(region ID)之后,查找映射表(或称为映射关系表)。根据映射关系表将所述注入的时空边划分到对应的网格(region)。
需要说明的是,映射表是由协调节点生成并分发给各个worker的。映射表中记录了网格ID(region ID)和工作节点标识(worker ID)之间的映射关系。根据所述注入的时空边的网格ID(region ID),可以确定所述注入的时空边应该分配到的目标工作节点。在所述注入的时空边对应的网格内部(也即,一个region内),将所述注入的时空边再按照时间维度划分,例如,按照时间片进行划分。
在本申请中,在进行空间-时间维度的划分的同时,还需要按照对象-时间维度对新注入的时空数据进行划分。具体地,根据上文所述的划分对象顶点的方法,应用hash函数将所述注入的时空边划分到slot。在slot内,再按照时间维度进行划分。可选地,按照时间片进行划分。
可选地,也可以采用hash函数之外的其它函数对对象顶点进行划分,例如,采用range的方法,本申请不作限定。
另外,应理解,在时空数据不进行备份的情况下,一个slot只会被分配到一个工作节点上。
在两个维度对输入的时空边都划分完成之后,时空边的划分流程结束。
需要说明的是,这里所说的映射关系表是由协调节点创建并分发给各个工作节点的。映射关系表主要用于协调节点对空间划分进行负载均衡。下面结合图11说明映射关系表的创建。
参见图11,图11为协调节点对空间划分进行负载均衡分布控制的一个示例。
协调节点将全部的空间范围划分为长和宽大小一致的多个网格,每个网格称为一个区域(region)。这里,空间范围代表了时空图的大小。空间范围可以是一个城市,一个县、或一个地区等,也可以是更大范围的空间范围,例如中国。统计每个region所覆盖的空间范围内的位置顶点的数量,将其作为这个region的权重。然后,对每个region进行Z-code编码,得到每个region的region ID。按照region的编码顺序,将所述空间范围内的全部region划分为和系统中包含的全部工作节点(也即worker)数量相等的区域块(block)。例如,全部的空间范围划分为1000个region,所述空间范围内共设置有100个worker,则将所述1000个region划分为100个区域块。在每个区域块中包含的region的权重相等的情况下,每个区域块包含10个region。最后,将这个区域块分配给全部的工作节点,从而建立region和worker的映射关系表。
可以理解的是,region和block之间有对应关系,将block分配给worker之后,也就建立了region和worker之间的映射关系。
可选地,映射表中存储了region ID和worker ID之间的映射关系。
404、时空边的存储。
步骤404在worker的数据存取模块执行,实施流程可以如图12所示。
参见图12,图12为存储时空边的示意性流程图。如图12所示,worker以周期为单位获取注入系统的行数据。图12中,以时间片为周期。对各个数据域,收集空间时间维度(也即空间-时间维度)划分的同一个时间片的数据,并转换为字节数据。对各个数据域,收集对象时间维度(也即对象-时间维度)划分的同一个时间片的数据,并转换为字节数据。采用压缩算法对各个数据域的字节数据分别进行压缩,得到压缩数据。可选地,这里的压缩算法可以为LZ4算法。
空间-时间维度的压缩数据存入键值对系统的键空间1(keyspace1),不同的数据域的压缩数据存成不同的列族,也即column family(table)。对象-时间维度的压缩数据存入键值对系统的键空间2(keyspace2),不同的数据域的压缩数据存成不同的columnfamily(table)。
405、时空查询处理。
步骤405在worker的查询处理模块执行,实施流程如图13所示。
参见图13,图13为工作节点处理时空查询请求的示意性流程图。用户查询接口接收用户输入的时空关联查询分析运算请求,转换为查询语句发送给查询处理模块。查询处理模块选择按照对象-时间维度存储的数据,或者选择按照空间-时间维度存储的数据进行查询计算,并输出查询结果。
下面给出采用本申请提供的管理时空数据的方法和现有技术的效果对比。
本文以部署11台服务器(其中,1台master和10台slaves)的分布式环境下的测量结果为例对获得的技术效果进行说明。这里,11台服务器均为dell power edge服务器(也称刀片式服务器)。刀片式服务器包含2个中央处理单元(central process unit,CPU)。其中,CPU的型号为inter(R)Xeon(R)E52650v32.30GHz,共包含10个核,25600KB缓存(cache),128GB内存,1TB硬盘,180GB固态硬盘。
参见表5,表5为采用本申请的技术方案和现有系统的时空数据存储相关的衡量指标的对比。
表5
Figure BDA0002020527800000171
Figure BDA0002020527800000181
根据表5可以看出,在相同的分布式运行环境下,注入相同数据量的时空数据:
(1)分布式键-值数据库Cassandra,数据备份策略为3备份,最终占用磁盘空间3.2TB,每台机器平均每秒注入4.55万条新数据。
(2)分布式图数据库JanusGraph,数据备份策略为1备份,最终占用磁盘空间3.6TB,每台机器平均每秒注入8.644万条新数据。
(3)MPP关系型数据库Greenplum,数据备份策略为2备份,最终占用磁盘空间2.8TB,每台机器平均每秒注入18.67万条新数据。
这里,MPP表示大规模并行处理(massively parallel processor)。
(4)本申请的技术方案,数据备份策略为3备份(其中,对象-时间维度为1备份,空间-时间维度为2备份),最终占用磁盘空间为1.9TB,每台机器平均每秒注入100万条新数据。
另外,原始数据的二进制字节数据(也即,直接将原始记录转换为字节存储)占用1.3TB的磁盘空间。
在采用相同的数据备份数目的情况下,根据表5可计算得到:
(1)注入的原始二进制数据磁盘空间占用量是本申请实施例的2.1倍。
(2)注入Cassandra的磁盘空间占用量是本申请实施例的1.7倍。
(3)注入JanusGraph的磁盘空间占用量是本申请实施例的5.7倍。
(4)注入Greenplum的磁盘空间占用量是本申请实施例的2.2倍。
图14反映了在工作节点从1台扩展到10台的情况下,系统(所有工作节点)平均每秒注入的数据量。。在图14中,横坐标表示机器节点的个数,纵坐标表示平均1秒注入的记录的条数(单位:百万条)。一条数据占24个字节。根据图14可知,本申请技术方案具有很高的扩展性,随着工作节点的增加,数据注入量基本呈线性增加。每台机器平均每秒注入的数据量高达一百万条,共计24MB。在磁盘空间允许的情况下,只需要11台worker便可以达到每天注入1亿万条新的时空图的边的目标。
参见图15,图15为时空边划分分布效果的效果示意图。在图15中,横坐标表示数据量(GB),纵坐标为机器节点序列号。图15中示出了按照对象-时间维度划分时空数据的存储量(数据为一备份),以及按照空间-时间维度划分时空数据的存储量(数据为二备份)。从图15中所示的仿真效果来看,各个机器节点基本达到了负载均衡。
参见图16,图16为查询处理性能的对比图。如图16所示,JanusGraph对本申请上文中定义的4类查询中的Q3、Q4支持不友好,故而图16中没有JanusGraph示出对Q3和Q4这两类查询的结果。而JanusGraph底层存储平台为Cassandra,所以Q3和Q4这两类查询结果可以参考Spark+Cassandra。
从图16可以看出,本申请的技术方案对Q1-Q4的查询性能比现有技术的查询性能提高1~4个数量级。
Cassandra+Spark的性能瓶颈在于每次查询时都需要从磁盘读取并扫描全部的数据。JanusGraph采用图存储模型,故而针对以对象顶点为目标的查询(Q1、Q2)表现较好。但是,因其没有对时间维度进行优化,所以查询性能比本申请的方案差。
Greenplum应用了数据对象和时间两维度划分的划分策略,因而相比Cassandra+Spark减少了扫描操作的开销,性能明显提升。但是受到Greenplum划分粒度的限制(对象、时间维度的partition数目有限),以及Greenplum没有对空间维度优化,因此Greenplum的查询性能比PAST差。
从以上的对比结果可以看出,本申请与现有方案的不同之处在于:基于时空图特性,采用差异化的划分方法,有效地支持高速注入的时空数据,可以比较准确地读取时空关联分析查询相关的数据,减少了读取的数据量,减少跨机器节点的数据传输,从而获得较高的运算效率。
另外,边划分和备份相结合,通过对象-时间维度和空间-时间维度这两种维度的划分和存储来实现高效的基于对象维度、时间维度、空间维度的数据读取,可以加速查询。
考虑到本申请提供的管理时空数据的系统和现有的数据库系统的融合,可选地,本申请还提供另一种管理时空数据的系统,如图17所示。
参见图17,图17为本申请提供的管理时空数据的系统架构的另一个示例。图17所示的系统架构可以在现有的分布式数据库系统上支持PAST(partition forspationtemporal graphs)图划分、存储和运算。
在图17中,完整的顶点信息和边信息存储在关系型数据库中。PAST index中只存储时空边的对象顶点标识、位置顶点标识和时间信息。时空边事件的其它更丰富的信息仅存储在关系型数据库中,不存储在PAST index中。因此,在这种架构中,PAST index可以认为是关系型数据库的辅助索引结构,用来加速时空关系分析查询处理。
在图17中,关系型数据库系统出现在两个地方。一方面,在每个worker节点中有数据库(database)组件,该database组件即是分布式关系型数据库系统在当前worker节点上运行的模块,用来存储完成的顶点数据和时空边数据。另一方面,在past index中,经过行列格式转换和压缩的划分数据也将存储在关系型数据库中。
此外,协调节点的功能和图6中所示架构中的协调节点的功能相同。工作节点上的ingestor的功能和图6中所示的工作节点上的注入存储模块的功能也相同。past index采用本申请的技术方案构建的对象-时间维度和空间-时间维度索引,索引数据存储在database中。database可以为关系型数据库,实现以磁盘为介质存储时空数据和索引数据。
在图17所示的架构中,新的时空数据的注入过程和图6中类似,不同之处在于,存储数据时,原生数据(也即,实际流入系统的时空数据)直接存入关系型数据库,在这个过程中根据上文实施例中所述的时空数据划分和存储的方法创建past index。past index对应的每条数据都将存储对应的原生数据的标识,根据原生数据的标识可以从关系型数据库中读取该原生数据的详细信息。
其中,PAST index可以包括上文所述的空间-时间维度和对象-时间维度。
此外,本申请提出的技术方案可以应用在广义的时空图领域,例如,数据挖掘、推荐系统方向等。
以上对本申请提供的管理时空数据的方法作了详细说明。下面对本申请提供的管理时空数据的装置进行说明。
参见图18,图18为本申请提供的管理时空数据的装置500的示意性框图。装置500包括收发单元510,处理单元520和存储单元530。
收发单元510,用于接收包含时间信息和空间信息的时空数据,其中,所述时空数据通过时空图(VL,VO,E)表示,其中,VL是包含位置信息的多个位置顶点,VO是不包含位置信息的多个对象顶点,E是连接顶点之间的多个时空边;
处理单元520,用于将多个时空边按照第一组合维度划分,以得到所述多个时空边的第一备份,将所述多个时空边按照第二组合维度划分,得到所述多个时空边的第二备份,其中,第一组合维度和第二组合维度分别由空间维度、对象维度和时间维度中的至少两个维度组合而成;
存储单元530,用于将第一备份存入第一组合维度对应的第一缓冲区,将第二备份存入第二组合维度对应的第一缓冲区。
在一种实现方式中,收发单元510也可以由接收单元和/或发送单元代替。
例如,收发单元510在执行接收的步骤时,可以由接收单元代替。收发单元510在执行发送的步骤时,可以由发送单元代替。
可选地,收发单元510可以是收发器,收发器具有发送和/或接收的功能,收发器也可以由接收器和/或发射器代替。
可选地,收发单元510可以为通信接口。具体地,通信接口可以包括输入输出接口或者收发电路。输入输出接口可以包括输入接口和输出接口。收发电路可以包括输入接口电路和输出接口电路。
可选地,处理单元520可以是处理器。
或者,处理单元520可以是一个处理装置,处理装置的功能可以部分或全部通过软件实现。
在一种实现方式中,处理装置的功能可以部分或全部通过软件实现。此时,处理装置可以包括存储器和处理器,其中,存储器用于存储计算机程序,处理器读取并执行存储器中存储的计算机程序,以执行各方法实施例中由第一工作节点内部实现的步骤。例如,执行上文描述的由处理单元510执行的操作和/或处理。
在另一种实现方式中,处理装置可以仅包括处理器。用于存储计算机程序的存储器位于处理装置之外,处理器通过电路/电线与存储器连接,以读取并执行存储器中存储的计算机程序。
在另一种实现方式中,处理装置的功能可以部分或全部通过硬件实现。此时,处理装置包括:输入接口电路,用于接收注入的多个时空边;逻辑电路,用于对接收到的所述多个时空边按照第一组合维度和第二组合维度进行划分,分别得到所述多个时空边的第一备份和第二备份;输出接口电路,用于输出所述多个时空边的第一备份和第二备份。
进一步可选地,输出接口电路可以将所述多个时空边的第一备份和第二备份传输至存储单元530,由存储单元530进行缓存。
可选地,存储单元530可以为存储器。
这里,装置500可以和方法实施例中的第一工作节点(或者说系统中的任意一个worker)完全对应。装置500包含的相应单元分别用于执行各方法实施例中的由第一工作节点执行的相应操作和/或处理,具体可以参见方法实施例的说明,为了避免赘述,这里适当省略。
参见图19,图18为本申请提供的管理时空数据的装置600的示意性框图。装置600包括处理单元610和存储单元620。
处理单元610,用于将预设的空间范围划分为多个区域,并根据所述多个区域中每个区域覆盖的时空图的位置顶点的数目,确定每个区域的权重,并根据所述每个区域的权重,建立所述多个区域和所述多个工作节点的映射表。其中,映射表中记录有区域标识和工作节点标识之间的映射关系,每个区域标识用于唯一标识一个空间区域,每个工作节点标识用于唯一标识系统中包含的所述多个工作节点中的一个工作节点。
存储单元620,用于存储所述映射关系表。
可选地,处理单元610可以是处理器。
或者,处理单元610可以是一个处理装置,处理装置的功能可以部分或全部通过软件实现。
在一种实现方式中,处理装置的功能可以部分或全部通过软件实现。此时,处理装置可以包括存储器和处理器,其中,存储器用于存储计算机程序,处理器读取并执行存储器中存储的计算机程序,以执行各方法实施例中由协调节点内部实现的步骤。例如,执行上文描述的由处理单元610执行的操作和/或处理。
在另一种实现方式中,处理装置可以仅包括处理器。用于存储计算机程序的存储器位于处理装置之外,处理器通过电路/电线与存储器连接,以读取并执行存储器中存储的计算机程序。
在另一种实现方式中,处理装置的功能可以部分或全部通过硬件实现。此时,处理装置包括:输入接口电路,用于获取预设的空间范围;逻辑电路,用于将预设的空间范围划分为多个区域,并根据所述多个区域中每个区域覆盖的时空图的位置顶点的数目,确定每个区域的权重,并根据每个区域的权重,建立所述多个区域和所述多个工作节点的映射表;输出接口电路,用于输出所述映射表。
进一步可选地,输出接口电路可以将所述映射表传输至存储单元620,由存储单元620保存。
可选地,存储单元620可以为存储器。
可选地,装置600还可以包括收发单元630。收发单元630可以为通信接口,例如,输入输出接口,输入输出电路或者收发器等。
这里,装置600可以和方法实施例中的协调节点完全对应。装置600包含的相应单元分别用于执行各方法实施例中的由协调节点执行的相应操作和/或处理,具体可以参见方法实施例的说明,为了避免赘述,这里适当省略。
可选地,本申请涉及的处理装置可以是一个或多个芯片,或一个或多个集成电路。
例如,处理装置可以是一个或多个现场可编程门阵列(field-programmable gatearray,FPGA)、专用集成芯片(application specific integrated circuit,ASIC)、系统芯片(system on chip,SoC)、中央处理器(central processor unit,CPU)、网络处理器(network processor,NP)、数字信号处理电路(digital signal processor,DSP)、微控制器(micro controller unit,MCU),可编程控制器(programmable logic device,PLD)或其它集成芯片,或者上述芯片或者处理器的任意组合等。
此外,本申请还提供一种网络设备1000。参见图20,图20为本申请提供的网络设备的示意性结构图。方法实施例中的第一工作节点或协调节点可以具有如图20中所示的结构。
如图20所示,网络设备1000包括天线1101、射频装置1102、基带装置1103。天线1101与射频装置1102连接。基带装置1103可以包括一个或多个处理单元11031。此外,基带装置1103还可以包括一个或多个存储单元1103以及一个或多个通信接口11033。其中,存储单元11032用于存储程序和数据。通信接口11033用于与射频装置1102交互信息。通信接口11033可以为输入输出接口或者输入输出电路。
可选地,网络设备1000对应方法实施例中的第一工作节点,或者说,网络设备1000具有方法实施例中第一工作节点的功能。
在一种可能的实现中,基带装置1103生成需要发送给协调节点或系统中的其它工作节点的消息和/或数据,并发送给射频装置1102,由射频装置1102通过天线1101将这些消息和/或数据发射出去。
在另一种可能的实现中,射频装置1102经过天线1101接收协调节点或者其它工作节点发送给第一工作节点的消息和/或数据,并发送给基带装置1103处理。
此时,网络设备1000可以与方法实施例中的第一工作节点完全对应,网络设备1000包含的相应单元用于执行方法实施例中由第一工作节点执行的相应处理和/或操作。
例如,射频装置1102执行图18中所示的由收发单元510执行的操作和/或处理。基带装置1103执行图18中所示的由处理单元520执行的操作和/或处理。这里不再赘述。
可选地,以网络设备1000对应方法实施例中的协调节点为例。
在一种可能的实现中,基带装置1103生成需要发送给工作节点的消息和/或数据,并发送给射频装置1102,由射频装置1102通过天线1101将这些消息和/或数据发射出去。
在另一种可能的实现中,射频装置1102经过天线1101接收工作节点发送的消息和/或数据,并发送给基带装置1103处理。
此时,网络设备1000可以与方法实施例中的协调节点完全对应,网络设备1000包含的相应单元用于执行方法实施例中由协调节点执行的相应处理和/或操作。
例如,基带装置1103执行图19中所示的由处理单元610执行的操作和/或处理,或者存储单元620执行的操作和/或处理。射频装置1102执行由收发单元630执行的操作和/或处理。这里不再赘述。
此外,本申请还提供一种通信系统,包括第一工作节点和协调节点。进一步地,通信系统中通常还包括除了第一工作节点之外的一个或多个其它工作节点。
这里,其它工作节点的功能和第一工作节点完全相同。
本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被计算机执行时,使得计算机执行任一方法实施例中由第一工作节点执行的操作和/或处理。
本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被计算机执行时,使得计算机执行任一方法实施例中由协调节点执行的操作和/或处理。
本申请还提供一种计算机程序产品,所述计算机程序产品包括计算机程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行任一方法实施例中由第一工作节点执行的操作和/或处理。
本申请还提供一种计算机程序产品,所述计算机程序产品包括计算机程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行任一方法实施例中由协调节点执行的操作和/或处理。
本申请还提供一种芯片,所述芯片包括处理器。用于存储计算机程序的存储器独立于芯片而设置,处理器用于执行存储器中存储的计算机程序,以执行任一方法实施例中由第一工作节点执行的操作和/或处理。
进一步地,所述芯片还可以包括存储器和/或通信接口。所述通信接口可以是输入输出接口,输入输出电路等。
本申请还提供一种芯片,所述芯片包括处理器。用于存储计算机程序的存储器独立于芯片而设置,处理器用于执行存储器中存储的计算机程序,以执行任一方法实施例中由协调节点执行的操作和/或处理。
进一步地,所述芯片还可以包括存储器和/或通信接口。所述通信接口可以是输入输出接口,输入输出电路等。
以上各实施例中提及的处理器可以是集成电路芯片,具有处理信号的能力。在实现过程中,上述方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。处理器可以是通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)或其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。本申请实施例公开的方法的步骤可以直接体现为硬件编码处理器执行完成,或者用编码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
以上各实施例中提及的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-onlymemory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rateSDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(directrambus RAM,DRRAM)。应注意,本文描述的系统和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现,具体取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (29)

1.一种管理时空数据的方法,其特征在于,应用于包括协调节点和多个工作节点的系统中,所述方法包括:
所述多个工作节点中的第一工作节点接收包含时间信息和空间信息的时空数据,其中,所述时空数据通过时空图(VL,VO,E)表示,其中,VL是包含位置信息的多个位置顶点,VO是不包含位置信息的多个对象顶点,E是连接顶点之间的多个时空边;
所述第一工作节点将所述多个时空边按照第一组合维度划分,以得到所述多个时空边的第一备份;
所述第一工作节点将所述多个时空边按照第二组合维度划分,以得到所述多个时空边的第二备份,所述第一组合维度和所述第二组合维度分别由空间维度、对象维度和时间维度中的至少两个维度组合而成;
所述第一工作节点将所述第一备份存入所述第一组合维度对应的第一缓冲区,将所述第二备份存入所述第二组合维度对应的第一缓冲区。
2.根据权利要求1所述的方法,其特征在于,所述第一组合维度为空间-时间维度,所述第一工作节点将所述多个时空数据按照第一组合维度进行划分包括:
所述第一工作节点根据所述多个时空边中的每个时空边包含的空间信息,计算每个时空边对应的区域标识;
所述第一工作节点根据每个时空边对应的区域标识查询映射表,以确定每个时空边对应的工作节点,其中,所述映射表中记录有区域标识和工作节点标识之间的映射关系,其中,每个区域标识用于唯一标识一个空间区域,每个工作标识用于唯一标识所述多个工作节点中的一个工作节点;
所述第一工作节点将每个空间区域内的时空边按照时间维度进行划分,以得到所述第一备份。
3.根据权利要求1或2所述的方法,其特征在于,所述第二组合维度为对象-时间维度,所述第一工作节点将所述多个时空数据按照所述第二组合维度进行划分包括:
所述第一工作节点将所述多个时空边划分为多个组,每个组包含至少一个对象顶点的多个时空边;
所述第一工作节点将每个组内的时空边按照时间维度进行划分,以得到所述第二备份。
4.根据权利要求1-3中任一项所述的方法,其特征在于,所述第一备份和所述第二备份是所述第一工作节点在第一周期的一个时间片内对所述多个时空边进行划分得到并分别存入所述第一组合维度对应的第一缓冲区和所述第二组合维度对应的第一缓冲区的,所述第一周期包含N个时间片,N≥1且为整数,所述方法还包括:
所述第一工作节点在第二周期从所述多个工作节点读取所述第一周期的所述时间片内被划分给所述第一工作节点的时空边,其中,所述第一周期的所述时间片内被划分给所述第一工作节点的时空边存储在所述多个工作节点中每个工作节点的所述第一组合维度对应的第一缓冲区和所述第二组合维度对应的所述第一缓冲区;
所述第一工作节点将读取的所述第一周期的所述时间片内被划分给所述第一工作节点的时空边存入数据存储系统。
5.根据权利要求4所述的方法,其特征在于,所述数据存储系统包括键值对系统,所述第一工作节点读取的所述时空边在所述数据存储系统中以键-值的格式存储,其中,所述键包括工作节点标识、时空边的划分方式的标识,内部标识和时间片,所述值包括包含所述键的所有时空边;其中,所述时空边的划分方式包括所述第一组合维度和所述第二组合维度,当所述多个时空边按照所述第一组合维度划分时,所述内部标识为区域标识,当所述多个时空边按照所述第二组合维度划分时,所述内部标识为组标识。
6.根据权利要求5所述的方法,其特征在于,所述值包括多个数据域,所述多个数据域至少包括对象顶点、位置顶点和时间戳,所述第一工作节点将读取的所述第一周期的所述时间片内被划分给所述第一工作节点的时空边存入数据存储系统包括:
所述第一工作节点针对所述多个数据域中的每个数据域各自创建表格进行列式存储。
7.根据权利要求4-6中任一项所述的方法,其特征在于,所述方法还包括:
所述第一工作节点在所述第二周期的一个时间片内接收新注入的多个时空边;
所述第一工作节点在所述第二周期的所述时间片内将所述新注入的多个时空边按照所述第一组合维度进行划分,以得到所述新注入的多个时空边的第一备份;
所述第一工作节点在所述第二周期的所述时间片内将所述新注入的多个时空边按照所述第二组合维度进行划分,以得到所述新注入的多个时空边的第二备份;
所述第一工作节点在所述第二周期的所述时间片内将所述新注入的多个时空边的第一备份存入所述第一组合维度对应的第二缓冲区,将所述新注入的多个时空边的第二备份存入所述第二组合维度对应的第二缓冲区。
8.根据权利要求7所述的方法,其特征在于,所述第一工作节点在第二周期从所述多个工作节点上读取所述第一周期的所述时间片内被划分给所述第一工作节点的时空边,包括:
所述第一工作节点生成工作节点列表,所述工作节点列表指示多个工作节点的顺序,所述顺序是随机的;
所述第一工作节点在所述第二周期内按照所述工作节点列表指示的顺序,依序读取每个工作节点并判断所读取的工作节点是否空闲;
当所述第一工作节点读取到所述工作节点列表中的第二工作节点且确定所述第二工作节点空闲时,所述第一工作节点从所述第二工作节点的所述第一组合维度对应的第一缓冲区和所述第二组合维度对应的第一缓冲区中读取所述第一周期内被划分给所述第一工作节点的时空边。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
当所述第一工作节点读取到所述工作节点列表中的第三工作节点且确定所述第三工作节点忙碌时,所述第一工作节点将所述第三工作节点加入忙碌列表,并读取顺序位于所述第三工作节点之后的下一个工作节点。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括;
所述第一工作节点确定已经遍历完所述工作节点列表;
所述第一工作节点读取所述忙碌列表中的工作节点,并在读取到的工作节点i空闲时,从所述工作节点i的所述第一组合维度对应的第一缓冲区和所述第二组合维度对应的第一缓冲区中读取所述第一周期内被分配给所述第一工作节点的时空边,直至所述忙碌列表为空,i为正整数,i≥1,且i等于所述忙碌列表中的工作节点的数量。
11.根据权利要求1-10中任一项所述的方法,其特征在于,所述多个工作节点的每个工作节点的内存中存储有所述时空图包含的全部位置顶点,所述方法还包括:
所述第一工作节点对所述时空图包含的多个对象顶点进行划分,使得所述多个对象顶点被分配到所述多个工作节点;
所述第一工作节点将划分后被分配到所述第一工作节点上的对象顶点存储到所述数据存储系统中。
12.一种管理时空数据的方法,其特征在于,应用于包括协调节点和多个工作节点的系统中,所述方法包括:
所述协调节点将预设的空间范围划分为多个区域;
根据所述多个区域中每个区域覆盖的时空图的位置顶点的数目,确定每个区域的权重;
根据所述每个区域的权重,建立所述多个区域和所述多个工作节点的映射关系表。
13.根据权利要求12所述的方法,其特征在于,所述根据所述每个区域的权重,建立所述多个区域和所述多个工作节点的映射关系表,包括:
将所述多个区域分为多个区域块,所述多个区域块的数量和所述多个工作节点的数量相等,所述多个区域块的权重相等;
将所述多个区域块分配给所述多个工作节点,以建立所述区域标识和所述多个工作节点标识的映射关系。
14.一种管理时空数据的装置,其特征在于,包括:
收发单元,用于接收包含时间信息和空间信息的时空数据,其中,所述时空数据通过时空图(VL,VO,E)表示,其中,VL是包含位置信息的多个位置顶点,VO是不包含位置信息的多个对象顶点,E是连接顶点之间的多个时空边;
处理单元,用于将所述多个时空边按照第一组合维度划分,以得到所述多个时空边的第一备份,并将所述多个时空边按照第二组合维度划分,以得到所述多个时空边的第二备份,所述第一组合维度和所述第二组合维度分别由空间维度、对象维度和时间维度中的至少两个维度组合而成;
存储单元,用于将所述第一备份存入所述第一组合维度对应的第一缓冲区,将所述第二备份存入所述第二组合维度对应的第一缓冲区。
15.根据权利要求14所述的装置,其特征在于,所述第一组合维度为空间-时间维度,
所述收发单元,还用于从所述协调节点获取映射表,所述映射表中记录有区域标识和工作节点标识之间的映射关系,其中,每个区域标识用于唯一标识一个空间区域,每个工作标识用于唯一标识所述多个工作节点中的一个工作节点;
所述处理单元,还用于根据所述多个时空边中的每个时空边包含的空间信息,计算每个时空边对应的区域标识,并根据每个时空边对应的区域标识查询映射表,以确定每个时空边对应的工作节点,以及将每个空间区域内的时空边按照时间维度进行划分,以得到所述第一备份。
16.根据权利要求14或15所述的装置,其特征在于,所述第二组合维度为对象-时间维度,所述处理单元还用于将所述多个时空边划分为多个组,每个组包含至少一个对象顶点的多个时空边,以及将每个组内的时空边按照时间维度进行划分,以得到所述第二备份。
17.根据权利要求14-16中任一项所述的装置,其特征在于,所述第一备份和所述第二备份是所述处理单元在第一周期的一个时间片内对所述多个时空边进行划分得到并被所述存储单元分别存入所述第一组合维度对应的第一缓冲区和所述第二组合维度对应的第一缓冲区的,所述第一周期包含N个时间片,N≥1且为整数;
以及,所述收发单元还用于在第二周期从所述多个工作节点上读取所述第一周期的所述时间片内被划分给所述第一工作节点的时空边,其中,所述第一周期的所述时间片内被划分给所述第一工作节点的时空边存储在所述多个工作节点中每个工作节点的所述第一组合维度对应的第一缓冲区和所述第二组合维度对应的所述第一缓冲区;
以及,所述存储单元还用于在所述第二周期将读取的所述第一周期的所述时间片内被划分给所述第一工作节点的时空边存入数据存储系统。
18.根据权利要求17所述的装置,其特征在于,所述数据存储系统包括键值对系统,所述处理单元读取的所述时空边在所述数据存储系统中以键-值的格式存储,其中,所述键包括工作节点标识、时空边的划分方式的标识,内部标识和时间片,所述值包括包含所述键的所有时空边,其中,所述时空边的划分方式包括所述第一组合维度和所述第二组合维度,当所述多个时空边按照第一组合维度划分时,所述内部标识为区域标识,当所述多个时空边按照所述第二组合维度划分时,所述内部标识为组标识。
19.根据权利要求18所述的装置,其特征在于,所述值包括多个数据域,所述多个数据域至少包括对象顶点、位置顶点和时间戳,所述处理单元还用于针对所述多个数据域中的每个数据域各自创建表格进行列式存储。
20.根据权利要求17-19中任一项所述的装置,其特征在于,所述收发单元还用于在所述第二周期的一个时间片内接收新注入的多个时空边;
以及,所述处理单元,还用于在所述第二周期的所述时间片内将所述新注入的多个时空边按照所述第一组合维度进行划分,以得到所述新注入的时空边的第一备份,以及,在所述第二周期的所述时间片内将所述新注入的多个时空边按照所述第二组合维度进行划分,以得到所述新注入的多个时空边的第二备份;
以及,所述存储单元,还用于在所述第二周期的所述时间片内将所述新注入的多个时空边的第一备份存入所述第一组合维度对应的第二缓冲区,将所述新注入的多个时空边的第二备份存入所述第二组合维度对应的第二缓冲区。
21.根据权利要求20所述的装置,其特征在于,所述处理单元具体用于:
生成工作节点列表,所述工作节点列表指示所述多个工作节点的顺序,所述顺序是随机的;
在所述第二周期内按照所述工作节点列表指示的顺序,依序读取每个工作节点并判断所读取的工作节点是否空闲;
当读取到所述工作节点列表中的第二工作节点且确定所述第二工作节点空闲时,从所述第二工作节点的所述第一组合维度对应的第一缓冲区和所述第二组合维度对应的第一缓冲区中读取所述第一周期内被划分给所述装置的时空边。
22.根据权利要求21所述的装置,其特征在于,所述处理单元还用于当读取到所述工作节点列表中的第三工作节点且确定所述第三工作节点忙碌时,将所述第三工作节点加入忙碌列表,并读取顺序位于所述第三工作节点之后的下一个工作节点。
23.根据权利要求22所述的装置,其特征在于,所述处理单元还用于:
确定已经遍历完所述工作节点列表;
读取所述忙碌列表中的工作节点,并在读取到的工作节点i空闲时,从所述工作节点i的所述第一组合维度对应的第一缓冲区和所述第二组合维度对应的第一缓冲区中读取所述第一周期内被分配给所述装置的时空边,直至所述忙碌列表为空,i为正整数,i≥1,且i等于所述忙碌列表中的工作节点的数量。
24.根据权利要求14-23中任一项所述的装置,其特征在于,所述装置包括内存,所述内存中存储有所述时空图包含的全部位置顶点,所述处理单元还用于对所述时空图包含的多个对象顶点进行划分,使得所述多个对象顶点被分配到所述多个工作节点;
以及,所述存储单元还用于将划分后被划分给所述装置的对象顶点存储到所述数据存储系统中。
25.一种管理时空数据的装置,其特征在于,包括:
处理单元,用于将预设的空间范围划分为多个区域,并根据所述多个区域中每个区域覆盖的时空图的位置顶点的数目,确定每个区域的权重,并根据所述每个区域的权重,建立所述多个区域和所述多个工作节点的映射关系表;
存储单元,用于存储所述映射关系表。
26.根据权利要求25所述的装置,其特征在于,所述处理单元还用于将所述多个区域分为多个区域块,所述多个区域块的数量和所述多个工作节点的数量相等,所述多个区域块的权重相等,以及将所述多个区域块分配给所述多个工作节点,以建立所述区域标识和所述多个工作节点标识的映射关系。
27.一种计算机可读存储介质,其特征在于,包括计算机程序,当所述计算机程序在计算机上被执行时,使得所述计算机执行方法1-11中任一项所述的方法。
28.一种计算机可读存储介质,其特征在于,包括计算机程序,当所述计算机程序在计算机上被执行时,使得所述计算机执行方法12或13所述的方法。
29.一种通信系统,其特征在于,包括如方法1-11中任一项所述的第一工作节点,以及如权利要求12或13中所述的协调节点。
CN201910277531.8A 2019-04-08 2019-04-08 管理时空数据的方法和装置 Pending CN111797174A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910277531.8A CN111797174A (zh) 2019-04-08 2019-04-08 管理时空数据的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910277531.8A CN111797174A (zh) 2019-04-08 2019-04-08 管理时空数据的方法和装置

Publications (1)

Publication Number Publication Date
CN111797174A true CN111797174A (zh) 2020-10-20

Family

ID=72805164

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910277531.8A Pending CN111797174A (zh) 2019-04-08 2019-04-08 管理时空数据的方法和装置

Country Status (1)

Country Link
CN (1) CN111797174A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112632147A (zh) * 2020-12-11 2021-04-09 邦彦技术股份有限公司 数据差异化比较方法、系统和存储介质
CN112883125A (zh) * 2021-04-28 2021-06-01 北京奇岱松科技有限公司 一种实体数据处理方法、装置、设备和存储介质
CN113360538A (zh) * 2021-07-14 2021-09-07 国家电网有限公司 用能数据的时空汇聚与查询方法

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101556557A (zh) * 2009-05-14 2009-10-14 浙江大学 一种基于对象存储设备的对象文件组织方法
US20120310916A1 (en) * 2010-06-04 2012-12-06 Yale University Query Execution Systems and Methods
CN103955801A (zh) * 2014-05-15 2014-07-30 华北电力大学 基于时空维度的电力系统分布式并行计算管理方法
CN103995861A (zh) * 2014-05-16 2014-08-20 罗敬宁 一种基于空间关联的分布式数据装置、方法及系统
US20150088827A1 (en) * 2013-09-26 2015-03-26 Cygnus Broadband, Inc. File block placement in a distributed file system network
CN106257301A (zh) * 2016-05-12 2016-12-28 内蒙古工业大学 基于统计推断的分布式时空关联模型轨迹跟踪方法
KR101757124B1 (ko) * 2016-09-01 2017-07-26 인하대학교 산학협력단 시공간 키워드 질의를 위한 셀 기반 역리스트 인덱싱 기법
CN107423368A (zh) * 2017-06-29 2017-12-01 中国测绘科学研究院 一种非关系数据库中的时空数据索引方法
CN107515952A (zh) * 2017-09-21 2017-12-26 北京星闪世图科技有限公司 点云数据存储、并行计算和实时检索的方法及其系统
CN107710193A (zh) * 2015-07-30 2018-02-16 华为技术有限公司 分布式计算环境的数据放置控制
CN109241178A (zh) * 2018-07-20 2019-01-18 华为技术有限公司 管理存储空间的方法和装置

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101556557A (zh) * 2009-05-14 2009-10-14 浙江大学 一种基于对象存储设备的对象文件组织方法
US20120310916A1 (en) * 2010-06-04 2012-12-06 Yale University Query Execution Systems and Methods
US20150088827A1 (en) * 2013-09-26 2015-03-26 Cygnus Broadband, Inc. File block placement in a distributed file system network
CN103955801A (zh) * 2014-05-15 2014-07-30 华北电力大学 基于时空维度的电力系统分布式并行计算管理方法
CN103995861A (zh) * 2014-05-16 2014-08-20 罗敬宁 一种基于空间关联的分布式数据装置、方法及系统
CN107710193A (zh) * 2015-07-30 2018-02-16 华为技术有限公司 分布式计算环境的数据放置控制
CN106257301A (zh) * 2016-05-12 2016-12-28 内蒙古工业大学 基于统计推断的分布式时空关联模型轨迹跟踪方法
KR101757124B1 (ko) * 2016-09-01 2017-07-26 인하대학교 산학협력단 시공간 키워드 질의를 위한 셀 기반 역리스트 인덱싱 기법
CN107423368A (zh) * 2017-06-29 2017-12-01 中国测绘科学研究院 一种非关系数据库中的时空数据索引方法
CN107515952A (zh) * 2017-09-21 2017-12-26 北京星闪世图科技有限公司 点云数据存储、并行计算和实时检索的方法及其系统
CN109241178A (zh) * 2018-07-20 2019-01-18 华为技术有限公司 管理存储空间的方法和装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
侯海耀;钱育蓉;英昌甜;张晗;卢学远;赵D;: "基于Hilbert-R树分级索引的时空查询算法", 计算机应用, no. 10, 25 July 2018 (2018-07-25) *
夏慧琼;林丽群;: "拉普拉斯特征映射的时空数据划分方法", 测绘科学, no. 06, 23 January 2018 (2018-01-23) *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112632147A (zh) * 2020-12-11 2021-04-09 邦彦技术股份有限公司 数据差异化比较方法、系统和存储介质
CN112632147B (zh) * 2020-12-11 2023-10-24 邦彦技术股份有限公司 数据差异化比较方法、系统和存储介质
CN112883125A (zh) * 2021-04-28 2021-06-01 北京奇岱松科技有限公司 一种实体数据处理方法、装置、设备和存储介质
CN113360538A (zh) * 2021-07-14 2021-09-07 国家电网有限公司 用能数据的时空汇聚与查询方法
CN113360538B (zh) * 2021-07-14 2024-04-09 国家电网有限公司 用能数据的时空汇聚与查询方法

Similar Documents

Publication Publication Date Title
CN104424229B (zh) 一种多维度拆分的计算方法及系统
US10250451B1 (en) Intelligent analytic cloud provisioning
Marketos et al. Building real-world trajectory warehouses
Orlando et al. Trajectory data warehouses: Design and implementation issues
CN111797174A (zh) 管理时空数据的方法和装置
CN103914528B (zh) 一种关联分析算法的并行化方法
US9286312B2 (en) Data coreset compression
WO2020215783A1 (zh) 定位方法、装置及存储介质
CN104809244B (zh) 一种大数据环境下的数据挖掘方法和装置
Buddhika et al. Synopsis: A distributed sketch over voluminous spatiotemporal observational streams
Hendawi et al. Predictive spatio-temporal queries: a comprehensive survey and future directions
KR101982756B1 (ko) 분산인메모리기반 복합형스트림 데이터처리시스템 및 방법
Heintz et al. Optimizing timeliness and cost in geo-distributed streaming analytics
CN112632129A (zh) 一种码流数据管理方法、装置及存储介质
CN111431736A (zh) 告警关联规则生成方法和装置
Havers et al. DRIVEN: A framework for efficient Data Retrieval and clustering in Vehicular Networks
CN113656670A (zh) 面向飞行数据的时空轨迹数据管理分析方法和装置
Du et al. Ldptrace: Locally differentially private trajectory synthesis
Theeten et al. Chive: Bandwidth optimized continuous querying in distributed clouds
Budde et al. Leveraging spatio-temporal clustering for participatory urban infrastructure monitoring
CN111522918A (zh) 数据汇聚方法、装置、电子设备及计算机可读存储介质
US20230126317A1 (en) System and method for processing vehicle event data for improved journey trace determination
Cesario et al. A multi-domain architecture for mining frequent items and itemsets from distributed data streams
KR101966928B1 (ko) 이동객체 시공간정보의 고속분산처리를 위한 색인 및 저장 시스템
WO2022116326A1 (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