CN108763300B - 一种数据查询方法及装置 - Google Patents
一种数据查询方法及装置 Download PDFInfo
- Publication number
- CN108763300B CN108763300B CN201810355987.7A CN201810355987A CN108763300B CN 108763300 B CN108763300 B CN 108763300B CN 201810355987 A CN201810355987 A CN 201810355987A CN 108763300 B CN108763300 B CN 108763300B
- Authority
- CN
- China
- Prior art keywords
- data
- cluster
- time
- real
- parameter
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种数据查询方法及装置,涉及数据查询技术领域。其中,所述方法包括:接收客户端的数据查询请求;获取各个数据集群的数据写入进度参数、可用性参数、一致性参数;根据所述各个数据集群的数据写入进度参数、可用性参数、一致性参数,选择目标数据集群;将所述数据查询请求发送至所述目标数据集群;接收所述目标数据集群返回的所述数据查询请求对应的查询结果,并将所述查询结果返回给所述客户端。本发明实施例,选择了可提供数据查询服务,且写入速度快、准确性高的数据集群,作为目标数据集群,后续通过该目标数据集群,为客户端返回查询结果,可以为客户端,提供实时性好、准确率高的查询结果。
Description
技术领域
本发明涉及数据查询技术领域,特别是涉及一种数据查询的方法及装置。
背景技术
随着数据集群技术的发展,数据集群中的数据量规模越来越大,通过对数据集群中的实时数据进行数据挖掘,可以获取更大的价值,因此,对实时数据进行处理的需求也越来越多。
在数据集群中对实时数据进行处理中,通常主要考虑数据集群的负载程度、访问量等因素,进而确定合适的数据集群,提供数据服务。
发明人在研究上述现有技术的过程中发现,上述现有技术方案存在如下缺点:在选择某一个数据集群,提供数据服务过程中,考虑的因素比较单一、确定过程没有针对性的考虑使用要求,导致最终确定的数据集群,可能不是需要的性能最优的数据集群。
发明内容
本发明提供一种数据查询的方法及装置,旨在针对具体的数据查询请求,选择性能最优的数据集群,提供数据查询服务。
第一方面,本发明实施例提供了一种数据查询的方法,所述方法包括:
接收客户端的数据查询请求;
获取各个数据集群的数据写入进度参数、可用性参数、一致性参数;
根据所述各个数据集群的数据写入进度参数、可用性参数、一致性参数,选择目标数据集群;
将所述数据查询请求发送至所述目标数据集群;
接收所述目标数据集群返回的所述数据查询请求对应的查询结果,并将所述查询结果返回给所述客户端。
优选的,所述获取各个数据集群的数据写入进度参数、可用性参数、一致性参数包括:
根据所述各个数据集群分别对实时日志数据流的写入情况,对应确定所述各个数据集群的数据写入进度参数;
根据所述各个数据集群的实时状态,对应确定所述各个数据集群的可用性参数;
根据所述各个数据集群中计算的离线数据,和所述各个数据集群对应存储的实时数据,对应确定所述各个数据集群的一致性参数。
优选的,所述根据所述各个数据集群的数据写入进度参数、可用性参数、一致性参数,选择目标数据集群的步骤,包括:
根据所述可用性参数,在所述各个数据集群中,选择可用的第二数据集群;
从所述第二数据集群中,选择所述一致性参数超过第一阈值的第三数据集群;
从所述第三数据集群中,选择所述数据写入进度参数超过第二阈值的所述目标数据集群。
优选的,所述数据查询请求包括:查询时间段;所述获取各个数据集群的数据写入进度参数、可用性参数、一致性参数包括:
根据所述各个数据集群的离线数据和实时数据存储时间段的实时划分,确定所述查询时间段中,需要在所述实时数据存储时间段查询的第一时间段;
获取所述各个数据集群所述第一时间段的数据写入进度参数、可用性参数、一致性参数。
优选的,所述根据所述各个数据集群的数据写入进度参数、可用性参数、一致性参数,选择目标数据集群包括:
根据所述各个数据集群所述第一时间段的数据写入进度参数、可用性参数、一致性参数,选择所述目标数据集群。
优选的,所述根据所述各个数据集群分别对实时日志数据流的写入情况,对应确定所述各个数据集群的数据写入进度参数的步骤包括:
确定所述各个数据集群分别对所述实时日志数据流已写入的数据量;
确定所述各个数据集群分别对所述实时日志数据流已写入的数据量占所述实时日志数据流总数据量的百分比;
将所述百分比,分别作为所述各个数据集群的数据写入进度参数。
优选的,所述根据所述各个数据集群中计算的离线数据,和所述各个数据集群对应存储的实时数据,对应确定所述各个数据集群的一致性参数的步骤包括:
获取所述各个数据集群中计算的所述离线数据;
获取所述各个数据集群中对应存储的所述实时数据;
分别确定所述各个数据集群中,所述离线数据与所述实时数据对应相同的比例;
将所述比例,分别作为所述各个数据集群的一致性参数。
优选的,所述根据所述各个数据集群的离线数据和实时数据存储时间段的实时划分,确定所述查询时间段中,需要在所述实时数据存储时间段查询的第一时间段的步骤包括:
获取所述各个数据集群的离线数据和实时数据存储时间段的实时划分;
将所述查询时间段中,需要在所述各个数据集群的实时数据存储时间段查询的时间段,确定为所述第一时间段。
优选的,所述数据集群包括:独立解析所述实时日志数据流,并独立对所述解析后的实时日志数据流进行聚类的数据集群。
第二方面,本发明实施例提供了一种数据查询装置,所述装置包括:
查询请求接收模块,用于接收客户端的数据查询请求;
参数获取模块,用于获取各个数据集群的数据写入进度参数、可用性参数、一致性参数;
目标数据集群选择模块,用于根据所述各个数据集群的数据写入进度参数、可用性参数、一致性参数,选择目标数据集群;
查询请求发送模块,用于将所述数据查询请求发送至所述目标数据集群;
查询结果返回模块,用于接收所述目标数据集群返回的所述数据查询请求对应的查询结果,并将所述查询结果返回给所述客户端。
优选的,所述参数获取模块包括:
数据写入进度参数确定单元,用于根据所述各个数据集群分别对实时日志数据流的写入情况,对应确定所述各个数据集群的数据写入进度参数;
可用性参数确定单元,用于根据所述各个数据集群的实时状态,对应确定所述各个数据集群的可用性参数;
一致性参数确定单元,用于根据所述各个数据集群中计算的离线数据,和所述各个数据集群对应存储的实时数据,对应确定所述各个数据集群的一致性参数。
优选的,所述目标数据集群选择模块,包括:
第二数据集群选择单元,用于根据所述可用性参数,在所述各个数据集群中,选择可用的第二数据集群;
第三数据集群选择单元,用于从所述第二数据集群中,选择所述一致性参数超过第一阈值的第三数据集群;
目标数据集群选择单元,用于从所述第三数据集群中,选择所述数据写入进度参数超过第二阈值的所述目标数据集群。
优选的,所述数据查询请求包括:查询时间段;所述参数获取模块包括:第一时间段确定单元,用于根据所述各个数据集群的离线数据和实时数据存储时间段的实时划分,确定所述查询时间段中,需要在所述实时数据存储时间段查询的第一时间段;
参数获取单元,用于获取所述各个数据集群所述第一时间段的数据写入进度参数、可用性参数、一致性参数。
优选的,所述目标数据集群选择模块,包括:
第二目标数据集群选择单元,用于根据所述各个数据集群所述第一时间段的数据写入进度参数、可用性参数、一致性参数,选择所述目标数据集群。
优选的,所述数据写入进度参数确定单元,包括:
已写入数据量确定子单元,用于确定所述各个数据集群分别对所述实时日志数据流已写入的数据量;
百分比确定子单元,用于确定所述各个数据集群分别对所述实时日志数据流已写入的数据量占所述实时日志数据流总数据量的百分比;
数据写入进度参数确定子单元,用于将所述百分比,分别作为所述各个数据集群的数据写入进度参数。
优选的,所述一致性参数确定单元,包括:
离线数据获取子单元,用于获取所述各个数据集群中计算的所述离线数据;
实时数据获取子单元,用于获取所述各个数据集群中对应存储的所述实时数据;
比例确定子单元,用于分别确定所述各个数据集群中,所述离线数据与所述实时数据对应相同的比例;
一致性参数确定子单元,用于将所述比例,分别作为所述各个数据集群的一致性参数。
优选的,所述第一时间段确定单元,包括:
时间段实时划分获取子单元,用于获取所述各个数据集群的离线数据和实时数据存储时间段的实时划分;
第一时间段确定子单元,用于将所述查询时间段中,需要在所述各个数据集群的实时数据存储时间段查询的时间段,确定为所述第一时间段。
优选的,所述数据集群包括:独立解析所述实时日志数据流,并独立对所述解析后的实时日志数据流进行聚类的数据集群。
在本发明实施例中,由于通常,各个数据集群的写入进度、准确性等方面可能存在一定差异,通过获取各个数据集群的数据写入进度参数,可以获知各个数据集群实时数据的写入快慢;通过获取各个数据集群的一致性参数,可以获知各个数据集群的实时数据的写入准确性;通过获取各个数据集群的可用性参数,可以获知各个数据集群能否提供该数据查询服务;根据上述各个数据集群的数据写入进度参数、可用性参数、一致性参数,选择目标数据集群,即选择了上述可提供数据查询服务,且写入速度快、准确性高的数据集群,作为目标数据集群,后续通过该目标数据集群,为客户端返回查询结果,可以为客户端,提供实时性好、准确率高的查询结果。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1示出了本发明实施例一中的一种数据查询的方法的流程图;
图2示出了本发明实施例二中的一种数据查询的方法的流程图;
图3示出了本发明实施例二中的一种确定数据写入进度参数的流程图;
图4示出了本发明实施例二中的一种确定一致性参数的流程图;
图5示出了本发明实施例二中的一种确定第一时间段的数据写入进度参数、可用性参数、一致性参数的流程图;
图6示出了本发明实施例三中的一种数据查询装置的结构框图;
图7示出了本发明实施例三中的另一种数据查询装置的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
参照图1,示出了本发明实施例一的数据查询的方法的流程图,具体可以包括如下步骤:
步骤101,接收客户端的数据查询请求。
在本发明实施例中,客户端可以是需要从各个数据集群中返回某些准确、实时性高的数据的客户。此处客户可以不关心使用了几个数据集群,以及查询中的细节,只关心返回数据的准确性、实时性。在本发明实施例中,对此不作具体限定。
在本发明实施例中,该数据查询请求可以包括查询时间段。该查询时间段,可以是几个小时、几天、几个月等,例如,查询时间段可以是:2018年3月1日00:00:00至2018年3月1日14:25:00这一时间段,在本发明实施例中对此不作具体限定。
可选的,在本发明实施例中,该数据查询请求还可以包括如地域、查询对象标识等,例如,数据查询请求可以是:2018年3月1日00:00:00至2018年3月1日14:25:00,北京地区对A品牌广告的访问量等,在本发明实施例中,对此不作具体限定。
步骤102,获取各个数据集群的数据写入进度参数、可用性参数、一致性参数。
在本发明实施例中,获取各个数据集群的数据写入进度参数、可用性参数、一致性参数,可以对各个数据集群的具体性能进行综合评价。
在本发明实施例中,各个数据集群,可以用于存储实时日志数据流。上述实时日志数据流,可以是,一定地域范围内,对某品牌广告的实时访问数据等。例如,北京地区对A品牌广告的实时访问数据。在本发明实施例中,对上述实时日志数据流不作具体限定。
在本发明实施例中,可选的,数据集群包括:独立解析所述实时日志数据流,并独立对所述解析后的实时日志数据流进行聚类的数据集群。也就是说,本发明实施例中的各个数据集群,可以是各个完全相同的并列数据集群,分别独立解析实时日志数据流,并独立对其解析后的实时日志数据流进行聚类,还分别独立的对上述日志数据流中的非法数据进行过滤等操作等处理,各个数据集群对上述日志数据流进行上述解析、过滤、聚类等操作后,各个数据集群分别将上述处理后的日志数据流写入各个数据集群。
在本发明实施例中,各个数据集群对上述实时日志数据流,可以进行相同的解析、过滤、聚类、写入等操作。当上述对实时日志数据流为某一时间段,对某品牌广告的访问数据时,此处的聚类,可以是根据地域、操作类型、品牌名称或标识等对该实时日志数据流进行分类等操作。在本发明实施例中,对此不作具体限定。
例如,针对上述完全相同的并列数据集群C、数据集群D、数据集群E、数据集群F,发送同一的日志数据流,数据集群C、数据集群D、数据集群E、数据集群F,分别对上述日志数据流,独立的进行解析、过滤掉其中的非法数据,对上述数据进行聚类等操作处理,数据集群C、数据集群D、数据集群E、数据集群F分别将其处理后的上述日志数据流写入。即上述数据集群C、数据集群D、数据集群E、数据集群F中的每一个数据集群都独立的执行解析、过滤掉其中非法数据、对数据进行聚类等处理,然后写入等整个流程操作。
本发明实施例中,各个数据集群,接收同一日志数据流,分别对上述日志数据流,独立的进行解析、过滤掉其中非法数据、对数据进行聚类等处理,然后分别写入其处理后的上述日志数据流等操作。本发明实施例中,即使,一个数据集群在解析、过滤掉其中非法数据、对数据进行聚类等处理过程中,存在故障或错误时,由于各个数据集群对上述数据的处理和写入整个流程都是独立的,因此,只能影响该数据集群后续无法正常写入上述数据或写入的数据存在错误,而不会影响到其它数据集群。
与目前统一的对上述日志数据流进行解析、过滤掉其中非法数据,对数据进行聚类等操作后,将上述处理后的数据再发送给各个数据集群,由各个数据集群写入相比,若在统一对上述日志数据流进行解析、过滤掉其中非法数据,对数据进行聚类等操作过程中,出现故障或错误,则所有的数据集群都不能收到处理后的数据,或接收到的处理后的数据均存在错误,各个数据集群自然也都不能写入上述数据,或各个数据集群写入的上述数据至少存在同样的错误。
因此,本发明实施例中,各个数据集群,接收同一日志数据流,分别对上述日志数据流,独立的进行解析、过滤掉其中非法数据、对数据进行聚类等处理,然后分别写入其处理后的上述日志数据流等操作,提高了数据的高可用性。
在本发明实施例中,可以根据各个数据集群在各自写入日志数据流的过程中,实时监控其数据写入进度参数。数据集群的数据写入进度参数,可以是,该数据集群对上述实时日志数据流已写入的数据量占上述日志数据流总数据量的百分比。在本发明实施例中,对数据集群的数据写入进度参数不作具体限定。
例如,针对一批实时日志数据流,其数据总量为10M,目前该数据集群已写入8M,则该数据集群目前的数据写入进度参数则可以为:8M/10M=80%。
在本发明实施例中,数据集群的数据写入进度参数还可以用时间维度进行衡量,例如,针对实时日志数据流,数据集群目前已经写到了2018年3月1日14:20:00的数据,则可以用2018年3月1日14:20:00表示将该数据集群目前的数据写入进度参数。在本发明实施例中,对此不作具体限定。
按照上述方法,一一确定,各个数据集群的数据写入进度参数。需要说明的是,各个数据集群,需要采用同样的方法确定数据写入进度参数,进而保证数据进度参数的可比性。在本发明实施例中,某一数据集群的数据写入进度参数,能够表征,该数据集群在实时写入数据的快慢。
在本发明实施例中,每一个数据集群中,在离线数据的一个写入周期内,即在一次离线数据写入后与下一次写离线数据前的时间段内,数据集群一直在计算即将写入的离线数据。也就是说,在一次离线数据写入后与下一次离线数据写前的时间段内,虽然该集群还没有存储即将写入的离线数据,但是该集群已经计算了部分即将写入的离线数据。
例如,目前时刻为2018年3月1日14:25:00,针对上述数据集群C,目前处于一次离线数据写入后与下一次写离线数据前的时间段内,该数据集群C一直在计算其下次要写入的离线数据,例如目前已经计算了2018年3月1日14:00:00至2018年3月1日14:16:00的离线数据。
在本发明实施例中,可以根据各个数据集群中存储和计算的离线数据对其存储的对应的实时数据的正确性进行验证。例如,上述数据集群C,针对其存储的实时数据,可以根据目前该数据集群C计算的2018年3月1日14:00:00至2018年3月1日14:16:00的离线数据,对数据集群C存储的部分实时数据,即2018年3月1日14:00:00至2018年3月1日14:16:00实时数据的正确性进行验证。
在本发明实施例中,对于存储的还没有计算的离线数据对应的实时数据部分,可以通过设置报警的方式,提示数据的正确性,在本发明实施例中,对此不作具体限定。
在本发明实施例中,可以将该数据集群计算的离线数据,与存储的对应的实时数据进行一一比对,确定两者对应相同的比例,该比例可以为该集群的该实时数据的一致性参数。以此类推,一一确定各个数据集群的一致性参数。在本发明实施例中,对该一致性参数,不作具体限定。
在本发明实施例中,某一数据集群的一致性参数,能够表征,该数据集群,写入的实时数据的准确性。因此,各个数据集群的一致性参数,能够反映,各个数据集群,写入的实时数据的准确性。
在本发明实施例中,可以根据数据集群目前能否提供数据查询服务,确定该数据集群的可用性参数。例如,针对上述数据集群C,若目前能够提供数据查询服务,则该数据集群C的可用性参数为可用;针对上述数据集群C,由于故障等,若目前不能提供数据查询服务,则该数据集群C,可用性参数为不可用。以此类推,一一确定,各个数据集群的可用性参数。在本发明实施例中,对此不作具体限定。
在本发明实施例中,通过获取各个数据集群的数据写入进度参数,可以获知各个数据集群实时数据的写入快慢;通过获取各个数据集群的一致性参数,可以获知各个数据集群实时数据的写入准确性;通过获取各个数据集群的可用性参数,可以获知各个数据集群能否提供该数据查询服务。后续可以从各个数据集群中,选择上述三个参数均优或达到一定阈值的数据集群,为该数据查询请求提供查询服务,能够为客户端,提供实时性好、准确率高的查询结果。
步骤103,根据所述各个数据集群的数据写入进度参数、可用性参数、一致性参数,选择目标数据集群。
在本发明实施例中,可以选择上述可用性参数为可用,且数据写入进度参数、一致性参数,均达到一定预设标准的数据集群作为目标数据集群,即选择了可提供数据查询服务,且写入速度快、准确性高的数据集群,作为目标数据集群,则该目标数据集群,可以为客户端,提供实时性好、准确率高的查询结果。
在本发明实施例中,可以先用上述参数中的任一个参数,作为第一个标准,在各个数据集群中,选择达到一定标准的数据集群集合1;然后从上述三个参数中剩余的两个参数中,再任意选择一个,作为第二个标准,从上述数据集群集合1中,选择达到某一标准的数据集群集合2,再用上述三个参数中剩余的最后一个参数,作为第三个标准,从上述数据集群集合2中,选择达到特定标准的数据集群集合或数据集群3,将该数据集群集合或数据集群3作为上述目标数据集群。在本发明实施例中,上述目标数据集群可以是数据集群集合也可以是单个数据集群,在本发明实施例中,对此不作具体限定。
在本发明实施例中,由于数据集群的可用性参数计算量相对较小,可以先将各个数据集群的可用性参数,作为第一个衡量标准,从各个数据集群中,选择上述可提供查询服务的数据集群集合作为上述数据集群集合1,后续再根据上述数据写入进度参数、一致性参数,依次进行选择。在本发明实施例中,将各个数据集群的可用性参数,作为第一个衡量标准,可以大大减少计算量,提高了数据查询的效率。在本发明实施例中,对此不作具体限定。
步骤104,将所述数据查询请求发送至所述目标数据集群。
在本发明实施例中,将上述数据查询请求,发送至上述目标数据集群。需要说明的是,若通过上述步骤103确定的目标数据集群若为数据集群集合,则,可以根据该数据查询请求对实时性和准确性的要求,从上述数据集群集合中确定数据写入进度参数或一致性参数最好的数据集群,作为目标数据集群。在本发明实施例中,对此不作具体限定。
例如,针对某一数据查询请求,确定的目标数据集群为数据集群C和数据集群E,若该数据查询请求对实时性要求更高,则从数据集群C和数据集群E中,选择数据写入进度参数最好的数据集群作为目标数据集群;若该数据查询请求对准确性要求更高,则从数据集群C和数据集群E中,选择一致性参数参数最好的数据集群作为目标数据集群。
在本发明实施例中,若通过上述步骤103确定的目标数据集群若为数据集群集合,且上述数据集群集合中各个数据集群的数据写入进度参数和一致性参数均对应相同,则可以从上述数据集群集合中,任意选一个作为目标数据集群。在本发明实施例中,对此不作具体限定。例如,针对某一数据查询请求,确定的目标数据集群为数据集群C和数据集群E,且数据集群C和数据集群E的数据写入进度参数和一致性参数均对应相同,则可以从数据集群C和数据集群E中,任意选择一个作为目标数据集群。
步骤105,接收所述目标数据集群返回的所述数据查询请求对应的查询结果,并将所述查询结果返回给所述客户端。
在本发明实施例中,在确定了目标数据集群后,由该目标数据集群返回该请求对应的查询结果。可以在目标数据集群的离线存储区和/或实时数据存储区进行查询。在本发明实施例中,对此不作具体限定。
在本发明实施例中,由于通常各个数据集群的写入进度、准确性等方面可能存在一定差异,因此,获取各个数据集群的数据写入进度参数、可用性参数、一致性参数,通过获取各个数据集群的数据写入进度参数,可以获知各个数据集群的实时数据的写入快慢;通过获取各个数据集群的一致性参数,可以获知各个数据集群实时数据的写入准确性;通过获取各个数据集群的可用性参数,可以获知各个数据集群能否提供该数据查询服务;根据上述各个数据集群的数据写入进度参数、可用性参数、一致性参数,选择目标数据集群,即选择了可提供数据查询服务,且写入速度快、准确性高的数据集群,作为目标数据集群,后续通过该目标数据集群,为客户端返回查询结果,可以为客户端,提供实时性好、准确率高的查询结果。
实施例二
参照图2,示出了本发明实施例二的数据查询的方法的流程图,具体可以包括如下步骤:
步骤201,接收客户端的数据查询请求。
上述步骤201,可以参照本申请实施例一中的步骤101,此处不再赘述。
步骤202,根据所述各个数据集群分别对实时日志数据流的写入情况,对应确定所述各个数据集群的数据写入进度参数。
本发明实施例中,各个数据集群,接收同一日志数据流,分别对上述日志数据流,独立的进行解析、过滤掉其中非法数据、对数据进行聚类等处理,然后分别写入其处理后的上述日志数据流等操作。
本发明实施例中,即使,一个数据集群在解析、过滤掉其中非法数据、对数据进行聚类等处理过程中,存在故障或错误时,由于各个数据集群对上述数据的处理和写入整个流程都是独立的,因此,只能影响该数据集群后续无法正常写入上述数据或写入的数据存在错误,而不会影响到其它数据集群。
与目前统一的对上述日志数据流进行解析、过滤掉其中非法数据,对数据进行聚类等操作后,将上述处理后的数据再发送给各个数据集群,由各个数据集群写入相比,若在统一对上述日志数据流进行解析、过滤掉其中非法数据,对数据进行聚类等操作过程中,出现故障或错误,则所有的数据集群都不能收到处理后的数据,或接收到的处理后的数据均存在错误,各个数据集群自然也都不能写入上述数据,或各个数据集群写入的上述数据至少存在同样的错误。因此,本发明实施例中,各个数据集群,接收同一日志数据流,分别对上述日志数据流,独立的进行解析、过滤掉其中非法数据、对数据进行聚类等处理,然后分别写入其处理后的上述日志数据流等操作,提高了数据的高可用性。
在本发明实施例中,可以根据各个数据集群在各自写入日志数据流的过程中,实时监控其数据写入进度参数。数据集群的数据写入进度参数,可以是,该数据集群对上述实时日志数据流已写入的数据量占上述日志数据流总数据量的百分比。在本发明实施例中,对数据集群的数据写入进度参数不作具体限定。
优选的,在本发明实施例中,参照图3所示,示出了,本发明实施例中,根据上述各个数据集群分别对上述实时日志数据流的写入情况,对应确定上述各个数据集群的数据写入进度参数的步骤流程图。可以包括:子步骤S21,确定所述各个数据集群分别对所述实时日志数据流已写入的数据量;子步骤S22,确定所述各个数据集群分别对所述实时日志数据流已写入的数据量占所述实时日志数据流总数据量的百分比;子步骤S23,将所述百分比,分别作为所述各个数据集群的数据写入进度参数。
具体的,在本发明实施例中,可以获取某一个数据集群,需要写入的实时日志数据流,已写入的数据量占上述需要写入的实时日志数据流总数据量的百分比,作为该时间段内,该数据集群的数据写入进度参数。
例如,针对上述数据集群C,需要写入的实时数据流H的总量为20M,已经写入的数据量为16M,则该数据集群C,的数据写入进度参数即为16M/20M=80%。
在本发明实施例中,数据集群的数据写入进度参数还可以用时间维度进行衡量,例如,针对实时日志数据流,数据集群目前已经写到了2018年3月1日14:20:00的数据,则可以用2018年3月1日14:20:00表示将该数据集群目前的数据写入进度参数。在本发明实施例中,对此不作具体限定。
按照上述方法,一一确定,各个数据集群的数据写入进度参数。需要说明的是,各个数据集群,需要采用同样的方法确定数据写入进度参数,进而保证数据进度参数的可比性。在本发明实施例中,某一数据集群的数据写入进度参数,能够表征,该数据集群实时写入数据的快慢。
步骤203,根据所述各个数据集群的实时状态,对应确定所述各个数据集群的可用性参数。
在本发明实施例中,可以根据数据集群目前能否提供数据查询服务,确定该数据集群的可用性参数。例如,针对上述数据集群C,目前若能够提供数据查询服务,则该数据集群C的可用性参数为可用;针对上述数据集群C,由于故障等,目前若不能提供数据查询服务,则该数据集群C的可用性参数为不可用。以此类推,一一确定某一时间段内各个数据集群的可用性参数。在本发明实施例中,对此不作具体限定。
步骤204,根据所述各个数据集群中计算的离线数据,和所述各个数据集群对应存储的实时数据,对应确定所述各个数据集群的一致性参数。
在本发明实施例中,每一个数据集群中,在离线数据的一个写入周期内,即在一次离线数据写入后与下一次写离线数据前的时间段内,数据集群一直在计算即将写入的离线数据。也就是说,在一次离线数据写入后与下一次离线数据写前的时间段内,虽然该集群还没有存储即将写入的离线数据,但是该集群已经计算了部分即将写入的离线数据。在本发明实施例中,可以根据各个数据集群中存储和计算的离线数据对其存储的对应的实时数据的正确性进行验证。
例如,目前时刻为2018年3月1日14:25:00,针对上述数据集群C,目前处于一次离线数据写入后与下一次写离线数据前的时间段内,该数据集群C一直在计算其下次要写入的离线数据,例如目前已经计算了2018年3月1日14:00:00至2018年3月1日14:16:00的离线数据。
可选的,参照图4所示,图4示出了本发明实施例中,根据上述各个数据集群中计算的离线数据,和上述各个数据集群对应存储的实时数据,对应确定上述各个数据集群的一致性参数的流程图,可以包括如下子步骤:子步骤S41,获取所述各个数据集群中计算的所述离线数据;子步骤S42,获取所述各个数据集群中对应存储的所述实时数据和所述对应存储的所述实时数据的数量;子步骤S43,分别确定所述各个数据集群中,所述对应存储的所述实时数据与所述离线数据对应相同的数量;子步骤S44,分别确定所述各个数据集群中,所述对应相同的数量占所述对应存储的所述实时数据的数量的比例;子步骤S45,将所述比例,分别作为所述各个数据集群的一致性参数。
具体的,例如,针对上述数据集群C,在2018年3月1日14:25:00,虽然数据集群C还没有到写入离线数据的时刻,但是数据集群C一直在计算即将写入的离线数据,比如,已经计算了2018年3月1日14:00:00至2018年3月1日14:16:00的数据,后续在2018年3月1日14:59:59该数据集群C直接将其在2018年3月1日14:00:00至2018年3月1日14:59:59计算的数据写入到数据集群C的离线数据存储区。
上述数据集群C,针对其存储2018年3月1日14:00:00至2018年3月1日14:25:00的实时数据,可以根据该数据集群C计算的2018年3月1日14:00:00至2018年3月1日14:16:00的离线数据,对数据集群C存储的部分实时数据的正确性进行验证。即对该数据集群C,针对其存储的2018年3月1日14:00:00至2018年3月1日14:16:00的实时数据进行一致性验证。
在本发明实施例中,对于存储的还没有计算的离线数据对应的实时数据部分,可以通过设置报警的方式,提示数据的正确性,在本发明实施例中,对此不作具体限定。例如,针对上述例子,针对其存储2018年3月1日14:16:01至2018年3月1日14:25:00的实时数据,由于其对应的离线数据还没有计算,则可以通过为数据集群设置报警等方式,对可能出现错误的实时数据进行提示。
在本发明实施例中,可以主要针对该数据集群中存储的,已经计算的离线数据对对应的实时数据进行一致性验证。由此,估算该数据集群中存储的实时数据的整体正确性。在本发明实施例中,对此不作具体限定。
例如,针对上述例子,可以是将该数据集群C计算的2018年3月1日14:00:00至2018年3月1日14:16:00的离线数据,与其存储的2018年3月1日14:00:00至2018年3月1日14:16:00的实时数据,和其存储的2018年3月1日14:00:00至2018年3月1日14:16:00的实时数据的数量,针对同一时刻的离线数据和实时数据,进行一致性验证,得到该时间段实时数据与离线数据对应相同的比例。若数据集群C计算的2018年3月1日14:00:00至2018年3月1日14:16:00的离线数据数量为100条,数据集群C存储的2018年3月1日14:00:00至2018年3月1日14:16:00的实时数据的数据量也是100条,数据集群C存储2018年3月1日14:00:00至2018年3月1日14:16:00的实时数据与计算的2018年3月1日14:00:00至2018年3月1日14:16:00的离线数据的对应相同的数据的数量为98条,占到了2018年3月1日14:00:00至2018年3月1日14:16:00存储的实时数据总量100条的98%。则可以将该数据集群C的数据的一致性参数粗略的认为是98%。按照上述方法,以此类推,一一确定各个数据集群的一致性参数。在本发明实施例中,某一数据集群的一致性参数,能够表征,该数据集群写入的实时数据的准确性。因此,各个数据集群的一致性参数,能够反映,各个数据集群写入的实时数据的准确性。
在本发明实施例中,通过确定各个数据集群的数据写入进度参数,可以获知各个数据集群的实时数据的写入快慢;通过确定各个数据集群在的一致性参数,可以获知各个数据集群实时数据的写入准确性;通过获取各个数据集群的可用性参数,可以获知各个数据集群能否提供查询服务。后续可以从各个数据集群中,选择上述三个参数均优或达到一定阈值的数据集群,为该数据查询请求提供查询服务,能够为客户端,提供实时性好、准确率高的查询结果。
步骤205,根据所述可用性参数,在所述各个数据集群中,选择可用的第二数据集群。
在本发明实施例中,由于数据集群的可用性参数计算量相对较小,可以先将各个数据集群的可用性参数,作为第一个衡量标准,从各个数据集群中,选择上述可提供查询服务的数据集群集合作为第二数据集群,后续再根据上述数据写入进度参数、一致性参数,依次进行选择。
在本发明实施例中,将各个数据集群的可用性参数,作为第一个衡量标准,可以大大减少计算量,提高了数据查询的效率。在本发明实施例中,对此不作具体限定。
步骤206,从所述第二数据集群中,选择所述一致性参数超过第一阈值的第三数据集群。
在本发明实施例中,可以从上第二数据集群,再根据上述第二数据集群的一致性参数,选择一致性参数超过第一阈值的第三数据集群。从第二数据集群中,选择了实时数据写入正确率高的,作为第三数据集群。后续可以为客户端,提供准确率高的查询结果。
在本发明实施例中,该第一阈值,可以根据该查询对准确性的要求程度,选择合适的标准作为该第一阈值,在本发明实施例中,对该第一阈值不作具体限定。
步骤207,从所述第三数据集群中,选择所述数据写入进度参数超过第二阈值的所述目标数据集群。
在本发明实施例中,可以从上第三数据集群,再根据数据写入进度参数,选择数据写入进度参数超过第二阈值的目标数据集群。从第三数据集群中,选择了实时数据写入速度快的,即更新快,实时性好的作为第三数据集群。后续可以为客户端,提供实时性好的查询结果。
在本发明实施例中,该第二阈值,可以根据该查询对实时性的要求程度,选择合适的标准作为该第二阈值,在本发明实施例中,对该第二阈值不作具体限定。
在本发明实施例中,在步骤205之后,可以在上述可用的第二数据集群中,先选择据写入进度参数超过一定标准的数据集群,然后在从上述数据集群中,再选择一致性参数超过某一标准的数据集群。即在上述可用的第二数据集群中,先选实时性好的,然后从中再选正确性高的。在本发明实施例中,对此不作具体限定。
在本发明实施例中,上述目标数据集群可以是数据集群集合也可以是单个数据集群,在本发明实施例中,对此不作具体限定。
在本发明实施例中,选择上可用性参数为可用,且数据写入进度参数、一致性参数,均达到一定预设标准的数据集群作为目标数据集群,即选择了可提供数据查询服务,且写入速度快、准确性高的数据集群,作为目标数据集群,则该目标数据集群,可以为客户端,提供实时性好、准确率高的查询结果。
可选的,在本发明实施例中,当上述数据查询查询请求包括:查询时间段时,参照图5所示,可以针对该数据查询请求中的查询时间段,确定各个数据集群的数据写入进度参数、可用性参数、一致性参数。即,所述获取各个数据集群的数据写入进度参数、可用性参数、一致性参数包括:步骤31,根据所述各个数据集群的离线数据和实时数据存储时间段的实时划分,确定所述查询时间段中,需要在所述实时数据存储时间段查询的第一时间段;步骤32,获取所述各个数据集群所述第一时间段的数据写入进度参数、可用性参数、一致性参数。
可选的,上述步骤31,可以包括以下子步骤:子步骤S311,获取所述各个数据集群的离线数据和实时数据存储时间段的实时划分;子步骤S312,将所述查询时间段中,需要在所述各个数据集群的实时数据存储时间段查询的时间段,确定为所述第一时间段。
具体的,在本发明实施例中,上述各个数据集群可以是多个完全相同的并列数据集群。例如,4个结构完全相同,用于存储相同数据的,并列数据集群C、数据集群D、数据集群E、数据集群F。在本发明实施例中,对此不作具体限定。
在本发明实施例中,对于每一个数据集群,可以分为离线数据存储区和实时数据存储区。该离线数据存储区存储离线数据,该实时存储区存储实时数据。通常数据集群中离线数据存储区存储的离线数据质量较好,如数据集群中离线数据存储区存储的离线数据的正确率高,不会出现数据重写,不存在脏数据等,因此,在本发明实施例中,可以将上述数据查询请求中的查询时间段,尽可能多的划分在离线数据查询时间段,进而保证该离线数据查询时间段内查询到的数据质量较好。在本发明实施例中,对此不作具体限定。
在本发明实施例中,针对每个数据集群中每一时间段都可以实时的划分为离线数据存储时间段和实时数据存储时间段。各个数据集群对离线数据和实时数据存储,根据其所处的时间段不同,实时划分不同。具体可以根据其离线数据的写入周期、写入时刻、实时数据的写入周期、写入时刻等,对各个数据集群的离线数据和实时数据存储时间段进行实时划分。在本发明实施例中对此,不作具体限定。
例如,假设数据集群C,其离线数据的写入周期为1小时,离线数据每次写入时刻可以为每个小时的59分59秒,其实时数据的写入周期为5分钟,实时数据每次写入时刻可以为每个小时中能被5整除的分钟时刻,例如可以是2018年3月1日14:25:00写入一次实时数据,也可是2018年3月1日14:00:00写入一次实时数据。
则2018年3月1日00:00:00至2018年3月1日14:25:00这一查询时间段,针对上述数据集群C,其离线数据存储区只存储了2018年3月1日13:59:59以前的数据,即该数据集群C最多只能提供2018年3月1日13:59:59以前的离线数据查询,则2018年3月1日14:00:00至2018年3月1日14:25:00时间段,需要由数据集群C的实时存储区提供查询服务。可以尽可能多的将该查询时间段划分在离线数据查询时间段,则可以将查询时间段2018年3月1日00:00:00至2018年3月1日13:59:59划分为离线数据存储时间段,可以将查询时间段2018年3月1日14:00:00至2018年3月1日14:25:00划分为实时数据存储时间段。
在本发明实施例中,针对上述例子,可以将上述查询时间段2018年3月1日00:00:00至2018年3月1日14:25:00中的实时数据存储时间段2018年3月1日14:00:00至2018年3月1日14:25:00,作为第一时间段,即,将该查询时间段2018年3月1日00:00:00至2018年3月1日14:25:00中需要由数据集群C的实时数据存储时间段提供查询服务的2018年3月1日14:00:00至2018年3月1日14:25:00,确定为第一时间段。在本发明实施例中,对此不作具体限定。
在本发明实施例中,若上述各个数据集群中,离线数据的写入周期、写入时刻、实时数据的写入周期、写入时刻都完全相同,则针对同一查询时间段,则需要各个数据集群对在实时数据存储时间段查询的第一时间段,也相同。在本发明实施例中,对此不作具体限定。
例如,针对上述4个结构完全相同,用于存储相同数据的,并列数据集群C、数据集群D、数据集群E、数据集群F。若数据集群C、数据集群D、数据集群E、数据集群F,其离线数据的写入周期均为1小时,离线数据每次写入时刻可以均为每个小时的59分59秒,其实时数据的写入周期均为5分钟,实时数据每次写入时刻可以均为每个小时中能被5整除的分钟时刻,则上述查询时间段2018年3月1日00:00:00至2018年3月1日14:25:00,需要数据集群C、数据集群D、数据集群E、数据集群F的实时数据存储时间段提供查询的第一时间段均为2018年3月1日14:00:00至2018年3月1日14:25:00。
可选的,获取所述各个数据集群所述第一时间段的数据写入进度参数、可用性参数、一致性参数。具体可以包括:在本发明实施例中,可以获取某各个数据集群,在上述第一时间段内需要写入的实时日志数据流,各个数据集群已写入的数据量占上述第一时间段内需要写入的实时日志数据流总数据量的百分比,分别作为该第一时间段内,各个数据集群的数据写入进度参数。
例如,针对上述数据集群C,针对查询时间段为2018年3月1日00:00:00至2018年3月1日14:25:00的数据查询请求,根据数据集群C的离线数据和实时数据存储时间段的实时划分,将该数据查询请求的查询时间段2018年3月1日00:00:00至2018年3月1日14:25:00时间段,中的时间段2018年3月1日00:00:00至2018年3月1日13:59:59可以划分为离线数据存储时间段,将时间段2018年3月1日14:00:00至2018年3月1日14:25:00确定为第一时间段。针对该第一时间段内,需要写入的实时数据流H的总量为20M,已经写入的数据量为18M,则该数据集群C,在该数据查询请求中的第一时间段内的数据写入进度参数即为18M/20M=90%。
在本发明实施例中,数据集群的第一时间段的数据写入进度参数还可以用时间维度进行衡量,例如,针对实时日志数据流,数据集群目前已经写到了2018年3月1日14:20:00的数据,则可以用2018年3月1日14:20:00表示将该数据集群目前的数据写入进度参数。在本发明实施例中,对此不作具体限定。
按照上述方法,一一确定,该第一时间段内,各个数据集群的数据写入进度参数,在本发明实施例中,对此不作具体限定。需要采用同样的方法确定数据写入进度参数,进而保证数据进度参数的可比性。在本发明实施例中,第一时间段内,某一数据集群的数据写入进度参数,能够表征,该数据集群在该第一时间段内,实时写入数据的快慢。
可选的,确定该第一时间段,各个数据集群的一致性参数。可以包括如下步骤:获取所述各个数据集群中计算的所述第一时间段的离线数据;获取所述各个数据集群中对应存储的所述第一时间段的实时数据;分别确定所述各个数据集群中,所述第一时间段的离线数据与所述第一时间段的实时数据对应相同的比例;将所述比例,分别作为所述各个数据集群所述第一时间段的一致性参数。
具体的,针对上述数据集群C,针对查询时间段为2018年3月1日00:00:00至2018年3月1日14:25:00的数据查询请求,根据数据集群C的离线数据和实时数据存储时间段的实时划分,将该数据查询请求的查询时间段2018年3月1日00:00:00至2018年3月1日14:25:00时间段中的时间段2018年3月1日00:00:00至2018年3月1日13:59:59可以划分为离线数据存储时间段,将时间段2018年3月1日14:00:00至2018年3月1日14:25:00可以确定为第一时间段。针对该数据查询请求中的第一时间段2018年3月1日14:00:00至2018年3月1日14:25:00时间段内,虽然数据集群C还没有到写入离线数据的时刻,但是数据集群C一直在计算即将写入的离线数据,比如,已经计算了2018年3月1日14:00:00至2018年3月1日14:16:00的数据,后续在2018年3月1日14:59:59该数据集群C直接将其在2018年3月1日14:00:00至2018年3月1日14:59:59计算的数据写入到数据集群C的离线数据存储区。
上述数据集群C,针对其存储的该数据查询请求中的第一时间段2018年3月1日14:00:00至2018年3月1日14:25:00的实时数据,可以根据该数据集群C计算的2018年3月1日14:00:00至2018年3月1日14:16:00的离线数据,对数据集群C存储的部分实时数据的正确性进行验证。即对该数据集群C,针对其存储的该第一时间段2018年3月1日14:00:00至2018年3月1日14:25:00的实时数据中2018年3月1日14:00:00至2018年3月1日14:16:00的实时数据进行一致性验证。
在本发明实施例中,对于存储的还没有计算的离线数据对应的实时数据部分,可以通过设置报警的方式,提示数据的正确性,在本发明实施例中,对此不作具体限定。例如,针对上述例子,针对其存储的该数据查询请求中的第一时间段2018年3月1日14:00:00至2018年3月1日14:25:00的实时数据中2018年3月1日14:16:01至2018年3月1日14:25:00的实时数据,由于其对应的离线数据还没有计算,则可以通过为数据集群设置报警等方式,对可能出现错误的实时数据进行提示。
在本发明实施例中,可以主要针对该数据集群中存储的,该数据查询请求中的第一时间段中与已经计算的离线数据对应的实时数据进行一致性验证。由此,估算该数据集群中存储的该数据查询请求中的实第一时间段的实时数据的整体正确性。在本发明实施例中,对此不作具体限定。
例如,针对上述例子,可以是将该数据集群C计算的2018年3月1日14:00:00至2018年3月1日14:16:00的离线数据,与其存储的该数据查询请求中的第一时间段内的2018年3月1日14:00:00至2018年3月1日14:16:00的实时数据,针对同一时刻的离线数据和实时数据,进行一致性验证,得到数据查询请求中的第一时间段中,实时数据与离线数据对应相同的比例。若数据集群C存储的第一时间段内的2018年3月1日14:00:00至2018年3月1日14:16:00的实时数据与计算的离线数据2018年3月1日14:00:00至2018年3月1日14:16:00的对应相同的数据量,占到了该第一时间段中的2018年3月1日14:00:00至2018年3月1日14:16:00的实时数据的数量的98%。则可以将该数据集群C的该第一时间段2018年3月1日14:00:00至2018年3月1日14:25:00的数据的一致性参数粗略的认为是98%。
按照上述方法,以此类推,一一确定该查询时间段内的第一时间段各个数据集群的一致性参数。在本发明实施例中,第一时间段内,某一数据集群的一致性参数,能够表征,该数据集群在该第一时间段内,写入的实时数据的准确性。
可选的,确定该第一时间段,各个数据集群的可用性参数。在本发明实施例中,可以根据数据集群能否提供该第一时间段的数据查询服务,确定该第一时间段,该数据集群的可用性参数。例如,针对上述数据集群C,若能够提供2018年3月1日14:00:00至2018年3月1日14:25:00的数据查询服务,则该数据集群C,在2018年3月1日14:00:00至2018年3月1日14:25:00时间段内的可用性参数为可用;针对上述数据集群C,由于故障等,若不能提供2018年3月1日14:00:00至2018年3月1日14:25:00的数据查询服务,则该数据集群C,在2018年3月1日14:00:00至2018年3月1日14:25:00时间段内的可用性参数为不可用。以此类推,一一确定某一时间段内各个数据集群的可用性参数。在本发明实施例中,对此不作具体限定。
在本发明实施例中,通过获取各个数据集群在第一时间段的数据写入进度参数,可以获知各个数据集群对该第一时间段的实时数据的写入快慢;通过获取各个数据集群在第一时间段的一致性参数,可以获知各个数据集群在该第一时间段的实时数据的写入准确性;通过获取各个数据集群在第一时间段的可用性参数,可以获知各个数据集群能否提供该第一时间段的实时数据的查询服务。后续可以从各个数据集群中,选择上述三个参数均优或达到一定阈值的数据集群,为该数据查询请求提供查询服务,能够为客户端,提供实时性好、准确率高的查询结果。
可选的,在本发明实施例中,所述根据所述各个数据集群的数据写入进度参数、可用性参数、一致性参数,选择目标数据集群包括:根据所述各个数据集群所述第一时间段的数据写入进度参数、可用性参数、一致性参数,选择所述目标数据集群。选取了,该查询时间段中,需要在各个数据集群的实时数据存储时间段查询的第一时间段,可用的、实时性好的、准确性高的数据集群作为目标数据集群,相当于针对各个数据查询请求,选择了该数据查询请求的查询时间段中可用的、实时性好的、准确性高的数据集群作为目标数据集群,后续由该目标数据集群为该数据查询请求,提供查询结果,可以为客户端,提供针对该数据查询请求的实时性好、准确率高的查询结果。
步骤208,将所述数据查询请求发送至所述目标数据集群。
步骤209,接收所述目标数据集群返回的所述数据查询请求对应的查询结果,并将所述查询结果返回给所述客户端。
在本发明实施例中,上述步骤208-209,可以参照本发明实施例一中的步骤104-105,此处不再赘述。
需要说明的是,在本发明实施例中,目标数据集群接收到上述数据查询请求后,当根据所述各个数据集群的离线数据和实时数据存储时间段的实时划分,确定所述查询时间段中,需要在所述实时数据存储时间段查询的第一时间段后,在目标集群中的离线数据存储区中,查找该数据查询请求中的离线数据存储时间段对应的查询结果,在目标集群中的实时数据存储时间段中,查找该数据查询请求中的第一时间段对应的查询结果,然后将上述离线数据存储时间段对应的查询结果和第一时间段对应的查询结果,整体作为该数据查询请求对应的查询结果,将该查询结果返回给客户端。在本发明实施例中,对此不作具体限定。
例如,若该数据查询请求为:2018年3月1日00:00:00至2018年3月1日14:25:00,北京地区对A品牌广告的访问次数,若根据各个数据集群的离线数据和实时数据存储时间段的实时划分,将该查询时间段的2018年3月1日00:00:00至2018年3月1日13:59:59均划分在离线数据存储时间段中查询,将时间段2018年3月1日14:00:00至2018年3月1日14:25:00均划分为第一时间段。若确定的目标数据集群中,确定离线数据存储时间段内北京地区对A品牌广告的访问次数为150次,确定第一时间段内北京地区对A品牌广告的访问次数为16次,则,针对该数据查询请求,为客户端返回的查询结果可以是:2018年3月1日00:00:00至2018年3月1日14:25:00,北京地区对A品牌广告的访问次数为166次。
在本发明实施例中,针对各个数据集群的写入进度、准确性等方面可能存在一定差异,通过获取各个数据集群的数据写入进度参数,可以获知各个数据集群的实时数据的写入快慢;通过获取各个数据集群的一致性参数,可以获知各个数据集群对的实时数据的写入准确性;通过获取各个数据集群的可用性参数,可以获知各个数据集群能否提供该查询服务;根据上述各个数据集群的数据写入进度参数、可用性参数、一致性参数,选择目标数据集群,即选择了可提供数据查询服务,且写入速度快、准确性高的数据集群,作为目标数据集群,后续通过该目标数据集群,为客户端返回查询结果,可以为客户端,提供实时性好、准确率高的查询结果。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请实施例并不受所描述的动作顺序的限制,因为依据本申请实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定都是本申请实施例所必须的。
实施例三
参照图6所示,本发明实施例提供了一种数据查询装置600,上述数据查询装置600具体可以包括:
查询请求接收模块601,用于接收客户端的数据查询请求;
参数获取模块602,用于获取各个数据集群的数据写入进度参数、可用性参数、一致性参数;
目标数据集群选择模块603,用于根据所述各个数据集群的数据写入进度参数、可用性参数、一致性参数,选择目标数据集群;
查询请求发送模块604,用于将所述数据查询请求发送至所述目标数据集群;
查询结果返回模块605,用于接收所述目标数据集群返回的所述数据查询请求对应的查询结果,并将所述查询结果返回给所述客户端。
可选地,参照图7所示,在上述图6的基础上,上述参数获取模块602可以包括:
数据写入进度参数确定单元6021,用于根据所述各个数据集群分别对实时日志数据流的写入情况,对应确定所述各个数据集群的数据写入进度参数;
可用性参数确定单元6022,用于根据所述各个数据集群的实时状态,对应确定所述各个数据集群的可用性参数;
一致性参数确定单元6023,用于根据所述各个数据集群中计算的离线数据,和所述各个数据集群对应存储的实时数据,对应确定所述各个数据集群的一致性参数。
上述目标数据集群选择模块603,可以包括:
第二数据集群选择单元6031,用于根据所述可用性参数,在所述各个数据集群中,选择可用的第二数据集群;
第三数据集群选择单元6032,用于从所述第二数据集群中,选择所述一致性参数超过第一阈值的第三数据集群;
第一目标数据集群选择单元6033,用于从所述第三数据集群中,选择所述数据写入进度参数超过第二阈值的所述目标数据集群。
优选的,所述数据查询请求包括:查询时间段;
所述参数获取模块602,可以包括:第一时间段确定单元,用于根据所述各个数据集群的离线数据和实时数据存储时间段的实时划分,确定所述查询时间段中,需要在所述实时数据存储时间段查询的第一时间段;
参数获取单元,用于获取所述各个数据集群所述第一时间段的数据写入进度参数、可用性参数、一致性参数。
所述目标数据集群选择模块603,可以包括:
第二目标数据集群选择单元,用于根据所述各个数据集群所述第一时间段的数据写入进度参数、可用性参数、一致性参数,选择所述目标数据集群。
上述数据写入进度参数确定单元6021,可以包括:
已写入数据量确定子单元60211,用于确定所述各个数据集群分别对所述实时日志数据流已写入的数据量;
百分比确定子单元60212,用于确定所述各个数据集群分别对所述实时日志数据流已写入的数据量占所述实时日志数据流总数据量的百分比;
数据写入进度参数确定子单元60213,用于将所述百分比,分别作为所述各个数据集群的数据写入进度参数。
上述一致性参数确定单元6023,可以包括:
离线数据获取子单元60231,用于获取所述各个数据集群中计算的所述离线数据;
实时数据获取子单元60232,用于获取所述各个数据集群中对应存储的所述实时数据和所述对应存储的所述实时数据的数量;
对应相同数量确定子单元60233,用于分别确定所述各个数据集群中,所述对应存储的所述实时数据与所述离线数据对应相同的数量;
比例确定子单元60234,用于分别确定所述各个数据集群中,所述对应相同的数量占所述对应存储的所述实时数据的数量的比例;
一致性参数确定子单元60235,用于将所述比例,分别作为所述各个数据集群的一致性参数。
上述第一时间段确定单元,可以包括:
时间段实时划分获取子单元,用于获取所述各个数据集群的离线数据和实时数据存储时间段的实时划分;
第一时间段确定子单元,用于将所述查询时间段中,需要在所述各个数据集群的实时数据存储时间段查询的时间段,确定为所述第一时间段。
所述数据集群包括:独立解析所述实时日志数据流,并独立对所述解析后的实时日志数据流进行聚类的数据集群。
本发明实施例提供的数据查询装置能够实现图1至图5的方法实施例中装置实现的各个过程,为避免重复,这里不再赘述。
在本发明实施例中,针对各个数据集群的写入进度、准确性等方面可能存在一定差异,通过获取各个数据集群的数据写入进度参数,可以获知各个数据集群的实时数据的写入快慢;通过获取各个数据集群的一致性参数,可以获知各个数据集群对的实时数据的写入准确性;通过获取各个数据集群的可用性参数,可以获知各个数据集群能否提供该查询服务;根据上述各个数据集群的数据写入进度参数、可用性参数、一致性参数,选择目标数据集群,即选择了可提供数据查询服务,且写入速度快、准确性高的数据集群,作为目标数据集群,后续通过该目标数据集群,为客户端返回查询结果,可以为客户端,提供实时性好、准确率高的查询结果。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。
Claims (18)
1.一种数据查询方法,其特征在于,所述方法包括:
接收客户端的数据查询请求;
获取各个数据集群的数据写入进度参数、可用性参数、一致性参数;
根据所述各个数据集群的数据写入进度参数、可用性参数、一致性参数,选择目标数据集群;
将所述数据查询请求发送至所述目标数据集群;
接收所述目标数据集群返回的所述数据查询请求对应的查询结果,并将所述查询结果返回给所述客户端;
所述获取各个数据集群的一致性参数包括:根据所述各个数据集群中计算的离线数据,和所述各个数据集群对应存储的实时数据,对应确定所述各个数据集群的一致性参数。
2.根据权利要求1所述的方法,其特征在于,所述获取各个数据集群的数据写入进度参数、可用性参数包括:
根据所述各个数据集群分别对实时日志数据流的写入情况,对应确定所述各个数据集群的数据写入进度参数;
根据所述各个数据集群的实时状态,对应确定所述各个数据集群的可用性参数。
3.根据权利要求1所述的方法,其特征在于,所述根据所述各个数据集群的数据写入进度参数、可用性参数、一致性参数,选择目标数据集群的步骤,包括:
根据所述可用性参数,在所述各个数据集群中,选择可用的第二数据集群;
从所述第二数据集群中,选择所述一致性参数超过第一阈值的第三数据集群;
从所述第三数据集群中,选择所述数据写入进度参数超过第二阈值的所述目标数据集群。
4.根据权利要求1所述的方法,其特征在于,所述数据查询请求包括:查询时间段;
所述获取各个数据集群的数据写入进度参数、可用性参数、一致性参数包括:
根据所述各个数据集群的离线数据和实时数据存储时间段的实时划分,确定所述查询时间段中,需要在所述实时数据存储时间段查询的第一时间段;
获取所述各个数据集群所述第一时间段的数据写入进度参数、可用性参数、一致性参数。
5.根据权利要求4所述的方法,其特征在于,所述根据所述各个数据集群的数据写入进度参数、可用性参数、一致性参数,选择目标数据集群包括:
根据所述各个数据集群所述第一时间段的数据写入进度参数、可用性参数、一致性参数,选择所述目标数据集群。
6.根据权利要求2所述的方法,其特征在于,所述根据所述各个数据集群分别对实时日志数据流的写入情况,对应确定所述各个数据集群的数据写入进度参数的步骤包括:
确定所述各个数据集群分别对所述实时日志数据流已写入的数据量;
确定所述各个数据集群分别对所述实时日志数据流已写入的数据量占所述实时日志数据流总数据量的百分比;
将所述百分比,分别作为所述各个数据集群的数据写入进度参数。
7.根据权利要求2所述的方法,其特征在于,所述根据所述各个数据集群中计算的离线数据,和所述各个数据集群对应存储的实时数据,对应确定所述各个数据集群的一致性参数的步骤包括:
获取所述各个数据集群中计算的所述离线数据;
获取所述各个数据集群中对应存储的所述实时数据和所述对应存储的所述实时数据的数量;
分别确定所述各个数据集群中,所述对应存储的所述实时数据与所述离线数据对应相同的数量;
分别确定所述各个数据集群中,所述对应相同的数量占所述对应存储的所述实时数据的数量的比例;
将所述比例,分别作为所述各个数据集群的一致性参数。
8.根据权利要求4所述的方法,其特征在于,所述根据所述各个数据集群的离线数据和实时数据存储时间段的实时划分,确定所述查询时间段中,需要在所述实时数据存储时间段查询的第一时间段的步骤包括:
获取所述各个数据集群的离线数据和实时数据存储时间段的实时划分;
将所述查询时间段中,需要在所述各个数据集群的实时数据存储时间段查询的时间段,确定为所述第一时间段。
9.根据权利要求2所述的方法,其特征在于,
所述数据集群包括:独立解析所述实时日志数据流,并独立对所述解析后的实时日志数据流进行聚类的数据集群。
10.一种数据查询装置,其特征在于,所述装置包括:
查询请求接收模块,用于接收客户端的数据查询请求;
参数获取模块,用于获取各个数据集群的数据写入进度参数、可用性参数、一致性参数;
目标数据集群选择模块,用于根据所述各个数据集群的数据写入进度参数、可用性参数、一致性参数,选择目标数据集群;
查询请求发送模块,用于将所述数据查询请求发送至所述目标数据集群;
查询结果返回模块,用于接收所述目标数据集群返回的所述数据查询请求对应的查询结果,并将所述查询结果返回给所述客户端;
所述参数获取模块包括:一致性参数确定单元,用于根据所述各个数据集群中计算的离线数据,和所述各个数据集群对应存储的实时数据,对应确定所述各个数据集群的一致性参数。
11.根据权利要求10所述的装置,其特征在于,所述参数获取模块包括:
数据写入进度参数确定单元,用于根据所述各个数据集群分别对实时日志数据流的写入情况,对应确定所述各个数据集群的数据写入进度参数;
可用性参数确定单元,用于根据所述各个数据集群的实时状态,对应确定所述各个数据集群的可用性参数。
12.根据权利要求10所述的装置,其特征在于,所述目标数据集群选择模块,包括:
第二数据集群选择单元,用于根据所述可用性参数,在所述各个数据集群中,选择可用的第二数据集群;
第三数据集群选择单元,用于从所述第二数据集群中,选择所述一致性参数超过第一阈值的第三数据集群;
第一目标数据集群选择单元,用于从所述第三数据集群中,选择所述数据写入进度参数超过第二阈值的所述目标数据集群。
13.根据权利要求10所述的装置,其特征在于,所述数据查询请求包括:查询时间段;
所述参数获取模块包括:第一时间段确定单元,用于根据所述各个数据集群的离线数据和实时数据存储时间段的实时划分,确定所述查询时间段中,需要在所述实时数据存储时间段查询的第一时间段;
参数获取单元,用于获取所述各个数据集群所述第一时间段的数据写入进度参数、可用性参数、一致性参数。
14.根据权利要求13所述的装置,其特征在于,所述目标数据集群选择模块,包括:
第二目标数据集群选择单元,用于根据所述各个数据集群所述第一时间段的数据写入进度参数、可用性参数、一致性参数,选择所述目标数据集群。
15.根据权利要求11所述的装置,其特征在于,所述数据写入进度参数确定单元,包括:
已写入数据量确定子单元,用于确定所述各个数据集群分别对所述实时日志数据流已写入的数据量;
百分比确定子单元,用于确定所述各个数据集群分别对所述实时日志数据流已写入的数据量占所述实时日志数据流总数据量的百分比;
数据写入进度参数确定子单元,用于将所述百分比,分别作为所述各个数据集群的数据写入进度参数。
16.根据权利要求11所述的装置,其特征在于,所述一致性参数确定单元,包括:
离线数据获取子单元,用于获取所述各个数据集群中计算的所述离线数据;
实时数据获取子单元,用于获取所述各个数据集群中对应存储的所述实时数据和所述对应存储的所述实时数据的数量;
对应相同数量确定子单元,用于分别确定所述各个数据集群中,所述对应存储的所述实时数据与所述离线数据对应相同的数量;
比例确定子单元,用于分别确定所述各个数据集群中,所述对应相同的数量占所述对应存储的所述实时数据的数量的比例;
一致性参数确定子单元,用于将所述比例,分别作为所述各个数据集群的一致性参数。
17.根据权利要求13所述的装置,其特征在于,所述第一时间段确定单元,包括:
时间段实时划分获取子单元,用于获取所述各个数据集群的离线数据和实时数据存储时间段的实时划分;
第一时间段确定子单元,用于将所述查询时间段中,需要在所述各个数据集群的实时数据存储时间段查询的时间段,确定为所述第一时间段。
18.根据权利要求11所述的装置,其特征在于,
所述数据集群包括:独立解析所述实时日志数据流,并独立对所述解析后的实时日志数据流进行聚类的数据集群。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810355987.7A CN108763300B (zh) | 2018-04-19 | 2018-04-19 | 一种数据查询方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810355987.7A CN108763300B (zh) | 2018-04-19 | 2018-04-19 | 一种数据查询方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108763300A CN108763300A (zh) | 2018-11-06 |
CN108763300B true CN108763300B (zh) | 2020-07-31 |
Family
ID=64011256
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810355987.7A Active CN108763300B (zh) | 2018-04-19 | 2018-04-19 | 一种数据查询方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108763300B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6134541A (en) * | 1997-10-31 | 2000-10-17 | International Business Machines Corporation | Searching multidimensional indexes using associated clustering and dimension reduction information |
CN102867035A (zh) * | 2012-08-28 | 2013-01-09 | 浪潮(北京)电子信息产业有限公司 | 一种分布式文件系统集群高可用方法和装置 |
CN106021574A (zh) * | 2016-05-27 | 2016-10-12 | 安徽四创电子股份有限公司 | 一种数据存储复制方法及其存储复制系统 |
CN106294826A (zh) * | 2016-08-17 | 2017-01-04 | 北京北信源软件股份有限公司 | 一种集群数据实时查询方法及系统 |
CN106649828A (zh) * | 2016-12-29 | 2017-05-10 | 中国银联股份有限公司 | 一种数据查询方法及系统 |
CN106708826A (zh) * | 2015-07-30 | 2017-05-24 | 中兴通讯股份有限公司 | 数据处理及查询方法、装置 |
CN106850759A (zh) * | 2016-12-31 | 2017-06-13 | 广州勤加缘科技实业有限公司 | MySQL数据库集群处理方法及其处理系统 |
CN106991190A (zh) * | 2017-04-11 | 2017-07-28 | 广东浪潮大数据研究有限公司 | 一种数据库自动创建子数据库系统 |
CN107315782A (zh) * | 2017-06-08 | 2017-11-03 | 北京奇艺世纪科技有限公司 | 一种数据查询方法及装置 |
-
2018
- 2018-04-19 CN CN201810355987.7A patent/CN108763300B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6134541A (en) * | 1997-10-31 | 2000-10-17 | International Business Machines Corporation | Searching multidimensional indexes using associated clustering and dimension reduction information |
CN102867035A (zh) * | 2012-08-28 | 2013-01-09 | 浪潮(北京)电子信息产业有限公司 | 一种分布式文件系统集群高可用方法和装置 |
CN106708826A (zh) * | 2015-07-30 | 2017-05-24 | 中兴通讯股份有限公司 | 数据处理及查询方法、装置 |
CN106021574A (zh) * | 2016-05-27 | 2016-10-12 | 安徽四创电子股份有限公司 | 一种数据存储复制方法及其存储复制系统 |
CN106294826A (zh) * | 2016-08-17 | 2017-01-04 | 北京北信源软件股份有限公司 | 一种集群数据实时查询方法及系统 |
CN106649828A (zh) * | 2016-12-29 | 2017-05-10 | 中国银联股份有限公司 | 一种数据查询方法及系统 |
CN106850759A (zh) * | 2016-12-31 | 2017-06-13 | 广州勤加缘科技实业有限公司 | MySQL数据库集群处理方法及其处理系统 |
CN106991190A (zh) * | 2017-04-11 | 2017-07-28 | 广东浪潮大数据研究有限公司 | 一种数据库自动创建子数据库系统 |
CN107315782A (zh) * | 2017-06-08 | 2017-11-03 | 北京奇艺世纪科技有限公司 | 一种数据查询方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN108763300A (zh) | 2018-11-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109309596B (zh) | 一种压力测试方法、装置及服务器 | |
CN109831357B (zh) | 一种服务验证方法、装置、存储介质及服务器 | |
CN111177222A (zh) | 模型测试方法、装置及计算设备、存储介质 | |
CN108366012B (zh) | 一种社交关系建立方法、装置及电子设备 | |
CN107908548A (zh) | 一种生成测试用例的方法和装置 | |
CN108319550A (zh) | 一种测试系统及测试方法 | |
CN114490375A (zh) | 应用程序的性能测试方法、装置、设备及存储介质 | |
CN113485931A (zh) | 测试方法、装置、电子设备及计算机可读存储介质 | |
CN108763300B (zh) | 一种数据查询方法及装置 | |
CN111672128A (zh) | 基于本地保留时长识别的游戏商城游戏推荐方法及系统 | |
CN115774707B (zh) | 基于对象属性数据处理方法和装置、电子设备和存储介质 | |
CN111949696A (zh) | 一种全要素关联分析方法及装置 | |
CN111984519A (zh) | 一种用于业务系统的测试方法及其装置 | |
CN111221517A (zh) | 一种模型创建方法、装置、计算机设备和可读存储介质 | |
CN116302889A (zh) | 功能模块的性能测试方法、装置和服务器 | |
CN101661428B (zh) | 用于评估内存管理分析的产生式规则的方法 | |
CN112295216B (zh) | 玩家延时断线分析方法、系统、电子装置和存储介质 | |
CN112860527A (zh) | 应用服务器的故障监测方法及装置 | |
CN107222368B (zh) | 一种数据重放方法及装置 | |
CN116795723B (zh) | 链式单元测试处理方法、装置及计算机设备 | |
CN113865604B (zh) | 一种位置数据的生成方法和装置 | |
CN114818645B (zh) | 基于数据主体的自动化报告生成方法、装置、设备及介质 | |
CN116431366B (zh) | 行为路径分析方法、系统、存储端、服务端及客户端 | |
CN110781071B (zh) | 应用程序升级版本的测试方法、装置及计算机设备 | |
CN114594971A (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 |