1.本申请实施例涉及计算机领域,具体涉及云计算
技术领域:
:,尤其涉及时序数据库查询优化方法、装置、设备以及存储介质。
背景技术:
::2.在物联网领域,数据对于企业来说的重要性不可估量,通过挖掘数据背后的价值,可以分析过去、监控现在以及决策未来。这个过程中,一个重要的环节就是数据的查询。3.物联网领域的数据主要是时序数据,有几个特点:首先是多样化,物联网涉及的应用范围广泛,从智慧城市到智慧医疗,从智能家居到安防监控,在不同领域、不同行业,需要面对不同类型、不同格式的数据;同时,除了人和服务器,设备、物品、传感器等都是物联网中的节点,这些节点经常全时处于工作状态,源源不断地提供数据写入,所以数据量相比一般的互联网场景更大;并且,时序数据主要是随着时间戳增长,根据标签来取值,而标签几乎很少发生变化,这点和传统的关系型数据库非常不一样。4.目前在物联网领域的时序数据库的数据查询中,主要都是基于规则进行查询优化,它的原理是根据一定的优化规则对查询表达式进行转换,对一些查询条件进行改写、裁剪和优化,将原始查询表达式变为一个新的表达式,从而提升最终的实际查询效率。技术实现要素:5.本申请实施例提出了一种时序数据库查询优化方法、装置、设备以及存储介质。6.第一方面,本申请实施例提出了一种时序数据库查询优化方法,包括:对时序数据库中的索引和标签进行倒排索引,生成倒排索引表,并获取倒排索引表的统计信息,其中,倒排索引表为标签与对应索引的映射表;响应于接收到查询信息,基于倒排索引表的统计信息计算查询信息中的各个标签对应的预期索引结果数;基于各个标签对应的预期索引结果数确定作为查询条件的标签,记为查询标签,获取与查询标签对应的数据集合。7.第二方面,本申请实施例提出了一种时序数据库查询优化装置,包括:倒排索引模块,被配置成对时序数据库中的索引和标签进行倒排索引,生成倒排索引表,并获取倒排索引表的统计信息,其中,倒排索引表为标签与对应索引的映射表;计算模块,被配置成响应于接收到查询信息,基于倒排索引表的统计信息计算查询信息中的各个标签对应的预期索引结果数;确定模块,被配置成基于各个标签对应的预期索引结果数确定作为查询条件的标签,记为查询标签,获取与查询标签对应的数据集合。8.第三方面,本申请实施例提出了一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行如第一方面中任一实现方式描述的方法。9.第四方面,本申请实施例提出了一种存储有计算机指令的非瞬时计算机可读存储介质,计算机指令用于使计算机执行如第一方面中任一实现方式描述的方法。10.第五方面,本申请实施例提出了一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现如第一方面中任一实现方式描述的方法。11.本申请实施例提供的时序数据库查询优化方法、装置、设备以及存储介质,首先对时序数据库中的索引和标签进行倒排索引,生成倒排索引表,并获取倒排索引表的统计信息,其中,倒排索引表为标签与对应索引的映射表;然后响应于接收到查询信息,基于倒排索引表的统计信息计算查询信息中的各个标签对应的预期索引结果数;最后基于各个标签对应的预期索引结果数确定作为查询条件的标签,记为查询标签,获取与查询标签对应的数据集合。本申请提供了一种时序数据库查询优化方法,该方法根据时序数据的结构和特点对每一个查询信息进行针对性的优化,提高了查询效率。12.应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。附图说明13.通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显。附图用于更好地理解本方案,不构成对本申请的限定。其中:14.图1是本申请可以应用于其中的示例性系统架构图;15.图2是根据本申请的时序数据库查询优化方法的一个实施例的流程图;16.图3是根据本申请的时序数据库查询优化方法的另一个实施例的流程图;17.图4是根据本申请的时序数据库查询优化装置的一个实施例的结构示意图;18.图5是用来实现本申请实施例的时序数据库查询优化方法的电子设备的框图。具体实施方式19.以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。20.需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。21.图1示出了可以应用本申请的时序数据库查询优化方法或时序数据库查询优化装置的实施例的示例性系统架构100。22.如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。23.用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送数据等。终端设备101、102、103上可以安装有各种客户端应用。24.终端设备101、102、103可以是硬件,也可以是软件。当终端设备101、102、103为硬件时,可以是各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。当终端设备101、102、103为软件时,可以安装在上述电子设备中。其可以实现成多个软件或软件模块,也可以实现成单个软件或软件模块。在此不做具体限定。25.服务器105可以提供各种服务。例如,服务器105可以对从终端设备101、102、103获取到的数据进行分析和处理,并生成处理结果(例如数据集合)。26.需要说明的是,服务器105可以是硬件,也可以是软件。当服务器105为硬件时,可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。当服务器105为软件时,可以实现成多个软件或软件模块(例如用来提供分布式服务),也可以实现成单个软件或软件模块。在此不做具体限定。27.需要说明的是,本申请实施例所提供的时序数据库查询优化方法一般由服务器105执行,相应地,时序数据库查询优化装置一般设置于服务器105中。28.应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。29.继续参考图2,其示出了根据本申请的时序数据库查询优化方法的一个实施例的流程200。该时序数据库查询优化方法包括以下步骤:30.步骤201,对时序数据库中的索引和标签进行倒排索引,生成倒排索引表,并获取倒排索引表的统计信息。31.在本实施例中,时序数据库查询优化方法的执行主体(例如图1所示的服务器105)可以对时序数据库中的索引和标签进行倒排索引,从而生成倒排索引表,并获取上述倒排索引表的统计信息,其中,倒排索引表为标签与对应索引的映射表。时序数据库全称为时间序列数据库,时间序列数据库主要用于指处理带时间标签(按照时间的顺序变化,即时间序列化)的数据,带时间标签的数据也称为时间序列数据。下面对时序数据库中常见的几个概念进行说明:32.度量(metric):相当于关系型数据库中的表格(table);33.时间戳(timestamp):代表数据点产生的时间,格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总毫秒数;34.域(field):度量下的不同字段;35.标签或者附加信息(tag):一个标签是一个键值对,用于提供额外的信息,标签的键被称为标签键(tagkey),标签的值被称为标签值(tagvalue);36.数据点(datapoint):相当于关系型数据库中的行(row);“一个metric+一个field+n个tag+一个timestamp”唯一定义了一个数据点。37.在实际的运用当中,域会被用来存储普通的数据,标签则会被用来存储索引数据。当数据写入时,会将数据点写入到数据表中,多个标签会生成索引写入数据表中,索引的作用是确定对应的数据在数据表的什么位置。在本实施例中,会在索引上建立基于标签的倒排索引,并生成倒排索引表,这样就可以知道一个标签对应哪些索引。38.在本实施例的一些可选实现方式中,上述执行主体可以通过获取标签和标签对应的索引,根据标签值将标签对应的索引进行排序,从而得到标签与对应索引的映射表。当接收到查询信息时,查询信息中会有标签相关的过滤条件,可通过这些过滤条件筛选出符合条件的索引,然后通过索引得到相应的数据集合并返回给用户。39.在本实施例的一些可选实现方式中,上述执行主体可以通过获取标签和标签对应的索引,根据不同标签值对应索引的个数将每个标签和其对应的索引进行排序,从而得到标签与对应索引的映射表。40.在本实施例中,在生成倒排索引表之后,上述执行主体还会获取倒排索引表的统计信息,其中,统计信息为对倒排索引表包含的各个标签的属性信息进行统计而得到的信息。41.步骤202,响应于接收到查询信息,基于倒排索引表的统计信息计算查询信息中的各个标签对应的预期索引结果数。42.在本实施例中,上述执行主体可以在接收到查询信息后,基于步骤201得到的倒排索引表的统计信息来计算查询信息中的各个标签对应的预期索引结果数。在实际的查询中,查询信息中可能会包含多个标签过滤条件,这时候就需要考虑使用哪个标签来获得相应的索引信息,因为一个合适的标签能够把过滤的执行放在高效的存储层,如果放在计算层过滤那么资源的消耗会比较大。倒排索引表的统计信息为对倒排索引表包含的各个标签的属性信息进行统计得到的信息,基于倒排索引表的统计信息可以得到各个标签的标签键、包含此标签键的索引数目、此标签键对应的不同的标签值的个数及最高频的几个标签值对应的索引数目等相关信息,基于这些相关信息就可以计算查询信息中包含的各个标签所对应的索引数目,也即预期索引结果数。43.步骤203,基于各个标签对应的预期索引结果数确定作为查询条件的标签,记为查询标签,获取与查询标签对应的数据集合。44.在本实施例中,上述执行主体可以基于各个标签对应的预期索引结果数确定作为查询条件的标签,记为查询标签,并获取与查询标签对应的数据集合。在步骤202中,已经计算了查询信息中的各个标签对应的预期索引结果数,可以基于计算结果来确定最适合作为查询条件的标签,将其记为查询标签,合适的查询标签能把大部分过滤操作放在存储层,这样只有少部分过滤操作在计算层,从而能提升查询效率,基于确定的查询标签对时序数据库进行查询,就能得到与查询标签对应的数据集合。45.在本实施例的一些可选实现方式中,可将预期索引结果数较小的标签作为查询条件的标签,记为查询标签,基于查询标签对时序数据库进行查询,得到与查询标签对应的数据集合。将预期索引结果数较小的标签作为查询条件的标签,能提高整体的查询效率。46.本申请实施例提供的时序数据库查询优化方法,首先对时序数据库中的索引和标签进行倒排索引,生成倒排索引表,并获取倒排索引表的统计信息,倒排索引表为标签与对应索引的映射表;然后响应于接收到查询信息,基于倒排索引表的统计信息计算查询信息中的各个标签对应的预期索引结果数;最后基于各个标签对应的预期索引结果数确定作为查询条件的标签,记为查询标签,获取与查询标签对应的数据集合。本申请提供了一种时序数据库查询优化方法,使得查询的策略和优化不只停留在语法、语义表层,而是深入到底层数据集,根据时序数据的结构、特点和分布等情况,对每一个查询信息进行针对性的优化,从而提高了整体的查询效率。47.继续参考图3,图3示出了根据本申请的时序数据库查询优化方法的另一个实施例的流程300。该时序数据库查询优化方法包括以下步骤:48.步骤301,对时序数据库中的索引和标签进行倒排索引,生成倒排索引表,并获取倒排索引表的统计信息。49.在本实施例中,时序数据库查询优化方法的执行主体可以对时序数据库中的索引和标签进行倒排索引,生成倒排索引表,并获取倒排索引表的统计信息。步骤301与前述实施例的步骤201相对应,具体实现方式可以参考前述对步骤201的描述,此处不再赘述。50.在本实施例的一些可选实现方式中,倒排索引的建立包括以下两种情况:一、对于新写入的增量数据,会先检查当前写入标签和索引是否有相应的映射关系,如果没有,则将该标签和索引的映射关系添加至映射表(倒排索引表)中。由于一个索引对应的是一批拥有相同特性的数据点,所以当一个点写入时,可能之前已经有和它相同特性的点写入了,此时索引已经存在,因此当新写入数据时,先检查是否已存在相应的映射关系,不存在则添加该映射关系。二、对于历史的存量数据,建立定时的后台任务,批次的建立索引。51.在本实施例的一些可选实现方式中,上述统计信息为对倒排索引表中的各个标签的属性信息进行统计得到的信息,其中,倒排索引表的统计信息包括:采样的时间范围(time_range)、度量、标签的标签键、与标签的标签键对应的索引数(all_count)、标签的标签键对应的不同标签值的数目(distinct_count)。通过对倒排索引表的标签的属性信息进行统计,能更充分的了解倒排索引表中的标签数据的结构和分布,从而进行针对性的优化。52.步骤302,基于倒排索引表的统计信息得到高频标签值对应的索引数目,并生成高频直方图。53.在本实施例中,上述执行主体可以基于倒排索引表的统计信息得到高频标签值对应的索引数目,并生成高频直方图。基于倒排索引表的统计信息可以得到每个标签键对应的对应的不同标签值的数目,基于此可以得到该标签键对应的高频标签值,并可以得到高频标签值对应的索引数目,从而生成tagkey高频直方图(histogram)。tagkey高频直方图可以直接的显示每个高频标签值的值、每个高频标签值对应的索引个数。histogram的对象结构为:属性①type,其类型为enum,其表示了高频标签值;属性②buckets,其类型为listbuckets,其主要属性包括名称name、数量count等。另外,由于倒排索引是一个不断变化的结构,所以高频直方图的结果也是在不断变化的,所以可通过离线的定时后台任务,定期去创建、更新相应的数据结构。54.步骤303,响应于接收到查询信息,基于倒排索引表的统计信息计算查询信息中的各个标签对应的预期索引结果数。55.在本实施例中,上述执行主体可以在接收到查询信息后,基于倒排索引表的统计信息计算查询信息中的各个标签对应的预期索引结果数。56.在本实施例的一些可选实现方式中,响应于高频直方图中的高频标签值包含查询信息中的标签的标签值,则该标签对应的预期索引结果数为高频直方图中该标签的标签值对应的索引个数。当查询信息命中高频直方图时,能快速获得相应的索引数。57.在本实施例的一些可选实现方式中,响应于高频直方图中的高频标签值不包含查询信息中的标签的标签值,基于查询信息中的标签的标签键对应的索引数all_count、查询信息中的标签的标签键对应的不同标签值的数目distinct_count、高频直方图中高频标签值bucket的数目及高频直方图中高频标签值对应的索引数,计算查询信息中的标签对应的预期索引结果数,可基于以下公式计算此时的标签对应的预期索引结果数result,result=(all_count‑高频直方图中所有高频标签值对应的索引数之和)/(distinct_count‑高频直方图bucket的数目)。当查询信息未命中高频直方图时,能基于倒排索引表的统计信息计算得到标签对应的预期索引结果数。58.步骤304,将预期索引结果数小的标签作为查询条件的标签,记为查询标签,基于查询标签对时序数据库进行查询,得到与查询标签对应的数据集合。59.在本实施例中,上述执行主体可以将预期索引结果数小的标签作为查询条件的标签,记为查询标签,基于查询标签对时序数据库进行查询,得到与查询标签对应的数据集合。将预期索引结果数较小的标签作为查询条件的标签,能提高整体的查询效率。60.例如:在不同城市有多个环境监测站,有不同类型的传感器设备用来检测温度和湿度。则tag有:city、device_id、device_type三个,其中一共有两种类型的传感器1000个,分布在10个城市,则建立的统计信息如下:61.①tagkey:device_id;all_count:1000;distinct_count:1000;62.②tagkey:device_type;all_count:1000;distinct_count:2;63.③tagkey:city;all_count:1000;distinct_count:10;64.⑴接收到的查询信息为:selectvaluefrommetricwherecity='bj'anddevice_type='温度';65.此时,选择city='bj'的预期索引结果数为:1000/10=100;66.选择device_type='温度'的预期索引结果数为:1000/2=500;67.可以看出,city='bj'的预期索引结果数更小,因此city='bj'的索引可选择性更高。68.⑵仍然是上面的查询信息,但假设不同城市传感器的数量有倾斜,在city列上建立大小为2的高频直方图为:{bj:600,sh:100};69.则此时city='bj'的预期索引结果数为600,预期索引结果数仍然要比device_type='温度'的预期索引结果数大,因此,city='bj'可选择性不如device_type='温度'。70.⑶仍然是⑵的数据倾斜情况,但查询信息为:selectvaluefrommetricwherecity='gz'anddevice_type='温度';71.则此时city='gz'的预期索引结果数为:(1000‑600‑100)/(10‑2)=25;72.对比来看,city='gz'的预期索引结果数要更小些,所以选择city='gz'的索引要比较好。73.在时序数据中,由于数据会随着时间这一因素不断增长,因此每隔t秒会生成一个新的统计信息表,当查询条件里的时间间隔和当前统计信息表的时间间隔满足一定条件时,就会将这张表的信息加入到结果的考量中,也就是说最后基于的统计数据将会是多张统计信息表合并后的结果。74.本申请实施例提供的时序数据库查询优化方法,首先对时序数据库中的索引和标签进行倒排索引,生成倒排索引表,并获取倒排索引表的统计信息;然后基于倒排索引表的统计信息得到高频标签值对应的索引数目,并生成高频直方图;之后响应于接收到查询信息,基于倒排索引表的统计信息计算查询信息中的各个标签对应的预期索引结果数;最后将预期索引结果数小的标签作为查询条件的标签,记为查询标签,基于查询标签对时序数据库进行查询,得到与查询标签对应的数据集合。本申请实施例提供的时序数据库查询优化方法,使得查询的策略和优化不只停留在语法、语义表层,而是深入到底层数据集,根据时序数据的结构、特点和分布等情况,对每一个查询信息进行针对性的优化,从而提高了整体的查询效率。75.进一步参考图4,作为对上述各图所示方法的实现,本申请提供了一种时序数据库查询优化装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。76.如图4所示,本实施例的时序数据库查询优化装置400可以包括:倒排索引模块401、计算模块402和确定模块403。其中,倒排索引模块401,被配置成对时序数据库中的索引和标签进行倒排索引,生成倒排索引表,并获取倒排索引表的统计信息,倒排索引表为标签与对应索引的映射表;计算模块402,被配置成响应于接收到查询信息,基于倒排索引表的统计信息计算查询信息中的各个标签对应的预期索引结果数;确定模块403,被配置成基于各个标签对应的预期索引结果数确定作为查询条件的标签,记为查询标签,获取与查询标签对应的数据集合。77.在本实施例中,时序数据库查询优化装置400中:倒排索引模块401、计算模块402和确定模块403的具体处理及其所带来的技术效果可分别参考图2对应实施例中的步骤201‑203的相关说明,在此不再赘述。78.在本实施例的一些可选的实现方式中,倒排索引模块进一步配置成:获取标签和标签对应的索引,根据标签值将标签对应的索引进行排序,得到标签与对应索引的映射表。79.在本实施例的一些可选的实现方式中,统计信息为对倒排索引表中的各个标签的属性信息进行统计得到的信息,其中,倒排索引表的统计信息包括:采样的时间范围、度量、标签的标签键、与标签的标签键对应的索引数、标签的标签键对应的不同标签值的数目。80.在本实施例的一些可选的实现方式中,该时序数据库查询优化装置还包括:生成模块,被配置成基于倒排索引表的统计信息得到高频标签值对应的索引数目,并生成高频直方图;以及计算模块进一步配置成:响应于高频直方图中的高频标签值包含查询信息中的标签的标签值,则该标签对应的预期索引结果数为高频直方图中该标签的标签值对应的索引个数。81.在本实施例的一些可选的实现方式中,计算模块进一步配置成:响应于高频直方图中的高频标签值不包含查询信息中的标签的标签值,基于查询信息中的标签的标签键对应的索引数、查询信息中的标签的标签键对应的不同标签值的数目、高频直方图中高频标签值的个数及高频直方图中高频标签值对应的索引数,计算查询信息中的标签对应的预期索引结果数。82.在本实施例的一些可选的实现方式中,确定模块进一步配置成:将预期索引结果数小的标签作为查询条件的标签,记为查询标签,基于查询标签对时序数据库进行查询,得到与查询标签对应的数据集合。83.根据本申请的实施例,本申请还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。84.图5示出了可以用来实施本公开的实施例的示例电子设备500的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。85.如图5所示,设备500包括计算单元501,其可以根据存储在只读存储器(rom)502中的计算机程序或者从存储单元508加载到随机访问存储器(ram)503中的计算机程序,来执行各种适当的动作和处理。在ram503中,还可存储设备500操作所需的各种程序和数据。计算单元501、rom502以及ram503通过总线504彼此相连。输入/输出(i/o)接口505也连接至总线504。86.设备500中的多个部件连接至i/o接口505,包括:输入单元506,例如键盘、鼠标等;输出单元507,例如各种类型的显示器、扬声器等;存储单元508,例如磁盘、光盘等;以及通信单元509,例如网卡、调制解调器、无线通信收发机等。通信单元509允许设备500通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。87.计算单元501可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元501的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。计算单元501执行上文所描述的各个方法和处理,例如时序数据库查询优化方法。例如,在一些实施例中,时序数据库查询优化方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元508。在一些实施例中,计算机程序的部分或者全部可以经由rom502和/或通信单元509而被载入和/或安装到设备500上。当计算机程序加载到ram503并由计算单元501执行时,可以执行上文描述的时序数据库查询优化方法的一个或多个步骤。备选地,在其他实施例中,计算单元501可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行时序数据库查询优化方法。88.本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。89.用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。90.在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd‑rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。91.为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。92.可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。93.计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端‑服务器关系的计算机程序来产生客户端和服务器的关系。94.应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。95.上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。当前第1页1 2 3 当前第1页1 2 3