CN109840246A - 一种用于计算目标特征的历史数据的方法及装置 - Google Patents
一种用于计算目标特征的历史数据的方法及装置 Download PDFInfo
- Publication number
- CN109840246A CN109840246A CN201910098526.0A CN201910098526A CN109840246A CN 109840246 A CN109840246 A CN 109840246A CN 201910098526 A CN201910098526 A CN 201910098526A CN 109840246 A CN109840246 A CN 109840246A
- Authority
- CN
- China
- Prior art keywords
- data
- field
- daily record
- wide table
- calculating
- 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.)
- Pending
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种用于计算目标特征的历史数据的方法、装置及计算机可读存储介质和电子设备。其中,所述方法包括:获取用于生成时间宽表的原始数据;其中,所述原始数据为数据库的日志数据;根据所述日志数据,创建用于生产所述目标特征的历史数据的时间宽表;其中,所述时间宽表由日志数据的字段构成的不同时间粒度的字段表;从预先配置的配置数据中获取所述时间宽表的计算逻辑;根据所述时间宽表和所述计算逻辑,计算所述目标特征的历史数据。应用本申请,可以减少历史数据的获取周期。
Description
技术领域
本申请涉及互联网技术领域,尤其涉及一种用于计算目标特征的历史数据的方法及装置和电子设备。
背景技术
随着互联网技术的不断发展,涉及计算机算法的应用场景越来越广泛。特别是人工智能领域中的机器学习,机器学习本质上就是算法模型的应用。
在相关技术中,算法模型的训练通常需要依赖历史数据。然而,这些历史数据存在获取周期长的问题。例如,针对需要获取一个新特征的30天的历史数据,则需要等待30天的时间,收集这30天时间内产生的该新特征的历史数据;进而才可以基于这30天的历史数据训练该新特征涉及到的算法模型。
发明内容
有鉴于此,本申请提供一种用于计算目标特征的历史数据的方法、装置及计算机存储介质和电子设备,用于解决上述的历史数据获取周期长的问题。
具体地,本申请是通过如下技术方案实现的:
一种用于计算目标特征的历史数据的方法,所述方法包括:
获取用于生成时间宽表的原始数据;其中,所述原始数据为数据库的日志数据;
根据所述日志数据,创建用于生产所述目标特征的历史数据的时间宽表;其中,所述时间宽表由日志数据的字段构成的不同时间粒度的字段表;
从预先配置的配置数据中获取所述时间宽表的计算逻辑;
根据所述时间宽表和所述计算逻辑,计算所述目标特征的历史数据。
可选的,所述日志数据,具体包括:
堆积字段数据、固定字段数据和/或无状态字段数据;
其中,所述堆积字段为需要记录字段值变化历史的字段;
所述固定字段为无需记录字段值变化历史的字段;
所述无状态字段为只需记录周期最后一刻字段值的字段。
可选的,所述根据所述日志数据,创建用于生产所述目标特征的历史数据的时间宽表,具体包括:
根据堆积字段数据、固定字段数据创建第一计算粒度的时间宽表;
根据堆积字段数据、固定字段数据以及所述第一计算粒度的时间宽表,创建第二粒度的时间宽表;
根据无状态字段数据创建第三计算粒度的时间宽表;
将所述第二粒度的时间宽表和第三计算粒度的时间宽表确定为用于生产所述目标特征的历史数据的时间宽表;
其中,第二计算粒度小于第一计算粒度,第一计算粒度小于第三计算粒度。
可选的,所述第一计算粒度的时间包括小时;
所述第二计算粒度的时间包括分钟;
所述第三计算粒度的时间包括天。
可选的,所述从预先配置的配置数据中获取所述时间宽表的计算逻辑,具体包括:
根据所述日志数据的键进行聚合,得到不同聚合维度的日志数据;
从预先配置的配置数据中获取每一种聚合维度对应的计算SQL。
可选的,所述根据所述日志数据的键进行聚合,得到不同聚合维度的日志数据,具体包括:
根据所述日志数据的键进行聚合;
针对聚合后为堆积字段的第一日志数据,创建用于记录所述第一日志数据变化值的变化字段并建立该变化字段与第一日志数据之间的映射关系,记录所述变化值;
针对聚合后为固定字段的第二日志数据,取相同键的最后一条第二日志数据的值作为该键的最终值;
将处理后的固定字段和堆积字段的日志数据按照键再次聚合,得到不同聚合维度的日志数据。
可选的,所述根据所述时间宽表和所述计算逻辑,计算所述目标特征的历史数据,具体包括:
从预先配置的配置数据中获取每一种聚合维度对应的视图SQL;
根据所述视图SQL,加载所述目标特征设定计算天数的基础数据到内存中;其中,所述基础数据为目标特征依赖的业务数据;
基于每一种聚合维度的视图SQL下的基础数据,结合该聚合维度的计算SQL,计算该聚合维度下目标特征的历史数据。
可选的,所述方法还包括:
统计所述视图SQL下目标特征的计算频次;
符合计算频次达到阈值后,将该视图SQL下的基础数据转化为物理表的形式存储。
一种用于计算目标特征的历史数据的装置,所述装置包括:
第一获取单元,获取用于生成时间宽表的原始数据;其中,所述原始数据为数据库的日志数据;
创建单元,根据所述日志数据,创建用于生产所述目标特征的历史数据的时间宽表;其中,所述时间宽表由日志数据的字段构成的不同时间粒度的字段表;
第二获取单元,从预先配置的配置数据中获取所述时间宽表的计算逻辑;
计算单元,根据所述时间宽表和所述计算逻辑,计算所述目标特征的历史数据。
一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
所述处理器被配置为上述任一项所述的方法。
本申请实施例,提供了一种用于计算目标特征的历史数据的方案,通过从业务数据库中获取日志数据,基于这些日志数据生产时间宽表及计算逻辑,通过离线方式可以快速生产目标特征的历史数据,无需按天积累N天的过程。
附图说明
图1是本申请一示例性实施例示出的一种用于计算目标特征的历史数据的方法的流程图;
图2是本申请一示例性实施例示出的时间宽表创建流程的示意图;
图3是本申请一示例性实施例示出的时间宽表生产的示意图;
图4是本申请一示例性实施例示出的一种用于计算目标特征的历史数据的装置的硬件结构图;
图5是本申请一示例性实施例示出的一种用于计算目标特征的历史数据的装置的模块示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
如前所述,算法模型的训练通常需要依赖历史数据。然而,现有技术中,针对新特征涉及的算法模型训练,由于目标特征是新的,历史上并没有记录目标特征的历史数据;因此目标特征的历史数据需要采用实时的手段进行生产,即目标特征的历史数据需要长时间(例如N天)累积。也就是说现有技术中存在历史数据获取周期长的问题。例如,针对需要获取一个新特征的30天的历史数据,则需要等待30天的时间,收集这30天时间内产生的该新特征的历史数据;进而才可以基于这30天的历史数据训练该新特征涉及到的算法模型。另外,即使通过长时间累积获取到历史数据,然而模型训练结果是否满足业务要求也不确定,假如不满足,那么可能还会变更目标特征,这样又需要长时间累积这一新目标特征的历史数据,导致研发周期不断延迟。
而本申请提供的历史数据计算方案,采用离线的方式生产目标特征的历史数据。具体地,通过从业务数据库中获取日志数据,基于这些日志数据生产时间宽表及计算逻辑,然后基于视图逻辑加载目标特征依赖的业务数据;在这些业务数据基础上,集合计算逻辑,批量计算出目标特征的历史数据。一方面,本申请是通过离线方式生产历史数据,无需按天积累历史数据的过程。另一方面,通过时间宽表快速还原出基础数据的宽表快照,并基于宽表快照集合计算逻辑迅速可以计算出目标特征的历史数据,缩短了历史数据的获取时间。
图1是本申请一示例性实施例示出的一种用于计算目标特征的历史数据的方法流程图,所述方法可以应用在用于计算目标特征的历史数据的服务器(以下简称为服务器)中,该方法具体可以包括如下步骤:
步骤110:获取用于生成时间宽表的原始数据;其中,所述原始数据为数据库的日志数据。
所述服务器在接收到针对目标特征生成历史数据的指令后,可以从业务数据库中获取用于生成时间宽表的原始数据,该原始数据即数据库的日志数据。
在一实施例中,所述日志数据,具体可以包括:
堆积字段、固定字段和/或无状态字段的数据;
其中,所述堆积字段为需要记录字段值变化历史的字段;
所述固定字段为无需记录字段值变化历史的字段;
所述无状态字段为只需记录周期最后一刻字段值的字段。
以下对堆积字段进行说明:
堆积字段可以包括Binlog。所述Binlog可以是数据库例如MySQL数据库中数据写入的日志记录。一般的,Binlog是以二进制格式的方式记录数据库中增删改操作,并不记录查询操作。通过Binlog可以获取业务数据相关的操作,例如获取订单的创建、订单字段的修改等。
以业务字段状态时间status_X_time(其中X表示某个时刻),和记录该状态变化的时间的字段status为示例加以说明:
对于status_0_time这一业务数据,对应的日志数据为:status=0;
对于status_10_time这一业务数据,对应的日志数据为:status=10;
由于该字段status记录下了字段值变化,包括status=0,status=10;因此,该字段status被认为是堆积字段。
以下对固定字段进行说明:
固定字段可以包括Log。所述Log可以是指业务系统中通过预先埋点的方式,上报的一些业务数据。例如,外卖业务中骑手到店时刻、骑手位置、骑手取餐时刻等。
一般的,固定字段相对于堆积字段,无需记录字段变化历史,但是需要区分字段是否是默认值的字段,比如Area_Id,默认值为0。
以下对无状态字段进行说明:
无状态字段可以是指只需记录每天最后一刻的值的字段,无状态字段与业务过程无关。
通常情况下,日志数据是统一被加载的。因此,服务器需要对日志数据进行分类,即将日志数据分为三类。
具体地,服务器可以读取预先配置的配置数据;获取分类配置;
基于该分类配置,将日志数据分为堆积字段、固定字段和无状态字段的日志数据。
所述分类配置可以是指一些分类规则(例如规则SQL),例如判断日志数据中的相同字段是否存在不同的值;
若是,该字段即为堆积字段。例如前述的status=0、status=10;由于字段status存在至少2个不同的值,因此该字段status可以确定为堆积字段。
若否,进一步可以判断字段是否是只记录每天最后一刻的值的字段;
若是,则确定该字段为无状态字段;
若否,则确定字段为固定字段。
步骤120:根据所述日志数据,创建用于生产所述目标特征的历史数据的时间宽表;其中,所述时间宽表由日志数据的字段构成的不同时间粒度的字段表。
服务器在获取到用于生成时间宽表的原始数据之后,进一步可以根据所述日志数据,创建用于生产所述目标特征的历史数据的时间宽表。
在一实施例中,所述步骤120,具体可以包括:
根据堆积字段、固定字段创建第一计算粒度的时间宽表;
根据堆积字段、固定字段以及所述第一计算粒度的时间宽表,创建第二粒度的时间宽表;
根据无状态字段创建第三计算粒度的时间宽表;
将所述第二粒度的时间宽表和第三计算粒度的时间宽表确定为用于生产所述目标特征的历史数据的时间宽表;
其中,第二计算粒度小于第一计算粒度,第一计算粒度小于第三计算粒度。
在一实施例中,请结合图2所示的时间宽表创建流程示意图:
服务器在加载了预先配置的取分类配置后,可以对日志数据的字段进行分类,从而得到堆积字段的第一日志数据、固定字段的第二日志数据和无状态字段的第三日志数据。进一步的,服务器可以根据堆积字段和固定字段创建小时宽表,再基于小时宽表创建分钟宽表;以及根据无状态字段创建天级宽表。
即,所述第一计算粒度的时间包括小时;
所述第二计算粒度的时间包括分钟;
所述第三计算粒度的时间包括天。
值得一提的是,最终得到的是分钟级宽表和天级宽表;小时宽表是为了计算分钟宽表而生成的,后续并不需要用到小时宽表。
请参考图3所示的时间宽表生产的示意图:
在服务器获取到用于生成时间宽表的原始数据之后,可以根据所述原始数据的字段类别,具体是根据堆积字段、固定字段创建小时粒度的小时宽表;进而再小时宽表基础上,生成分钟宽表。请注意,图3所示示例是以天为单位计数,有1440分钟;因此也就会创建1440张分钟宽表。
值得一提的是,本申请中所述时间宽表是由日志数据的字段构成的按照分钟和天为时间粒度的字段表,也就是说此时创建的时间宽表中仅记录的字段,而没有记录字段值。
步骤130:从预先配置的配置数据中获取所述时间宽表的计算逻辑。
服务器在创建了时间宽表后,可以从预先配置的配置数据中获取所述时间宽表的计算逻辑。
在一实施例中,所述步骤130,具体可以包括:
根据所述日志数据的键进行聚合,得到不同聚合维度的日志数据;
从预先配置的配置数据中获取每一种聚合维度对应的计算SQL。
该实施例中,服务器可以按照日志数据的键key进行聚合,从而得到不同聚合维度的日志数据。服务器上还预先配置有每一种聚合维度对应的计算SQL。
在一实施例中,所述根据所述日志数据的键进行聚合,得到不同聚合维度的日志数据,具体包括:
根据所述日志数据的键进行聚合;
针对聚合后为堆积字段的第一日志数据,创建用于记录所述第一日志数据变化值的变化字段并建立该变化字段与第一日志数据之间的映射关系,记录所述变化值;
针对聚合后为固定字段的第二日志数据,取相同键的最后一条第二日志数据的值作为该键的最终值;
将处理后的固定字段和堆积字段的日志数据按照键再次聚合,得到不同聚合维度的日志数据。
该实施例中,堆积字段可以根据配置的映射关系,采用冗余列的方式记录字段的变化历史,并记录到用于记录所述第一日志数据变化值的变化字段,该变化字段可以与第一日志数据之间存在映射关系。
在一实施例中,可以在所述第二时间宽表中新增的一列用于记录所述第一日志数据变化值的变化字段。
举例说明,针对堆积字段的处理:
针对固定字段的处理:
假设聚合后相同key的固定字段按照时间先后的字段值为12,3,6,20;那么,将最后一条数据的值20作为该key的最终值。
对于无状态字段由于仅只有一个值,不需要进一步处理。
服务器在对第一次聚合后的日志数据处理后,还需要对处理后的固定字段和堆积字段的日志数据再次按照key进行聚合(第二次);最终得出不同聚合维度的日志数据。
由于对第一次聚合后的堆积字段和固定字段做了相应处理,出现了新增的变化字段,以及固定字段的字段值也发生变化,因此为了提高准确性,需要第二次进行聚合。
步骤140:根据所述时间宽表和所述计算逻辑,计算所述目标特征的历史数据。
服务器在获取到每一种聚合维度对应的计算SQL后,还可以根据所述时间宽表和所述计算逻辑,通过离线方式计算所述目标特征的历史数据。
在一实施例中,所述根据所述时间宽表和所述计算逻辑,计算所述目标特征的历史数据,具体可以包括:
从预先配置的配置数据中获取每一种聚合维度对应的视图SQL;
根据所述视图SQL,加载所述目标特征设定计算天数的基础数据到内存中;其中,所述基础数据为目标特征依赖的业务数据;
基于每一种聚合维度的视图SQL下的基础数据,结合该聚合维度的计算SQL,计算该聚合维度下目标特征的历史数据。
类似的,服务器上预先配置的配送数据中包括视图SQL。所述视图SQL用于加载基础数据内存中,并关联时间宽表;从而使得计算SQL可以依据时间宽表在基础数据基础上进行历史数据的计算。
通常,服务器接收到针对目标特征的历史数据生产时,还会接收到设定的计算天数(一般是人为设定后跟随指令一起发生给服务器的),即需要生成多少天的历史数据。当然,如果没有指定计算天数,服务器也可以采用默认值作为计算天数,例如10天。
如前所述,基础数据是加载在内存中的,以及历史数据的计算也需要使用内存,然而内存资源毕竟有限,如果内存资源不足不仅会影响计算效率,严重情况下还可能出现宕机。为了解决这一问题,在一实施例中,所述方法还可以包括:
统计所述视图SQL下目标特征的计算频次;
符合计算频次达到阈值后,将该视图SQL下的基础数据转化为物理表的形式存储。
通过统计视图SQL下目标特征的计算频次,当计算频次超过阈值时,可以说明计算使用的内存资源较高,为了降低内存资源占用率,可以将视图SQL转化为物理表落地存储,从而释放内存资源,提高目标特征的历史数据计算效率。当计算频次降低小于阈值时或者完成计算后,服务器还可以删除该物理表。
综上所述本申请提供的历史数据计算方案,采用离线的方式生产目标特征的历史数据。具体地,通过从业务数据库中获取日志数据,基于这些日志数据生产时间宽表及计算逻辑,然后基于视图逻辑加载目标特征依赖的业务数据;在这些业务数据基础上,集合计算逻辑,批量计算出目标特征的历史数据。一方面,本申请是通过离线方式生产历史数据,无需按天积累历史数据的过程。另一方面,通过时间宽表快速还原出基础数据的宽表快照,并基于宽表快照集合计算逻辑迅速可以计算出目标特征的历史数据,缩短了历史数据的获取时间。
与前述用于计算目标特征的历史数据的方法的实施例相对应,本申请还提供了用于计算目标特征的历史数据的装置的实施例。
本申请用于计算目标特征的历史数据的装置的实施例可以应用在服务器上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图4所示,为本申请用于计算目标特征的历史数据的装置所在的一种硬件结构图,除了图4所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中通常根据该用于计算目标特征的历史数据的实际功能,还可以包括其他硬件,对此不再赘述。
请参考图5,在一种软件实施方式中,该用于计算目标特征的历史数据的装置可以包括:
第一获取单元310,获取用于生成时间宽表的原始数据;其中,所述原始数据为数据库的日志数据;
创建单元320,根据所述日志数据,创建用于生产所述目标特征的历史数据的时间宽表;其中,所述时间宽表由日志数据的字段构成的不同时间粒度的字段表;
第二获取单元330,从预先配置的配置数据中获取所述时间宽表的计算逻辑;
计算单元340,根据所述时间宽表和所述计算逻辑,计算所述目标特征的历史数据。
可选的,所述日志数据,具体包括:
堆积字段、固定字段和/或无状态字段的数据;
其中,所述堆积字段为需要记录字段值变化历史的字段;
所述固定字段为无需记录字段值变化历史的字段;
所述无状态字段为只需记录周期最后一刻字段值的字段。
可选的,所述创建单元320,具体包括:
第一创建子单元,根据堆积字段、固定字段创建第一计算粒度的时间宽表;
第二创建子单元,根据堆积字段、固定字段以及所述第一计算粒度的时间宽表,创建第二粒度的时间宽表;
第三创建子单元,根据无状态字段创建第三计算粒度的时间宽表;
确定子单元,将所述第二粒度的时间宽表和第三计算粒度的时间宽表确定为用于生产所述目标特征的历史数据的时间宽表;
其中,第二计算粒度小于第一计算粒度,第一计算粒度小于第三计算粒度。
可选的,
所述第一计算粒度的时间包括小时;
所述第二计算粒度的时间包括分钟;
所述第三计算粒度的时间包括天。
可选的,所述第二获取单元330,具体包括:
聚合单元,根据所述日志数据的键进行聚合,得到不同聚合维度的日志数据;
获取子单元,从预先配置的配置数据中获取每一种聚合维度对应的计算SQL。
可选的,所述聚合单元,具体包括:
第一聚合子单元,根据所述日志数据的键进行聚合;
记录子单元,针对聚合后为堆积字段的第一日志数据,创建用于记录所述第一日志数据变化值的变化字段并建立该变化字段与第一日志数据之间的映射关系,记录所述变化值;
合并子单元,针对聚合后为固定字段的第二日志数据,取相同键的最后一条第二日志数据的值作为该键的最终值;
第二聚合子单元,将处理后的固定字段和堆积字段的日志数据按照键再次聚合,得到不同聚合维度的日志数据。
可选的,所述计算单元340,具体包括:
视图获取子单元,从预先配置的配置数据中获取每一种聚合维度对应的视图SQL;
加载子单元,根据所述视图SQL,加载所述目标特征设定计算天数的基础数据到内存中;其中,所述基础数据为目标特征依赖的业务数据;
计算子单元,基于每一种聚合维度的视图SQL下的基础数据,结合该聚合维度的计算SQL,计算该聚合维度下目标特征的历史数据。
可选的,所述装置还包括:
统计子单元,统计所述视图SQL下目标特征的计算频次;
转化子单元,符合计算频次达到阈值后,将该视图SQL下的基础数据转化为物流表的形式存储。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上图5描述了业务监控装置的内部功能模块和结构示意,其实质上的执行主体可以为一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
获取用于生成时间宽表的原始数据;其中,所述原始数据为数据库的日志数据;
根据所述日志数据,创建用于生产所述目标特征的历史数据的时间宽表;其中,所述时间宽表由日志数据的字段构成的不同时间粒度的字段表;
从预先配置的配置数据中获取所述时间宽表的计算逻辑;
根据所述时间宽表和所述计算逻辑,计算所述目标特征的历史数据。
可选的,所述日志数据,具体包括:
堆积字段、固定字段和/或无状态字段的数据;
其中,所述堆积字段为需要记录字段值变化历史的字段;
所述固定字段为无需记录字段值变化历史的字段;
所述无状态字段为只需记录周期最后一刻字段值的字段。
可选的,所述根据所述日志数据,创建用于生产所述目标特征的历史数据的时间宽表,具体包括:
根据堆积字段、固定字段创建第一计算粒度的时间宽表;
根据堆积字段、固定字段以及所述第一计算粒度的时间宽表,创建第二粒度的时间宽表;
根据无状态字段创建第三计算粒度的时间宽表;
将所述第二粒度的时间宽表和第三计算粒度的时间宽表确定为用于生产所述目标特征的历史数据的时间宽表;
其中,第二计算粒度小于第一计算粒度,第一计算粒度小于第三计算粒度。
可选的,
所述第一计算粒度的时间包括小时;
所述第二计算粒度的时间包括分钟;
所述第三计算粒度的时间包括天。
可选的,所述根据所述日志数据,获取所述时间宽表的计算逻辑,具体包括:
根据所述日志数据的键进行聚合,得到不同聚合维度的日志数据;
从预先配置的配置数据中获取每一种聚合维度对应的计算SQL。
可选的,所述根据所述日志数据的键进行聚合,得到不同聚合维度的日志数据,具体包括:
根据所述日志数据的键进行聚合;
针对聚合后为堆积字段的第一日志数据,创建用于记录所述第一日志数据变化值的变化字段并建立该变化字段与第一日志数据之间的映射关系,记录所述变化值;
针对聚合后为固定字段的第二日志数据,取相同键的最后一条第二日志数据的值作为该键的最终值;
将处理后的固定字段和堆积字段的日志数据按照键再次聚合,得到不同聚合维度的日志数据。
可选的,所述根据所述时间宽表和所述计算逻辑,计算所述目标特征的历史数据,具体包括:
从预先配置的配置数据中获取每一种聚合维度对应的视图SQL;
根据所述视图SQL,加载所述目标特征设定计算天数的基础数据到内存中;其中,所述基础数据为目标特征依赖的业务数据;
基于每一种聚合维度的视图SQL下的基础数据,结合该聚合维度的计算SQL,计算该聚合维度下目标特征的历史数据。
可选的,还包括:
统计所述视图SQL下目标特征的计算频次;
符合计算频次达到阈值后,将该视图SQL下的基础数据转化为物流表的形式存储。
在上述电子设备的实施例中,应理解,该处理器可以是中央处理单元(英文:Central Processing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:Digital Signal Processor,简称:DSP)、专用集成电路(英文:Application SpecificIntegrated Circuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,而前述的存储器可以是只读存储器(英文:read-only memory,缩写:ROM)、随机存取存储器(英文:random access memory,简称:RAM)、快闪存储器、硬盘或者固态硬盘。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
本申请中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于电子设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (10)
1.一种用于计算目标特征的历史数据的方法,其特征在于,所述方法包括:
获取用于生成时间宽表的原始数据;其中,所述原始数据为数据库的日志数据;
根据所述日志数据,创建用于生产所述目标特征的历史数据的时间宽表;
从预先配置的配置数据中获取所述时间宽表的计算逻辑;
根据所述时间宽表和所述计算逻辑,计算所述目标特征的历史数据。
2.根据权利要求1所述的方法,其特征在于,所述日志数据,具体包括:
堆积字段数据、固定字段数据和/或无状态字段数据;
其中,所述堆积字段为需要记录字段值变化历史的字段;
所述固定字段为无需记录字段值变化历史的字段;
所述无状态字段为只需记录周期最后一刻字段值的字段。
3.根据权利要求2所述的方法,其特征在于,所述根据所述日志数据,创建用于生产所述目标特征的历史数据的时间宽表,具体包括:
根据堆积字段数据、固定字段数据创建第一计算粒度的时间宽表;
根据堆积字段数据、固定字段数据以及所述第一计算粒度的时间宽表,创建第二粒度的时间宽表;
根据无状态字段数据创建第三计算粒度的时间宽表;
将所述第二粒度的时间宽表和第三计算粒度的时间宽表确定为用于生产所述目标特征的历史数据的时间宽表;
其中,第二计算粒度小于第一计算粒度,第一计算粒度小于第三计算粒度。
4.根据权利要求3所述的方法,其特征在于,
所述第一计算粒度的时间包括小时;
所述第二计算粒度的时间包括分钟;
所述第三计算粒度的时间包括天。
5.根据权利要求2所述的方法,其特征在于,所述从预先配置的配置数据中获取所述时间宽表的计算逻辑,具体包括:
根据所述日志数据的键进行聚合,得到不同聚合维度的日志数据;
从预先配置的配置数据中获取每一种聚合维度对应的计算SQL。
6.根据权利要求5所述的方法,其特征在于,所述根据所述日志数据的键进行聚合,得到不同聚合维度的日志数据,具体包括:
根据所述日志数据的键进行聚合;
针对聚合后为堆积字段的第一日志数据,创建用于记录所述第一日志数据变化值的变化字段并建立该变化字段与第一日志数据之间的映射关系,记录所述变化值;
针对聚合后为固定字段的第二日志数据,取相同键的最后一条第二日志数据的值作为该键的最终值;
将处理后的固定字段和堆积字段的日志数据按照键再次聚合,得到不同聚合维度的日志数据。
7.根据权利要求5所述的方法,其特征在于,所述根据所述时间宽表和所述计算逻辑,计算所述目标特征的历史数据,具体包括:
从预先配置的配置数据中获取每一种聚合维度对应的视图SQL;
根据所述视图SQL,加载所述目标特征设定计算天数的基础数据到内存中;其中,所述基础数据为目标特征依赖的业务数据;
基于每一种聚合维度的视图SQL下的基础数据,结合该聚合维度的计算SQL,计算该聚合维度下目标特征的历史数据。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
统计所述视图SQL下目标特征的计算频次;
符合计算频次达到阈值后,将该视图SQL下的基础数据转化为物理表的形式存储。
9.一种用于计算目标特征的历史数据的装置,其特征在于,所述装置包括:
第一获取单元,获取用于生成时间宽表的原始数据;其中,所述原始数据为数据库的日志数据;
创建单元,根据所述日志数据,创建用于生产所述目标特征的历史数据的时间宽表;
第二获取单元,从预先配置的配置数据中获取所述时间宽表的计算逻辑;
计算单元,根据所述时间宽表和所述计算逻辑,计算所述目标特征的历史数据。
10.一种电子设备,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
所述处理器被配置为上述权利要求1-8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910098526.0A CN109840246A (zh) | 2019-01-31 | 2019-01-31 | 一种用于计算目标特征的历史数据的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910098526.0A CN109840246A (zh) | 2019-01-31 | 2019-01-31 | 一种用于计算目标特征的历史数据的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109840246A true CN109840246A (zh) | 2019-06-04 |
Family
ID=66884485
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910098526.0A Pending CN109840246A (zh) | 2019-01-31 | 2019-01-31 | 一种用于计算目标特征的历史数据的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109840246A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112364018A (zh) * | 2020-11-02 | 2021-02-12 | 上海钐昆网络科技有限公司 | 一种生成宽表的方法、装置、设备及存储介质 |
CN112395291A (zh) * | 2020-11-24 | 2021-02-23 | 深圳市麦谷科技有限公司 | 一种根据数据资产动态生成宽表的方法及系统 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102541952A (zh) * | 2010-12-29 | 2012-07-04 | 北大方正集团有限公司 | 一种基于数据库获取历史数据的方法及装置 |
CN107145532A (zh) * | 2017-04-18 | 2017-09-08 | 北京思特奇信息技术股份有限公司 | 一种流数据的实时分析处理方法及系统 |
US20180137134A1 (en) * | 2015-07-14 | 2018-05-17 | Alibaba Group Holding Limited | Data snapshot acquisition method and system |
CN108228628A (zh) * | 2016-12-15 | 2018-06-29 | 亿度慧达教育科技(北京)有限公司 | 一种结构化查询语言数据库中的宽表生成方法及其装置 |
CN108648092A (zh) * | 2018-05-16 | 2018-10-12 | 中国平安人寿保险股份有限公司 | 保险赔付率计算方法、装置、设备及计算机可读存储介质 |
CN108681589A (zh) * | 2018-05-15 | 2018-10-19 | 口碑(上海)信息技术有限公司 | 基于指标体系的结构化查询语言指令生成方法及装置 |
CN108920324A (zh) * | 2018-06-08 | 2018-11-30 | 广东轩辕网络科技股份有限公司 | It设备存储容量趋势分析和预警的方法、系统及电子装置 |
CN108959442A (zh) * | 2018-06-13 | 2018-12-07 | 福建天晴数码有限公司 | 基于预定义计算规则的流式实时计算方法、存储介质 |
CN109189861A (zh) * | 2018-06-29 | 2019-01-11 | 深圳市彬讯科技有限公司 | 基于指标的数据流统计方法、服务器及存储介质 |
-
2019
- 2019-01-31 CN CN201910098526.0A patent/CN109840246A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102541952A (zh) * | 2010-12-29 | 2012-07-04 | 北大方正集团有限公司 | 一种基于数据库获取历史数据的方法及装置 |
US20180137134A1 (en) * | 2015-07-14 | 2018-05-17 | Alibaba Group Holding Limited | Data snapshot acquisition method and system |
CN108228628A (zh) * | 2016-12-15 | 2018-06-29 | 亿度慧达教育科技(北京)有限公司 | 一种结构化查询语言数据库中的宽表生成方法及其装置 |
CN107145532A (zh) * | 2017-04-18 | 2017-09-08 | 北京思特奇信息技术股份有限公司 | 一种流数据的实时分析处理方法及系统 |
CN108681589A (zh) * | 2018-05-15 | 2018-10-19 | 口碑(上海)信息技术有限公司 | 基于指标体系的结构化查询语言指令生成方法及装置 |
CN108648092A (zh) * | 2018-05-16 | 2018-10-12 | 中国平安人寿保险股份有限公司 | 保险赔付率计算方法、装置、设备及计算机可读存储介质 |
CN108920324A (zh) * | 2018-06-08 | 2018-11-30 | 广东轩辕网络科技股份有限公司 | It设备存储容量趋势分析和预警的方法、系统及电子装置 |
CN108959442A (zh) * | 2018-06-13 | 2018-12-07 | 福建天晴数码有限公司 | 基于预定义计算规则的流式实时计算方法、存储介质 |
CN109189861A (zh) * | 2018-06-29 | 2019-01-11 | 深圳市彬讯科技有限公司 | 基于指标的数据流统计方法、服务器及存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112364018A (zh) * | 2020-11-02 | 2021-02-12 | 上海钐昆网络科技有限公司 | 一种生成宽表的方法、装置、设备及存储介质 |
CN112364018B (zh) * | 2020-11-02 | 2021-07-16 | 上海钐昆网络科技有限公司 | 一种生成宽表的方法、装置、设备及存储介质 |
CN112395291A (zh) * | 2020-11-24 | 2021-02-23 | 深圳市麦谷科技有限公司 | 一种根据数据资产动态生成宽表的方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI718643B (zh) | 異常群體識別方法及裝置 | |
CN107705199B (zh) | 特征计算代码的生成方法和装置 | |
CN108205580A (zh) | 一种图像检索方法、装置及计算机可读存储介质 | |
CN108256570A (zh) | 基于k邻域相似性的数据聚类方法、装置和存储介质 | |
US20190114711A1 (en) | Financial analysis system and method for unstructured text data | |
US11829455B2 (en) | AI governance using tamper proof model metrics | |
CN109493573A (zh) | 基于时间滑动窗口的用户自定义事件报警方法及系统 | |
CN109840246A (zh) | 一种用于计算目标特征的历史数据的方法及装置 | |
CN108985755B (zh) | 一种账号状态识别方法、装置及服务器 | |
CN110674104B (zh) | 特征组合筛选方法、装置、计算机设备及存储介质 | |
CN112465012A (zh) | 机器学习建模方法、装置、电子设备和可读存储介质 | |
US11354533B2 (en) | Computer architecture for identifying data clusters using correlithm objects and machine learning in a correlithm object processing system | |
CN108429632B (zh) | 一种业务监控方法和装置 | |
CN109800823B (zh) | 一种pos终端的聚类方法及装置 | |
CN115293243A (zh) | 数据资产智能匹配的实现方法、装置及设备 | |
CN113569953A (zh) | 分类模型的训练方法、装置及电子设备 | |
JP2023507688A (ja) | プロセスのエッジテーブル表現 | |
CN113159419A (zh) | 一种群体特征画像分析方法、装置、设备及可读存储介质 | |
CN112001044B (zh) | 零件cad模型相似度估算方法与系统 | |
CN109543736B (zh) | 一种特征对比方法及装置 | |
CN113409025B (zh) | 一种业务数据提取方法、装置及存储介质 | |
CN112053779B (zh) | 疾病检测模型的构建方法、构建装置及终端设备 | |
CN116701698B (zh) | 基于向量检索技术的模型检索方法、装置、介质及设备 | |
CN112235152B (zh) | 流量大小估算方法和装置 | |
CN116383715A (zh) | 一种基于双指纹的Prometheus告警信号归类方法及装置 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190604 |