数据处理系统和方法与流程

文档序号:23679811发布日期:2021-01-23 07:16阅读:124来源:国知局
数据处理系统和方法与流程

[0001]
本申请涉及信息技术,更具体地,涉及数据处理系统和方法。


背景技术:

[0002]
数据处理技术广泛应用于各个领域。例如,在用于测试自动驾驶的系统中,自动驾驶车辆可以每天在不同区域(例如,不同国家和/或一个国家中的不同地区)生成大量数据(例如,包文件(bag files))。不同地区的研究人员可能需要频繁地和/或跨区域访问和/或分析大量数据。因此,及时有效地预处理、管理和/或传输此类数据至关重要。另外,最好在过程中节省资源(例如,带宽)。在某些情况下,数据处理系统可以对数据进行预处理并存储在数据库(例如,hadoop分布式文件系统(hdfs))中。用户(例如,工程师)可以从数据库检索和/或下载数据。然而,跨区域的带宽不仅受限于传输速度慢而且昂贵。对自动驾驶的深入探索依赖于数据的快速通信。因此,需要提供有效且低成本的数据处理方法和系统,并且不浪费资源。


技术实现要素:

[0003]
本申请的一个方面涉及一种数据处理方法,所述方法可以包括:预处理初始数据以获取预处理数据;存储所述预处理数据;通过应用程序接收数据请求,所述数据请求包括与所请求的内容的存储路径有关的信息,其中,所述内容是所述预处理数据的一部分;响应于所述数据请求,通过第一区域中第一代理集群的邻近代理确定所述数据请求中所请求的所述内容是否在所述邻近代理的服务器或所述第一代理集群的服务器中本地缓存;以及响应于确定所述内容在所述邻近代理的服务器或所述第一代理集群的服务器中本地缓存,通过所述邻近代理,将所述内容提供给所述应用程序;或者响应于确定所述内容未在所述邻近代理的服务器或所述第一代理集群的服务器中本地缓存,基于与所述内容的所述存储路径有关的信息,通过所述邻近代理,获取所述内容;以及通过所述邻近代理,将所述内容提供给所述应用程序。
[0004]
在一些实施例中,响应于确定所述内容未在所述邻近代理的服务器或所述第一代理集群的服务器中本地缓存,所述方法还包括:通过所述邻近代理确定所述数据请求所请求的所述内容是否为高热度或高频访问数据;以及响应于所述内容为高热度或高频访问数据,在一个或以上服务器中缓存所述内容,该服务器与所述第一代理集群的其他代理相结合。
[0005]
在一些实施例中,响应于确定所述内容未在所述邻近代理的服务器或所述第一代理集群的服务器中本地缓存,所述方法还包括:通过所述邻近代理确定所述数据请求所请求的所述内容是否为高热度或高频访问数据;以及响应于所述内容为高热度或高频访问数据,在一个或以上服务器中缓存所述内容,该服务器与所述第一区域和/或第二代区域中第二代理集群的其他代理相结合。
[0006]
在一些实施例中,基于所述内容的所述存储路径有关的所述信息,通过所述邻近
代理获取所述内容包括:若所述内容的所述存储路径指向所述第二区域,通过所述邻近代理请求所述第二区域的所述第二代理集群返回所述内容;以及通过所述邻近代理在所述邻近代理的服务器或所述第一代理集群的服务器中本地缓存所述内容。
[0007]
在一些实施例中,所述方法还包括:在一个或以上服务器中缓存经预处理的高热度或高频访问数据,该服务器与一个或以上代理集群的一个或以上代理相结合。
[0008]
在一些实施例中,所述预处理初始数据以获取预处理数据包括:预处理存储在分布式文件子系统中的所述初始数据。
[0009]
在一些实施例中,所述分布式文件子系统可以是hadoop分布式文件系统(hdfs)。
[0010]
在一些实施例中,所述预处理初始数据以获取预处理数据包括:基于任务队列,预处理所述初始数据。
[0011]
在一些实施例中,所述任务队列可以是一个分布式任务队列。
[0012]
在一些实施例中,所述基于任务队列,预处理所述初始数据包括:基于任务的优先级,将与所述初始数据的所述预处理相关的至少两个任务加入到所述任务队列;基于所述至少两个任务的优先级从所述任务队列中取出一个或以上任务;并且通过执行所述一个或以上任务获取所述预处理数据。
[0013]
在一些实施例中,所述基于任务队列,预处理所述初始数据还包括:发起与所述一个或以上任务的执行结果有关的一个或以上通知到应用程序。
[0014]
在一些实施例中,所述基于任务队列,预处理所述初始数据还包括:将所述预处理数据存储在所述任务队列中。
[0015]
在一些实施例中,所述存储所述预处理数据包括:通过一个或以上代理,从所述任务队列中获取所述预处理数据;以及通过所述一个或以上代理,将所述预处理数据存储到分布式文件子系统中。
[0016]
在一些实施例中,所述预处理所述初始数据包括以下至少一个:验证所述初始数据的有效性,过滤所述初始数据,切分所述初始数据,和压缩所述初始数据。
[0017]
在一些实施例中,所述方法还包括:基于所述数据请求,在所述第一区域确定所述第一代理集群的所述邻近代理。
[0018]
本申请的另一个方面涉及一种数据处理系统,所述系统包括至少一个存储设备,包括一组指令或程序;以及至少一个处理器,被配置为与所述至少一个存储设备通信,其中,当执行所述一组指令或程序时,所述至少一个处理器被配置为使所述系统执行所述数据处理方法。
[0019]
本申请的另一个方面涉及一种数据处理系统,所述系统可以包括至少两个服务器;以及在一个或以上代理集群中的一个或以上代理;其中,所述至少两个服务器,被配置为预处理初始数据以获取预处理数据;所述一个或以上代理,被配置为:存储所述预处理数据;通过应用程序接收数据请求,所述数据请求包括与所请求的内容的存储路径有关的信息,其中所述内容是所述预处理数据的一部分;基于所述数据请求,确定所述一个或以上代理集群的第一代理集群的邻近代理;响应于所述数据请求,确定所述数据请求中所请求的所述内容是否在所述邻近代理的服务器或所述第一代理集群的服务器中本地缓存;以及响应于确定所述内容在所述邻近代理的服务器或所述第一代理集群的服务器中本地缓存,将所述内容提供给所述应用程序;或者响应于确定所述内容未在所述邻近代理的服务器或所
述第一代理集群的服务器中本地缓存,基于与所述内容的所述存储路径有关的信息,获取所述内容;以及将所述内容提供给所述应用程序。
[0020]
本申请的另一个方面涉及一种非暂时性计算机可读介质用于数据处理。所述非暂时性计算机可读介质包括至少一组指令或程序用于数据处理,其中,当所述至少一组指令或程序被计算设备的一个或多个处理器执行时,所述至少一组指令或程序被配置为使计算设备执行以下操作中的一个或多个:使至少两个服务器预处理初始数据以获取预处理数据;使一个或以上代理集群中的一个或以上代理存储所述预处理数据;通过应用程序接收数据请求,所述数据请求包括与所请求的内容的存储路径有关的信息,其中,所述内容是所述预处理数据的一部分;响应于所述数据请求,基于所述数据请求,确定所述一个或以上代理集群中的第一代理集群的邻近代理;使所述邻近代理确定所述数据请求中所请求的所述内容是否在所述邻近代理的服务器或所述第一代理集群的服务器中本地缓存;以及响应于确定所述内容在所述邻近代理的服务器或所述第一代理集群的服务器中本地缓存,使所述邻近代理将所述内容提供给所述应用程序;或者响应于确定所述内容未在所述邻近代理的服务器或所述第一代理集群的服务器中本地缓存,使所述邻近代理基于与所述内容的所述存储路径有关的信息,获取所述内容;以及使所述邻近代理将所述内容提供给所述应用程序。
[0021]
一部分的附加特征将在如下描述中详细解释,基于对如下内容和附图的审查或通过实现或操作实施例的学习,一部分的附加特征对本领域技术人员来说是显而易见的。本申请的特征可以通过对以下描述的具体实施例的各种方面的方法、手段和组合的实践或使用得以实现和达到。
附图说明
[0022]
本申请将通过示例性实施例进行进一步描述。这些示例性实施例将通过附图进行详细描述。这些实施例并非限制性的,在这些实施例中,相同的符号表示相同的部件,其中:
[0023]
图1是根据本申请的一些实施例所示的示例性数据处理系统的示意图;
[0024]
图2是根据本申请的一些实施例所示的示例性计算设备的示例性硬件和/或软件组件的示意图;
[0025]
图3是根据本申请的一些实施例所示的示例性处理设备的框图;
[0026]
图4是根据本申请的一些实施例所示的示例性处理设备的框图;
[0027]
图5是根据本申请的一些实施例所示的通过应用程序响应于数据请求并提供内容到应用程序的示例性过程的流程图;
[0028]
图6是根据本申请的一些实施例所示的预处理初始数据和存储预处理数据的示例性过程的流程图;
[0029]
图7是根据本申请的一些实施例所示的预处理初始数据的示例性过程的流程图;
[0030]
图8是根据本申请的一些实施例所示的响应于数据请求,将内容提供给应用程序的示例性过程的流程图;以及
[0031]
图9是根据本申请的一些实施例所示的预处理初始数据的示例性过程的流程图。
具体实施方式
[0032]
为了更清楚地说明本申请的实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。然而,本领域技术人员应该明白,可以在没有这些细节的情况下实施本申请。在其他情况下,为了避免不必要地模糊本申请的一些方面,本申请已经以相对高级别概略地描述了公知的方法、程序、系统、组件和/或电路。对于本领域的普通技术人员来讲,显然可以对所披露的实施例作出各种改变,并且在不偏离本申请的原则和范围的情况下,本申请中所定义的普遍原则可以适用于其他实施例和应用场景。因此,本申请不限于所示的实施例,而是符合与权利要求一致的最广泛范围。
[0033]
本申请中所使用的术语仅用于描述特定的示例性实施例,并不限制本申请的范围。如本申请使用的单数形式“一”、“一个”及“所述”可以同样包括复数形式,除非上下文明确提示例外情形。还应当理解的是,如在本申请说明书中,术语“包括”、“包含”仅提示存在所述特征、整体、步骤、操作、组件和/或部件,但并不排除存在或添加一个或以上其他特征、整体、步骤、操作、组件、部件和/或其组合的情况。
[0034]
根据以下对附图的描述,本申请的这些和其他的特征、特点以及相关结构元件的功能和操作方法,以及部件组合和制造经济性,可以变得更加显而易见,这些附图都构成本申请说明书的一部分。然而,应当理解的是,附图仅仅是为了说明和描述的目的,并不旨在限制本申请的范围。应当理解的是,附图并不是按比例绘制的。
[0035]
本申请中使用了流程图用来说明根据本申请的一些实施例的系统所执行的操作。应当理解的是,前面或下面操作不一定按照顺序来精确地执行。相反,可以按照倒序或者同时处理这些步骤。同时,也可以将一个或以上其他操作添加到这些流程图中。一个或以上其他操作也可以从流程图中删除。
[0036]
此外,尽管本申请中公开的系统和方法主要描述了在陆地运输系统中产生的数据的处理和/或管理,但应该理解,这仅是一个示例性实施例。本申请的系统和方法可以应用于任何其他类型的运输系统或任何其他线上到线下(o2o)服务系统。例如,本申请的系统和方法可以应用于不同环境的运输系统,包括海洋、航空航天等,或其任何组合。运输系统的车辆可包括汽车、公共汽车、火车、地铁、船只、飞机、宇宙飞船、热气球等,或其任何组合。
[0037]
本申请的一个方面涉及数据处理系统和方法。根据本申请的一些系统和方法,预处理服务器集群可以接收预处理初始数据的请求;根据任务的优先级,将与初始数据的预处理相关的任务加入到任务队列;根据任务的优先级从任务队列中取出一个或以上任务;从一个或以上代理集群获取初始数据;通过执行一个或以上任务获取预处理数据;发起与一个或以上任务的执行结果有关的一个或以上通知到应用程序。根据本申请的一些系统和方法,代理服务器集群可以接收通过应用程序发出的数据请求;确定数据请求中所请求的内容是否通过邻近代理在所述邻近代理的服务器或所述代理服务器集群中本地缓存;响应于确定内容在本地缓存,通过邻近代理将内容提供给应用程序;或者响应于确定内容未在本地缓存,基于与所请求的内容的存储路径有关的信息,获取内容,并通过邻近代理将内容提供给应用程序。此外,根据本申请的一些系统和方法,响应于确定内容未在本地缓存,代理服务器集群可以通过邻近代理确定数据请求中所请求的内容是否是高热度或高频访问数据;响应于所请求的内容是高热度或高频访问数据,将内容缓存到一个或以上服务器中,所述服务器与一个或以上区域的一个或以上代理集群中的其他代理相结合。
[0038]
根据本申请的系统和方法,由于初始数据在不同区域异步预处理,用户可以直接下载预处理数据,减少用户下载的数据量,提高数据访问效率,减少数据存储空间,节省带宽资源。因此,可以在不浪费资源的情况下有效且经济地处理和/或管理在不同区域中生成的大量数据。此外,根据本申请的系统和方法,可以在用户请求之前或之后自动将数据缓存在一个或以上区域的一个或以上服务器中,并且可以基于数据的热度来执行缓存机制,从而提高数据的下载速度(或访问速度),节省带宽资源,并处理大规模并发数据访问请求。
[0039]
图1是根据本申请的一些实施例所示的示例性数据处理系统的示意图。在一些实施例中,数据处理系统100可以应用于一个或以上的领域或行业。示例性领域或行业可以包括自动驾驶行业、医疗行业、电力行业、通信行业等或其任意组合,或者任何具有高数据并发性的行业。在一些实施例中,数据处理系统100可以包括一个或以上服务器110、网络120、一个或以上终端设备130以及一个或以上存储设备140。数据处理系统100中的组件可以以一个或以上各种方式连接。仅作为示例,存储设备140可以直接连接到服务器110(如连接存储设备140和服务器110的虚线双向箭头所示)或通过网络120连接。又例如,服务器110可以直接连接到终端设备130(如连接服务器110和终端设备130的虚线双向箭头所示)或通过网络120连接。作为又一示例,终端设备130可以直接连接到存储设备140(如连接终端设备130和存储设备140的虚线双向箭头所示)或通过网络120连接。
[0040]
在一些实施例中,服务器110可以是单个服务器,也可以是服务器组。服务器组可以是集中式的或分布式的(例如,服务器110可以是分布式系统)。在一些实施例中,服务器110可以是本地的,也可以是远程的。例如,服务器110可以经由网络120访问存储在终端设备130和/或存储设备140中的信息和/或数据。又例如,服务器110可以直接连接到终端设备130和/或存储设备140,以访问存储的信息和/或数据。在一些实施例中,服务器110可以在云平台或车载计算机上实现。仅作为示例,该云平台可以包括私有云、公共云、混合云、社区云、分布云、内部云、多层云等或其任意组合。在一些实施例中,服务器110可以在本申请中的图2描述的包含了一个或以上组件的计算设备200上执行。
[0041]
在一些实施例中,服务器110可以包括一个或以上的服务器,例如服务器110-1、服务器110-2、......、服务器110-n。服务器110可以被配置为执行一个或以上功能,用于独立地或联合地存储数据、预处理数据、分发数据、缓存数据等,或其任何组合。仅作为示例,服务器110可以包括一个或以上代理服务器集群、一个或以上预处理服务器集群等。代理服务器集群可以包括与区域(例如,国家或国家中的地区)中的代理服务器集群的一个或以上代理相结合的一个或以上服务器。代理服务器集群可以被配置为与存储设备140(或由存储设备140操作的数据库)交互,以从存储设备140(或者数据库)获取数据或将数据存储到存储设备140(或者数据库)。在一些实施例中,代理服务器集群可以在代理服务器集群本地缓存数据以方便数据访问和/或减少数据访问压力。如这里所使用的,代理可以指存储在数据处理系统100中的协议(或者可以执行与协议相关的功能的服务器)。在一些实施例中,代理可以被配置为从/向数据处理系统100的一个或以上组件(例如,服务器110、存储设备140)检索和/或下载和/或存储数据。预处理服务器集群可以包括区域(例如,国家或国家中的地区)中的一个或以上服务器,用于执行预处理数据的功能。
[0042]
在一些实施例中,不同区域(例如,不同国家或国家中的不同区域)可以具有不同的预处理服务器集群和/或不同的代理服务器集群。在一些实施例中,不同区域(例如,国家
中的不同区域)可以共享相同的预处理服务器集群和/或相同的代理服务器集群。在一些实施例中,预处理服务器集群或代理服务器集群中的所有服务器可以配置在相同的区域中。在一些实施例中,预处理服务器集群或代理服务器集群中的一个或以上服务器可以配置在不同的区域中。区域可以指地理区域或行政区域。在一些实施例中,服务器可以仅执行一个功能。例如,服务器110中的一个(例如,服务器110-1)可以用作代理服务器,而服务器110中的另一个(例如,服务器110-2)可以用作预处理服务器。在一些实施例中,服务器可以执行两个或以上功能。例如,服务器110之一(例如,服务器110-n)可以用作代理服务器和预处理服务器。
[0043]
在一些实施例中,可以在因特网数据中心(idc)中设置一个或以上(例如,所有)服务器110。在一些实施例中,服务器110可以设置在不同区域的不同数据中心中。如这里所使用的,数据中心可以指专用空间被配置为容纳计算机系统和相关组件,例如电信设备和存储设备(例如,存储设备140)。一个区域可以具有一个或以上数据中心。idc可以指由服务提供者或idc公司建立的数据中心,以提供稳定的宽带网络服务、高性能计算服务和/或主机服务。在一些实施例中,服务器110的一部分可以设置在idc中,而服务器110的另一部分可以设置在idc之外(例如,在一个或以上测试站、在一个或以上办公室等)。在一些实施例中,服务器110可以控制或管理idc、测试站和/或办公室中的计算设备和/或存储设备的操作。
[0044]
在一些实施例中,服务器110可以包括一个或以上处理设备112。如图1所示,服务器110-1可以包括处理设备112-1,服务器110-2可以包括处理设备112-2、...,服务器110-n可以包括处理设备112-n。处理设备112可以处理存储在存储设备(例如,存储设备140)中和/或由终端设备130生成的信息和/或数据,以执行本申请中描述的一个或以上功能。例如,处理设备112可以预处理初始数据以获取预处理数据。又如,响应于通过应用程序发出的数据请求,处理设备112可以通过第一区域中的第一代理集群的邻近代理确定数据请求中所请求的内容是否在邻近代理的服务器或第一代理集群的服务器本地缓存。作为又一示例,响应于确定内容在本地缓存,处理设备112可以通过邻近代理将内容提供给应用程序。作为又一示例,处理设备112可以基于与内容的存储路径有关的信息,通过邻近代理来获取内容。作为又一示例,处理设备112可以通过邻近代理确定数据请求中所请求的内容是否是高热度或高频访问数据。作为又一示例,处理设备112可以将内容缓存在与第一代理集群的其他代理相结合的一个或以上服务器中和/或与第一区域中的第二代理集群的代理相结合的一个或以上服务器中。在一些实施例中,所述处理设备112可包括一个或以上处理引擎(例如,单芯片处理引擎或多芯片处理引擎)。仅作为示例,处理设备112可包括中央处理器(cpu)、特定应用集成电路(asic)、特定应用指令集处理器(asip)、图像处理器(gpu)、物理运算处理单元(ppu)、数字信号处理器(dsp)、现场可编程门阵列(fpga)、可编程逻辑设备(pld)、控制器、微控制器单元、精简指令集计算机(risc)、微处理器等或其任意组合。
[0045]
在一些实施例中,服务器110的至少一部分可以连接到网络120,以与数据处理系统100的一个或以上组件(例如,终端设备130、存储设备140)通信。在一些实施例中,服务器110的至少一部分可以直接连接到数据处理系统100的一个或以上组件(例如,终端设备130、存储设备140)或与之通信。
[0046]
网络120可以方便信息和/或数据的交换。在一些实施例中,数据处理系统100的一个或以上组件(例如,服务器110、终端设备130或存储设备140)可以通过网络120将信息和/
或数据发送到数据处理系统100的其他组件。例如,终端设备130可以经由网络120将数据请求发送到服务器110。又例如,处理设备112可以通过网络120接收由终端设备130发送的数据请求。作为又一示例,处理设备112可以通过网络120从存储设备140获取用于预处理的初始数据。作为又一示例,存储设备140可以通过网络120,从服务器110获取预处理数据以存储。作为又一示例,处理设备112可以通过网络120从终端设备130接收对初始数据进行预处理的请求。作为又一示例,处理设备112可以经由网络120将与初始数据的预处理结果有关的一个或以上通知发送到终端设备130。在一些实施例中,网络120可以为任意形式的有线或无线网络,或其任意组合。仅作为示例,网络120可以包括电缆网络、有线网络、光纤网络、电信网络、内部网络、互联网、局域网络(lan)、广域网络(wan)、无线局域网络(wlan)、城域网(man)、公共交换电话网络(pstn)、蓝牙网络、紫蜂网络、近场通讯(nfc)网络等或其任意组合。在一些实施例中,网络120可以包括一个或以上网络接入点。例如,网络120可以包括有线或无线网络接入点,通过该接入点,数据处理系统100的一个或以上组件可以连接到网络120以交换数据和/或信息。
[0047]
在一些实施例中,终端设备130可以包括移动设备130-1、平板计算机130-2、膝上型计算机130-3、车辆内置设备130-4、可穿戴设备130-5等,或其任何组合。在一些实施例中,移动设备130-1可以包括智能家居设备、智能移动设备、虚拟现实设备、增强现实设备等,或其任何组合。在一些实施例中,智能家居设备可以包括智能照明设备、智能电器控制设备、智能监控设备、智能电视、智能摄像机、对讲机等,或其任意组合。在一些实施例中,智能移动设备可以包括智能电话、个人数字助理(pda)、游戏设备、导航设备、销售点(pos)等,或其任意组合。在一些实施例中,虚拟现实设备和/或增强现实设备包括虚拟现实头盔、虚拟现实眼镜、虚拟现实眼罩、增强现实头盔、增强现实眼镜、增强现实眼罩等,或其任何组合。例如,虚拟现实设备和/或增强现实设备可以包括google
tm
眼镜、oculus rift
tm
、hololens
tm
、gear vr
tm
等。在一些实施例中,车载设备130-4可以包括车载计算机、车载电视等。在一些实施例中,可穿戴设备130-5可包括智能手环、智能鞋袜、智能眼镜、智能头盔、智能手表、智能服装、智能背包、智能配件等,或其任何组合。在一些实施例中,服务器110可以集成到终端设备130中。
[0048]
终端设备130可以被配置用于方便用户(例如,工程师)和数据处理系统100之间的通信。例如,用户可以通过终端设备130向数据处理系统100发送数据请求。又例如,用户可以经由终端设备130检索和/或下载存储在数据处理系统100的一个或以上存储设备中的数据和/或信息。作为又一示例,用户可以通过经由终端设备130登录与数据处理系统100结合(或可以与之通信)的应用程序来检索或下载感兴趣的数据。在一些实施例中,与数据处理系统100结合的应用程序可以便于处理和/或管理由终端设备130生成和/或存储在存储设备140中的数据。在一些实施例中,应用程序可以为数据的一个或以上用户提供数据访问接口,使得用户可以通过应用程序检索或下载感兴趣的数据以进一步使用数据。应用程序的更多描述可以在本申请的其他地方找到。
[0049]
存储设备140可以存储数据和/或指令。在一些实施例中,存储设备140可以存储从终端设备130获取的数据,例如数据请求。在一些实施例中,存储设备140可以存储初始数据。为了说明,以自动驾驶行业为例,存储设备140可以存储从自动驾驶车辆获取的初始数
据,例如驾驶信息。与自动驾驶车辆相关的驾驶信息可以包括道路状况信息(例如,道路宽度、道路长度、道路类型、交通标志、交通车道信息、交通信号灯信息)、地图信息、状态(例如,操作)自动驾驶车辆在驾驶期间的信息、表现信息(例如,自动驾驶车辆的位置、自动驾驶车辆的速度(例如,瞬时速度、预定时间段内的平均速度)、加速度(例如,自动驾驶车辆的瞬时加速度、预定时间段内的平均加速度)、自动驾驶车辆的行驶路径等,或其任何组合。例如,驾驶信息可以包括例如点云数据、图像数据、速度数据,与由至少两个检测单元获取的与自动驾驶车辆相关的位置数据(例如,光检测和测距(lidar))、摄像机、速度传感器、全球定位系统(gps)模块)、自动驾驶车辆的性能或操作信息。在一些实施例中,存储设备140可以存储由服务器110生成或处理的数据。例如,服务器110可以预处理初始数据以获取预处理数据,并且存储设备140可以存储预处理数据。在一些实施例中,存储设备140可以存储服务器110用来执行或使用来完成本申请中描述的示例性方法的数据和/或指令。
[0050]
在一些实施例中,存储设备140可以连接到网络120以与数据处理系统100的一个或以上组件(例如,服务器110、终端设备130)通信。数据处理系统100的一个或以上组件可以通过网络120访问存储设备140中存储的数据或指令。在一些实施例中,存储设备140可以直接连接到数据处理系统100的一个或以上组件(例如,服务器110、终端设备130)或与之通信。在一些实施例中,存储设备140的至少一部分可以是服务器110的一部分。在一些实施例中,存储设备140的至少一部分可以集成在终端设备130中。在一些实施例中,存储设备140的至少一部分可以设置在一个或以上idc中。仅仅为了说明,在数据处理系统100中仅示出了一个存储设备。然而,应该注意,本申请中的数据处理系统100还可以包括多个存储设备。
[0051]
在一些实施例中,存储设备140中存储的数据可以组织在数据库(例如,分布式文件子系统)、信息源等中,或其任何组合中。数据库可以方便数据的存储和检索。分布式文件子系统可以包括hadoop分布式文件系统(hdfs)、网络文件系统(nfs)、kass文件系统(kass)、安德鲁文件系统(afs)等,或其任何组合。以hdfs为例,初始数据和/或预处理数据可以存储在hdfs中以进行检索。hdfs可以经由网络120与数据处理系统100的一个或以上组件(例如,服务器110、终端设备130)通信,或者直接与数据处理系统100的一个或以上组件(例如,服务器110、终端设备130)通信。在一些实施例中,数据库(例如,hadoop分布式文件系统(hdfs))可以是存储设备140的一部分(或由其操作)。在一些实施例中,数据处理系统100可以包括一个或以上hdfs。例如,不同的区域(例如,不同的国家)可以具有不同的hdfs。又例如,不同的地区(例如,一个国家的不同地区)可以共享同一个的hdfs。
[0052]
在一些实施例中,存储设备140可包括大容量存储器、可移动存储器、易失性读写存储器、只读存储器(rom)等或其任意组合。示例性的大容量存储器可以包括磁盘、光盘、固态磁盘等。示例性可移动存储器可以包括闪存驱动器、软盘、光盘、存储卡、压缩盘、磁带等。示例性易失性读写存储器可以包括随机存取存储器(ram)。示例性ram可包括动态随机存取存储器(dram)、双倍数据速率同步动态随机存取存储器(ddr sdram)、静态随机存取存储器(sram)、晶闸管随机存取存储器(t-ram)和零电容随机存取存储器(z-ram)等。示例性只读存储器可以包括掩模型只读存储器(mrom)、可编程只读存储器(prom)、可擦除可编程只读存储器(eprom)、电可擦除可编程只读存储器(eeprom)、光盘只读存储器(cd-rom)和数字多功能磁盘只读存储器等。在一些实施例中,所述存储设备140可以在云平台上实现。仅作为示例,该云平台可以包括私有云、公共云、混合云、社区云、分布云、内部云、多层云等或其任
意组合。
[0053]
应当注意数据处理系统100仅仅是为了说明的目的而提供的,并不意图限制本申请的范围。对于本领域的普通技术人员来说,可以根据本申请的描述,做出各种各样的变化和修改。然而,这些变化和修改不会背离本申请的范围。例如,数据处理系统100可以在其他设备上实现以实现类似或不同的功能。又例如,可以从数据处理系统100中省略存储设备140。
[0054]
图2是示出根据本申请的一些实施例的示例性计算设备的示例性硬件和/或软件组件的示意图。在一些实施例中,服务器110可以在计算设备200上实现。例如,处理设备112可以在计算设备200上实现,并且被配置用于执行本申请中公开的处理设备112的功能。
[0055]
计算设备200可用于实现本申请的数据处理系统100的任何组件。例如,数据处理系统100的处理设备112可以通过其硬件、软件程序、固件或其组合在计算设备200上实现。尽管为了方便仅示出了一个这样的计算机,但是如本文所述的与数据处理系统100相关的计算机功能可以在多个类似平台上以分布式方式实现,以分配处理负载。
[0056]
例如,计算设备200可以包括连接到与其连接的网络(例如,网络120)的通信(com)端口250,以便于数据通信。计算设备200还可以包括处理器(例如,处理器220),其形式为一个或以上处理器(例如,逻辑电路),用于执行程序指令。例如,处理器包括其中的接口电路和处理电路。接口电路可以被配置为从总线210接收电信号,其中电信号编码用于处理电路的结构化数据和/或指令。处理电路可以进行逻辑计算,然后将结论、结果和/或指令编码确定为电信号。然后,接口电路可以经由总线210从处理电路发出电信号。
[0057]
计算设备200还可以包括不同形式的程序存储和数据存储,例如磁盘270、只读存储器(rom)230或随机存取存储器(ram)240,用于存储由计算设备200处理和/或传输的各种数据文件。计算设备200还可以包括存储在rom 230、ram 240和/或由处理器220执行的其他类型的非暂时性存储介质中的程序指令。本申请的方法和/或流程可以以程序指令的方式实现。计算设备200还可以包括i/o组件260,支持计算设备200与其中的其他组件之间的输入/输出。计算设备200也可以通过网络通信接收编程和数据。
[0058]
仅仅为了说明,在计算设备200中仅描述了一个处理器。然而,应当注意,本申请中的计算设备200还可以包括多个处理器,因此由本申请中描述的一个处理器执行的操作也可以由多个处理器联合或单独执行。例如,计算设备200的处理器执行操作a和操作b。如在另一示例中,操作a和操作b也可以由计算设备200中的两个不同处理器联合或单独执行(例如,第一处理器执行操作a并且第二处理器执行操作b,或者第一和第二处理器联合执行操作a和b)。
[0059]
图3是根据本申请的一些实施例所示的可以在其上实现终端设备的示例性移动设备的示例性硬件和/或软件组件的示意图。如图3所示,移动设备300可以包括通信平台310、显示器320、图形处理单元(gpu)330、中央处理单元()cpu)340、i/o 350、内存360和存储器390。在一些实施例中,任何其他合适的组件,包括但不限于系统总线或控制器(未示出),也可包括在移动设备300内。在一些实施例中,操作系统370(例如,ios
tm
、android
tm
、windows phone
tm
等)和一个或以上应用程序380可从存储器390下载至内存360以及由cpu 340执行。应用程序380可以包括浏览器或任何其他合适的移动应用程序,用于从处理设备112接收和呈现与定位或其他信息有关的信息。用户与信息流的交互可以通过i/o 350实现,并通过网
络150提供给处理设备112和/或数据处理系统100的其他组件。
[0060]
为了实施本申请描述的各种模块、单元及其功能,计算机硬件平台可用作本文中描述的一个或以上组件的硬件平台。具有用户接口组件的计算机可用于实施个人计算机(pc)或任何其他类型的工作站或终端设备。若程控得当,计算机亦可用作服务器。
[0061]
图4是根据本申请的一些实施例所示的示例性处理设备的框图。服务器110的处理设备112可以包括采集模块402、预处理模块404、确定模块406、传输模块408和存储模块410。
[0062]
采集模块402可以被配置为响应于数据请求,获取内容。在一些实施例中,数据请求可以包括与内容的存储路径和/或所请求的内容的描述相关的信息。采集模块402可以基于内容的存储路径的信息,通过邻近代理来获取内容。可以在本申请的其他地方找到对内容获取的更多描述(例如,图5中的操作509及其描述)。
[0063]
预处理模块404可以被配置为预处理初始数据以获取预处理数据。在一些实施例中,预处理模块404可以通过对初始数据执行一个或以上预处理操作来预处理初始数据。在一些实施例中,预处理模块404可以基于预设规则或用户的请求来预处理初始数据。在一些实施例中,预处理模块404可以基于任务队列预处理初始数据。可以在本申请的其他地方找到对初始数据的预处理的更多描述(例如,图5中的操作501、图6中的操作601-607、图9及其描述)。
[0064]
确定模块406可以是配置用于确定数据请求中请求的内容是否在邻近代理的服务器或代理集群的服务器本地缓存。在一些实施例中,响应于数据请求,确定模块406可以确定邻近代理。邻近代理可以确定与内容相关的信息(例如,类型、名称、存储路径、大小等)。邻近代理可以基于该信息确定数据请求中请求的内容是否在本地缓存。可以在本申请的其他地方找到关于确定内容是否被本地缓存的更多描述(例如,图5中的操作507、图8中的操作807及其描述)。在一些实施例中,确定模块406可以确定数据请求中所请求的内容是否是高热度或高频访问数据(如图8的操作811所示)。
[0065]
传输模块408可以被配置用于方便数据处理系统100的一个或以上组件之间的通信。例如,传输模块408可以接收通过应用程序发出的数据请求。应用程序可以包括数据处理系统100的接口,以便于一个或以上用户在数据处理系统100中进行数据访问。用户可以通过接口访问数据处理系统100。又例如,传输模块408可以将内容提供给应用程序。用户可以通过应用程序访问或下载内容。接收数据请求和提供内容的更多描述可以在本申请的其他地方找到(例如,图5中的操作505、511及其描述)。
[0066]
存储模块410可以被配置用于存储预处理数据。在一些实施例中,存储模块410可以通过一个或以上代理将预处理数据存储到数据处理系统100的一个或以上存储设备(例如,存储设备140,或由存储设备140操作的hdfs)中。在一些实施例中,存储模块410可以通过一个或以上代理从任务队列获取预处理数据。可以在本申请的其他地方找到关于预处理数据的存储的更多描述(例如,图5中的操作503、图6中的操作611-613及其描述)。
[0067]
处理设备112中的模块可以经由有线连接或无线连接彼此连接或通信。有线连接可以包括金属线缆、光缆、混合电缆等或其任意组合。无线连接可以包括局域网络(lan)、广域网络(wan)、蓝牙、紫蜂网络、近场通讯(nfc)等或其任意组合。可以将两个或以上的模块组合成单个模块,并且可以将任何一个模块划分为两个或以上单元或者省略。例如,预处理
模块404可以分为三个单元(例如,第一单元、第二单元和第三单元)。第一单元可以被配置为将至少两个任务加入到任务队列。第二单元可以从任务队列取出一个或以上任务。第三单元可以被配置为执行任务,获取预处理数据,并将预处理数据存储在任务队列中。
[0068]
图5是根据本申请的一些实施例所示的通过应用程序响应于数据请求并提供内容到应用程序的示例性过程的流程图。过程500可以由数据处理系统100执行。例如,过程500可以实现为存储在存储器rom 230或ram 240中的指令集。处理器220和/或图4中的模块可以执行指令集,并且当执行指令时,处理器220和/或模块可以被配置以执行处理500。以下所示过程的操作仅出于说明的目的。在一些实施例中,过程500可以利用未描述的一个或以上附加操作,和/或没有所讨论的一个或以上操作来完成。另外,图5中示出并在下面描述的过程500的操作的顺序不旨在是限制性的。
[0069]
在501中,处理设备112(例如,预处理模块404)可以预处理初始数据以获取预处理数据。
[0070]
在一些实施例中,初始数据可以指存储在数据处理系统100的存储设备(例如,存储设备140或由存储设备140操作的hdfs)中的原始数据。以自动驾驶行业为例,初始数据可以从一个或以上的自动驾驶车辆获取或与之相关。在一些实施例中,初始数据可以包括与由至少两个检测单元(例如,光检测和测距(lidar)、相机、速度传感器、全球定位系统(gps)模块)获取的自动驾驶车辆相关的驾驶信息(例如,点云数据、图像数据、速度数据、位置数据)、自动驾驶车辆的性能或操作信息(例如,行驶路径)等,或其任何组合。
[0071]
在一些实施例中,处理设备112可以通过对初始数据执行一个或以上预处理操作来预处理初始数据。预处理操作可以包括压缩初始数据、验证初始数据、过滤初始数据、切分初始数据等,或其任何组合。在一些实施例中,处理设备112可以基于一个或以上预设规则来预处理初始数据。例如,处理设备112可以基于一个或以上预设算法和/或参数来预处理初始数据。在一些实施例中,处理设备112可以基于用户(例如,工程师)的一个或以上请求,预处理初始数据。例如,用户可以经由网络120发送具有特定要求(例如,请求过滤初始数据的第一数据集并压缩初始数据的第二数据集)的一个或以上预处理请求(或指令)到数据处理系统100,处理设备可以基于请求,预处理初始数据。
[0072]
压缩初始数据可以包括减少初始数据的存储空间以提高传输、存储和/或处理效率。在一些实施例中,处理设备112可以基于压缩算法来压缩初始数据(例如,霍夫曼算法、lempel-ziv-welch(lzw)算法、lempel-ziv-storer-szymanski(lzss)算法、deflate算法、行程编码(rlc)算法、行程编码(rle)算法、lempel-ziv(lz77)算法、rice编码算法等)。在一些实施例中,压缩初始数据可以包括从初始数据中移除异常数据(例如,重复数据、冗余数据或错误数据)。例如,在数据采集期间,可能发生错误(例如,采集的数据可能是0或空白)。处理设备112可以移除错误数据(例如,0或空白)。又例如,处理设备112可以移除在采集设备(例如,无人驾驶飞行器)故障期间收集的数据。在一些实施例中,异常数据可具有相应的标识符。处理设备112可以基于其标识符,识别异常数据并去除异常数据。
[0073]
验证初始数据可以包括确定初始数据的有效性。在一些实施例中,处理设备112可以基于初始数据的时间序列或一个或以上其他预设规则来验证初始数据。例如,如果第一组数据(例如,gps轨迹数据)的第一时间序列与第二组数据的第二时间序列(例如,自动驾驶车辆的速度数据)不一致,在时间上不一致的第一组数据或第二组数据的一部分可被确
定为无效。在一些实施例中,处理设备112可以基于其标识符确定初始数据的有效性。例如,如果初始数据包括指示初始数据是异常数据的标识符,则处理设备112可以确定初始数据是无效的。
[0074]
过滤初始数据可以包括移除或删除被验证为无效的全部或部分初始数据。在一些实施例中,对初始数据进行过滤还可以包括过滤初始数据中的噪声(例如,图像中的噪声)。在一些实施例中,处理设备112可以基于滤波算法来过滤初始数据(例如,卡尔曼滤波算法、扩展卡尔曼滤波算法、限制滤波器算法、中值滤波算法、算术平均滤波算法、递归均值滤波算法、中值均值滤波算法、有限平均滤波算法、第一阶滞后滤波算法、加权递归均值滤波器、噪声消除滤波算法、幅度限制噪声消除滤波算法、协同滤波算法等)。
[0075]
对初始数据进行切分可以包括将初始数据划分为至少两个数据段,以便于用户(例如,工程师)检索和/或下载数据。在一些实施例中,处理设备112可以基于一个或以上预设规则来切分初始数据。例如,处理设备112可以基于与时间和/或大小相关的规则来切分初始数据,使得初始数据的每个数据段可以对应于有限的时间段(例如,20秒)和/或有限的尺寸(例如,600m)。在一些实施例中,预处理设备112可以确定初始数据的至少两个数据集的重要度(和/或热度)(例如,高重要度、中等重要度、低重要度等)。在一些实施例中,预处理设备112可以基于一个或以上预设规则、数据访问次数、数据的使用等或其组合来确定重要性程度。在一些实施例中,处理设备112可以在预处理过程中对相对高重要度的数据进行切分。在一些实施例中,处理设备112可以在预处理过程中对相对低重要度的数据暂时不进行切分。在一些实施例中,处理设备112可以响应于用户(例如,工程师)的请求,对相对低重要度的数据进行切分。在一些实施例中,初始数据的重要程度可以在不同情况下变化。例如,初始数据在第一时间段期间(例如,在开发项目期间)可以具有相对高的重要度,而初始数据在第二时间段期间可以具有相对低的重要度(例如,在开发项目完成之后)。
[0076]
在一些实施例中,处理设备112可以基于任务队列,预处理初始数据。任务队列(也称为作业队列)可以指包含要运行的作业/任务的数据结构。任务队列可以由作业/任务调度器软件维护。任务队列可包括一个或以上任务。任务可以指代程序执行上下文。任务可以指示要对哪个类型或哪个部分的初始数据进行预处理、对数据执行什么预处理操作、与要预处理的相应数据的存储路径有关的信息,或其任何组合。在一些实施例中,任务队列可以是分布式任务队列。在一些实施例中,处理设备112可以基于分布式任务队列,异步地预处理初始数据。例如,至少两个处理设备112可以基于任务队列单独地和/或同时地对初始数据的一个或以上数据集执行相同的预处理操作。另外,至少两个处理设备112可以基于任务队列,分别和/或同时对初始数据的一个或以上数据集执行不同的预处理操作。在一些实施例中,任务队列中的任务可以具有优先级信息,并且处理设备112可以根据任务的优先级信息来执行任务。例如,处理设备112可以确定当前要执行哪个任务。基于任务队列的初始数据的预处理的更多描述可以在本申请的其他地方找到(例如,在图6、7和9及其描述中)。
[0077]
在503中,处理设备112(例如,存储模块410)可以存储预处理数据。
[0078]
在一些实施例中,处理设备112可以通过一个或以上代理将预处理数据存储到数据处理系统100中的一个或以上存储设备(例如,存储设备140,或由存储设备140操作的hdfs)中。在一些实施例中,处理设备112可以分别预处理存储在数据处理系统100的不同存储设备中的不同初始数据,并获取相应的预处理数据。在一些实施例中,处理设备112可以
将对应的预处理数据存储回到存储不同初始数据的相应存储设备中。预处理数据的存储的更多描述可以在本申请的其他地方找到(例如,在图6、7和9及其描述中)。
[0079]
在505中,处理设备112(例如,传输模块408)可以通过应用程序接收数据请求。在一些实施例中,数据请求可以包括与所请求的内容的存储路径有关的信息。内容可以是初始数据和/或预处理数据的一部分。在一些实施例中,数据请求可以包括对所请求的内容的描述。在一些实施例中,内容的描述可指示请求哪种类型的数据、所请求数据的大小、所请求数据的创建方法、创建的时间和/或日期、所请求数据的创建者或作者、计算机网络上创建所请求数据的位置、所请求数据的数据质量等,或其组合。
[0080]
如这里所使用的,应用程序可以包括数据处理系统100的接口。应用程序可以方便数据处理系统100中的一个或以上用户的数据访问。用户可以通过接口访问数据处理系统100。在一些实施例中,应用程序可以安装在终端设备130中。用户(例如,工程师)可以通过接口登录应用程序。登录用户可以通过选择或确认一个或以上选项(例如,操作按钮、功能菜单等)或在应用程序的接口上输入请求的内容的描述(例如,类型、名称、大小等)来发起数据请求。在一些实施例中,应用程序可以基于内容的描述来确定所请求的内容的存储路径。
[0081]
在一些实施例中,应用程序可以基于数据请求生成统一资源标识符(uri)(例如,统一资源定位符(url))。url可以包括登录用户的因特网协议(ip)地址、所请求内容的描述、与所请求内容的存储路径有关的信息等,或其任何组合。在一些实施例中,响应于数据请求,应用程序可以向登录用户提供url。在一些实施例中,如果登录用户点击url,则处理设备112可以从应用程序接收数据请求,并且处理设备112可以基于登录用户的ip地址调用邻近代理。在一些实施例中,如果登录用户点击url,则应用程序可以基于登录用户的ip地址直接调用邻近代理。邻近代理可以接收数据请求,并通过解析url确定与请求的内容相关的信息。
[0082]
在507,响应于数据请求,处理设备112(例如,确定模块406)可以确定(例如通过邻近代理)数据请求中请求的内容是否在本地缓存(例如,在邻近代理的服务器本地缓存,或在邻近代理所在的代理集群的服务器本地缓存)。响应于确定数据请求中请求的内容在本地缓存,过程500可以进行到511。或者,响应于确定数据请求中请求的内容未在本地缓存,过程500可以进行到509。
[0083]
在一些实施例中,可以基于应用程序生成的url来确定邻近代理。如果登录用户单击url,则应用程序可以调用邻近代理。在一些实施例中,如果ip地址指示登录用户位于第一区域中,则邻近代理可以是第一区域中的第一代理集群的代理。在一些实施例中,结合到邻近代理的服务器的位置和与登录用户相关的终端设备130的位置(也称为用户位置)之间的距离可以小于与第一代理集群中的其他代理(和/或第一区域中的其他代理集群(如果有的话))相结合的服务器的位置和该用户位置之间的距离。例如,应用程序可以基于登录用户的ip地址确定用户位置。应用程序可以基于用户位置确定第一区域。如果用户位置在国家a中,则应用程序可以确定国家a是否包括多于一个代理集群。响应于确定国家a仅包括一个代理集群,应用程序可以指定唯一的代理集群为第一代理集群,并确定与第一代理集群中的用户位置具有最小距离的代理作为邻近代理。响应于确定国家a包括多个代理集群时,应用程序可以在国家a中用户位置的同一地区中指定代理集群作为第一代理集群,并确定
与用户位置具有最小距离的第一代理集群中的代理作为邻近代理。
[0084]
在一些实施例中,邻近代理可以通过解析url来确定与数据请求中所请求的内容相关的信息(例如,类型、名称、存储路径、大小等)。邻近代理可以基于该信息确定数据请求中请求的内容是否在本地缓存(例如,在邻近代理的服务器本地缓存,或在邻近代理所在的代理集群的服务器本地缓存)。例如,邻近代理可以基于类型、名称和/或大小在本地搜索数据请求中请求的内容。如果未找到数据请求中请求的内容,则邻近代理可以确定数据请求中请求的内容未在本地缓存。如果找到数据请求中请求的内容,则邻近代理可以确定数据请求中请求的内容在本地缓存。
[0085]
在509中,处理设备112(例如,采集模块402)可以基于与请求内容的存储路径有关的信息,通过邻近代理来获取内容。
[0086]
在一些实施例中,处理设备112可以通过邻近代理确定内容的存储路径是否指向第二区域。第二区域可以是与第一区域不同的国家,或者是与第一区域相同国家的不同区域。响应于确定内容的存储路径指向第二区域,处理设备112可以通过邻近代理请求在第二区域的第二代理集群(或第二代理集群中的一个或以上代理)返回内容。第二代理集群可以从第二区域中的存储设备获取内容并将内容返回到邻近代理。在一些实施例中,处理设备112可以通过邻近代理在本地缓存(例如,在邻近代理的服务器本地缓存,或在邻近代理所在的代理集群的服务器本地缓存)通过第二代理集群返回的内容,以方便下一次用户访问时快速向用户提供数据。响应于确定内容的存储路径不指向第二区域(例如,指向第一区域),处理设备112可以通过邻近代理在第一区域从存储设备获取内容。在一些实施例中,邻近代理可以请求第一区域中的另一个代理(例如,另一个代理集群中的代理)以返回内容。处理设备112可以由邻近代理在本地缓存(例如,在邻近代理的服务器本地缓存,或在邻近代理所在的代理集群的服务器本地缓存)所获取的内容,以方便下一次用户访问时快速向用户提供数据。
[0087]
在一些实施例中,处理设备112可以由邻近代理确定数据请求中请求的内容是否是高热度或高频访问数据。在一些实施例中,处理设备112可以基于内容的热度将内容缓存在与一个或以上区域中的一个或以上代理集群中的其他代理相结合的一个或以上服务器中。关于内容缓存的更多描述可以在本申请的其他地方找到(例如,图8及其描述)。
[0088]
在511中,处理设备112(例如,传输模块408)可以由邻近代理将内容提供给应用程序。登录用户可以通过应用程序访问或下载内容。在一些实施例中,邻近代理在本地缓存(例如,在邻近代理的服务器本地缓存,或在邻近代理所在的代理集群的服务器本地缓存)内容的过程和登录用户下载内容的过程可以同步或依次地进行。在一些实施例中,如果内容在本地缓存,则内容的下载速度可以相对较快。如果内容未在本地缓存,则内容的下载速度可能相对较慢。通过在本地缓存内容,可以提高内容的下载速度。
[0089]
需要注意的是,以上描述仅为描述方便,并不能把本申请限制在所举实施例范围之内。对于本领域的普通技术人员来说,可以根据本申请的描述,做出各种各样的变化和修改。然而,这些变化和修改不会背离本申请的范围。在一些实施例中,可以在过程500中的其他地方添加一个或以上操作。例如,可以在操作501之前添加用于通过一个或以上代理从数据处理系统100的一个或以上存储设备获取初始数据的操作。又例如,可以在操作503之后添加用于通过与在一个或以上区域中一个或以上代理相结合的一个或以上服务器,确定经
预处理的高热度或高频访问数据和缓存经预处理的高热度或高频访问数据的操作。作为又一示例,可以在操作505之后添加用于确定邻近代理的操作。作为又一示例,可以在操作511之后添加用于发送消息以通知用户已完成所请求内容的下载的操作。可选操作的更多描述可以在本申请的其他地方找到(例如,图6-9及其描述)。
[0090]
图6是根据本申请的一些实施例所示的预处理初始数据和存储预处理数据的示例性过程的流程图。过程600可以由数据处理系统100执行。例如,过程600可以实现为存储在存储rom 230或ram 240中的指令集。处理器220和/或图4中的模块可以执行指令集,并且当执行指令时,处理器220和/或模块可以被配置以执行处理600。以下所示过程的操作仅出于说明的目的。在一些实施例中,过程600可以利用未描述的一个或以上附加操作,和/或没有所讨论的一个或以上操作来完成。另外,图6中示出并在下面描述的过程600的操作的顺序不旨在是限制性的。在一些实施例中,可以根据过程600来执行图5中所示的操作501和503。
[0091]
在601中,处理设备112(例如,预处理模块404)可以基于至少两个任务的优先级将与初始数据的预处理相关的至少两个任务加入到任务队列。在一些实施例中,处理设备112可以基于至少两个预处理操作(例如,压缩、验证、过滤、切分等,或用户请求的操作,如图5所示)和要预处理的初始数据,生成任务。例如,处理设备112可以生成用于过滤初始数据的第一数据集的第一任务,用于切分初始数据的第一数据集的第二任务,用于过滤初始数据的第二数据集的第三任务,用于切分初始数据的第二数据集的第四任务等。在一些实施例中,每个任务可以具有相应的优先级。在一些实施例中,处理设备112可以基于一个或以上预设规则,确定任务的优先级。例如,由操作员(例如,工程师)直接发起的数据预处理的任务可以具有相对高的优先级,而预处理与非紧急使用相关的数据的任务(例如,模拟和/或回归测试)可以具有相对较低的优先级。在一些实施例中,至少两个任务的优先级可以由操作员(例如,工程师)或数据处理系统100的默认设置来设置,和/或这种设置在不同的情况下是可调整的。
[0092]
在一些实施例中,处理设备112可以基于任务的优先级将至少两个任务加入到任务队列。例如,处理设备112可以将具有相对高优先级的任务首先加入到任务队列。在一些实施例中,任务队列可以是由至少两个服务器操作的分布式任务队列。在这种情况下,处理设备112可以评估服务器的计算资源并确定将哪个任务加入到哪个服务器。
[0093]
在603中,处理设备112(例如,预处理模块404)可以基于至少两个任务的优先级从任务队列取出一个或以上任务。在一些实施例中,处理设备112可以基于可用于执行任务的服务器或处理引擎(也被称为可用的服务器)的数量来确定取出的任务(例如,取出的任务的数量)。例如,如果可用服务器的数量是n,则处理设备112可以基于至少两个任务的优先级从任务队列取出n个任务。在一些实施例中,n个可用服务器可以分别执行n个任务。如果n个可用服务器中的一个或以上服务器(例如,m个服务器)完成了相应的任务,则该m个服务器再次变得可用。处理设备112还可以基于至少两个任务的优先级从任务队列取出m个任务。如本文所示,n和m是整数。在一些实施例中,处理设备112可以评估服务器的计算资源并确定将哪个任务取出到哪个服务器。
[0094]
在605中,处理设备112(例如,预处理模块404)可以通过执行一个或以上任务来获取预处理数据。在一些实施例中,处理设备112可以获取要由任务处理的数据并执行任务。可以在本申请的其他地方找到关于任务执行的更多描述(例如,图7和9及其描述)。
[0095]
在607中,处理设备112(例如,预处理模块404)可以将预处理数据存储在任务队列中。在一些实施例中,处理设备112可以基于任务的优先级或任务的执行顺序,将预处理数据存储在任务队列中。
[0096]
在609中,处理设备112(例如,预处理模块404)可以向应用程序发起与任务执行结果有关的一个或以上通知(例如,图5中所示的应用程序)。任务的执行结果可以包括任务执行的成功或失败、任务的完成时间、预处理数据在任务队列中的位置(例如,优先级)等,或其任何组合。在一些实施例中,处理设备112可以基于完成一个或以上任务时的时间点来发起一个或以上通知。例如,如果一个或以上任务在不同时间点完成,则处理设备112可以在一个或以上任务完成后在不同时间点启动一个或以上通知。操作员(例如,工程师)可以通过应用程序查看任务的执行结果。如果一个或以上任务执行不成功或异常,操作人员可以进行相应的检查,采取相应的措施等。
[0097]
在611中,处理设备112(例如,存储模块410)可以通过一个或以上代理从任务队列获取预处理数据。在一些实施例中,一个或以上代理可以实时地或周期性地从任务队列获取预处理数据。例如,一旦预处理数据存储在任务队列中,代理就可以从任务队列获取预处理数据。又例如,代理可以定期(例如,每5秒或10秒)从任务队列获取预处理数据,或者当存储在任务队列中的预处理数据达到预定大小(例如,10m预处理数据)时从任务队列获取预处理数据。
[0098]
在613中,处理设备112(例如,存储模块410)可以通过一个或以上代理将预处理数据存储到分布式文件子系统中。在一些实施例中,分布式文件子系统可以包括hadoop分布式文件系统(hdfs)、网络文件系统(nfs)、kass文件系统(kass)、安德鲁文件系统(afs)等,或者任何组合。以hdfs的分布式文件子系统为例,对应于预处理数据的初始数据可以存储在hdfs中。处理设备112可以将预处理数据存储回hdfs。在存储预处理数据之后,可以根据不同情况保留、删除相应的初始数据,或转移相应的初始数据到另一个存储设备。例如,对应于预处理数据的初始数据可以不存储在hdfs中,可以存储在数据处理系统100的另一个分布式文件子系统(例如,nfs)中。
[0099]
应该注意的是,上述仅出于说明性目的而提供,并不旨在限制本申请的范围。对于本领域的普通技术人员来说,可以根据本申请的描述,做出各种各样的变化和修改。然而,这些变化和修改不会背离本申请的范围。在一些实施例中,可以在过程600中的其他地方添加一个或以上操作。例如,可以在操作603之前添加用于确定可用服务器的数量的操作。又例如,操作603和605可以集成在单个操作中。
[0100]
图7是根据本申请的一些实施例的预处理初始数据的示例性过程的流程图。过程700可以由数据处理系统100的代理服务器集群(也称为代理集群)执行。如这里所使用的,代理集群可以包括结合到一个或以上代理的一个或以上服务器110,其可以从/向由数据处理系统100的一个或以上存储设备操作的数据库中获取和/或存储数据和/或信息。以下所示过程的操作仅出于说明的目的。在一些实施例中,过程700可以利用未描述的一个或以上附加操作和/或没有所讨论的一个或以上个操作来完成。另外,图7中示出并在下面描述的过程700的操作的顺序不旨在是限制性的。
[0101]
在701中,代理服务器集群(例如,代理服务器集群的一个或以上服务器)可以从处理服务器集群(例如,图1中描述的预处理服务器集群)接收用于预处理初始数据的至少两
个任务。在一些实施例中,用于预处理初始数据的至少两个任务可具有优先级,如图6所描述。预处理服务器集群可以包括一个或以上服务器,用于执行预处理初始数据的功能。预处理初始数据的功能可以类似于图5中的操作501和图6中的操作601-609的描述。
[0102]
在703中,代理服务器集群(例如,代理服务器集群的一个或以上服务器)可以从一个或以上存储设备(例如,存储设备140、由存储设备140操作的hdfs)获取初始数据。在一些实施例中,任务可以包括与要预处理的相应初始数据的存储路径有关的信息,因此,代理集群可以基于存储路径获取初始数据。
[0103]
在705中,代理服务器集群(例如,代理服务器集群的一个或以上服务器)可以将初始数据发送到预处理服务器集群。在一些实施例中,代理集群可以基于任务,将初始数据发送到预处理服务器集群的一个或以上服务器。例如,每个任务可以在预处理服务器集群的服务器上执行,并且代理集群可以将每个任务中的相应初始数据发送到预处理服务器集群的对应服务器。在一些实施例中,在接收到初始数据时,预处理服务器集群可以执行任务,生成预处理数据,和/或将预处理数据存储在任务队列中,如图6中的操作605和607所示。
[0104]
在707中,代理服务器集群(例如,代理服务器集群的一个或以上服务器)可以从预处理服务器集群获取预处理数据。在一些实施例中,代理服务器集群可以从任务队列获取预处理数据。从任务队列获取预处理数据的更多描述可以在本申请的其他地方找到(例如,图6的操作611及其描述)。
[0105]
在709中,代理服务器集群(例如,代理服务器集群的一个或以上服务器)可以将预处理数据存储到一个或以上存储设备中。在一些实施例中,预处理数据和初始数据可以存储在相同或不同的存储设备中。例如,代理集群可以将预处理数据存储回存储初始数据的一个或以上存储器中。又例如,代理集群可以将预处理数据存储到与存储初始数据的一个或以上存储设备不同的一个或以上存储设备中。可以在本申请的其他地方找到关于预处理数据的存储的更多描述(例如,图6的操作613及其描述)。
[0106]
需要注意的是,以上描述仅为描述方便,并不能把本申请限制在所举实施例范围之内。对于本领域的普通技术人员来说,可以根据本申请的描述,做出各种各样的变化和修改。然而,这些变化和修改不会背离本申请的范围。在一些实施例中,代理服务器集群可以在700中执行一个或以上附加操作。例如,可以在操作709之后添加用于确定高热度或高频访问数据的操作,相关可以在本申请的其他地方找到(例如,图8中的操作801及其描述)。
[0107]
图8是根据本申请的一些实施例所示的响应于数据请求,将内容提供给应用程序的示例性过程的流程图。过程800可以由数据处理系统100的代理服务器集群执行。如这里所使用的,代理服务器集群可以包括与一个或以上代理相结合的一个或以上服务器110,其可以从数据处理系统100的一个或以上存储设备中获取数据和/或信息,和/或为应用程序的用户缓存或提供数据/信息。以下所示过程的操作仅出于说明的目的。在一些实施例中,过程800可以利用未描述的一个或以上附加操作,和/或没有所讨论的一个或以上操作来完成。另外,图8中所示和下面描述的过程800的操作的顺序不旨在是限制性的。
[0108]
在801中,代理服务器集群(例如,代理服务器集群的一个或以上服务器)可以确定高热度或高频访问数据。高热度或高频访问数据可以指用户经常请求的数据(例如,检索或下载次数超过阈值)。在一些实施例中,高热度或高频访问数据可以由操作员设置或者数据处理系统100默认设置,或者可以在不同情况下调整。
[0109]
在一些实施例中,代理集群可以基于数据的历史请求记录(例如,存储在数据处理系统100的存储设备(例如,存储设备140、或由存储设备140操作的hdfs)中的初始数据或预处理数据来确定高热度或高频访问数据,如图5-7所描述。例如,代理集群可以将历史请求次数超过阈值的数据确定为高热度或高频访问数据。在一些实施例中,代理集群可以基于数据处理系统100的操作员(例如,工程师)的设置来确定高热度或高频访问数据。操作员可以基于不同情况(例如,操作员的不同要求或高热度或高频访问数据的不同目的),通过应用程序来调整高热度或高频访问数据的标准。
[0110]
在一些实施例中,高热度或高频访问数据可具有热度。如果高热度或高频访问数据具有相对高的热度,则请求高热度或高频访问数据的频率可能相对较高。在一些实施例中,高热度或高频访问数据的热度可包括高热度、中等热度、非热度等。
[0111]
在803中,代理服务器集群(例如,代理服务器集群的一个或以上服务器)可以在与在一个或以上区域的一个或以上代理集群相结合的服务器上缓存高热度或高频访问点数据。
[0112]
在一些实施例中,代理集群可以基于高热度或高频访问数据的热度来执行缓存。仅作为示例,高热度数据可以缓存在第一数量服务器中,中等热度数据可以缓存在第二数量服务器中,而非热度数据可以不缓存。第一数量可能大于第二数量。又例如,代理集群可以缓存与所有区域中所有代理集群的所有代理相结合的服务器中的高热度数据。作为另一示例,代理集群可以将中热度数据缓存在与所有区域中的代理集群的代理相结合的服务器中的一部分服务器中、与特定区域中的代理集群的代理相结合的服务器中、与特定的区域的特定集群的代理相结合的服务器中等。
[0113]
在805中,代理服务器集群(例如,代理服务器集群的一个或以上服务器)可以接收通过应用程序发出的数据请求。数据请求和数据请求的接收的更多描述可以在本申请的其他地方找到(例如,图5中的操作505及其描述)。
[0114]
在807中,代理服务器集群(例如,代理服务器集群的一个或以上服务器)可以通过邻近代理确定数据请求中请求的内容是否在本地缓存(例如,在邻近代理的服务器本地缓存,或在邻近代理所在的代理集群的服务器本地缓存)。响应于确定数据请求中请求的内容在本地缓存,过程800可以进行到815。或者,响应于确定数据请求中请求的内容未在本地缓存,过程800可以进行到809。可以在本申请的其他地方找到关于邻近代理以及确定所请求的内容是否被本地缓存的更多描述(例如,图5中的操作507及其描述)。
[0115]
在809中,代理服务器集群(例如,代理服务器集群的一个或以上服务器)可以基于与内容的存储路径有关的信息,通过邻近代理来获取内容。可以在本申请的其他地方找到对内容获取的更多描述(例如,图5中的操作509及其描述)。
[0116]
在811中,代理服务器集群(例如,代理服务器集群的一个或以上服务器)可以通过邻近代理确定数据请求中请求的内容是否是高热度或高频访问数据。在一些实施例中,代理集群可以通过邻近代理确定数据请求中请求的内容是否是高热度或高频访问数据,类似于操作801。响应于确定数据请求中请求的内容是高热度或高频访问数据,过程800可以进行到操作813。响应于确定数据请求中请求的内容不是高热度或高频访问数据,过程800可以进行到操作815。
[0117]
在813中,代理服务器集群(例如,代理服务器集群的一个或以上服务器)可以将内
容缓存在与一个或以上区域中的一个或以上代理集群中的其他代理相结合的一个或以上服务器中。例如,代理集群可以将内容(例如,具有中等热度的内容)缓存在与第一区域中的第一代理集群中的其他代理相结合的一个或以上服务器中。又例如,代理集群可以将内容(例如,具有中等热度的内容)缓存在与第一区域和/或第二区域中的第二代理集群中的其他代理相结合的一个或以上服务器中。作为另一示例,代理集群可以在与所有区域中的所有代理集群中的其他代理相结合的所有服务器中缓存内容(例如,具有最高热度的内容)。
[0118]
在815中,代理服务器集群(例如,代理服务器集群的一个或以上服务器)可以将内容提供给应用程序。可以在本申请的其他地方找到对应用程序提供内容的更多描述(例如,图5中的操作511及其描述)。
[0119]
应该注意的是,上述仅出于说明性目的而提供,并不旨在限制本申请的范围。对于本领域的普通技术人员来说,可以根据本申请的描述,做出各种各样的变化和修改。然而,这些变化和修改不会背离本申请的范围。在一些实施例中,代理服务器集群可以在800中执行一个或以上附加操作。例如,可以在操作805之后添加用于确定邻近代理的操作。
[0120]
图9是根据本申请的一些实施例所示的预处理初始数据的示例性过程的流程图。过程900可以由预处理服务器集群执行。如这里所使用的,预处理服务器集群可以包括用于预处理初始数据的一个或以上服务器110。以下所示过程的操作仅出于说明的目的。在一些实施例中,过程900可以利用未描述的一个或以上附加操作,和/或没有所讨论的一个或以上操作来完成。另外,图9中示出并在下面描述的过程900的操作的顺序不旨在是限制性的。
[0121]
在901中,预处理服务器集群(例如,预处理服务器集群的一个或以上服务器)可以接收预处理初始数据的请求。
[0122]
在一些实施例中,该请求可以包括与初始数据的预处理相关的至少两个任务的信息。任务可以包括优先级信息,类似于图6中的操作601的描述。在一些实施例中,该请求可以由操作员(例如,工程师)设置或数据处理系统100默认设置,和/或可以在不同的情况下进行调整。
[0123]
在一些实施例中,预处理服务器集群可以从数据处理系统100的一个或以上组件接收请求。例如,当初始数据存储在数据处理系统100中的存储设备(例如,存储设备140,或由存储设备140操作的hdfs)中时,预处理服务器集群可以自动地从数据处理系统100的一个或以上其他服务器接收请求。又例如,当用户(例如工程师)登录应用程序并发起预处理请求时,预处理服务器集群可以从与数据处理系统100相关的应用程序接收请求。
[0124]
在903中,预处理服务器集群(例如,预处理服务器集群的一个或以上服务器)可以基于至少两个任务的优先级,将与初始数据的预处理相关的至少两个任务加入到任务队列。任务队列和加入操作的更多描述可以在本申请的其他地方找到(例如,图5中的操作501、图6中的操作601及其描述)。
[0125]
在905中,预处理服务器集群(例如,预处理服务器集群的一个或以上服务器)可以基于至少两个任务的优先级,从任务队列取出一个或以上任务。取出操作的更多描述可以在本申请的其他地方找到(例如,图6中的操作603及其描述)。
[0126]
在907中,预处理服务器集群(例如,预处理服务器集群的一个或以上服务器)可以从一个或以上代理集群获取初始数据。
[0127]
在一些实施例中,预处理服务器集群可以与在一个或以上区域中的一个或以上代
理集群的一个或以上代理进行通信。在一些实施例中,预处理服务器集群可以调用一个或以上代理以获取初始数据。在一些实施例中,代理可以基于任务,确定初始数据的存储路径。在一些实施例中,代理可以基于数据在数据处理系统100的一个或以上存储设备(例如,存储设备140,或由存储设备140操作的hdfs)的存储路径,来获取初始数据。在一些实施例中,代理可以将初始数据发送到预处理服务器集群,然后预处理服务器集群可以从代理获取初始数据。在一些实施例中,代理可以将初始数据存储在存储器(例如内存)或缓存中,然后预处理服务器集群可以从存储器或缓存获取初始数据。
[0128]
在909中,预处理服务器集群(例如,预处理服务器集群的一个或以上服务器)可以通过执行一个或以上任务来获取预处理数据。获取预处理数据的更多描述可以在本申请的其他地方找到(例如,图6中的操作605及其描述)。
[0129]
在911中,预处理服务器集群(例如,预处理服务器集群的一个或以上服务器)可以向应用程序发起与任务执行结果有关的一个或以上通知。可以在本申请的其他地方找到关于发起通知的更多描述(例如,图6中的操作609及其描述)。
[0130]
应该注意的是,上述仅出于说明性目的而提供,并不旨在限制本申请的范围。对于本领域的普通技术人员来说,可以根据本申请的描述,做出各种各样的变化和修改。然而,这些变化和修改不会背离本申请的范围。在一些实施例中,预处理服务器集群可以在900中执行一个或以上附加操作。例如,在操作909之后,预处理服务器集群可以将预处理数据存储到任务队列中。因此,一个或以上代理集群可以从任务队列获取预处理数据以进行进一步存储。
[0131]
上文已对基本概念做了描述,显然,对于已阅读此详细披露的本领域的普通技术人员来讲,上述详细披露仅作为示例,而并不构成对本申请的限制。虽然此处并没有明确说明,本领域具有通常知识者可以对本申请进行各种变化、改进和修改。该类变化、改进和修改在本申请中被建议,所以该类变化、改进和修改仍属于本申请示范实施例的精神和范围。
[0132]
同时,本申请使用了特定词语来描述本申请的实施例。例如,“一个实施例”、“一实施例”、和/或“一些实施例”意指与本申请至少一个实施例相关的某一特征、结构或特点。因此,应当强调并注意的是,本说明书中在不同位置两次或以上次提及的“一实施例”或“一个实施例”或“一替代性实施例”并不一定是指同一实施例。此外,本申请的一个或以上实施例中的某些特征、结构或特点可以进行适当的组合。
[0133]
此外,本领域技术人员可以理解,本申请的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的工序、机器、产品或物质的组合,或对他们的任何新的和有用的改进。相应地,本申请的各个方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行,以上硬件或软件均可以被称为“单元”、“模块”或“系统”。此外,本申请的各方面可以采取体现在一个或以上计算机可读介质中的计算机程序产品的形式,其中计算机可读程序代码包含在其中。
[0134]
计算机可读信号介质可能包含一个内含有计算机程序代码的传播数据信号,例如在基带上或作为载波的一部分。所述传播信号可以有多种表现形式,包括电磁形式、光形式等等、或合适的组合形式。计算机可读信号介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、设备或设备以实现通信、传播或传输供使用的程序。位于计算机可读信号介质上的程序代码可以通过任何合适的介质进
行传播,包括无线电、电缆、光纤电缆、rf等,或任何上述介质的组合。
[0135]
本申请各方面操作所需的计算机程序码可以用一种或多种程序语言的任意组合编写,包括面向对象编程语言,如java、scala、smalltalk、eiffel、jade、emerald、c++、c#、vb.net,python或类似物,常规程序化编程语言,如“c”编程语言、visual basic、fortran 2103、perl、cobol 2102、php、abap,动态编程语言如python、ruby和groovy或其它编程语言。该程序代码可以完全在用户计算机上运行、或作为独立的软件包在用户计算机上运行、或部分在用户计算机上运行部分在远程计算机运行、或完全在远程计算机或服务器上运行。在后种情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网(lan)或广域网(wan)、或连接至外部计算机(例如通过因特网)、或在云计算环境中、或作为服务使用如软件即服务(saas)。
[0136]
此外,除非申请专利范围中明确说明,本申请所述处理元件和序列的顺序、数位字母的使用、或其他名称的使用,并非用于限定本申请流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本申请实施例实质和范围的修正和等价组合。例如,尽管上述各种组件的实现可以体现在硬件设备中,但是它也可以实现为仅软件解决方案,例如,在现有服务器或移动设备上的安装。
[0137]
同理,应当注意的是,为了简化本申请披露的表述,从而帮助对一个或以上发明实施例的理解,前文对本申请的实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。然而,本申请的该方法不应被解释为反映所声称的待扫描对象物质需要比每个权利要求中明确记载的更多特征的意图。相反,发明的主体应具备比上述单一实施例更少的特征。
[0138]
在一些实施例中,用于描述和要求保护本申请的某些实施例的数量、性质等,应被理解为在一些情况下被术语“约”、“近似”或“基本上”修饰。除非另外说明,“大约”、“近似”或“大体上”表明所述数字允许有
±
20%的变化。相应地,在一些实施例中,说明书和权利要求中使用的数值参数均为近似值,该近似值根据个别实施例所需特点可以发生改变。在一些实施例中,数值参数应计算规定的有效数位并采用一般位数保留的方法。尽管本申请一些实施例中用于确认其范围广度的数值域和参数为近似值,在具体实施例中,此类数值的设定在可行范围内尽可能精确。
[0139]
本文中提及的所有专利、专利申请、专利申请公布和其他材料(如论文、书籍、说明书、出版物、记录、事物和/或类似的东西)均在此通过引用的方式全部并入本文以达到所有目的,与上述文件相关的任何起诉文档记录、与本文件不一致或冲突的任何上述文件或对迟早与本文件相关的权利要求书的广泛范畴有限定作用的任何上述文件除外。举例来说,如果任何并入材料相关的与本文件相关的描述、定义和/或术语使用之间有任何不一致或冲突,那么本文件中的描述、定义和/或术语使用应当优先。
[0140]
最后,应当理解的是,本申请中所述实施例仅用以说明本申请实施例的原则。其他的变形也可能属于本申请的范围。因此,作为示例而非限制,本申请实施例的替代配置可视为与本申请的教导一致。相应地,本申请的实施例不仅限于本申请明确介绍和描述的实施例。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1