CN112800152A - 轨迹数据处理方法、装置和系统 - Google Patents

轨迹数据处理方法、装置和系统 Download PDF

Info

Publication number
CN112800152A
CN112800152A CN201911106393.3A CN201911106393A CN112800152A CN 112800152 A CN112800152 A CN 112800152A CN 201911106393 A CN201911106393 A CN 201911106393A CN 112800152 A CN112800152 A CN 112800152A
Authority
CN
China
Prior art keywords
data
target
track
trajectory
database
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
Application number
CN201911106393.3A
Other languages
English (en)
Other versions
CN112800152B (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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201911106393.3A priority Critical patent/CN112800152B/zh
Publication of CN112800152A publication Critical patent/CN112800152A/zh
Application granted granted Critical
Publication of CN112800152B publication Critical patent/CN112800152B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/29Geographical information 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/21Design, administration or maintenance of databases
    • G06F16/217Database tuning
    • 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
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Remote Sensing (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提出了一种轨迹数据处理方法、装置和系统。该方法包括:获取目标的轨迹点数据;以及合并存储所述目标的两个或多个轨迹点数据,以作为所述目标的轨迹片段数据。通过轨迹数据的片段存储,在数据存入的过程中自然完成轨迹构建和分段的部分操作,优化了存储的数据结构、节省了存储空间并有助于数据查询后的轨迹构建。进一步地,存储可以包括消息中间件的缓存和数据库的持久化,由此充分利用消息中间件的高并发特性,降低数据库的负担。

Description

轨迹数据处理方法、装置和系统
技术领域
本发明涉及数据库技术,尤其涉及一种轨迹数据处理方法、装置和系统。
背景技术
移动目标轨迹数据是一种非常重要的时空数据,在物流配送、导航、共享单车等领域扮演着非常重要的角色。图1A-1B示出了目标移动轨迹的显示例。具体地,图1A示出了经客户端用户查询显示的共享单车的骑行移动轨迹例。图1B示出了经客户端用户查询显示的物流配送显示例。
时空轨迹数据具有数据量大、更新频繁、实时性要求高等特点,对数据存储管理要求很高。在现有技术中,轨迹位置信息以点模型的方式由数据生产者(producer)写入数据存储系统,再由后者实现轨迹数据的缓存与分发。数据消费者(consumer)可以从上述数据存储系统中读取轨迹数据进行处理,并方便客户端的用户通过接口进行轨迹查询。
在高并发数据读写场景下,大吞吐量的I/O操作会造成数据存储系统负载升高,进而造成读写延迟。另外,将存储的点模型转换成轨迹数据会消耗大量的处理资源,难以满足轨迹数据处理与分析的实时性要求。
于是,需要一种优化轨迹数据存储管理的方案。
发明内容
为了解决如上至少一个问题,本发明提出了一种新的轨迹数据分块更新机制,其通过轨迹数据的片段化存储和读取,在保证高并发处理的同时,满足数据的高效检索与挖掘需求。进一步地,该方案可以通过消息中间件(例如,Kafka平台)与数据库的有机结合,充分利用消息中间件强大的高并发数据处理能力,实现轨迹数据的分块更新,满足用户对实时性查询和显示的需求。
根据本发明的一个方面,提出了一种轨迹数据处理方法,包括:获取目标的轨迹点数据;以及合并存储所述目标的两个或多个轨迹点数据,以作为所述目标的轨迹片段数据。由此,通过将轨迹数据从点模型存储转换为片段(线段模型)存储,降低轨迹数据的存储容量需求和存储复杂度,并能有助于后续对存储数据的处理。
优选地,轨迹片段的合并存储可以包括:在缓存装置中合并缓存所述目标对象的两个或多个轨迹点数据以作为所述目标对象的轨迹片段数据;以及将所述轨迹片段数据从所述缓存装置持久化存储至数据库。其中,缓存装置可以是消息中间件,例如Kafka平台。由此,通过消息中间件和数据库的配合,进一步提升轨迹片段数据的存储和处理效率。
优选地,将轨迹片段数据从缓存装置存储至数据库包括:基于预定规则,将所述消息中间件中合并存储的轨迹片段数据存储至所述数据,例如,可以每次存储预定时段内合并缓存的轨迹片段数据,或是每次存储包括预定数量轨迹点的合并缓存的轨迹片段数据。由此,能够充分利用消息中间件的高并发功能,缓解数据库的存储压力,避免不必要的数据持久化操作。
优选地,目标轨迹点数据需要被持续获取,由此进一步方便数据的分块存储。于是,合并存储可以包括:关联存储持续获取的目标的轨迹点位置数据。由此,通过关联存储,提高数据的存储和处理效率。
优选地,还可以关联存储持续获取的目标的轨迹点时间戳数据和/或轨迹点属性数据,以方便应对各种场景的需求。
优选地,合并存储所述目标的两个或多个轨迹点数据以作为所述目标的轨迹片段数据可以包括:将新读取的目标的轨迹点数据追加至现有轨迹片段数据之后,由此提升轨迹片段数据的可扩展能力。
根据本发明的另一个方面,公开了一种轨迹数据处理方法,包括:根据目标标识码,查询所述目标的轨迹数据,其中所述轨迹数据包括根据上述方法存储的轨迹片段数据。由此,数据消费者就能够直接获取片段存储的数据,方便数据的读取和后续处理操作。
优选地,轨迹数据的查询可以包括查询缓存装置和数据库两者,以实现轨迹信息的全面获取。
优选地,该方法还包括基于查询到的所述轨迹片段数据,构建所述目标的轨迹。由于查询获取的到数据本身具有片段结构,因此相比于点模型,能够提升轨迹数据生成并向用户显示的效率。
根据本发明的又一个方面,公开了一种轨迹数据处理装置,包括:点数据获取单元,用于获取目标的轨迹点数据;以及片段数据存储单元,用于合并存储所述目标的两个或多个轨迹点数据,以作为所述目标的轨迹片段数据。
优选地,所述片段数据存储单元可以是片段数据缓存单元,用于合并缓存所述目标对象的两个或多个轨迹点数据以作为所述目标对象的轨迹片段数据,并且所述装置还包括:持久化存储单元,用于将所述轨迹片段数据持久化存储至数据库。
优选地,所述持久化存储单元可以用于:基于预定规则,将所述片段数据缓存单元中合并缓存的轨迹片段数据持久化存储至所述数据库,其中,所述预定规则包括:每次持久化存储预定时段内合并缓存的轨迹片段数据;每次持久化存储包括预定数量轨迹点的合并缓存的轨迹片段数据。
优选地,所述片段数据存储单元可以进一步用于如下的至少一项:关联存储持续获取的目标的轨迹点位置数据;关联存储持续获取的目标的轨迹点时间戳数据;关联存储持续获取的目标的轨迹点属性数据。
优选地,所述片段数据存储单元可以进一步用于:将新读取的目标的轨迹点数据追加至现有轨迹片段数据之后。
根据本发明的又一个方面,公开了一种轨迹数据处理装置,包括:查询单元,用于查询所述目标的轨迹数据,其中所述轨迹数据包括如上所述的轨迹数据处理方法或由如上所述轨迹数据处理装置存储的轨迹片段数据;轨迹构建单元,用于基于查询到的所述轨迹片段数据,构建所述目标的轨迹。
优选地,所述查询单元可以进一步用于:查询合并缓存所述轨迹片段数据的缓存;查询存储所述轨迹片段数据的数据库;以及将所述缓存和所述数据库的查询结合共同作为针对所述目标的查询结果。
根据本发明的又一个方面,公开了一种轨迹数据存储系统,缓存装置、数据库和消费装置,其中:所述缓存装置用于:获取目标的轨迹点数据,并且合并缓存所述目标的两个或多个轨迹点数据,以作为所述目标的轨迹片段数据;所述数据库用于:持久化存储所述缓存装置缓存的轨迹片段数据;所述消费装置用于:查询所述目标的轨迹片段数据。
优选地,所述缓存装置可以是Kafka集群。
优选地,所述数据库以预定的时间间隔或轨迹点数从所述缓存装置获取轨迹片段数据进行持久化存储。
优选地,所述消费装置可以用于:同时查询所述缓存装置和所述数据库中的轨迹片段数据。
优选地,所述消费装置还可以用于:基于查询到的所述轨迹片段数据,构建所述目标的轨迹。
根据本发明的又一个方面,公开了一种计算设备,包括:处理器;以及存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如上所述的方法。
根据本发明的又一个方面,公开了一种非暂时性机器可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如上所述的方法。
本发明通过轨迹数据的片段存储,在数据存入的过程中自然完成轨迹构建和分段的部分操作,优化了存储的数据结构、节省了存储空间并有助于数据查询后的轨迹构建。进一步地,存储可以包括消息中间件的缓存和数据库的持久化,由此充分利用消息中间件的高并发特性,降低数据库的负担。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1A-1B示出了目标移动轨迹的客户端查询显示例。
图2示出了根据本发明一个实施例的轨迹数据处理方法的示意性流程图。
图3示出了一个包含Kafka集群的拓扑结构例。
图4示出了根据本发明一个实施例的轨迹数据处理方法的示意性流程图。
图5示出了根据本发明一个实施例的轨迹数据处理装置的示意性框图。
图6示出了根据本发明另一个实施例的轨迹数据处理装置的示意性框图。
图7示出了根据本发明一个实施例的轨迹数据存储系统的示意性框图。
图8示出了根据本发明的数据存储管理流程的例子。
图9示出了根据本发明一个实施例的计算设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
在时空环境下,通过对一个或多个移动对象运动过程的采样可以获得点数据信息,包括采样点位置、采样时间、速度等,这些采样点数据信息根据采样先后顺序构成了轨迹。移动目标轨迹数据是一种非常重要的时空数据,在物流配送、导航、共享单车等领域扮演着非常重要的角色。时空轨迹数据具有数据量大、更新频繁、实时性要求高等特点,对数据存储管理方式的要求很高。在数据存储管理过程中,生产者负责产生数据,并将产生的数据写入到数据存储系统,消费者负责消费数据,从数据存储系统中获取数据并处理。例如,在图1A的示例中,共享单车的手机客户端可以获取手机的移动信息(或是直接读取单车的移动信息),以产生移动点数据。共享单车的服务器可以获取这些信息,并在用户经由客户端查询时,生成轨迹数据并向用户显示。
在现有技术中,轨迹位置信息以点模型的方式由数据生产者(producer)写入数据存储系统,再由后者实现轨迹数据的缓存与分发。数据消费者(consumer)可以从上述数据存储系统中读取轨迹数据进行处理,并方便客户端的用户通过接口进行轨迹查询。在高并发数据读写场景下,大吞吐量的I/O操作会造成数据存储系统负载升高,进而造成读写延迟。另外,将存储的点模型转换成轨迹数据会消耗大量的处理资源,难以满足轨迹数据处理与分析的实时性要求。
为此,本发明提出了一种新的轨迹数据分块更新机制,其通过轨迹数据的片段化存储和读取,在保证高并发处理的同时,满足数据的高效检索与挖掘需求。进一步地,该方案可以通过消息中间件(例如,Kafka平台)与数据库的有机结合,充分利用消息中间件强大的高并发数据处理能力,实现轨迹数据的分块更新,满足用户对实时性查询和显示的需求。
图2示出了根据本发明一个实施例的轨迹数据处理方法的示意性流程图。在步骤S210,获取目标的轨迹点数据。在步骤S220,合并存储所述目标的两个或多个轨迹点数据,以作为所述目标的轨迹片段数据。在此,轨迹数据存储系统(例如数据库,或是如下所述的消息中间件)可以获取数据生产者产生的针对目标对象的轨迹点数据。
为了描述目标对象的移动轨迹,点数据需要包括针对目标对象当前移动任务的标识符(例如,用户ID或是行程ID)。在图1A和1B的示例中,上述标识符可以是图1A中的车辆ID和图1B中的物流单号。除此之外,还需要包括位置数据(例如,经纬度数据)和时间戳数据。在其他实施例中,获取的轨迹点数据还可以包括其他属性信息,例如轨迹点的速度、方向和加速度等。
在获取了目标的轨迹点数据之后,本发明的轨迹数据处理方法并非像现有数据那样以点模型进行数据存储,而是会对来自同一目标的相邻轨迹点数据进行合并存储,以将单个移动目标的轨迹存储从现有的逐点存储,变更为逐片段存储。由此,降低轨迹数据的存储容量需求和存储复杂度,并能有助于后续对存储数据的处理。
在某些实施例中,轨迹数据的存储可以是从生产者到直接到数据库的存储。在其他实施例中,可以采用缓存装置进行缓存与数据库的持久化存储相结合的方案。例如,针对高并发大数据量数据的管理,可以采用基于消息中间件(例如,Kafka平台)与数据库存储系统(SQL或NosQL)的混合部署方案。在此,“存储”指代广义的存储,即包括将数据存入计算机系统的易失性和非易失性存储设备中。“缓存”包含在“存储”的概念内,是将数据非永久性的存入,例如,生产者向消息中间件或内存写入的数据。“持久性存储”也包含在“存储”的概念内,是把数据(例如,内存中或是数据中间件中的对象)保存到可永久存储的存储设备(例如,磁盘中)。持久化的主要应用时将缓存的对象存储至数据库。
在此,“消息中间件”指支持在分布式系统中发送和接受消息的基础设施。Kafka是一种消息中间件并且是一个分布式消息系统,被广泛地应用在数据缓冲、异步通信、汇集日志、系统解耦等方面。针对高并发大数据量数据的管理可以基于Kafka与数据库存储系统(SQL或NosQL)混合部署进行。
图3示出了一个包含Kafka集群的拓扑结构例。如图3所示,一个典型的Kafka集群中包含若干生产者、若干broker(代理商)、若干消费者群组、以及一个Zookeeper集群。Kafka支持水平扩展,一般broker数量越多,集群吞吐率越高。Kafka通过Zookeeper管理集群配置,选举leader(领导)节点,并在消费者群组发生变化时进行再平衡。生产者使用push(推送)模式将消息发布到broker,消费者使用pull(拉入)模式从broker订阅并消费消息。如图所示,生产者可以是前端产生的数据,或是服务,例如包括web前端产生的页面视图、或者是服务器日志,系统CPU、存储器等。消费者则可以包括Hadoop集群、实时监控、其他服务和数据仓库等。
在诸如Kafka结合数据库的混合部署中,如果采用直接存入生产者产生的点轨迹的方案,即,轨迹位置信息以点模型的方式由生产者写入Kafka集群,并由Kafka集群实现轨迹数据的缓存与分发,消费者从Kafka集群中读取轨迹数据进行处理并写入数据库,随后用户通过数据库接口进行数据查询,则该方案虽然可以凭借Kafka的高并发处理能力来解决轨迹数据高并发写入的问题,但不能满足轨迹数据处理与分析的实时性要求。首先上述方案中轨迹数据查询需通过数据库提供的操作接口进行,但在高并发数据读写场景下,大吞吐量的I/O操作会造成数据库负载升高,进而造成读写延迟。其次,因为轨迹数据是以点模型存储,在具体业务分析中需要先把轨迹点全部查询出来,然后按照移动对象ID分组聚合并按照时间顺序连接形成完整轨迹,这样业务层的处理能力会成为性能瓶颈。由此,基于点模型的轨迹数据管理方式结构松散、检索效率低,难以充分利用数据库与消息中间件强大的高并发数据处理能力,从而无法满足用户对实时性的需求。
为此,本发明采用一种基于Kafka平台的轨迹数据的分块更新机制,在保证高并发情况下满足数据的高效检索与挖掘的需求。由此,步骤S220可以包括在缓存装置中合并缓存所述目标对象的两个或多个轨迹点数据以作为所述目标对象的轨迹片段数据;以及将所述轨迹片段数据从所述缓存装置持久化存储至数据库。由此,通过在数据缓存阶段实现轨迹数据的片段化,能够充分利用消息中间件强大的并发和数据组织能力,在缓存阶段就享有点模型合并缓存的益处,并进一步简化后续数据库的操作。
将轨迹片段数据从消息中间件存储至数据库可以包括:基于预定规则,将所述消息中间件中合并存储的轨迹片段数据存储至所述数据,例如,可以每次存储预定时段内合并缓存的轨迹片段数据,或是每次存储包括预定数量轨迹点的合并缓存的轨迹片段数据等等。由此,能够充分利用消息中间件的高并发功能,缓解数据库的存储压力,避免不必要的数据持久化操作。
在目标持续移动的情况下,目标轨迹点数据需要被持续获取(步骤S210),并实现对移动轨迹的持续跟踪与更新。在此,持续获取可以指获取生产者持续产生的全部点数据,也可以指获取生产者持续产生的部分点数据(例如,经由某种点数据筛选规则)。例如,共享单车客户端(生产者)可以每30秒上传一次点数据。基于不同的点数据获取策略,可以以不同的方式持续获取这些点数据。在一个实施例中,可以以30秒的间隔持续获取这些点数据并进行合并存储。在另一个实施例中,可以以更长的时间间隔(例如,五分钟)一次性获取全部的点数据(即,一次获取10个点数据,并持续获取)。在一个实施例中,可以间隔获取点数据,例如,每一分钟获取一个点数据(即,筛掉一半的数据)。在一个实施例中,可以丢弃位置持续无变化的点数据。在一个实施例中,可以融合不同产生渠道的点数据(例如,物流数据中,可以同时获取交通运输轨迹点数据,以及工作人员输入数据两者)。本发明对持续获取数据的具体方式不做限制。
在持续获取点数据的情况下,合并存储可以包括:关联存储持续获取的目标的轨迹点位置数据。由此,通过关联存储,提高数据的存储和处理效率。在本发明中,“轨迹片段数据”指的是包括目标一段移动轨迹(而非一个点)的数据。轨迹片段数据至少包括起点和终点两个数据,即,片段数据可以包含一个线段;也可以进一步包括一个或多个中间点数据,即,片段数据可以包含多个线段的组合。关联存储则指使得相继输入的点(起码是前后相邻的点)以一定的关联性进行存储。
在例如点数据包括目标ID、位置和时间戳数据三者的情况下,常规的点模型存储直接存储持续生成的、各自包括这三种数据的点数据,例如,相继生成的10个点数据被存储为10个数据项,各自包括三个存储字段。
而关联存储的情况下,针对目标的某一移动,可以将获取的点数据关联存储,即,对于相继生成的10个点数据,不将其存储为各自包括三个存储字段的10个数据项,而是将这些原本分开的项进行关联存储。例如,可以将这10个点数据存储为一项,该项包括固定的一个目标ID,以及完整的10组位置与时间戳信息对。由此,将十个分开的点,关联存储为一个目标ID下的相关点。
进一步地,可以对位置数据进行相关存储。例如,可以将位置数据存储为一条字符串。进一步地,后续输入的位置数据并非是目标的绝对位置(例如,经纬值),而是相对于在前位置的偏移值(offset)。在位置相同时,可以用占位符代替。由此,进一步减少存储容量并降低后续的计算量。
类似地,可以对时间戳数据进行相关存储。例如,可以将时间戳数据存储为一条字符串。进一步地,后续输入的时间戳数据并非是目标的绝对时间(例如,10:00:01),而是相对于在前时间的偏移值(例如,以分、秒或小时为单位)。由此,进一步减少存储容量并降低后续的计算量。应该理解,在以预定间隔持续获取点数据的情况下,除了首个点数据的时间戳之外,可以不存储后续点数据的时间戳(因为可以根据点编号推出),从而进一步降低存储容量。
另外,获取的目标点数据还可以包括轨迹点属性数据,以方便应对各种场景的需求。例如,属性信息可以包括每个轨迹点的速度、方向和加速度等。这些属性信息也可以以例如字符串的形式,进行偏移量存储。
在点数据持续获取的过程中,可以将新读取的目标的轨迹点数据追加至现有轨迹片段数据之后,由此提升轨迹片段数据的可扩展能力。
由此,基于本发明的轨迹数据处理方案,单个移动目标的轨迹可以按照固定时间(例如,1小时)划分为若干片段,轨迹数据以片段的形式存储在缓存系统中。每个轨迹片段由一个移动对象ID、空间对象(线段)、时间和其他属性信息(如每个轨迹点的速度、方向、加速度等)构成。
轨迹片段中各点的属性信息以数据集合形式作为该轨迹片段的一个属性值存储。新的轨迹点的各个属性值会分别追加到轨迹片段的各个属性集合中,同时轨迹点的空间位置信息则以点的形式追加到轨迹片段的线要素中(例如,添加至对应字符串的末尾)。缓存中的轨迹片段会定时(例如,每小时)持久化到数据库存储系统中。用户可以设置缓存系统(例如,Kafka平台)中轨迹片段的存储间隔,每次数据入库操作只会将已超过存储间隔的数据持久化到数据库中。例如,数据库可以在每个小时的固定时间读取前一小时生成的轨迹片段数据,并对更近的数据不加读取。例如,数据库在10:15读取09:00~10:00之间生成的片段数据,不读取10:00~10:15之间生成的片段数据;在11:15读取10:00~11:00之间生成的片段数据,不读取11:00~11:15之间生成的片段数据,并以此类推。由此,利用缓存装置(例如,Kafka平台)的高并发能力来缓解数据库的I/O操作限制。
数据库的更新过程可以通过ZooKeeper实现数据操作同步以避免重复写入。缓存中的轨迹片段还可以通过R树进行索引以提高后续数据查询的效率。
图4示出了根据本发明一个实施例的轨迹数据处理方法的示意性流程图。该方法涉及针对存储数据的操作。在步骤S410,根据目标标识码,查询所述目标的轨迹数据,其中所述轨迹数据包括根据上述方法存储的轨迹片段数据。由此,例如数据消费者能够直接获取片段存储的数据,方便数据的读取和后续处理操作。轨迹数据的查询过程可以在缓存和数据库中分别进行,两边的查询结果合并后作为最终结果返回给用户以实现轨迹信息的全面获取。例如,在获取持久化轨迹数据的同时,还能获取缓存在例如Kafka平台中尚未持久化的数据。数据查询操作可以提供统一的数据访问接口,由此保证数据查询的实时性。
可选地,该方法还包括对查询到数据的后续处理。于是,在步骤S420,基于查询到的所述轨迹片段数据,构建所述目标的轨迹。由于查询获取的到数据本身具有片段结构,因此相比于点模型,能够提升轨迹数据生成并向用户显示的效率。
图5示出了根据本公开一个实施例的轨迹数据处理装置的示意性框图。图6示出了根据本公开另一个实施例的轨迹数据处理装置的示意性框图。其中,轨迹数据处理装置的功能模块可以由实现本公开原理的硬件、软件或硬件和软件的结合来实现。本领域技术人员可以理解的是,图5或图6所描述的功能模块可以组合起来或者划分成子模块,从而实现上述发明的原理。因此,本文的描述可以支持对本文描述的功能模块的任何可能的组合、或者划分、或者更进一步的限定。
如图5所示,该轨迹数据处理装置500可以包括点数据获取单元510和片段数据存储单元520。其中,点数据获取单元510可以用于获取目标的轨迹点数据。片段数据存储单元520可以合并存储所述目标的两个或多个轨迹点数据,以作为所述目标的轨迹片段数据。
在本发明实施例中,所述片段数据存储单元可以是片段数据缓存单元,可以用于合并缓存所述目标对象的两个或多个轨迹点数据以作为所述目标对象的轨迹片段数据。
优选地,所述轨迹数据处理装置还可以包括:持久化存储单元(图中未示出)。持久化存储单元可以用于将所述轨迹片段数据持久化存储至数据库。
在本发明实施例中,所述持久化存储单元可以用于:基于预定规则,将所述消息中间件中合并缓存的轨迹片段数据持久化存储至所述数据库,其中,所述预定规则可以包括:每次持久化存储预定时段内合并缓存的轨迹片段数据;每次持久化存储包括预定数量轨迹点的合并缓存的轨迹片段数据。
在本发明实施例中,所述片段数据存储单元可以进一步用于如下的至少一项:关联存储持续获取的目标的轨迹点位置数据;关联存储持续获取的目标的轨迹点时间戳数据;关联存储持续获取的目标的轨迹点属性数据。
在本发明实施例中,所述片段数据存储单元可以进一步用于:将新读取的目标的轨迹点数据追加至现有轨迹片段数据之后。
图5所示的轨迹数据处理装置500可以是轨迹数据缓存装置,例如Kafka集群的消息中间件。该装置可以获取高并发生成的轨迹点数据,并将其以轨迹片段的形式进行关联缓存。上述关联缓存的数据随后可以例如以预定时间间隔存入数据库,上述持久化存储的动作执行人可以是缓存、数据库或是消费者。
如图6所示,轨迹数据处理装置600可以包括查询单元610和轨迹构建单元620。其中,查询单元610可以用于查询所述目标的轨迹数据,其中所述轨迹数据包括如上所述的轨迹数据处理方法或由如图5所示的轨迹数据处理装置存储的轨迹片段数据。轨迹构建单元620可以用于基于查询到的所述轨迹片段数据,构建所述目标的轨迹。
在本发明实施例中,所述查询单元可以进一步用于:查询合并缓存所述轨迹片段数据的缓存;查询存储所述轨迹片段数据的数据库;以及将所述缓存和所述数据库的查询结合共同作为针对所述目标的查询结果。
图6所示的轨迹数据处理装置600可以是轨迹数据消费者,即对存储的数据进行查询和执行处理的装置。关于本发明的轨迹数据处理装置及其各个单元/模块分别执行的操作可以参见上文相关描述,在此不再赘述。
另外,本发明的轨迹数据处理方案还可以实现为一种轨迹数据存储系统。图7示出了根据本公开一个实施例的轨迹数据存储系统的示意图。
如图7所示,该轨迹数据存储系统700可以包括缓存装置710、数据库720和消费装置730。
其中,所述缓存装置710可以用于获取目标的轨迹点数据,并且合并缓存所述目标的两个或多个轨迹点数据,以作为所述目标的轨迹片段数据。所述数据库720可以用于持久化存储所述缓存装置缓存的轨迹片段数据。所述消费装置730可以用于查询所述目标的轨迹片段数据。
在本发明实施例中,所述缓存装置710可以是Kafka集群。
在本发明实施例中,所述数据库720可以以预定的时间间隔或轨迹点数从所述缓存装置获取轨迹片段数据进行持久化存储。
在本发明实施例中,所述消费装置730可以用于:同时查询所述缓存装置和所述数据库中的轨迹片段数据。或者,所述消费装置730还可以用于:基于查询到的所述轨迹片段数据,构建所述目标的轨迹。
在一个实施例中,缓存装置710可以对应于图5所示的点数据获取单元510,数据库720可以对应于图5所示的片段数据存储单元520,消费装置730可以对应于图6所示的查询单元610,轨迹数据存储系统700及其各个单元/模块分别执行的操作与上文描述相同或相似,具体实现细节可以参见上文相关描述,在此不再赘述。
图8示出了根据本发明的数据存储管理流程的例子。首先,Kafka集群获取生产者实时生成的轨迹点数据。但获取之后的点数据不再以点模型的形式,而是轨迹片段的形式(线模型)贮存在Kafka集群中,并以固定的时间间隔写入数据库中,这就在数据更新过程中自然完成了轨迹构建与分段操作。如图所示,数据缓存系统可以包括作为缓存的Kafka集群并接入数据库,并且提供统一数据访问接口实现缓存与数据库中数据一体化查询,在保证了数据操作实时性的同时,用户操作也更加灵活方便。由此,数据查询基于线模型对象进行,相比于点要素查询的时间更少,而且在业务层构建完整轨迹所需要处理的数据量也大大减少。
图9示出了根据本发明一个实施例的计算设备的结构示意图。
参见图9,计算设备900包括存储器910和处理器920。
处理器920可以是一个多核的处理器,也可以包含多个处理器。在一些实施例中,处理器920可以包含一个通用的主处理器以及一个或多个特殊的协处理器,例如图形处理器(GPU)、数字信号处理器(DSP)等等。在一些实施例中,处理器920可以使用定制的电路实现,例如特定用途集成电路(ASIC)或者现场可编程逻辑门阵列(FPGA)。
存储器910可以包括各种类型的存储单元,例如系统内存、只读存储器(ROM),和永久存储装置。其中,ROM可以存储处理器920或者计算机的其他模块需要的静态数据或者指令。永久存储装置可以是可读写的存储装置。永久存储装置可以是即使计算机断电后也不会失去存储的指令和数据的非易失性存储设备。在一些实施方式中,永久性存储装置采用大容量存储装置(例如磁或光盘、闪存)作为永久存储装置。另外一些实施方式中,永久性存储装置可以是可移除的存储设备(例如软盘、光驱)。系统内存可以是可读写存储设备或者易失性可读写存储设备,例如动态随机访问内存。系统内存可以存储一些或者所有处理器在运行时需要的指令和数据。此外,存储器910可以包括任意计算机可读存储媒介的组合,包括各种类型的半导体存储芯片(DRAM,SRAM,SDRAM,闪存,可编程只读存储器),磁盘和/或光盘也可以采用。在一些实施方式中,存储器910可以包括可读和/或写的可移除的存储设备,例如激光唱片(CD)、只读数字多功能光盘(例如DVD-ROM,双层DVD-ROM)、只读蓝光光盘、超密度光盘、闪存卡(例如SD卡、min SD卡、Micro-SD卡等等)、磁性软盘等等。计算机可读存储媒介不包含载波和通过无线或有线传输的瞬间电子信号。
存储器910上存储有可执行代码,当可执行代码被处理器920处理时,可以使处理器920执行上文述及的轨迹数据处理方法。
上文中已经参考附图详细描述了根据本发明的轨迹数据处理方法、装置和系统。在本发明的轨迹数据处理方案中,轨迹以片段的形式存储(例如,在缓存与数据库中),新的轨迹点属性信息会追加到轨迹片段中。由此在数据存入的过程中完成轨迹构建和分段的至少部分操作。贮存在缓存中的轨迹片段具有有效期(即,数据库依据预定时间间隔读取轨迹片段),每次入库操作时只有超过有效期的片段才会被写入到数据库中,由此充分利用缓存的高并发功能降低对数据库的IO需求。另外,数据查询可以在缓存系统与数据库系统中同时进行,查询结果合并后作为最终结果返回给用户,由此提供更为完整的轨迹信息。
此外,根据本发明的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本发明的上述方法中限定的上述各步骤的计算机程序代码指令。
或者,本发明还可以实施为一种非暂时性机器可读存储介质(或计算机可读存储介质、或机器可读存储介质),其上存储有可执行代码(或计算机程序、或计算机指令代码),当所述可执行代码(或计算机程序、或计算机指令代码)被电子设备(或计算设备、服务器等)的处理器执行时,使所述处理器执行根据本发明的上述方法的各个步骤。
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。
附图中的流程图和框图显示了根据本发明的多个实施例的系统和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (27)

1.一种轨迹数据处理方法,包括:
获取目标的轨迹点数据;以及
合并存储所述目标的两个或多个轨迹点数据,以作为所述目标的轨迹片段数据。
2.如权利要求1所述的方法,其中,合并存储所述目标对象的两个或多个轨迹点数据以作为所述目标对象的轨迹片段数据包括:
在缓存装置中合并缓存所述目标对象的两个或多个轨迹点数据以作为所述目标对象的轨迹片段数据;以及
将所述轨迹片段数据从所述缓存装置持久化存储至数据库。
3.如权利要求2所述的方法,其中,所述缓存装置是消息中间件。
4.如权利要求3所述的方法,其中,将所述轨迹片段数据从所述缓存装置持久化存储至数据库包括:
基于预定规则,将所述消息中间件中合并缓存的轨迹片段数据持久化存储至所述数据库。
5.如权利要求4所述的方法,其中,所述预定规则包括:
每次持久化存储预定时段内合并缓存的轨迹片段数据;或者
每次持久化存储包括预定数量轨迹点的合并缓存的轨迹片段数据。
6.如权利要求1所述的方法,其中,获取目标的轨迹点数据包括:
持续获取目标的轨迹点数据。
7.如权利要求6所述的方法,其中,合并存储所述目标的两个或多个轨迹点数据以作为所述目标的轨迹片段数据包括:
关联存储持续获取的目标的轨迹点位置数据。
8.如权利要求7所述的方法,其中,关联存储持续获取的目标的轨迹点时间戳数据。
9.如权利要求7所述的方法,其中,关联存储持续获取的目标的轨迹点属性数据。
10.如权利要求6所述的方法,其中,合并存储所述目标的两个或多个轨迹点数据以作为所述目标的轨迹片段数据包括:
将新读取的目标的轨迹点数据追加至现有轨迹片段数据之后。
11.一种轨迹数据处理方法,包括:
查询所述目标的轨迹数据,其中所述轨迹数据包括如权利要求1-10所述的方法存储的轨迹片段数据。
12.如权利要求11所述的方法,还包括:
基于查询到的所述轨迹片段数据,构建所述目标的轨迹。
13.如权利要求11所述的方法,其中,根据目标标识码,查询所述目标的轨迹数据包括:
查询合并缓存所述轨迹片段数据的缓存;
查询存储所述轨迹片段数据的数据库;以及
将所述缓存和所述数据库的查询结合共同作为针对所述目标的查询结果。
14.一种轨迹数据处理装置,包括:
点数据获取单元,用于获取目标的轨迹点数据;以及
片段数据存储单元,用于合并存储所述目标的两个或多个轨迹点数据,以作为所述目标的轨迹片段数据。
15.如权利要求14所述的装置,其中,所述片段数据存储单元是片段数据缓存单元,用于合并缓存所述目标对象的两个或多个轨迹点数据以作为所述目标对象的轨迹片段数据,并且所述装置还包括:
持久化存储单元,用于将所述轨迹片段数据持久化存储至数据库。
16.如权利要求15所述的装置,其中,所述持久化存储单元用于:
基于预定规则,将所述片段数据缓存单元中合并缓存的轨迹片段数据持久化存储至所述数据库,其中,所述预定规则包括:
每次持久化存储预定时段内合并缓存的轨迹片段数据。
每次持久化存储包括预定数量轨迹点的合并缓存的轨迹片段数据。
17.如权利要求14所述的装置,其中,所述片段数据存储单元进一步用于如下的至少一项:
关联存储持续获取的目标的轨迹点位置数据;
关联存储持续获取的目标的轨迹点时间戳数据;
关联存储持续获取的目标的轨迹点属性数据。
18.如权利要求14所述的装置,其中,所述片段数据存储单元进一步用于:
将新读取的目标的轨迹点数据追加至现有轨迹片段数据之后。
19.一种轨迹数据处理装置,包括:
查询单元,用于查询所述目标的轨迹数据,其中所述轨迹数据包括如权利要求1-10所述的方法或由如权利要求14-18所述装置存储的轨迹片段数据;
轨迹构建单元,用于基于查询到的所述轨迹片段数据,构建所述目标的轨迹。
20.如权利要求19所述的装置,其中,所述查询单元进一步用于:
查询合并缓存所述轨迹片段数据的缓存;
查询存储所述轨迹片段数据的数据库;以及
将所述缓存和所述数据库的查询结合共同作为针对所述目标的查询结果。
21.一种轨迹数据存储系统,缓存装置、数据库和消费装置,其中:
所述缓存装置用于:
获取目标的轨迹点数据,并且合并缓存所述目标的两个或多个轨迹点数据,以作为所述目标的轨迹片段数据;
所述数据库用于:
持久化存储所述缓存装置缓存的轨迹片段数据;
所述消费装置用于:
查询所述目标的轨迹片段数据。
22.如权利要求21所述的系统,其中,所述缓存装置是Kafka集群。
23.如权利要求21所述的系统,其中,所述数据库以预定的时间间隔或轨迹点数从所述缓存装置获取轨迹片段数据进行持久化存储。
24.如权利要求21所述的系统,其中,所述消费装置用于:
同时查询所述缓存装置和所述数据库中的轨迹片段数据。
25.如权利要求21所述的系统,其中,所述消费装置还用于:
基于查询到的所述轨迹片段数据,构建所述目标的轨迹。
26.一种计算设备,包括:
处理器;以及
存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如权利要求1-13中任一项所述的方法。
27.一种非暂时性机器可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如权利要求1-13中任一项所述的方法。
CN201911106393.3A 2019-11-13 2019-11-13 轨迹数据处理方法、装置和系统 Active CN112800152B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911106393.3A CN112800152B (zh) 2019-11-13 2019-11-13 轨迹数据处理方法、装置和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911106393.3A CN112800152B (zh) 2019-11-13 2019-11-13 轨迹数据处理方法、装置和系统

Publications (2)

Publication Number Publication Date
CN112800152A true CN112800152A (zh) 2021-05-14
CN112800152B CN112800152B (zh) 2024-06-11

Family

ID=75803143

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911106393.3A Active CN112800152B (zh) 2019-11-13 2019-11-13 轨迹数据处理方法、装置和系统

Country Status (1)

Country Link
CN (1) CN112800152B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113314229A (zh) * 2021-05-26 2021-08-27 北京京东拓先科技有限公司 一种数据处理方法、装置、电子设备和存储介质
CN115344795A (zh) * 2022-10-17 2022-11-15 云南师范大学 一种基于多路归并的地铁乘客轨迹相似性搜索方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101797207B1 (ko) * 2017-01-24 2017-11-13 (주)터보소프트 Udf 기반 이동객체 궤적 데이터 처리방법
CN109165215A (zh) * 2018-07-27 2019-01-08 苏州视锐信息科技有限公司 一种云环境下时空索引的构建方法、装置及电子设备
CN109241138A (zh) * 2018-08-30 2019-01-18 跨越速运集团有限公司 一种移动轨迹构建方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101797207B1 (ko) * 2017-01-24 2017-11-13 (주)터보소프트 Udf 기반 이동객체 궤적 데이터 처리방법
CN109165215A (zh) * 2018-07-27 2019-01-08 苏州视锐信息科技有限公司 一种云环境下时空索引的构建方法、装置及电子设备
CN109241138A (zh) * 2018-08-30 2019-01-18 跨越速运集团有限公司 一种移动轨迹构建方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
张超;余祖应;宋筱轩;胡鹏;张文峰;: "分布式实时轨迹存取系统设计方法", 指挥信息系统与技术, no. 03, 6 July 2016 (2016-07-06) *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113314229A (zh) * 2021-05-26 2021-08-27 北京京东拓先科技有限公司 一种数据处理方法、装置、电子设备和存储介质
CN115344795A (zh) * 2022-10-17 2022-11-15 云南师范大学 一种基于多路归并的地铁乘客轨迹相似性搜索方法
CN115344795B (zh) * 2022-10-17 2022-12-09 云南师范大学 一种基于多路归并的地铁乘客轨迹相似性搜索方法

Also Published As

Publication number Publication date
CN112800152B (zh) 2024-06-11

Similar Documents

Publication Publication Date Title
CN109165215B (zh) 一种云环境下时空索引的构建方法、装置及电子设备
CN106649656B (zh) 一种面向数据库的时空轨迹大数据存储方法
US9733094B2 (en) Hybrid road network and grid based spatial-temporal indexing under missing road links
CN103268336A (zh) 一种快数据和大数据结合的数据处理方法及其系统
CN112800152B (zh) 轨迹数据处理方法、装置和系统
CN105512320A (zh) 一种用户排名获得方法、装置及服务器
CN113112208A (zh) 一种基于三维可视化模型的电力物资仓储管理方法
CN104320848B (zh) 基于云计算实现室内定位的系统及方法
US20080313224A1 (en) System and Method for Integration of Data Records Having Differing Data Types to a Geographical Information System
US12072892B2 (en) Data ingestion with spatial and temporal locality
CN104008134A (zh) 基于HBase的高效存储方法及系统
US8862995B1 (en) Automatically creating a movie from geo located content using earth
CN112084291A (zh) 信息推荐方法及装置
CN103646541A (zh) 一种基于Hadoop的车辆拥挤度获取方法
CN111008198B (zh) 业务数据获取方法、装置、存储介质、电子设备
CN113806466A (zh) 路径时间查询方法、装置、电子设备和可读存储介质
Birnbaum et al. Similarity-based compression of GPS trajectory data
CN112506887A (zh) 车辆终端can总线数据处理方法及装置
CN108959330A (zh) 一种数据库的处理、数据查询方法及设备
CN113763099B (zh) 一种数据查找方法、装置、设备和存储介质
CN115080531A (zh) 基于分布式存储图像处理方法、系统、设备及介质
Vo et al. A 6-dimensional Hilbert approach to index full waveform LiDAR data in a distributed computing environment
CN112685557A (zh) 可视化信息资源管理方法及装置
CN112035581A (zh) 基于模型的任务处理方法、装置、设备和介质
CN116028434B (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