一种数据分析方法及装置的制造方法

文档序号:10570191阅读:348来源:国知局
一种数据分析方法及装置的制造方法
【专利摘要】本发明实施例涉及数据处理领域,尤其涉及一种数据分析方法及装置,用以实现对数据源中的数据进行复杂的分析。本发明实施例中,获取配置信息;配置信息是根据预先定义的语义集合配置的;配置信息中包括分析条件,分析条件对应至少两个数据源标识,以及每个数据源中待分析数据的标识;根据分析条件对应的数据源标识,从每个数据源标识对应的数据源中获取该数据源中待分析数据的标识对应的待分析数据;根据分析条件,对获取的所有待分析数据进行分析,得到数据分析结果。如此,可根据预先定义的语义集合,设置复杂语义的配置信息,进而实现了分析条件较复杂时,也可依据该复杂的分析条件对数据进行分析的目的。
【专利说明】
一种数据分析方法及装置
技术领域
[0001]本发明实施例涉及数据处理领域,尤其涉及一种数据分析方法及装置。
【背景技术】
[0002]随着当前通讯业的不断发展,相关软件系统也越来越复杂,这些系统一般都包含许多的子系统和外围系统,实际使用中,通常需要对多个系统之间的数据进行综合分析。比如,为了保证这些系统数据的一致性,经常对各系统间的同类数据进行勾兑,以使不同系统间的同类数据保持一致,从而保证整个系统的正常运行。
[0003]当前的数据分析系统仅能实现简单的对两个数据源的数据进行勾兑的操作,当对数据源操作要求比较复杂时,比如,对第一数据源和第二数据源进行勾兑,当出现勾兑不上的数据时,将该勾兑不上的数据与第三数据源中的数据进行勾兑。该操作要求中存在条件判断的操作,现有技术无法实现。

【发明内容】

[0004]本发明实施例提供一种数据分析方法和装置,用以实现对数据源中的数据进行复杂的分析。
[0005]本发明实施例提供一种数据分析方法,包括以下步骤:
[0006]获取配置信息;配置信息是根据预先定义的语义集合配置的;配置信息中包括分析条件,分析条件对应至少两个数据源标识,以及每个数据源中待分析数据的标识;
[0007]根据分析条件对应的数据源标识,从每个数据源标识对应的数据源中获取该数据源中待分析数据的标识对应的待分析数据;
[0008]根据分析条件,对获取的所有待分析数据进行分析,得到数据分析结果。
[0009]可选地,分析条件包括N个子分析条件,其中,N为正整数;
[0010]N个子分析条件中包括至少一个第一子分析条件和一个第二子分析条件;其中,每个子分析条件至少对应一个数据源和该数据源中的待分析数据的标识;
[0011]根据分析条件,对获取的所有待分析数据进行分析,具体包括:
[0012]根据第一子分析条件,对从第一子分析条件对应的数据源中获取的待分析数据进行分析,得到第一子分析结果;
[0013]在确定第一子分析结果符合预设条件时,根据第二子分析条件,对从第二子分析条件对应的数据源中获取的待分析数据进行分析,得到第二子分析结果,将第二子分析结果为数据分析结果的一部分;或者
[0014]在确定第一子分析结果不符合预设条件时,将第一子分析结果作为数据分析结果的一部分。
[0015]可选地,数据源中的待分析数据的标识为以下内容中的任一项或任几项的组合:
[0016]用于标识出数据源中的所有数据的标识、待分析数据中的一个字段的值、待分析数据中的多个字段的值的组合、待分析数据中的一个字段的所有值中的部分值、待分析数据中的多个字段中每个字段的所有值中部分值的组合。
[0017]可选地,根据分析条件,对获取的所有待分析数据进行分析,具体包括:
[0018]根据分析条件,将每个数据源中的待分析数据按照哈希hash分为至少一个数据块;其中,每个数据块对应一个hash标识;
[0019]根据分析条件,并行的对每个数据源中hash标识相同的数据块进行数据分析。
[0020]可选地,配置信息中还包括数据分析结果输出条件;
[0021]根据分析条件,对获取的所有待分析数据进行分析,得到数据分析结果,具体包括:
[0022]根据分析条件,对获取的所有待分析数据进行分析;
[0023]根据数据分析结果输出条件,生成数据分析结果;
[0024]其中,数据分析结果输出条件具体为:
[0025]数据分析结果中的数据至少包括一个映射字段;映射字段的值为为任一待分析数据的全部值或部分值,或者为M个待分析数据的全部值或部分值的组合,M为大于等于2的整数。
[0026]可选地,得到数据分析结果之后,还包括:
[0027]将数据分析结果输入至线程池;
[0028]周期性并行的将线程池中的多个数据分析结果输出。
[0029]本发明实施例提供一种数据分析装置,包括:
[0030]第一获取单元,用于获取配置信息;配置信息是根据预先定义的语义集合配置的;配置信息中包括分析条件,分析条件对应至少两个数据源标识,以及每个数据源中待分析数据的标识;
[0031]第二获取单元,用于根据分析条件对应的数据源标识,从每个数据源标识对应的数据源中获取该数据源中待分析数据的标识对应的待分析数据;
[0032]分析单元,用于根据分析条件,对获取的所有待分析数据进行分析,得到数据分析结果。
[0033]可选地,分析条件包括N个子分析条件,其中,N为正整数;
[0034]N个子分析条件中包括至少一个第一子分析条件和一个第二子分析条件;其中,每个子分析条件至少对应一个数据源和该数据源中的待分析数据的标识;
[0035]分析单元,具体用于:
[0036]根据第一子分析条件,对从第一子分析条件对应的数据源中获取的待分析数据进行分析,得到第一子分析结果;
[0037]在确定第一子分析结果符合预设条件时,根据第二子分析条件,对从第二子分析条件对应的数据源中获取的待分析数据进行分析,得到第二子分析结果,将第二子分析结果为数据分析结果的一部分;或者
[0038]在确定第一子分析结果不符合预设条件时,将第一子分析结果作为数据分析结果的一部分。
[0039]可选地,数据源中的待分析数据的标识为以下内容中的任一项或任几项的组合:
[0040]用于标识出数据源中的所有数据的标识、待分析数据中的一个字段的值、待分析数据中的多个字段的值的组合、待分析数据中的一个字段的所有值中的部分值、待分析数据中的多个字段中每个字段的所有值中部分值的组合。
[0041]可选地,分析单元,具体用于:
[0042]根据分析条件,将每个数据源中的待分析数据按照哈希hash分为至少一个数据块;其中,每个数据块对应一个hash标识;
[0043]根据分析条件,并行的对每个数据源中hash标识相同的数据块进行数据分析。
[0044]可选地,配置信息中还包括数据分析结果输出条件;
[0045]分析单元,具体用于:
[0046]根据分析条件,对获取的所有待分析数据进行分析;
[0047]根据数据分析结果输出条件,生成数据分析结果;
[0048]其中,数据分析结果输出条件具体为:
[0049]数据分析结果中的数据至少包括一个映射字段;映射字段的值为为任一待分析数据的全部值或部分值,或者为M个待分析数据的全部值或部分值的组合,M为大于等于2的整数。
[0050]可选地,分析单元,还用于:
[0051 ] 将数据分析结果输入至线程池;
[0052]周期性并行的将线程池中的多个数据分析结果输出。
[0053]本发明实施例中,获取配置信息;配置信息是根据预先定义的语义集合配置的;配置信息中包括分析条件,分析条件对应至少两个数据源标识,以及每个数据源中待分析数据的标识;根据分析条件对应的数据源标识,从每个数据源标识对应的数据源中获取该数据源中待分析数据的标识对应的待分析数据;根据分析条件,对获取的所有待分析数据进行分析,得到数据分析结果。由于预先定义语义集合,且配置信息是根据预先定义的语义集合配置的,因此,可根据预先定义的语义集合,设置复杂语义的配置信息,进一步由于可根据该配置信息中包括的分析条件,对获取的所有待分析数据进行分析,进而实现了分析条件较复杂时,也可依据该复杂的分析条件对数据进行分析的目的。
【附图说明】
[0054]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0055]图1为本发明实施例提供的一种数据分析方法适用的系统架构示意图;
[0056]图2为本发明实施例提供的一种数据分析方法流程示意图;
[0057]图3为本发明实施例提供的一种数据分析方法的结构示意图。
【具体实施方式】
[0058]为了使本发明的目的、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0059]如图1所示,本发明实施例适用的系统架构示意图。该系统架构中包括一个或多个数据分析装置,比如数据分析装置101、数据分析装置105、数据分析装置106,其中,每个数据分析装置可实现与一个或多个数据源连接,比如数据分析装置101与数据源102、数据源103和数据源104连接,数据分析装置105与数据源102、数据源103和数据源104连接,数据分析装置106与数据源102、数据源103和数据源104连接。本发明实施例中的任一个数据分析装置均可读取一个或多个数据源中的数据。
[0060]本发明实施例中的任意多个数据分析装置均可并行的执行本发明实施例中的数据分析方法。举例来说,数据分析装置101、数据分析装置105和数据分析装置106均并行的分别执行一套数据分析方法,从第一时刻开始,数据分析装置101对数据源102和数据源103中的数据进行勾兑,从第一时刻开始,数据分析装置105对数据源103和数据源104中的数据进行勾兑,从第一时刻开始,数据分析装置106对数据源102和数据源104中的数据进行勾兑。可见,本发明实施例中,多个服务器可单独的并行的分别处理一个数据分析任务,提高了数据分析效率。
[0061]本发明实施例中的多个数据分析装置也可并行的执行一套本发明实施例中的数据分析方法。举例来说,数据分析装置101、数据分析装置105和数据分析装置106均并行的执行同一套数据分析方法,即数据分析装置101、数据分析装置105和数据分析装置106均并行的对数据源102和数据源103中的数据进行勾兑。此时,数据源102或数据源103将数据源102和数据源103中的数据分别为三块,分别为数据源102的第一块数据,数据源102的第二块数据,数据源102的第三块数据,数据源103的第一块数据,数据源103的第二块数据,数据源103的第三块数据。每个数据分析装置对数据源102和数据源103中的一个块的数据进行勾兑,即数据分析装置101对数据源102的第一块数据和数据源103的第一块数据进行勾兑,数据分析装置105对数据源102的第二块数据和数据源103的第二块数据进行勾兑,数据分析装置106对数据源102的第三块数据和数据源103的第三块数据进行勾兑。可选地,先对数据源102和数据源103中的数据进行哈希,数据源102的第一块数据进行哈希之后的标识与数据源103的第一块数据进行哈希之后的标识相同;数据源102的第二块数据进行哈希之后的标识与数据源103的第二块数据进行哈希之后的标识相同;数据源102的第三块数据进行哈希之后的标识与数据源103的第三块数据进行哈希之后的标识相同。可见,多个服务器同时并行的执行一个数据分析任务,提高了数据分析的效率。
[0062]可选地,数据分析装置连接线程池107,线程池107连接多个数据源。此时,多个数据分析装置中每个数据分析装置分别生成的数据分析结果可先放入线程池107中,线程池107起到一个缓冲的作用,之后通过周期性的任务调度系统,定期的将线程池中储存的数据分析结果导入至某一个或某几个数据源中。
[0063]本发明实施例中的数据分析装置101可为服务器等网络装置。数据分析装置101可读取所连接的数据源中的数据。
[0064]本发明实施例中的数据源可为数据库,或非数据库类型的数据源。本发明实施例中可对数据库中存储的大数据,比如几百G数据甚至是几百T的数据进行数据分析。
[0065]基于图1所示的系统架构,图2示出了本发明实施例提供的一种数据分析方法,包括以下步骤:
[0066]步骤201,获取配置信息;配置信息是根据预先定义的语义集合配置的;配置信息中包括分析条件,分析条件对应至少两个数据源标识,以及每个数据源中待分析数据的标识;
[0067]步骤202,根据分析条件对应的数据源标识,从每个数据源标识对应的数据源中获取该数据源中待分析数据的标识对应的待分析数据;
[0068]步骤203,根据分析条件,对获取的所有待分析数据进行分析,得到数据分析结果。
[0069]本发明实施例中的数据源可以为多个,比如,可同时对至少三个数据源中的数据进行数据分析,比如同时对三个或十个数据源中的数据进行分析。也就是说,本发明实施例中的数据源可以横向扩展。本发明实施例中的数据源还可以是跨系统的数据源,本发明实施例可实现对跨系统的数据源分别建立连接之后,直接从不同系统的数据源中读取各自对应的待分析数据。本发明实施例中可以对多个数据源中包括的所有数据进行分析,也可对数据源的全部数据中的部分数据进行分析。即一个数据源中的待分析数据可为该数据源中的所有数据,也可为该数据源中的部分数据。举个例子,对数据源A的所有数据和数据源B的所有数据进行数据分析。或者,对数据源A中数据用户名为张三的数据与数据源B中用户名为张三的数据进行数据分析。
[0070]可选地,本发明实施例中的待分析数据的标识为以下内容中的任一项或任几项的组合:
[0071]用于标识出数据源中的所有数据的标识、待分析数据中的一个字段的值、待分析数据中的多个字段的值的组合、待分析数据中的一个字段的所有值中的部分值、待分析数据中的多个字段中每个字段的所有值中部分值的组合。
[0072]举个例子,数据源中一个用户的银行卡消费记录数据包括多个字段,分别为该用户标识字段、银行卡标识字段、消费日期字段、消费金额字段、消费地点字段。每个字段对对应一个值,比如用户标识字段的值为张三,银行卡标识字段的值为987654321123456,消费日期字段的值为2015年9月11日,消费金额字段为500元,消费地点字段的值为上海。
[0073]此时,待分析数据的标识可为用于标识出数据源中的所有数据的标识,比如标识出数据源中所有数据的标识;
[0074]待分析数据的标识为待分析数据中的一个字段的值,比如,待分析数据的标识可为“上海”,即将数据源中消费地点为“上海”的数据进行分析;
[0075]待分析数据的标识为待分析数据中的多个字段的值的组合,比如待分析数据的标识还可为“张三+上海”,即将数据源中“张三”在“上海”消费所产生的数据进行分析;
[0076]待分析数据的标识为待分析数据中的一个字段的所有值中的部分值,比如,待分析数据的标识为银行卡标识字段的值为987654321123456中的最后四位“3456” ;
[0077]待分析数据的标识为待分析数据中的多个字段中每个字段的所有值中部分值的组合,比如,待分析数据的标识为银行卡标识字段的值为987654321123456中的最后四位“3456”与消费日期字段的值为2015年9月11日中“2015年”的组合,即“3456+2015年”。
[0078]本发明实施例中预先定义的语义集合中包括多种语义。开发人员可根据预先定义的语义集合,使用该语义集合中定义的一种或多种定义了语义的符号,来配置复杂语义的配置信息。语义集合后期也可进行管理,比如向语义集合中增加语义,删除语义集合中无用的语义等等。
[0079]可选地,分析条件包括N个子分析条件,其中,N为正整数;N个子分析条件中包括至少一个第一子分析条件和一个第二子分析条件;其中,每个子分析条件至少对应一个数据源和该数据源中的待分析数据的标识;
[0080]数据分析装置根据分析条件,对获取的所有待分析数据进行分析,具体包括:
[0081]根据第一子分析条件,对从第一子分析条件对应的数据源中获取的待分析数据进行分析,得到第一子分析结果;
[0082]在确定第一子分析结果符合预设条件时,根据第二子分析条件,对从第二子分析条件对应的数据源中获取的待分析数据进行分析,得到第二子分析结果,将第二子分析结果为数据分析结果的一部分;或者
[0083]在确定第一子分析结果不符合预设条件时,将第一子分析结果作为数据分析结果的一部分。
[0084]举个例子,数据分析条件为:将数据源A的数据和数据源B的数据进行勾兑,将勾兑不成功的数据与数据源C中的数据进行勾兑。该数据分析条件对应包括的数据源为数据源A、数据源B、数据源C,该数据分析条件对应的数据源的待分析数据为数据源A的数据、数据源B的数据、数据源C的数据。
[0085]数据分析条件包括的第一子分析条件为:将数据源A的数据与数据源B的数据进行勾兑;第一子分析条件对应的数据源为数据源A和数据源B,第一子分析条件对应的待分析数据分别为数据源A的数据和数据源B的数据。数据分析条件包括的第二子分析条件为:将数据源A与数据源B中勾兑失败的数据与数据源C的数据进行勾兑;第而子分析条件对应的数据源为数据源A、数据源B,以及数据源C,第二子分析条件对应的待分析数据分别为数据源A和数据源B的勾兑失败的数据,以及数据源C中的数据。
[0086]数据分析装置根据分析条件,对获取的所有待分析数据进行分析,具体包括:
[0087]根据第一子分析条件“将数据源A的数据与数据源B的数据进行勾兑”,将数据源A的数据和数据源B的数据进行勾兑,并将勾兑结果作为第一子分析结果,第一子分析结果具体为数据源A和数据源B中的数据勾兑成功或勾兑失败;
[0088]在确定第一子分析结果符合预设条件时,具体来说,预设条件为在确定数据源A和数据源B中存在一条数据在第一子分析结果中是勾兑失败的状态,则根据第二子分析条件“将数据源A与数据源B中勾兑失败的数据与数据源C的数据进行勾兑”,将第一子分析结果中勾兑失败的数据源A中的数据或数据源B中的数据,与数据源C中的数据进行勾兑,得到第二子分析结果,具体来说,第二子分析结果具体为:数据源A与数据源B中的勾兑失败的数据与数据源C中的数据勾兑成功,数据源A与数据源B中的勾兑失败的数据与数据源C中的数据勾兑失败。第二子分析结果为数据分析结果的一部分。即,将第二子分析结果作为最终输出的数据分析结果的一部分输出,以便用户可看到第二子分析结果。
[0089]可选地,在确定第一子分析结果不符合预设条件时,即确定出数据源A和数据源B中存在一条数据在第一子分析结果中是勾兑成功的状态,则将在数据源A和数据源B中勾兑成功的数据作为最终输出的数据分析结果的一部分。
[0090]可选地,语义集合中包括条件语义。比如,条件(case)、如果…则(if...else)。成功解析配置信息之后,配置信息中包括每个数据源中待分析数据的标识和分析条件。举个例子,比如定义表示勾兑,定义表示条件语义。配置信息中的数据分析条件为“数据源A〈->数据源数据源C”,则该数据分析条件表示数据源A中数据与数据源B中数据进行勾兑,如果某条数据勾兑失败,则将该勾兑失败的数据与数据源C中的所有数据进行勾兑。具体来说,即有一条数据存在于数据源A中,数据源B中没有与该数据相同的数据,则该数据为勾兑失败的状态;如果一条数据存在于数据源A中,同时在数据源B中存在一条与该数据内容完全相同的数据,则该条数据即为勾兑成功的状态。
[0091]本发明实施例中,除了可对数据源中的所有数据进行分析之后,还可对数据源中的部分数据进行分析。举例来说,数据分析条件对应的数据源中待分析数据的标识可为“数据源A的字段a和字段b,数据源B的字段c和字段d,数据源C中的字段d”。该配置信息的数据分析条件可为:
[0092]若一条数据在数据源A中的字段a和字段b,与一条数据在数据源B的字段c和字段d —致,则确定数据源A的该条数据和数据源B的该条数据勾兑成功;
[0093]若一条数据在数据源A中的字段a和字段b,与一条数据在数据源B的字段c和字段d不一致,则将一条数据在数据源A中的字段a和字段b与数据源C中数据的字段d勾兑,若一条数据在数据源A中的字段a和字段b,与一条数据在数据源C的字段d —致,则确定数据源A的该条数据和数据源C的该条数据勾兑成功;
[0094]若一条数据在数据源A中的字段a和字段b,与一条数据在数据源B的字段c和字段d不一致,则将一条数据在数据源A中的字段a和字段b与数据源C中数据的字段d勾兑,若一条数据在数据源A中的字段a和字段b,与一条数据在数据源C的字段d也不一致,则确定数据源A的该条数据勾兑失败。
[0095]该例子的语句可写为:
[0096]stepl:1f A.a+A.b = = B.c+B.d then ture, else step2 | step2:1f A.a+A.b ==C.d, then true ;else false。
[0097]其中,A.a表示数据源A中的字段a,A.b表示数据源A中的字段b,B.c表示数据源B中的字段C,B.d表示数据源B中的字段d,C.d表示数据源C中的字段d。
[0098]上述示例中的数据源A中的字段a即为数据源A中待分析数据的标识。可见,本发明实施例中可对跨系统的多个数据源中任意字段所标识出的数据进行数据分析。本发明实施例中可实现较为复杂的数据分析,且对于开发人员来说,本发明实施例中的语义集合为面向业务应用层的语义,开发人员可简单的根据该语义集合进行配置信息的配置,在实现对数据进行复杂的分析的同时,降低了开发人员的工作难度。
[0099]上述步骤203中,根据数据配置信息解析出数据源标识之后,即连接至该数据源标识所对应的数据源,之后获取每个数据源中的待分析数据的标识对应的待分析数据。
[0100]可选地,根据每个数据源中待分析数据的标识,以及分析条件,为每个数据源生成该数据源可执行的任务信息;将每个数据源对应的任务信息发送给任务信息对应的数据源;接收每个数据源执行任务信息后返回的待分析数据。
[0101]—种实施方式为,任务信息为对待分析数据进行排序,数据源将排序后的待分析数据输出;此时,可接收到每个数据源执行任务信息后返回的排序后的待分析数据。
[0102]举个例子,将数据源A中字段a为“2015年9月”的数据和数据源B中字段b为“2015年9月”的数据进行勾兑,此时,确定出数据源A的待分析数据的标识为该数据的字段a为“2015年9月”,数据源B的待分析数据的标识为该数据的字段b为“2015年9月”;之后根据每个数据源中待分析数据的标识,以及分析条件,确定出数据源A对应的任务信息A为输出数据源A中字段a为“2015年9月”的数据,数据源B对应的任务信息B为输出数据源B中字段b为“2015年9月”的数据,将任务信息A发送给数据源A,将任务信息B发送给数据源B。之后,数据源A执行任务信息A,并将数据源A中字段a为“2015年9月”的数据输出给数据分析装置。数据源B执行任务信息B,并将数据源B中字段b为“2015年9月”的数据输出给数据分析装置。
[0103]该示例中,根据每个数据源中待分析数据的标识,以及分析条件,确定出数据源A对应的任务信息A为输出根据时间先后进行排序后的数据源A中字段a为“2015年9月”的数据,数据源B对应的任务信息B为根据时间先后进行排序后的读取数据源B中字段b为“2015年9月”的数据,将任务信息A发送给数据源A,将任务信息B发送给数据源B。之后,数据源A执行任务信息A,并将数据源A中字段a为“2015年9月”的数据根据时间先后进行排序,并将排序后的数据源A中字段a为“ 2015年9月”的数据发送给数据分析装置。数据源B执行任务信息B,并将数据源B中字段b为“2015年9月”的数据根据时间先后进行排序,并将排序后的数据源B中字段b为“ 2015年9月”的数据发送给数据分析装置。
[0104]当待分析数据的数据量比较大时,为了提高数据分析效率,可选地,根据分析条件,将每个数据源中的待分析数据按照哈希hash分为至少一个数据块;其中,每个数据块对应一个hash标识;根据分析条件,并行的对每个数据源中hash标识相同的数据块进行数据分析。具体来说,本发明实施例中的hash可为全哈希hash或者布谷鸟hash。
[0105]举个例子,比如获取的数据源A中的待分析数据有100条,获取数据源B中的待分析数据有150条,对数据源A中的待分析数据进行全哈希hash或者布谷鸟hash,每一条经过全哈希hash或者布谷鸟hash之后的数据均对应一个hash标识。之后将数据源A中的100条数据分为5个数据块,每个数据块中数据的hash标识均一致,因此,每个数据库对应一个hash标识。数据源A中对应5个数据块,hash标识分别为hashOO 1、hash002、hash003、hash004o同样的,数据源B中的150条数据进行全哈希hash或者布谷鸟hash,数据源B中的150条待分析数据对应5个数据块,hash标识分别为hashOO 1、hash002、hash003、hash004。之后,根据分析条件,将数据源A中hashOOl的数据块与数据源B中hashOOl的数据块进行数据分析;将数据源A中hash002的数据块与数据源B中hash002的数据块进行数据分析;将数据源A中hash003的数据块与数据源B中hash003的数据块进行数据分析;将数据源A中hash004的数据块与数据源B中hash004的数据块进行数据分析;将数据源A中hash005的数据块与数据源B中hash005的数据块进行数据分析。
[0106]本发明实施例中经过对数据进行全哈希hash或者布谷鸟hash,从而对数据进行分块处理,之后对分块后的数据进行并行的数据分析,提高了数据分析效率。
[0107]本发明实施例中,可选地,配置信息中还包括数据分析结果输出条件;根据分析条件,对获取的所有待分析数据进行分析,得到数据分析结果,具体包括:
[0108]根据分析条件,对获取的所有待分析数据进行分析;
[0109]根据数据分析结果输出条件,生成数据分析结果;
[0110]其中,数据分析结果输出条件具体为:
[0111]数据分析结果中的数据至少包括一个映射字段;映射字段的值为为任一待分析数据的全部值或部分值,或者为M个待分析数据的全部值或部分值的组合,M为大于等于2的整数。
[0112]举个例子,分析条件为将数据源A与数据源B中的数据进行勾兑,数据分析结果输出条件为:勾兑结果中的字段c的值对应为数据源A的字段a的前十位的值和数据源B的字段b的后四位的值的组合。数据A在数据源A中的字段a的值为98765432123456789,数据B在数据源B中的字段b的值为562354789651222。根据数据分析结果输出条件,即将数据源A的字段a的前十位的值和数据源B的字段b的后四位的值的组合作为勾兑结果中的字段c的值,从而将数据源A的字段a的前十位“9876543212”和数据源B的字段b的后四位“ 1222”组合为“98765432121222”,得到待数据数据分析结果,即数据A和数据B在勾兑结果中的字段c的值为“98765432121222”。
[0113]数据分析结果输出条件还可为判断语句。比如,若数据A在数据源A中的字段a的值等于“5”,则将数据A的字段a的值对应输入至勾兑结果C的字段Cl中,若数据A在数据源A中的字段a的值不等于“5”,则将数据A的字段a的值对应输入至勾兑结果C的字段c2中。
[0114]再举个例子,若数据A在数据源A中的字段d的值等于数据B在数据源B中的字段c的值,或者数据A在数据源A中的字段d的值等于数据C在数据源C中的字段d的值,则将数据A在数据源A中的字段d的值作为存储数据分析结果的数据源D中数据D的字段a的值。写为语句的形式,即为比如if (A.d = = B.c I | A.d = = C.d) D.a = A.d。
[0115]分析条件为对数据源中的数据进行勾兑时,通过上述操作可看出,数据源中数据勾兑成功或勾兑失败时输出的勾兑结果,对于开发人员来说,看起来较为复杂,本发明实施例中数据分析结果为用户想要看到的,更易理解的,面向业务应用语义的结果显示。可见,本发明实施例中优化了数据分析结果的显示,提升了用户体验。
[0116]可选地,本发明实施例中对数据源中的数据进行操作包含并不限于mysql的相关操作。
[0117]可选地,得到数据分析结果之后,将数据分析结果输入至线程池;周期性并行的将线程池中的多个数据分析结果输出。
[0118]可见,本发明实施例中利用线程池(Thread-pool)作为数据分析结果的插入池,线程池会对数据分析结果进行缓冲,在缓冲区满后,会由多线程同时进行数据库的插入操作,保证数据操作的效率与完整性。
[0119]从上述内容可以看出:本发明实施例中,获取配置信息;配置信息是根据预先定义的语义集合配置的;配置信息中包括分析条件,分析条件对应至少两个数据源标识,以及每个数据源中待分析数据的标识;根据分析条件对应的数据源标识,从每个数据源标识对应的数据源中获取该数据源中待分析数据的标识对应的待分析数据;根据分析条件,对获取的所有待分析数据进行分析,得到数据分析结果。由于预先定义语义集合,且配置信息是根据预先定义的语义集合配置的,因此,可根据预先定义的语义集合,设置复杂语义的配置信息,进一步由于可根据该配置信息中包括的分析条件,对获取的所有待分析数据进行分析,进而实现了分析条件较复杂时,也可依据该复杂的分析条件对数据进行分析的目的。
[0120]图3示例性示出了本发明实施例提供的一种数据分析装置的结构示意图。
[0121]基于相同构思,本发明实施例提供一种数据分析装置的结构示意图,如图3所示,包括第一获取单元301、第二获取单元302和分析单元303:
[0122]第一获取单元,用于获取配置信息;配置信息是根据预先定义的语义集合配置的;配置信息中包括分析条件,分析条件对应至少两个数据源标识,以及每个数据源中待分析数据的标识;
[0123]第二获取单元,用于根据分析条件对应的数据源标识,从每个数据源标识对应的数据源中获取该数据源中待分析数据的标识对应的待分析数据;
[0124]分析单元,用于根据分析条件,对获取的所有待分析数据进行分析,得到数据分析结果。
[0125]可选地,分析条件包括N个子分析条件,其中,N为正整数;
[0126]N个子分析条件中包括至少一个第一子分析条件和一个第二子分析条件;其中,每个子分析条件至少对应一个数据源和该数据源中的待分析数据的标识;
[0127]分析单元,具体用于:
[0128]根据第一子分析条件,对从第一子分析条件对应的数据源中获取的待分析数据进行分析,得到第一子分析结果;
[0129]在确定第一子分析结果符合预设条件时,根据第二子分析条件,对从第二子分析条件对应的数据源中获取的待分析数据进行分析,得到第二子分析结果,将第二子分析结果为数据分析结果的一部分;或者
[0130]在确定第一子分析结果不符合预设条件时,将第一子分析结果作为数据分析结果的一部分。
[0131]可选地,数据源中的待分析数据的标识为以下内容中的任一项或任几项的组合:
[0132]用于标识出数据源中的所有数据的标识、待分析数据中的一个字段的值、待分析数据中的多个字段的值的组合、待分析数据中的一个字段的所有值中的部分值、待分析数据中的多个字段中每个字段的所有值中部分值的组合。
[0133]可选地,分析单元,具体用于:
[0134]根据分析条件,将每个数据源中的待分析数据按照哈希hash分为至少一个数据块;其中,每个数据块对应一个hash标识;
[0135]根据分析条件,并行的对每个数据源中hash标识相同的数据块进行数据分析。
[0136]可选地,配置信息中还包括数据分析结果输出条件;
[0137]分析单元,具体用于:
[0138]根据分析条件,对获取的所有待分析数据进行分析;
[0139]根据数据分析结果输出条件,生成数据分析结果;
[0140]其中,数据分析结果输出条件具体为:
[0141]数据分析结果中的数据至少包括一个映射字段;映射字段的值为为任一待分析数据的全部值或部分值,或者为M个待分析数据的全部值或部分值的组合,M为大于等于2的整数。
[0142]可选地,分析单元,还用于:
[0143]将数据分析结果输入至线程池;
[0144]周期性并行的将线程池中的多个数据分析结果输出。
[0145]从上述内容可以看出:本发明实施例中,获取配置信息;配置信息是根据预先定义的语义集合配置的;配置信息中包括分析条件,分析条件对应至少两个数据源标识,以及每个数据源中待分析数据的标识;根据分析条件对应的数据源标识,从每个数据源标识对应的数据源中获取该数据源中待分析数据的标识对应的待分析数据;根据分析条件,对获取的所有待分析数据进行分析,得到数据分析结果。由于预先定义语义集合,且配置信息是根据预先定义的语义集合配置的,因此,可根据预先定义的语义集合,设置复杂语义的配置信息,进一步由于可根据该配置信息中包括的分析条件,对获取的所有待分析数据进行分析,进而实现了分析条件较复杂时,也可依据该复杂的分析条件对数据进行分析的目的。
[0146]本领域内的技术人员应明白,本发明的实施例可提供为方法、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0147]本发明是参照根据本发明实施例的方法、装置(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理装置的处理器以产生一个机器,使得通过计算机或其他可编程数据处理装置的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0148]这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理装置以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0149]这些计算机程序指令也可装载到计算机或其他可编程数据处理装置上,使得在计算机或其他可编程装置上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程装置上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0150]尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
[0151]显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
【主权项】
1.一种数据分析方法,其特征在于,包括以下步骤: 获取配置信息;所述配置信息是根据预先定义的语义集合配置的;所述配置信息中包括分析条件,所述分析条件对应至少两个数据源标识,以及每个数据源中待分析数据的标识; 根据所述分析条件对应的数据源标识,从每个数据源标识对应的数据源中获取该数据源中待分析数据的标识对应的待分析数据; 根据所述分析条件,对获取的所有待分析数据进行分析,得到数据分析结果。2.如权利要求1所述的方法,其特征在于,所述分析条件包括N个子分析条件,其中,N为正整数; 所述N个子分析条件中包括至少一个第一子分析条件和一个第二子分析条件;其中,每个子分析条件至少对应一个数据源和该数据源中的待分析数据的标识; 所述根据所述分析条件,对获取的所有待分析数据进行分析,具体包括: 根据所述第一子分析条件,对从所述第一子分析条件对应的数据源中获取的待分析数据进行分析,得到第一子分析结果; 在确定所述第一子分析结果符合预设条件时,根据所述第二子分析条件,对从所述第二子分析条件对应的数据源中获取的待分析数据进行分析,得到第二子分析结果,将所述第二子分析结果为所述数据分析结果的一部分;或者 在确定所述第一子分析结果不符合预设条件时,将所述第一子分析结果作为所述数据分析结果的一部分。3.如权利要求1所述的方法,其特征在于,所述数据源中的所述待分析数据的标识为以下内容中的任一项或任几项的组合: 用于标识出所述数据源中的所有数据的标识、所述待分析数据中的一个字段的值、所述待分析数据中的多个字段的值的组合、所述待分析数据中的一个字段的所有值中的部分值、所述待分析数据中的多个字段中每个字段的所有值中部分值的组合。4.如权利要求1所述的方法,其特征在于,所述根据所述分析条件,对获取的所有待分析数据进行分析,具体包括: 根据所述分析条件,将每个数据源中的待分析数据按照哈希hash分为至少一个数据块;其中,每个数据块对应一个hash标识; 根据所述分析条件,并行的对每个数据源中hash标识相同的数据块进行数据分析。5.如权利要求1至4任一权利要求所述的方法,其特征在于,所述配置信息中还包括数据分析结果输出条件; 所述根据所述分析条件,对获取的所有待分析数据进行分析,得到数据分析结果,具体包括: 根据所述分析条件,对获取的所有待分析数据进行分析; 根据所述数据分析结果输出条件,生成数据分析结果; 其中,所述数据分析结果输出条件具体为: 所述数据分析结果中的数据至少包括一个映射字段;所述映射字段的值为为任一待分析数据的全部值或部分值,或者为M个待分析数据的全部值或部分值的组合,M为大于等于2的整数。6.如权利要求5所述的方法,其特征在于,所述得到数据分析结果之后,还包括: 将所述数据分析结果输入至线程池; 周期性并行的将所述线程池中的多个数据分析结果输出。7.一种数据分析装置,其特征在于,包括: 第一获取单元,用于获取配置信息;所述配置信息是根据预先定义的语义集合配置的;所述配置信息中包括分析条件,所述分析条件对应至少两个数据源标识,以及每个数据源中待分析数据的标识; 第二获取单元,用于根据所述分析条件对应的数据源标识,从每个数据源标识对应的数据源中获取该数据源中待分析数据的标识对应的待分析数据; 分析单元,用于根据所述分析条件,对获取的所有待分析数据进行分析,得到数据分析结果。8.如权利要求7所述的装置,其特征在于,所述分析条件包括N个子分析条件,其中,N为正整数; 所述N个子分析条件中包括至少一个第一子分析条件和一个第二子分析条件;其中,每个子分析条件至少对应一个数据源和该数据源中的待分析数据的标识; 所述分析单元,具体用于: 根据所述第一子分析条件,对从所述第一子分析条件对应的数据源中获取的待分析数据进行分析,得到第一子分析结果; 在确定所述第一子分析结果符合预设条件时,根据所述第二子分析条件,对从所述第二子分析条件对应的数据源中获取的待分析数据进行分析,得到第二子分析结果,将所述第二子分析结果为所述数据分析结果的一部分;或者 在确定所述第一子分析结果不符合预设条件时,将所述第一子分析结果作为所述数据分析结果的一部分。9.如权利要求7所述的装置,其特征在于,所述数据源中的所述待分析数据的标识为以下内容中的任一项或任几项的组合: 用于标识出所述数据源中的所有数据的标识、所述待分析数据中的一个字段的值、所述待分析数据中的多个字段的值的组合、所述待分析数据中的一个字段的所有值中的部分值、所述待分析数据中的多个字段中每个字段的所有值中部分值的组合。10.如权利要求7所述的装置,其特征在于,所述分析单元,具体用于: 根据所述分析条件,将每个数据源中的待分析数据按照哈希hash分为至少一个数据块;其中,每个数据块对应一个hash标识; 根据所述分析条件,并行的对每个数据源中hash标识相同的数据块进行数据分析。11.如权利要求7至10任一权利要求所述的装置,其特征在于,所述配置信息中还包括数据分析结果输出条件; 所述分析单元,具体用于: 根据所述分析条件,对获取的所有待分析数据进行分析; 根据所述数据分析结果输出条件,生成数据分析结果; 其中,所述数据分析结果输出条件具体为: 所述数据分析结果中的数据至少包括一个映射字段;所述映射字段的值为为任一待分析数据的全部值或部分值,或者为M个待分析数据的全部值或部分值的组合,M为大于等于2的整数。12.如权利要求11所述的装置,其特征在于,所述分析单元,还用于: 将所述数据分析结果输入至线程池; 周期性并行的将所述线程池中的多个数据分析结果输出。
【文档编号】G06F19/00GK105930630SQ201510586861
【公开日】2016年9月7日
【申请日】2015年9月15日
【发明人】吴文昊, 吕伊蒙, 冯哲
【申请人】中国银联股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1