数据表扩展指标的处理方法及装置与流程

文档序号:12824893阅读:254来源:国知局
本发明涉及计算机领域,具体而言,涉及一种数据表扩展指标的处理方法及装置。
背景技术
::在数据库中,扩展维度和扩展指标,是根据数据表中的一列或者多列派生出来的,例如,如果在高质量订单维度进行查询,可通过对orderstatus列和ordervalue列进行查询派生得到。即当orderstatus=“已付款”且ordervalue>1000时,判断当前订单为高质量订单,并在表中插入数据类型为布尔型的扩展列以对其是否为高质量订单进行标记。进而,可以通过对该扩展列中的布尔数值进行累加,即可得到一个高质量订单数的指标。在做数据分析时,经常需要自定义一个或多个扩展列。这些列是动态的,里面的参数值也会根据筛选条件的不同而发生更改,如上面的1000可能变成100等。由于这些诸多的可变性,不可能预先在数据仓库中对所有扩展列进行设置。因此,往往需要在查询时进行派生,且同时需要在查询时支持多维度自由剖析。针对上述的问题,目前尚未提出有效的解决方案。技术实现要素:本发明实施例提供了一种数据表扩展指标的处理方法及装置,以至少解决在查询时无法对数据进行多维度分析的技术问题。根据本发明实施例的一个方面,提供了一种数据表扩展指标的处理方法,包括:确定用于生成扩展指标的至少两个源字段;根据所述源字段的字段名称,确定用于存储所述源字段的数据表;根据在所述数据表的所述源字段中存储的数据参数,生成所述扩展指标;按照预先设置的聚合算法对所述扩展指标进行聚合处理,生成所述扩展指标的聚合指标。进一步地,在根据在所述数据表的所述源字段中存储的所述数据参数,生成所述扩展指标之前,所述方法还包括:判断用于生成所述扩展指标的所述源字段是否位于同一个所述数据表;当所述源字段位于至少两个所述数据表时,分别从所述数据表的 所述源字段中获取所述数据参数。进一步地,在判断用于生成所述扩展指标的所述源字段是否位于同一个所述数据表之后,所述方法还包括:判断用于存储所述数据参数的所述数据表之间是否已经建立数据表连接;当所述数据表之间已经建立所述数据表连接后,执行根据在所述数据表的所述源字段中存储的数据参数,生成所述扩展指标步骤。进一步地,在根据在所述数据表的所述源字段中存储的所述数据参数,生成所述扩展指标之后,所述方法还包括:根据所述扩展指标生成扩展字段;将所述扩展字段存储至所述数据表。进一步地,根据所述扩展指标生成扩展字段,包括:根据所述扩展指标确定扩展字段名称;根据所述扩展字段名称查询在所述数据表中是否存在所述扩展字段;当不存在所述扩展字段时,根据所述扩展字段名称在所述数据表中创建所述扩展字段。根据本发明实施例的另一方面,还提供了一种数据表扩展指标的处理装置,包括:第一确定模块,用于确定用于生成扩展指标的至少两个源字段;第二确定模块,用于根据所述源字段的字段名称,确定用于存储所述源字段的数据表;第一生成模块,用于根据在所述数据表的所述源字段中存储的数据参数,生成所述扩展指标;处理模块,用于按照预先设置的聚合算法对所述扩展指标进行聚合处理,生成所述扩展指标的聚合指标。进一步地,上述所述装置还包括:第一判断模块,用于判断用于生成所述扩展指标的所述源字段是否位于同一个所述数据表;获取模块,用于当所述源字段位于至少两个所述数据表时,分别从所述数据表的所述源字段中获取所述数据参数。进一步地,上述装置还包括:第二判断模块,用于判断用于存储所述数据参数的所述数据表之间是否已经建立数据表连接;执行模块,用于当所述数据表之间已经建立所述数据表连接后,执行根据在所述数据表的所述源字段中存储的数据参数,生成所述扩展指标步骤。进一步地,上述装置还包括:第二生成模块,用于根据所述扩展指标生成扩展字段;存储模块,用于将所述扩展字段存储至所述数据表。进一步地,上述第二生成模块包括:子确定模块,用于根据所述扩展指标确定扩展字段名称;子查询模块,用于根据所述扩展字段名称查询在所述数据表中是否存在所述扩展字段;子创建模块,用于当不存在所述扩展字段时,根据所述扩展字段名称在所述数据表中创建所述扩展字段。在本发明实施例中,采用确定用于生成扩展指标的至少两个源字段;根据所述源字段的字段名称,确定用于存储所述源字段的数据表;根据在所述数据表的所述源字段中存储的数据参数,生成所述扩展指标;按照预先设置的聚合算法对所述扩展指标进行聚合处理,生成所述扩展指标的聚合指标的方式,达到了在查询数据的同时对查询到的数据进行多维度处理的目的,进而解决了在查询时无法对数据进行多维度分析的技术问题。附图说明此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:图1是根据本发明实施例的一种可选的数据表扩展指标的处理方法的流程图;图2是根据本发明实施例的一种可选的数据表扩展指标的处理装置的示意图;图3是根据本发明实施例的一种可选的数据表扩展指标的处理装置的示意图;图4是根据本发明实施例的一种可选的数据表扩展指标的处理装置的示意图;以及图5是根据本发明实施例的一种可选的数据表扩展指标的处理装置的示意图。具体实施方式为了使本
技术领域
:的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。根据本发明实施例,提供了一种数据表扩展指标的处理方法的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。图1是根据本发明实施例的数据表扩展指标的处理方法的流程图,如图1所示,该方法包括如下步骤:步骤s12,确定用于生成扩展指标的至少两个源字段。步骤s14,根据源字段的字段名称,确定用于存储源字段的数据表。步骤s16,根据在数据表的源字段中存储的数据参数,生成扩展指标。步骤s18,按照预先设置的聚合算法对扩展指标进行聚合处理,生成扩展指标的聚合指标。具体的,在对数据表中的数据进行分析时,往往需要以多个字段中的数据作为分析的基础。因此,可以通过步骤s12至步骤s18,首先,在确定生成扩展指标的所需要的源字段之后,确定在数据库中用于存储的数据表和字段,并利用数据表相应字段中存储的数据,生成扩展指标。然后,按照预先设置的聚合算法对得到的扩展指标进行聚合处理,生成最后的聚合指标。通过上述步骤,达到了在查询数据的同时对查询到的数据进行多维度处理的目的,进而解决了在查询时无法对数据进行多维度分析的技术问题。作为一种可选的实施方式,在实际应用当中,可以对生成扩展指标的派生规则,以配置文件的形式预先配置,配置内容如下:在上述配置文件中定义了相关的扩展指标,以及扩展指标的计算规则。同时指定了其所需要的columns集合。其中,columns可能是包含在同数据表中的,也可能是跨数据表的。如果是跨表的,在配置时需要添加相应的表前缀。在上述配置文件中,表示"expectation_value"和"conversion_value"两个字段在tables里设置的所有表上都存在,当需要用哪个数据表时就从哪张数据表中获取。如果将配置文件设置为:"columns":["conversion.expectation_value","conversionpathstep.conversion_value"]时,则表示需要用到指定数据表的指定字段对相应扩展指标进行派生。当然,其中,通过派生得到的扩展指标的名称,可以通过"extendedcolumn":"is_expectation_reached"进行设置,并且在后续的处理过程中,可以直接调用用于存储扩展字段的派生列即可。作为一种可选的实施方式,在步骤s16根据在数据表的源字段中存储的数据参数,生成扩展指标之前,上述方法还包括:步骤s151,判断用于生成扩展指标的源字段是否位于同一个数据表。步骤s153,当数据参数不存储于同一个数据表时,分别从数据表的源字段中获取数据参数。具体的,如果根据同一个数据表中的至少两个字段生成扩展指标时,可以在获取每个数据行中相应字段中的数据之后,即可生成与该数据行对应的扩展指标。通常用于生成扩展指标的字段并不存在于同一个数据表当中,如果利用上述方式,会导致频繁对多个数据表中的数据内容进行查询,进而降低生成扩展指标的运行效率。因此,在生成扩展指标之前,可以通过上述步骤s151至步骤s153,对于用于生成扩展指标的源字段的存储位置进行判断,判断其是否存储于统一个数据表当中。当源字段位于两个或两个以上的数据表时,分别从每个数据表的源字段中获取全部的数据参数。在获取到需要的所有数据参数之后,在对扩展指标进行生成。作为一种可选的实施方式,在源字段位于两个或两个以上的数据表时,分别从每个数据表的源字段中获取全部的数据参数的同时,还可以同时对主关键字进行获取。在生成扩展指标时,可以通过主关键字对各个源字段的数据参数进行关联。作为一种可选的实施方式,在步骤s151判断用于生成扩展指标的源字段是否位于同一个数据表之后,上述方法还可以包括:步骤s1521,判断用于存储数据参数的数据表之间是否已经建立数据表连接。步骤s1523,当数据表之间已经建立数据表连接时,步骤s16执行根据在数据表的源字段中存储的数据参数,生成扩展指标。具体的,在确定源字段位于两个或两个以上的数据表后,可以进一步对数据表之间是否已经建立表连接进行判断。当确定数据表之间已经建立数据表连接后,再通过步骤s16根据源字段存储的数据参数,生成扩展指标。否则,可以等待与源字段对应的数据表之间建立表连接之后,再执行根据源字段存储的数据参数,生成扩展指标的步骤。其中,便连接至少包括交叉连接、内部连接和外部连接等,而在外部连接中,又可以包括做外部连接、由外部连接和全外部连接。具体数据表中的便连接方式,此处不做限定。作为一种可选的实施方式,在步骤s16根据在数据表的源字段中存储的数据参数,生成扩展指标之后,上述方法还可以包括:步骤s171,根据扩展指标生成扩展字段。步骤s173,将扩展字段存储至数据表。具体的,对于一些需要反复查询的扩展指标,为了提高查询的整体效率,降低数据库的运行负载,在生成扩展指标之后,可以通过步骤s171至步骤s173,将扩展指标以新的字段存储于数据表当中。其中,数据表可以为源字段所在的数据表,也可以是新创建的数据表,此处不做具体限定。作为一种可选的实施方式,在步骤s171根据扩展指标生成扩展字段中,可以包括:步骤s1711,根据扩展指标确定扩展字段名称。步骤s1713,根据扩展字段名称查询在数据表中是否存在扩展字段。步骤s1715,当不存在扩展字段时,根据扩展字段名称在数据表中创建扩展字段。具体的,在将生成的扩展字段存储至数据表时,可以通过步骤s1711至步骤s1715,首先可以根据扩展字段的字段内容,按照特定的命名规则生成扩展字段名称。然后,在数据表中对扩展字段名称进行查询,确定在数据表中是否存在与扩展字段名称对应的字段。当不存在与扩展字段名称相同的字段时,在数据表中以扩展字段名称创建扩展字段;当已存与扩展字段名称对应的字段时,生成新的扩展字段名称。作为一种可选的实施方式,在实际应用当中,可以包括如下步骤:步骤a,根据所传入的查询需求,分析与查询需求对应的扩展指标;步骤b,根据扩展指标,确定与扩展指标对应的生成方式,以及使用的数据表和源字段;步骤c,如果用于生成扩展指标的源字段处于同一个数据表上时,则在生成扩展指标时,直接获取源字段存储的数据参数,派生得到扩展指标;步骤d,如果用于生成扩展指标的源字段不处于同一个数据表上时,则需要等待相关数据表之间建立表连接完成之后再进行派生,从而得到扩展指标;步骤e,将派生得到的扩展指标,存储于数据表中,从而使其在所有数据表连接完成后,可以对其进行groupby或是aggregate等的聚合运算。用于实现上述步骤的代码示例如下:withconversionmeasure_preaggregatedas(selectcasewhenexpectation_value=conversion_valuethen1else0endasis_expectation_reached,count(*)over()asconversioncount_totalfromconversionwheredaybetween20150101and20150110andsource_typein('search','bb'))selectis_expectation_reachedasisexpectationvaluereached,count(*)/max(conversioncount_total)asconversioncount_percentage,count(*)over()astotalrowsfromconversionmeasure_preaggregatedgroupbyis_expectation_reachedorderbyconversioncount_percentageasc通过上述实施例,可以实现自定义查询维度和查询指标,以及可以基于同数据表 或者多数据表上的源字段派生得到扩展指标,并对扩展指标进行自由剖析。图2是根据本发明实施例的数据表扩展指标的处理装置的示意图。如图2所示,该装置包括:第一确定模块22、第二确定模块24、第一生成模块26和处理模块28。其中,第一确定模块22,用于确定用于生成扩展指标的至少两个源字段;第二确定模块24,用于根据源字段的字段名称,确定用于存储源字段的数据表;第一生成模块26,用于根据在数据表的源字段中存储的数据参数,生成扩展指标;处理模块28,用于按照预先设置的聚合算法对扩展指标进行聚合处理,生成扩展指标的聚合指标。具体的,在对数据表中的数据进行分析时,往往需要以多个字段中的数据作为分析的基础。因此,可以通过上述第一确定模块22、第二确定模块24、第一生成模块26和处理模块28,首先,在确定生成扩展指标的所需要的源字段之后,确定在数据库中用于存储的数据表和字段,并利用数据表相应字段中存储的数据,生成扩展指标。然后,按照预先设置的聚合算法对得到的扩展指标进行聚合处理,生成最后的聚合指标。通过上述装置,达到了在查询数据的同时对查询到的数据进行多维度处理的目的,进而解决了在查询时无法对数据进行多维度分析的技术问题。作为一种可选的实施方式,如图3所示,上述装置还可以包括:第一判断模块251和获取模块253。其中,第一判断模块251,用于判断用于生成扩展指标的源字段是否位于同一个数据表;获取模块253,用于当源字段位于至少两个数据表时,分别从数据表的源字段中获取数据参数。具体的,如果根据同一个数据表中的至少两个字段生成扩展指标时,可以在获取每个数据行中相应字段中的数据之后,即可生成与该数据行对应的扩展指标。通常用于生成扩展指标的字段并不存在于同一个数据表当中,如果利用上述方式,会导致频繁对多个数据表中的数据内容进行查询,进而降低生成扩展指标的运行效率。因此,在生成扩展指标之前,可以通过上述第一判断模块251和获取模块253,对于用于生成扩展指标的源字段的存储位置进行判断,判断其是否存储于统一个数据表当中。当源字段位于两个或两个以上的数据表时,分别从每个数据表的源字段中获取全部的数据参数。在获取到需要的所有数据参数之后,在对扩展指标进行生成。作为一种可选的实施方式,如图4所示,上述装置还可以包括:第二判断模块2521和执行模块2523。其中,第二判断模块2521,用于判断用于存储数据参数的数据表之间是否已经建立数据表连接;执行模块2523,用于当数据表之间已经建立数据表连接后,执行根据在数据表的源字段中存储的数据参数,生成扩展指标步骤。具体的,在确定源字段位于两个或两个以上的数据表后,可以进一步对数据表之间是否已经建立表连接进行判断。当确定数据表之间已经建立数据表连接后,再通过上述第一生成模块26,根据源字段存储的数据参数,生成扩展指标。否则,可以等待与源字段对应的数据表之间建立表连接之后,再调用上述第一生成模块26。其中,便连接至少包括交叉连接、内部连接和外部连接等,而在外部连接中,又可以包括做外部连接、由外部连接和全外部连接。具体数据表中的便连接方式,此处不做限定。作为一种可选的实施方式,如图5所示,上述装置还可以包括:第二生成模块271和存储模块273。其中,第二生成模块271,用于根据扩展指标生成扩展字段;存储模块273,用于将扩展字段存储至数据表。具体的,对于一些需要反复查询的扩展指标,为了提高查询的整体效率,降低数据库的运行负载,在生成扩展指标之后,可以通过上述第二生成模块271和上述存储模块273,将扩展指标以新的字段存储于数据表当中。其中,数据表可以为源字段所在的数据表,也可以是新创建的数据表,此处不做具体限定。作为一种可选的实施方式,上述第二生成模块271中,可以包括:子确定模块2711、子查询模块2713和子创建模块2715。其中,子确定模块2711,用于根据扩展指标确定扩展字段名称;子查询模块2713,用于根据扩展字段名称查询在数据表中是否存在扩展字段;子创建模块2715,用于当不存在扩展字段时,根据扩展字段名称在数据表中创建扩展字段。具体的,在将生成的扩展字段存储至数据表时,可以通过上述子确定模块2711、子查询模块2713和子创建模块2715,首先可以根据扩展字段的字段内容,按照特定的命名规则生成扩展字段名称。然后,在数据表中对扩展字段名称进行查询,确定在数据表中是否存在与扩展字段名称对应的字段。当不存在与扩展字段名称相同的字段时,在数据表中以扩展字段名称创建扩展字段;当已存与扩展字段名称对应的字段时,生成新的扩展字段名称。所述数据表扩展指标的处理装置包括处理器和存储器,上述第一确定模块、第二 确定模块、第一生成模块和处理模块等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元。上述聚合算法则可以存储在存储器中。处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数解析文本内容。存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram),存储器包括至少一个存储芯片。本申请还提供了一种计算机程序产品的实施例,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序代码:确定用于生成扩展指标的至少两个源字段;根据源字段的字段名称,确定用于存储源字段的数据表;根据在数据表的源字段中存储的数据参数,生成扩展指标;按照预先设置的聚合算法对扩展指标进行聚合处理,生成扩展指标的聚合指标。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质 上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。以上所述仅是本发明的优选实施方式,应当指出,对于本
技术领域
:的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1