WO2021037066A1 - 用于批量和实时特征计算的系统和方法 - Google Patents

用于批量和实时特征计算的系统和方法 Download PDF

Info

Publication number
WO2021037066A1
WO2021037066A1 PCT/CN2020/111412 CN2020111412W WO2021037066A1 WO 2021037066 A1 WO2021037066 A1 WO 2021037066A1 CN 2020111412 W CN2020111412 W CN 2020111412W WO 2021037066 A1 WO2021037066 A1 WO 2021037066A1
Authority
WO
WIPO (PCT)
Prior art keywords
feature calculation
real
time
batch
data
Prior art date
Application number
PCT/CN2020/111412
Other languages
English (en)
French (fr)
Inventor
穆妮
王太泽
Original Assignee
第四范式(北京)技术有限公司
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 第四范式(北京)技术有限公司 filed Critical 第四范式(北京)技术有限公司
Priority to EP20857623.1A priority Critical patent/EP4024228A4/en
Priority to US17/639,125 priority patent/US11971882B2/en
Publication of WO2021037066A1 publication Critical patent/WO2021037066A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/211Schema design and management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • G06F16/2386Bulk updating operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/04Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Abstract

本公开提供了一种用于批量和实时特征计算的系统和方法,所述系统包括:管理服务器、一个或更多个批量特征计算单元、一个或更多个分布式计算单元、一个或更多个实时特征计算单元、离线数据库、以及实时数据库。所述管理服务器接收包含特征计算逻辑的脚本,在批量特征计算场景下,启动批量特征计算,并且在实时特征计算场景下,部署所述脚本以产生实时计算计划,其中,包含所述特征计算逻辑的脚本针对批量特征计算逻辑和实时特征计算逻辑具有统一性,实时数据库从离线数据库获取并存储用于实时特征计算的数据。根据本公开,可通过所述脚本统一批量特征计算逻辑和实时特征计算逻辑。

Description

用于批量和实时特征计算的系统和方法
本申请要求申请号为201910789592.2,申请日为2019年8月26日,名称为“用于批量和实时特征计算的系统和方法”的中国专利申请的优先权,其中,上述申请公开的内容通过引用结合在本申请中。
技术领域
本公开总体说来涉及数据处理领域,更具体地讲,涉及一种用于批量和实时特征计算的系统和方法。
背景技术
随着海量数据的出现,人们倾向于使用机器学习技术来从数据中挖掘出价值。机器学习是人工智能研究发展到一定阶段的必然产物,其致力于通过计算的手段,利用经验来改善系统自身的性能。在计算机系统中,“经验”通常以“数据”形式存在,通过机器学习算法,可从数据中产生“模型”,也就是说,将经验数据提供给机器学习算法,就能基于这些经验数据产生模型;在面对新的情况时,利用训练好的模型来得到相应的预测结果。
基于这样的机器学习技术,产生了机器学习平台或系统。在机器学习平台或系统中,不论是训练机器学习模型的阶段,还是利用机器学习模型进行预估的阶段,都需要进行特征计算,例如,通过对数据进行特征抽取来得到包括各种特征的机器学习样本。
在现有的机器学习平台或系统中,用于执行特征计算的任务可包括线下任务和线上任务。
线下任务可用于批量特征计算,例如,当计划任务被启动时,批量的执行大数据的特征计算,待全部特征计算完成后,获取最终的执行结果用于后续的研究。线下任务可针对时间不敏感的业务场景,例如,在银行业务场景中,线下任务可包括根据一批用户前六个月的消费行为数据,预测各个用户是否购买理财产品。
线上任务可用于实时特征计算,例如,可实时的对一定数量的数据进行特征计算,获取的特征计算结果可用于预测操作。线上任务可针对时间敏感的业务场景,例如,在线上购物业务场景中,根据用户在最近浏览的商品进行相关产品推荐。
然而,在现有的机器学习平台或系统中,批量特征计算逻辑和实时特征计算逻辑是不统一的,两者不相同甚至存在冲突。在这种情况下,需要对两种特征计算逻辑分别进行设置和维护。
另外,在现有的机器学习平台或系统中,用于批量特征处理的离线数据库和用于实时特征处理的实时数据库是分离的,这两种个数据库中的数据不 关联,需要分别设置并分别维护这两种数据库。
发明内容
本公开的示例性实施例在于提供一种用于批量和实时特征计算的系统和方法,以在各种特征抽取场景下,基于关联的离线数据库和实时数据库以及统一了批量和实时特征计算逻辑的脚本,统一的执行特征抽取。
根据本公开的示例性实施例,提供了一种用于批量和实时特征计算的系统,其中,所述系统包括:管理服务器,接收包含特征计算逻辑的脚本,在批量特征计算场景下,从注册到管理服务器的批量特征计算单元中选择用于批量特征计算的批量特征计算单元以启动批量特征计算,并且在实时特征计算场景下,向注册到管理服务器的实时特征计算单元部署所述脚本以产生实时计算计划,并从注册到管理服务器的实时特征计算单元中选择在执行实时计算计划时使用的实时特征计算单元,其中,包含所述特征计算逻辑的脚本针对批量特征计算逻辑和实时特征计算逻辑具有统一性;一个或更多个批量特征计算单元,当被启动时注册到管理服务器,并且当被选择以启动批量特征计算时产生批量计算任务,并且将所述批量计算任务发送给一个或更多个分布式计算单元;所述一个或更多个分布式计算单元,执行所述批量计算任务,以基于所述脚本和离线数据库存储的数据进行批量特征计算;一个或更多个实时特征计算单元,当被启动时注册到管理服务器,并且当被选择以执行实时计算计划时,基于实时数据库存储的数据和所述脚本进行实时特征计算;离线数据库,存储用于批量特征计算的数据;实时数据库,从离线数据库获取并存储用于实时特征计算的数据。
根据本公开的另一示例性实施例,提供了一种用于批量和实时特征计算的方法,其中,所述方法包括:接收包含特征计算逻辑的脚本;在批量特征计算场景下,从注册到管理服务器的批量特征计算单元中选择用于批量特征计算的批量特征计算单元以启动批量特征计算,以使被选择的批量特征计算单元产生批量计算任务,将所述批量计算任务发送给一个或更多个分布式计算单元,以使所述一个或更多个分布式计算单元执行所述批量计算任务,以基于所述脚本和离线数据库存储的数据进行批量特征计算;在实时特征计算场景下,向注册到管理服务器的实时特征计算单元部署所述脚本以产生实时计算计划,并且从注册到管理服务器的实时特征计算单元中选择在执行实时计算计划时使用的实时特征计算单元,以使被选择的实时特征计算单元基于实时数据库存储的数据和所述脚本进行实时特征计算;其中,包含所述特征计算逻辑的脚本针对批量特征计算逻辑和实时特征计算逻辑具有统一性,离线数据库存储的数据为用于批量特征计算的数据;实时数据库存储的数据为从离线数据库获取的用于实时特征计算的数据。
根据本公开的另一示例性实施例,提供了一种包括至少一个计算装置和至少一个存储指令的存储装置的管理服务器,其中,所述指令在被所述至少 一个计算装置运行时,促使所述至少一个计算装置执行用于批量和实时特征计算的方法的以下步骤:
接收包含特征计算逻辑的脚本;在批量特征计算场景下,从注册到管理服务器的批量特征计算单元中选择用于批量特征计算的批量特征计算单元以启动批量特征计算,以使被选择的批量特征计算单元产生批量计算任务,将所述批量计算任务发送给一个或更多个分布式计算单元,以使所述一个或更多个分布式计算单元执行所述批量计算任务,以基于所述脚本和离线数据库存储的数据进行批量特征计算;在实时特征计算场景下,向注册到管理服务器的实时特征计算单元部署所述脚本以产生实时计算计划,并且从注册到管理服务器的实时特征计算单元中选择在执行实时计算计划时使用的实时特征计算单元,以使被选择的实时特征计算单元基于实时数据库存储的数据和所述脚本进行实时特征计算;其中,包含所述特征计算逻辑的脚本针对批量特征计算逻辑和实时特征计算逻辑具有统一性,离线数据库存储的数据为用于批量特征计算的数据;实时数据库存储的数据为从离线数据库获取的用于实时特征计算的数据。
根据本公开的另一示例性实施例,提供了一种存储指令的计算机可读存储介质,其中,当所述指令被至少一个计算装置运行时,促使所述至少一个计算装置执行如上所述的方法。
本公开的系统和方法可基于统一的脚本和关联的两种数据库同时支持批量特征计算和实时特征计算,可解决机器学习场景下批量特征计算逻辑和实时特征计算逻辑不统一以及批量特征处理的离线数据库和实时特征处理的实时数据库分离的问题。
另外,离线数据库中的数据和实时数据库中的数据至少部分同步(例如,定时同步全部数据或有变化的数据,或者,根据底层日志文件来更新每个数据库,所述底层日志文件可记录各个数据库中的数据的变化,两种数据库可分别具有日志文件也可共用日志文件),从而保证在线场景和离线场景使用的数据一致。初始化实时数据库可在实时数据库中产生与实时特征计算对应的数据字段结构并且获取所述数据字段结构以供用户作为输入数据(例如,样本数据)的参考,即使在用户不理解脚本时也可根据获取的所述数据字段结构输入符合与实时特征计算对应的数据字段结构的所述至少一条数据,以供实时特征计算;可将用户本地的原始数据导入离线数据库便于快速输入数据,还可将离线数据库中已有数据作为用于批量特征计算的数据以避免数据重复导入。还可以执行判断脚本是否存在语法错误、调试中间运行结果、调试最终运行结果之中的至少一个,以及时获知输入的脚本的正确性以及运行结果避免运行错误脚本等处理影响特征计算效率和准确性。从实时数据库获取的窗口数据可包括符合与实时特征计算对应的数据字段结构的所述至少一条数据,脚本可用于构造窗口数据的字段(例如,进行字段筛选)、窗口大小等信息,窗口数据根据窗口滑动进行实时更新,从而即可保证实时性又可保证计算效率。在离线(批量)特征计算的过程中,可随时获取批量特征计算执行 状态。批量特征计算计算时间长,从而批量特征计算结果可适用于用于模型的离线训练或批量预估;实时特征计算的计算时间短,从而实时特征计算结果可适用于基于训练的模型的预测,尤其是在线预测。脚本可被各个单元以及服务器中的至少一个运行,在被运行时,可通过脚本转化或解析而使得脚本可被执行,从而脚本具有良好的兼容性。
将在接下来的描述中部分阐述本公开总体构思另外的方面和优点,还有一部分通过描述将是清楚的,或者可以经过本公开总体构思的实施而得知。
附图说明
通过下面结合示例性地示出实施例的附图进行的描述,本公开示例性实施例的上述和其他目的和特点将会变得更加清楚,其中:
图1示出根据本公开的示例性实施例的用于批量和实时特征计算的系统的结构示意图;
图2示出根据本公开的示例性实施例的时序图;
图3示出根据本公开的另一示例性实施例的时序图;
图4示出根据本公开的示例性实施例的用于批量和实时特征计算的方法的流程图。
具体实施方式
现将详细参照本公开的实施例,所述实施例的示例在附图中示出,其中,相同的标号始终指的是相同的部件。以下将通过参照附图来说明所述实施例,以便解释本公开。在此需要说明的是,在本公开中出现的“若干项之中的至少一项”均表示包含“该若干项中的任意一项”、“该若干项中的任意多项的组合”、“该若干项的全体”这三类并列的情况。在本公开中出现的“和/或”均表示被其连接的前后两项或多项中的至少一项。例如,“包括A和B之中的至少一个”、“包括A和/或B”即包括如下三种并列的情况:(1)包括A;(2)包括B;(3)包括A和B。又例如,“执行步骤一和步骤二之中的至少一个”、“执行步骤一和/或步骤二”即表示如下三种并列的情况:(1)执行步骤一;(2)执行步骤二;(3)执行步骤一和步骤二。也就是说,“A和/或B”也可被表示为“A和B之中的至少一个”,“执行步骤一和/或步骤二”也可被表示为“执行步骤一和步骤二之中的至少一个”。
为了解决机器学习场景下批量特征计算和实时特征计算分离(例如,批量特征计算逻辑和实时特征计算逻辑不统一)以及批量特征处理的离线数据库和实时特征处理的实时数据库分离的问题,本公开的示例性实施例可采用统一的脚本和关联的两种数据库以同时支持批量特征计算和实时特征计算。这里的脚本可包括通过特征查询语言等编写的脚本,还可包括通过各种计算机语言编写的代码或脚本。
图1示出根据本公开的示例性实施例的用于批量和实时特征计算的系统的结构示意图。根据本公开的示例性实施例的用于批量和实时特征计算的系 统可包括:管理服务器、一个或更多个批量特征计算单元、一个或更多个分布式计算单元、一个或更多个实时特征计算单元、离线数据库、以及实时数据库。
管理服务器可接收包含特征计算逻辑的脚本,在批量特征计算场景下,从注册到管理服务器的批量特征计算单元中选择用于批量特征计算的批量特征计算单元以启动批量特征计算,并且在实时特征计算场景下,向注册到管理服务器的实时特征计算单元部署所述脚本以产生实时计算计划,并从注册到管理服务器的实时特征计算单元中选择在执行实时计算计划时使用的实时特征计算单元,其中,包含所述特征计算逻辑的脚本针对批量特征计算逻辑和实时特征计算逻辑具有统一性。所述一个或更多个批量特征计算单元,当被启动时注册到管理服务器,并且当被选择以启动批量特征计算时产生批量计算任务,并且将所述批量计算任务发送给所述一个或更多个分布式计算单元。所述一个或更多个分布式计算单元,执行所述批量计算任务,以基于所述脚本和离线数据库存储的数据进行批量特征计算。所述一个或更多个实时特征计算单元,当被启动时注册到管理服务器,并且当被选择以执行实时计算计划时,基于实时数据库存储的数据和所述脚本进行实时特征计算。所述离线数据库可存储用于批量特征计算的数据(例如,全部历史或原始数据)。所述实时数据库可从离线数据库获取并存储用于实时特征计算的数据。
作为示例,管理服务器可被实现为数据库管理系统(DBMS)服务器等。通过管理服务器,用户可针对输入的脚本来查看各种需要的结果,例如,批量特征计算结果、实时特征计算结果、数据字段结构、语法错误验证结果、通过调试获得的中间运行结果和/或最终运行结果、批量特征计算执行状态等。在批量特征计算场景下和在实时特征计算场景下,用户可输入统一的脚本,而无需根据不同计算场景使用不同脚本。管理服务器还可被实现为管理系统的各个单元和/或数据库,以实现数据导入操作和任务调度等。
在此需要说明的是,本公开中的中间运行结果和/或最终运行结果,还可以表述为中间运行结果和最终运行结果之中的至少一个。本公开中的管理服务器还可被实现为管理系统的各个单元和/或数据库,还可以表述为:管理服务器还可被实现为管理系统的各个单元和数据库之中的至少一个。
作为示例,批量特征计算单元可被实现为批量计算引擎(例如,Spark),分布式计算单元可被实现为分布式计算集群,实时特征计算单元可被实现为实时计算引擎,实时数据库可被实现为内存数据库。
作为示例,批量特征计算单元的选择、分布式计算单元的选择和/或实时特征计算单元的选择,可依据负载均衡目标来实现。批量计算任务可定时被执行或者根据相应的触发指令而被执行。实时计算计划可根据特定触发条件(例如,在线接收到待预测数据(例如,样本数据)时的触发条件)而被执行。
在此需要说明的是,本公开中的批量特征计算单元的选择、分布式计算单元的选择和/或实时特征计算单元的选择,可依据负载均衡目标来实现,还 可以表述为:批量特征计算单元的选择、分布式计算单元的选择和实时特征计算单元的选择之中的至少一个,可依据负载均衡目标来实现。
作为示例,离线数据库中的数据和实时数据库中的数据至少部分同步,其中,实时数据库与离线数据库按照特定的机制执行数据同步,例如,实时数据库与离线数据库定时或响应于用户触发而基于数据变化或者基于主从同步机制进行数据同步。数据同步可基于日志文件来进行,所述日志文件针对实时数据库和/或离线数据库,可记载相应数据库的数据变化情况。通过数据同步,可保证在批量特征计算场景下和在实时特征计算场景下数据的一致性,使得在使用同样的脚本和数据进行批量特征计算和实时特征计算可获得同样的计算结果。
在此需要说明的是,本公开中的实时数据库和/或离线数据库,还可以表述为实时数据库和离线数据库之中的至少一个。
作为示例,实时数据库是内存数据库。
作为示例,管理服务器还初始化实时数据库,以获取与实时特征计算对应的数据字段结构(例如,schema)。
作为示例,管理服务器还接收用户导入的原始数据并且将原始数据存储到离线数据库中作为用于批量特征计算的数据,或者管理服务器还将预先存入离线数据库的至少一部分数据作为用于批量特征计算的数据。为了进行数据导入,可在离线数据库的指定命名空间下创建原始表,该原始表具有特定数据字段结构。在导入原始数据时,管理服务器可接收用户从本地上传到管理服务器的本地文件,并基于所述本地文件来创建原始表,数据导入的输入参数包括:表名称和本地文件(本地文件本身被上传到管理服务器作为输入参数),本地文件可通过管理服务器被转送给离线数据库并且被存储到离线数据库中。当使用预先存入离线数据库的数据作为用于批量特征计算的数据时,可基于离线数据库中的数据存储路径来实现,在这种情况下,输入参数可包括:表名称以及预先存入离线数据库的数据的存储路径。
作为示例,管理服务器还可验证所述脚本是否存在语法错误,和/或基于至少一部分数据来调试与所述脚本对应的至少一部分中间运行结果和/或最终运行结果。是否存在语法错误的验证结果、中间运行结果和/或最终运行结果可反馈给用户,以便用户可及时更改脚本。
在此需要说明的是,上述内容还可以表述为:管理服务器被配置为用于验证脚本是否存在语法错误、用于基于至少一部分数据来调试与脚本对应的至少一部分中间运行结果、用于基于至少一部分数据来调试与脚本对应的至少一部分最终运行结果之中的至少一个。是否存在语法错误的验证结果、中间运行结果和最终运行结果之中的至少一个结果可反馈给用户,以便用户可及时更改脚本。
图2示出根据本公开的示例性实施例的时序图。如图2中所示,实时计算引擎(简称为实时引擎,多个实时引擎可形成集群)中的每个实时计算引擎在被启动时可向被实现为DBMS服务器的管理服务器进行注册,管理服务 器向实时计算引擎反馈注册结果。管理服务器还可初始化实时数据库,实时数据库产生与实时特征计算对应的数据字段结构,并向管理服务器反馈与实时特征计算对应的数据字段结构。管理服务器还可将脚本部署到注册的实时计算引擎,以产生实时计算计划,实时计算引擎可将部署结果反馈给管理服务器。初始化实时数据库的过程可属于部署过程的一部分。在部署过程中,可产生部署名称,可根据部署名称查看所述数据字段结构等部署信息和/或执行实时计算计划。
在本公开中,在部署过程中,可产生部署名称,可根据部署名称查看所述数据字段结构等部署信息和/或执行实时计算计划,还可以表述为:
在部署过程中可以执行以下3个步骤中的至少一个步骤:
产生部署名称;
根据部署名称查看所述数据字段结构等部署信息;
执行实时计算计划。
作为示例,管理服务器还在接收到用于实时特征计算的至少一条数据并且实时计算计划被执行时,将所述至少一条数据发送给被选择的实时特征计算单元,其中,所述至少一条数据符合与实时特征计算对应的数据字段结构,其中,实时特征计算单元在接收到所述至少一条数据时向实时数据库请求窗口数据,并且基于实时数据库反馈的窗口数据以及所述脚本进行实时特征计算,其中,所述窗口数据包含实时数据库的数据的全部或部分数据字段,所述窗口数据包括所述至少一条数据以及与所述至少一条数据在时间等特征上存在关联的特定数量的数据。作为示例,窗口数据根据窗口滑动而实时更新;窗口用于实时场景下的多行数据的处理,例如,在交易信息中,以用户卡号为维度,可构造一个时间长度为5天的窗口,可指定窗口内的最大数据长度。
以下结合表1至表4来描述实时特征计算过程,表1示出根据本公开的示例性实施例的个人交易数据。在表1中,每一列表示一个数据字段;name表示姓名,类型为字符串型(string);time表示交易时间,类型为时间戳(timestamp);price表示交易金额,类型为双精度浮点型(double)。表1示出的三行数据可表示三条交易记录。表1中的数据对应数据表t1。
表1
name:string time:timestamp price:double
Wtz 1556152031000 1.0
Wtz 1556065631000 2.0
Wtz 1555979231000 3.0
可向管理服务器输入如下的特征计算脚本:
w=window(t1,"name","time",100,10d)
f=continuous(sum(w.price))
第一行脚本用于构造窗口,针对的数据表是表t1,窗口按照name字段 聚合且按照time字段排序,窗口内最大数据量为100,窗口内最大时间跨度为10天。第二行脚本用于计算离散特征,计算为窗口内price字段之和。
表2示出根据本公开的示例实施例的数据字段结构。可在实时数据库中产生表2所示数据字段结构(schema),并由管理服务器获取实时数据库中的schema。
表2
字段名称 字段类型
name string
time timestamp
price double
针对以上脚本的部署名称可以是d1。可将脚本部署至全部已注册的实时计算引擎。如果反馈的部署结果不包括异常信息,则部署成功。随后可开始计算实时特征计算。
在实时特征计算时,可输入至少一行符合schema的数据作为样本数据,根据样本数据获取窗口数据。当输入样本数据和部署名称d1时可开始实时特征计算。表3示出根据本公开的示例性实施例的样本数据。表3中示出的样本数据包括一行数据,该数据符合schema。
表3
name:string time:timestamp price:double
Wtz 1556238431000 4.0
可获取与所述样本数据同一窗口的窗口数据,并基于获取的窗口数据进行实时特征计算,表4示出了根据本公开的示例性实施例的窗口数据,该窗口数据包括所述样本数据。
表4
name:string time:timestamp price:double
Wtz 1556152031000 1.0
Wtz 1556065631000 2.0
Wtz 1555979231000 3.0
Wtz 1556238431000 4.0
用于实时特征计算的计算逻辑来自于所述脚本。实际使用的脚本可仅包括第一行脚本或者包含第一行脚本和第二行脚本。当然,当进行大量特征的抽取时,输入的脚本的行数可能达到成百、上千甚至上万行。在这种情况下,由于不需要分别针对批量特征计算场景和实时特征计算场景的脚本,因此减少脚本输入的工作量,从而可提高特征计算效率。
图3示出根据本公开的另一示例性实施例的时序图。如图3中所示,当被启动时,被实施为批量特征计算引擎(简称为批量引擎)的批量特征计算单元可向被实施为DBMS服务器的管理服务器注册,管理服务器向批量引擎反馈注册结果。可根据负载均衡选择多个已经注册的批量引擎中的至少一个批量引擎并且运行脚本。批量引擎可从离线数据库获取原始数据存储路径。批量引擎可向实施为分布式计算集群(Hadoop)的分布式计算单元提交计算任务,分布式计算集群向批量引擎反馈提交结果。批量计算任务可由分布式计算集群来执行,以基于脚本和离线数据库存储的数据进行批量特征计算,其中,离线数据库存储的数据可基于原始数据存储路径而获取。管理服务器可通过批量特征计算执行状态查询请求向批量引擎查询批量特征计算执行状态,批量特征计算执行状态可由分布式计算集群提供给批量引擎,并由批量引擎反馈给管理服务器。
作为示例,所述一个或更多个分布式计算单元基于离线数据库的数据存储路径来获取离线数据库存储的数据,并且基于获取的数据、所述脚本来执行批量特征计算,并且将批量特征计算执行状态发送给批量特征计算单元,其中,管理服务器在接收到批量特征计算执行状态查询请求时,从批量特征计算单元获取批量特征计算执行状态。
作为示例,批量特征计算的计算结果用于模型训练或批量预估,实时特征计算的计算结果用于基于训练的模型进行在线预测。在这种情况下,本公开的示例性实施例既适用于模型训练也适用于基于训练的模型的在线预测。
作为示例,当所述脚本通过管理服务器被运行时,所述脚本被转化为批量特征计算单元、分布式计算单元和/或实时特征计算单元能够执行且当被执行时实现所述脚本所包含的特征计算逻辑的代码。
在本公开中,上述内容还可以表述为:当所述脚本通过管理服务器被运行时,所述脚本被转化为批量特征计算单元、分布式计算单元和实时特征计算单元之中的至少一个能够执行、且当被执行时实现所述脚本所包含的特征计算逻辑的代码,或者当所述脚本被运行时,批量特征计算单元、分布式计算单元和实时特征计算单元之中的至少一个解析出所述脚本中所包含的特征计算逻辑。
作为示例,当所述脚本被运行时,批量特征计算单元、分布式计算单元和/或实时特征计算单元解析出所述脚本中所包含的特征计算逻辑。在这种情况下,脚本具有良好的兼容性。
在本公开中,上述内容还可以表述为:当所述脚本被运行时,批量特征计算单元、分布式计算单元和实时特征计算单元之中的至少一个解析出所述脚本中所包含的特征计算逻辑。
根据本公开的示例性实施例,可通过一套系统支持批量和实时特征计算,通过一套脚本统一了批量特征计算逻辑和实时特征计算逻辑,并且离线数据库和实时数据库的数据存在关联(实时数据库中的数据可从离线数据库获取)甚至同步,从而解决了机器学习场景下批量特征计算逻辑和实时特征计算逻 辑不统一以及批量特征处理的离线数据库和实时特征处理的实时数据库分离的问题,避免线上数据和线下数据不一致,可利用有限的机器资源实现不同场景下的机器学习,提高资源利用率,还可通过统一的脚本提高任务执行效率。
图4示出根据本公开的示例性实施例的用于批量和实时特征计算的方法的流程图。如图4中所示,根据本公开的示例性实施例的用于批量和实时特征计算的方法可包括步骤110至步骤150。在步骤110,由管理服务器接收包含特征计算逻辑的脚本;在步骤120,由离线数据库存储用于批量特征计算的数据;在步骤130,由实时数据库从离线数据库获取并存储用于实时特征计算的数据;在步骤140,在批量特征计算场景下,由管理服务器从注册到管理服务器的批量特征计算单元中选择用于批量特征计算的批量特征计算单元以启动批量特征计算,当批量特征计算单元被选择以启动批量特征计算时,由批量特征计算单元产生批量计算任务,将所述批量计算任务发送给一个或更多个分布式计算单元,并且由所述一个或更多个分布式计算单元执行所述批量计算任务,以基于所述脚本和离线数据库存储的数据进行批量特征计算;在步骤150,在实时特征计算场景下,由管理服务器向注册到管理服务器的实时特征计算单元部署所述脚本以产生实时计算计划,并且从注册到管理服务器的实时特征计算单元中选择在执行实时计算计划时使用的实时特征计算单元,当实时特征计算单元被选择以执行实时计算计划时,由被选择的实时特征计算单元基于实时数据库存储的数据和所述脚本进行实时特征计算;其中,包含所述特征计算逻辑的脚本针对批量特征计算逻辑和实时特征计算逻辑具有统一性。
下面介绍管理服务器执行用于批量和实时特征计算的方法中相关步骤的具体的实施方式。
作为示例,管理服务器包括至少一个计算装置和至少一个存储指令的存储装置的管理服务器,其中,所述指令在被所述至少一个计算装置运行时,促使所述至少一个计算装置执行用于批量和实时特征计算的方法的以下步骤:
接收包含特征计算逻辑的脚本;
在批量特征计算场景下,从注册到管理服务器的批量特征计算单元中选择用于批量特征计算的批量特征计算单元以启动批量特征计算,以使被选择的批量特征计算单元产生批量计算任务,将所述批量计算任务发送给一个或更多个分布式计算单元,以使所述一个或更多个分布式计算单元执行所述批量计算任务,以基于所述脚本和离线数据库存储的数据进行批量特征计算;
在实时特征计算场景下,向注册到管理服务器的实时特征计算单元部署所述脚本以产生实时计算计划,并且从注册到管理服务器的实时特征计算单元中选择在执行实时计算计划时使用的实时特征计算单元,以使被选择的实时特征计算单元基于实时数据库存储的数据和所述脚本进行实时特征计算;
其中,包含所述特征计算逻辑的脚本针对批量特征计算逻辑和实时特征计算逻辑具有统一性,离线数据库存储的数据为用于批量特征计算的数据; 实时数据库存储的数据为从离线数据库获取的用于实时特征计算的数据。
作为示例,所述方法还包括:由实时数据库与离线数据库定时或响应于用户触发而基于数据变化或者基于主从同步机制进行至少部分数据的数据同步。
作为示例,所述方法还包括管理服务器初始化实时数据库,以获取与实时特征计算对应的数据字段结构。
作为示例,所述方法还包括以下步骤中的至少一个步骤:
管理服务器接收用户导入的原始数据并且将原始数据存储到离线数据库中作为用于批量特征计算的数据;
管理服务器将预先存入离线数据库的至少一部分数据作为用于批量特征计算的数据。
作为示例,实时数据库是内存数据库。
作为示例,所述方法还包括:由管理服务器验证所述脚本是否存在语法错误,和/或,基于至少一部分数据来调试与所述脚本对应的至少一部分中间运行结果和/或最终运行结果。
在本公开中,上述内容还可以表述为,所述方法还包括以下步骤中的至少一个步骤:
由管理服务器验证所述脚本是否存在语法错误;
基于至少一部分数据来调试与所述脚本对应的至少一部分中间运行结果;
基于至少一部分数据来调试与所述脚本对应的至少一部分最终运行结果。
作为示例,所述方法还包括:由管理服务器在接收到用于实时特征计算的至少一条数据并且实时计算计划被执行时,将所述至少一条数据发送给被选择的实时特征计算单元,其中,所述至少一条数据符合与实时特征计算对应的数据字段结构;由被选择的实时特征计算单元在接收到所述至少一条数据时向实时数据库请求窗口数据,并且基于窗口数据以及所述脚本进行实时特征计算,其中,所述窗口数据包含实时数据库的数据的全部或部分数据字段。
作为示例,进行批量特征计算的步骤包括:由所述一个或更多个分布式计算单元基于离线数据库的数据存储路径来获取离线数据库存储的数据,并且基于获取的数据、所述脚本来执行批量特征计算,并且将批量特征计算执行状态发送给批量特征计算单元,其中,所述方法还包括:在管理服务器接收到批量特征计算执行状态查询请求时,由管理服务器从批量特征计算单元获取批量特征计算执行状态。
作为示例,批量特征计算的计算结果用于模型训练或批量预估,实时特征计算的计算结果用于基于训练的模型的预测,所述预测包括在线预测。
作为示例,所述方法还包括:当所述脚本通过管理服务器被运行时,将所述脚本转化为批量特征计算单元、分布式计算单元和/或实时特征计算单元能够执行且当被执行时实现所述脚本所包含的特征计算逻辑的代码。
在本公开中,上述内容还可以表述为:所述脚本通过管理服务器运行所 述脚本,将所述脚本转化为批量特征计算单元、分布式计算单元和实时特征计算单元之中的至少一个能够执行且当被执行时实现所述脚本所包含的特征计算逻辑的代码。
作为示例,当所述脚本被运行时,由批量特征计算单元、分布式计算单元和/或实时特征计算单元解析出所述脚本中所包含的特征计算逻辑。
在本公开中,上述内容还可以表述为:当所述脚本被运行时,批量特征计算单元、分布式计算单元和实时特征计算单元之中的至少一个解析出所述脚本中所包含的特征计算逻辑。
应该理解,根据本公开示例性实施例的用于批量和实时特征计算的方法的具体实现方式可参照结合图1至图3描述的相关具体实现方式来实现,在此不再赘述。
根据本公开示例性实施例的用于批量和实时特征计算的系统所包括的单元或服务器可被分别配置为执行特定功能的软件、硬件、固件或上述项的任意组合。例如,这些单元或服务器可对应于专用的集成电路,也可对应于纯粹的软件代码,还可对应于软件与硬件相结合的模块。此外,这些单元或服务器所实现的一个或多个功能也可由物理实体设备(例如,处理器、客户端或服务器等)中的组件来统一执行。
应理解,根据本公开示例性实施例的用于批量和实时特征计算的方法可通过记录在计算可读介质上的程序来实现,例如,根据本公开的示例性实施例,可提供一种用于批量和实时特征计算的计算机可读介质。作为示例,提供的计算机可读介质可以为多个计算机可读介质,多个计算机可读介质分别部署在管理服务器、离线数据库、实时数据库、批量特征计算单元、分布式计算单元以及实时特征计算单元中。
其中,在每个计算机可读介质上记录有用于执行以下方法对应步骤的计算机程序:由管理服务器接收包含特征计算逻辑的脚本;由离线数据库存储用于批量特征计算的数据;由实时数据库从离线数据库获取并存储用于实时特征计算的数据;在批量特征计算场景下,由管理服务器从注册到管理服务器的批量特征计算单元中选择用于批量特征计算的批量特征计算单元以启动批量特征计算,当批量特征计算单元被选择以启动批量特征计算时,由批量特征计算单元产生批量计算任务,将所述批量计算任务发送给一个或更多个分布式计算单元,并且由所述一个或更多个分布式计算单元执行所述批量计算任务,以基于所述脚本和离线数据库存储的数据进行批量特征计算;在实时特征计算场景下,由管理服务器向注册到管理服务器的实时特征计算单元部署所述脚本以产生实时计算计划,并且从注册到管理服务器的实时特征计算单元中选择在执行实时计算计划时使用的实时特征计算单元,当实时特征计算单元被选择以执行实时计算计划时,由被选择的实时特征计算单元基于实时数据库存储的数据和所述脚本进行实时特征计算;其中,包含所述特征计算逻辑的脚本针对批量特征计算逻辑和实时特征计算逻辑具有统一性。
上述计算机可读介质中的计算机程序可在诸如客户端、主机、代理装置、 服务器等计算机设备中部署的环境中运行,应注意,所述计算机程序还可用于执行除了上述步骤以外的附加步骤或者在执行上述步骤时执行更为具体的处理,这些附加步骤和进一步处理的内容已经参照图1至图3进行了描述,这里为了避免重复将不再进行赘述。
应注意,根据本公开示例性实施例的用于批量和实时特征计算的系统可完全依赖计算机程序的运行来实现相应的功能,即,各个单元或服务器与计算机程序的功能架构相应,使得整个系统通过专门的软件包(例如,lib库)而被调用,以实现相应的功能。
另一方面,根据本公开示例性实施例的用于批量和实时特征计算的系统所包括的各个单元或服务器也可以通过硬件、软件、固件、中间件、微代码或其任意组合来实现。当以软件、固件、中间件或微代码实现时,用于执行相应操作的程序代码或者代码段可以存储在诸如存储介质的计算机可读介质中,使得处理器可通过读取并运行相应的程序代码或者代码段来执行相应的操作。
例如,本公开的示例性实施例还可以实现为计算装置,该计算装置包括存储部件和处理器,存储部件中存储有计算机可执行指令集合,当所述计算机可执行指令集合被所述处理器执行时,执行用于批量和实时特征计算的方法。
在此需要说明的是,该计算装置与上述的管理服务器中的计算装置不同。具体来说,该计算装置可以执行上述的管理服务器、离线数据库、实时数据库、批量特征计算单元、分布式计算单元以及实时特征计算单元中的任意一个所执行的步骤,而上述管理服务器中的计算装置仅执行管理服务器所执行的步骤。
具体说来,所述计算装置可以部署在服务器或客户端中,也可以部署在分布式网络环境中的节点装置上。此外,所述计算装置可以是PC计算机、平板装置、个人数字助理、智能手机、web应用或其他能够执行上述指令集合的装置。
这里,所述计算装置并非必须是单个的计算装置,还可以是任何能够单独或联合执行上述指令(或指令集)的装置或电路的集合体。计算装置还可以是集成控制系统或系统管理器的一部分,或者可被配置为与本地或远程(例如,经由无线传输)以接口互联的便携式电子装置。
在所述计算装置中,处理器可包括中央处理器(CPU)、图形处理器(GPU)、可编程逻辑装置、专用处理器系统、微控制器或微处理器。作为示例而非限制,处理器还可包括模拟处理器、数字处理器、微处理器、多核处理器、处理器阵列、网络处理器等。
根据本公开示例性实施例的用于批量和实时特征计算的方法中所描述的某些操作可通过软件方式来实现,某些操作可通过硬件方式来实现,此外,还可通过软硬件结合的方式来实现这些操作。
处理器可运行存储在存储部件之一中的指令或代码,其中,所述存储部 件还可以存储数据。指令和数据还可经由网络接口装置而通过网络被发送和接收,其中,所述网络接口装置可采用任何已知的传输协议。
存储部件可与处理器集成为一体,例如,将RAM或闪存布置在集成电路微处理器等之内。此外,存储部件可包括独立的装置,诸如,外部盘驱动、存储阵列或任何数据库系统可使用的其他存储装置。存储部件和处理器可在操作上进行耦合,或者可例如通过I/O端口、网络连接等互相通信,使得处理器能够读取存储在存储部件中的文件。
此外,所述计算装置还可包括视频显示器(诸如,液晶显示器)和用户交互接口(诸如,键盘、鼠标、触摸输入装置等)。计算装置的所有组件可经由总线和/或网络而彼此连接。
根据本公开示例性实施例的用于批量和实时特征计算的方法所涉及的操作可被描述为各种互联或耦合的功能块或功能示图。然而,这些功能块或功能示图可被均等地集成为单个的逻辑装置或按照非确切的边界进行操作。
例如,如上所述,根据本公开示例性实施例的用于批量和实时特征计算的计算装置可包括存储部件和处理器,其中,存储部件中存储有计算机可执行指令集合,当所述计算机可执行指令集合被所述处理器执行时,执行下述步骤:由管理服务器接收包含特征计算逻辑的脚本;由离线数据库存储用于批量特征计算的数据;由实时数据库从离线数据库获取并存储用于实时特征计算的数据;在批量特征计算场景下,由管理服务器从注册到管理服务器的批量特征计算单元中选择用于批量特征计算的批量特征计算单元以启动批量特征计算,当批量特征计算单元被选择以启动批量特征计算时,由批量特征计算单元产生批量计算任务,将所述批量计算任务发送给一个或更多个分布式计算单元,并且由所述一个或更多个分布式计算单元执行所述批量计算任务,以基于所述脚本和离线数据库存储的数据进行批量特征计算;在实时特征计算场景下,由管理服务器向注册到管理服务器的实时特征计算单元部署所述脚本以产生实时计算计划,并且从注册到管理服务器的实时特征计算单元中选择在执行实时计算计划时使用的实时特征计算单元,当实时特征计算单元被选择以执行实时计算计划时,由被选择的实时特征计算单元基于实时数据库存储的数据和所述脚本进行实时特征计算;其中,包含所述特征计算逻辑的脚本针对批量特征计算逻辑和实时特征计算逻辑具有统一性。
以上描述了本公开的各示例性实施例,应理解,上述描述仅是示例性的,并非穷尽性的,本公开不限于所披露的各示例性实施例。在不偏离本公开的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。因此,本公开的保护范围应该以权利要求的范围为准。
工业实用性
本公开提供的用于批量和实时特征计算的系统和方法可基于统一的脚本和关联的两种数据库同时支持批量特征计算和实时特征计算,可解决机器学习场景下批量特征计算逻辑和实时特征计算逻辑不统一以及批量特征处理的离线数据库和实时特征处理的实时数据库分离的问题。

Claims (30)

  1. 一种用于批量和实时特征计算的系统,其中,所述系统包括:
    管理服务器,接收包含特征计算逻辑的脚本,在批量特征计算场景下,从注册到管理服务器的批量特征计算单元中选择用于批量特征计算的批量特征计算单元以启动批量特征计算,并且在实时特征计算场景下,向注册到管理服务器的实时特征计算单元部署所述脚本以产生实时计算计划,并从注册到管理服务器的实时特征计算单元中选择在执行实时计算计划时使用的实时特征计算单元,其中,包含所述特征计算逻辑的脚本针对批量特征计算逻辑和实时特征计算逻辑具有统一性;
    一个或更多个批量特征计算单元,当被启动时注册到管理服务器,并且当被选择以启动批量特征计算时产生批量计算任务,并且将所述批量计算任务发送给一个或更多个分布式计算单元;
    所述一个或更多个分布式计算单元,执行所述批量计算任务,以基于所述脚本和离线数据库存储的数据进行批量特征计算;
    一个或更多个实时特征计算单元,当被启动时注册到管理服务器,并且当被选择以执行实时计算计划时,基于实时数据库存储的数据和所述脚本进行实时特征计算;
    离线数据库,存储用于批量特征计算的数据;
    实时数据库,从离线数据库获取并存储用于实时特征计算的数据。
  2. 根据权利要求1所述的系统,其中,所述离线数据库中的数据和所述实时数据库中的数据至少部分同步,
    其中,所述实时数据库与所述离线数据库定时或响应于用户触发而基于数据变化或者基于主从同步机制进行数据同步。
  3. 根据权利要求2所述的系统,包括以下至少一项:
    所述实时数据库是内存数据库;
    所述管理服务器还初始化所述实时数据库,以获取与实时特征计算对应的数据字段结构;
    所述管理服务器还接收用户导入的原始数据并且将原始数据存储到离线数据库中作为用于批量特征计算的数据,或者所述管理服务器还将预先存入所述离线数据库的至少一部分数据作为用于批量特征计算的数据。
  4. 根据权利要求1所述的系统,包括以下至少一项:
    所述管理服务器还验证所述脚本是否存在语法错误;
    所述管理服务器基于至少一部分数据来调试与所述脚本对应的至少一部分中间运行结果和最终运行结果之中的至少一个。
  5. 根据权利要求3所述的系统,其中,所述管理服务器还在接收到用于实时特征计算的至少一条数据并且实时计算计划被执行时,将所述至少一条数据发送给被选择的实时特征计算单元,其中,所述至少一条数据符合与实时特征计算对应的数据字段结构,
    其中,所述实时特征计算单元在接收到所述至少一条数据时向实时数据库请求窗口数据,并且基于窗口数据以及所述脚本进行实时特征计算,
    其中,所述窗口数据包含所述实时数据库的数据的全部或部分数据字段。
  6. 根据权利要求1所述的系统,其中,所述一个或更多个分布式计算单元基于所述离线数据库的数据存储路径来获取所述离线数据库存储的数据,并且基于获取的数据、所述脚本来执行批量特征计算,并且将批量特征计算执行状态发送给批量特征计算单元,
    其中,所述管理服务器在接收到批量特征计算执行状态查询请求时,从所述批量特征计算单元获取批量特征计算执行状态。
  7. 根据权利要求1所述的系统,其中,批量特征计算的计算结果用于模型训练或批量预估,实时特征计算的计算结果用于基于训练的模型的预测,所述预测包括在线预测。
  8. 根据权利要求1所述的系统,其中,当所述脚本通过所述管理服务器被运行时,所述脚本被转化为所述批量特征计算单元、所述分布式计算单元和所述实时特征计算单元之中的至少一个能够执行且当被执行时实现所述脚本所包含的特征计算逻辑的代码。
  9. 根据权利要求1所述的系统,其中,当所述脚本被运行时,所述批量特征计算单元、所述分布式计算单元和所述实时特征计算单元之中的至少一个解析出所述脚本中所包含的特征计算逻辑。
  10. 一种用于批量和实时特征计算的方法,其中,所述方法包括:
    接收包含特征计算逻辑的脚本;
    在批量特征计算场景下,从注册到管理服务器的批量特征计算单元中选择用于批量特征计算的批量特征计算单元以启动批量特征计算,以使被选择的批量特征计算单元产生批量计算任务,将所述批量计算任务发送给一个或更多个分布式计算单元,以使所述一个或更多个分布式计算单元执行所述批量计算任务,以基于所述脚本和离线数据库存储的数据进行批量特征计算;
    在实时特征计算场景下,向注册到管理服务器的实时特征计算单元部署所述脚本以产生实时计算计划,并且从注册到管理服务器的实时特征计算单元中选择在执行实时计算计划时使用的实时特征计算单元,以使被选择的实时特征计算单元基于实时数据库存储的数据和所述脚本进行实时特征计算;
    其中,包含所述特征计算逻辑的脚本针对批量特征计算逻辑和实时特征计算逻辑具有统一性,离线数据库存储的数据为用于批量特征计算的数据;实时数据库存储的数据为从离线数据库获取的用于实时特征计算的数据。
  11. 根据权利要求10所述的方法,其中,
    所述所述实时数据库与所述离线数据库定时或响应于用户触发而基于数据变化或者基于主从同步机制进行至少部分数据的数据同步。
  12. 根据权利要求11所述的方法,其中,所述方法还包括以下步骤中的至少一个步骤:
    初始化所述实时数据库,以获取与实时特征计算对应的数据字段结构;
    接收用户导入的原始数据并且将原始数据存储到所述离线数据库中作为用于批量特征计算的数据,或者将预先存入所述离线数据库的至少一部分数据作为用于批量特征计算的数据。
  13. 根据权利要求11所述的方法,其中,所述实时数据库是内存数据库。
  14. 根据权利要求10所述的方法,其中,所述方法还包括以下步骤中的至少一个步骤:
    验证所述脚本是否存在语法错误;
    基于至少一部分数据来调试与所述脚本对应的至少一部分中间运行结果;
    基于至少一部分数据来调试与所述脚本对应的至少一部分最终运行结果。
  15. 根据权利要求12所述的方法,其中,所述方法还包括:
    在接收到用于实时特征计算的至少一条数据并且实时计算计划被执行时,将所述至少一条数据发送给被选择的实时特征计算单元,以使被选择的实时特征计算单元在接收到所述至少一条数据时向实时数据库请求窗口数据,并且基于窗口数据以及所述脚本进行实时特征计算,
    其中,所述至少一条数据符合与实时特征计算对应的数据字段结构,所述窗口数据包含所述实时数据库的数据的全部或部分数据字段。
  16. 根据权利要求10所述的方法,其中,所述一个或更多个分布式计算单元基于所述离线数据库的数据存储路径来获取所述离线数据库存储的数据,并且基于获取的数据、所述脚本来执行批量特征计算,并且将批量特征计算执行状态发送给所述批量特征计算单元;
    其中,所述方法还包括:在接收到批量特征计算执行状态查询请求时,从所述批量特征计算单元获取批量特征计算执行状态。
  17. 根据权利要求10所述的方法,其中,批量特征计算的计算结果用于模型训练或批量预估,实时特征计算的计算结果用于基于训练的模型的预测,所述预测包括在线预测。
  18. 根据权利要求10所述的方法,其中,所述方法还包括:
    运行所述脚本,将所述脚本转化为所述批量特征计算单元、所述分布式计算单元和所述实时特征计算单元之中的至少一个能够执行、且当被执行时实现所述脚本所包含的特征计算逻辑的代码。
  19. 根据权利要求10所述的方法,其中,
    当所述脚本被运行时,所述批量特征计算单元、所述分布式计算单元和所述实时特征计算单元之中的至少一个解析出所述脚本中所包含的特征计算逻辑。
  20. 一种包括至少一个计算装置和至少一个存储指令的存储装置的管理服务器,其中,所述指令在被所述至少一个计算装置运行时,促使所述至少一个计算装置执行用于批量和实时特征计算的方法的以下步骤:
    接收包含特征计算逻辑的脚本;
    在批量特征计算场景下,从注册到管理服务器的批量特征计算单元中选择用于批量特征计算的批量特征计算单元以启动批量特征计算,以使被选择 的批量特征计算单元产生批量计算任务,将所述批量计算任务发送给一个或更多个分布式计算单元,以使所述一个或更多个分布式计算单元执行所述批量计算任务,以基于所述脚本和离线数据库存储的数据进行批量特征计算;
    在实时特征计算场景下,向注册到管理服务器的实时特征计算单元部署所述脚本以产生实时计算计划,并且从注册到管理服务器的实时特征计算单元中选择在执行实时计算计划时使用的实时特征计算单元,以使被选择的实时特征计算单元基于实时数据库存储的数据和所述脚本进行实时特征计算;
    其中,包含所述特征计算逻辑的脚本针对批量特征计算逻辑和实时特征计算逻辑具有统一性,离线数据库存储的数据为用于批量特征计算的数据;实时数据库存储的数据为从离线数据库获取的用于实时特征计算的数据。
  21. 根据权利要求20所述的管理服务器,其中,
    所述实时数据库与所述离线数据库定时或响应于用户触发而基于数据变化或者基于主从同步机制进行至少部分数据的数据同步。
  22. 根据权利要求21所述的管理服务器,其中,所述指令在被所述至少一个计算装置运行时,促使所述至少一个计算装置执行以下至少一个步骤中的至少一个步骤:
    初始化所述实时数据库,以获取与实时特征计算对应的数据字段结构;
    接收用户导入的原始数据并且将原始数据存储到所述离线数据库中作为用于批量特征计算的数据,或者将预先存入所述离线数据库的至少一部分数据作为用于批量特征计算的数据。
  23. 根据权利要求21所述的管理服务器,其中,所述实时数据库是内存数据库。
  24. 根据权利要求20所述的管理服务器,其中,所述指令在被所述至少一个计算装置运行时,促使所述至少一个计算装置执行以下步骤中的至少一个步骤:
    验证所述脚本是否存在语法错误;
    基于至少一部分数据来调试与所述脚本对应的至少一部分中间运行结果;
    基于至少一部分数据来调试与所述脚本对应的至少一部分最终运行结果。
  25. 根据权利要求22所述的管理服务器,其中,所述指令在被所述至少一个计算装置运行时,促使所述至少一个计算装置执行以下步骤:
    在接收到用于所述实时特征计算的至少一条数据并且实时计算计划被执行时,将所述至少一条数据发送给被选择的实时特征计算单元,以使被选择的实时特征计算单元在接收到所述至少一条数据时向实时数据库请求窗口数据,并且基于窗口数据以及所述脚本进行实时特征计算,
    其中,所述至少一条数据符合与实时特征计算对应的数据字段结构,所述窗口数据包含所述实时数据库的数据的全部或部分数据字段。
  26. 根据权利要求20所述的管理服务器,其中,所述一个或更多个分布式计算单元基于所述离线数据库的数据存储路径来获取所述离线数据库存储的数据,并且基于获取的数据、所述脚本来执行批量特征计算,并且将批量 特征计算执行状态发送给所述批量特征计算单元,
    其中,所述指令在被所述至少一个计算装置运行时,促使所述至少一个计算装置执行以下步骤:在接收到批量特征计算执行状态查询请求时,从所述批量特征计算单元获取批量特征计算执行状态。
  27. 根据权利要求20所述的管理服务器,其中,批量特征计算的计算结果用于模型训练或批量预估,实时特征计算的计算结果用于基于训练的模型的预测,所述预测包括在线预测。
  28. 根据权利要求20所述的管理服务器,其中,所述指令在被所述至少一个计算装置运行时,促使所述至少一个计算装置执行以下步骤:
    运行所述脚本,将所述脚本转化为所述批量特征计算单元、所述分布式计算单元和所述实时特征计算单元之中的至少一个能够执行、且当被执行时实现所述脚本所包含的特征计算逻辑的代码。
  29. 根据权利要求20所述的管理服务器,其中,当所述脚本被运行时,所述批量特征计算单元、所述分布式计算单元和所述实时特征计算单元之中的至少一个解析出所述脚本中所包含的特征计算逻辑。
  30. 一种存储指令的计算机可读存储介质,其中,当所述指令被至少一个计算装置运行时,促使所述至少一个计算装置执行如权利要求10-19中任意一项权利要求所述的方法。
PCT/CN2020/111412 2019-08-26 2020-08-26 用于批量和实时特征计算的系统和方法 WO2021037066A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP20857623.1A EP4024228A4 (en) 2019-08-26 2020-08-26 SYSTEM AND METHOD FOR CALCULATING BATCH AND REAL-TIME CHARACTERISTICS
US17/639,125 US11971882B2 (en) 2019-08-26 2020-08-26 System and method for batch and real-time feature computation

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910789592.2A CN110502579A (zh) 2019-08-26 2019-08-26 用于批量和实时特征计算的系统和方法
CN201910789592.2 2019-08-26

Publications (1)

Publication Number Publication Date
WO2021037066A1 true WO2021037066A1 (zh) 2021-03-04

Family

ID=68589459

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2020/111412 WO2021037066A1 (zh) 2019-08-26 2020-08-26 用于批量和实时特征计算的系统和方法

Country Status (4)

Country Link
US (1) US11971882B2 (zh)
EP (1) EP4024228A4 (zh)
CN (1) CN110502579A (zh)
WO (1) WO2021037066A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020197925A1 (en) * 2019-03-26 2020-10-01 Rambus Inc. Multiple precision memory system
CN110502579A (zh) 2019-08-26 2019-11-26 第四范式(北京)技术有限公司 用于批量和实时特征计算的系统和方法
CN111651524B (zh) * 2020-06-05 2023-10-03 第四范式(北京)技术有限公司 利用机器学习模型进行线上预测的辅助实现方法及装置
CN112597213B (zh) * 2020-12-24 2023-11-10 第四范式(北京)技术有限公司 特征计算的批请求处理方法、装置、电子设备及存储介质
CN112597121A (zh) * 2020-12-25 2021-04-02 北京知因智慧科技有限公司 逻辑脚本的处理方法、装置、电子设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8156119B2 (en) * 2009-01-19 2012-04-10 Microsoft Corporation Smart attribute classification (SAC) for online reviews
US20150278706A1 (en) * 2014-03-26 2015-10-01 Telefonaktiebolaget L M Ericsson (Publ) Method, Predictive Analytics System, and Computer Program Product for Performing Online and Offline Learning
CN105488662A (zh) * 2016-01-07 2016-04-13 北京歌利沃夫企业管理有限公司 一种基于双向推荐的在线招聘系统
CN109597842A (zh) * 2018-12-14 2019-04-09 深圳前海微众银行股份有限公司 数据实时计算方法、装置、设备及计算机可读存储介质
CN109918048A (zh) * 2018-12-27 2019-06-21 北京奇艺世纪科技有限公司 目标对象提取方法、装置、系统及计算机可读存储介质
CN110502579A (zh) * 2019-08-26 2019-11-26 第四范式(北京)技术有限公司 用于批量和实时特征计算的系统和方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014145059A2 (en) * 2013-03-15 2014-09-18 Bell Tyler Apparatus, systems, and methods for analyzing movements of target entities
US20140297744A1 (en) * 2013-04-02 2014-10-02 Microsoft Corporation Real-time supplement of segmented data for user targeting
US20170076323A1 (en) * 2015-09-11 2017-03-16 Adobe Systems Incorporated Matching devices with entities using real-time data and batch-processed data
US10387798B2 (en) * 2015-12-16 2019-08-20 Accenture Global Solutions Limited Machine for development of analytical models
US10586173B2 (en) 2016-01-27 2020-03-10 Bonsai AI, Inc. Searchable database of trained artificial intelligence objects that can be reused, reconfigured, and recomposed, into one or more subsequent artificial intelligence models
EP3440565A4 (en) * 2016-03-14 2019-10-09 Rubikloud Technologies Inc. METHOD AND SYSTEM FOR PERSISTING DATA
CN106469202A (zh) * 2016-08-31 2017-03-01 杭州探索文化传媒有限公司 一种影视大数据平台的数据分析方法
US10078337B1 (en) * 2017-07-14 2018-09-18 Uber Technologies, Inc. Generation of trip estimates using real-time data and historical data
CN108008942B (zh) * 2017-11-16 2020-04-07 第四范式(北京)技术有限公司 对数据记录进行处理的方法及系统
CN108228861B (zh) * 2018-01-12 2020-09-01 第四范式(北京)技术有限公司 用于执行机器学习的特征工程的方法及系统
CN108519914B (zh) * 2018-04-09 2021-10-26 腾讯科技(深圳)有限公司 大数据计算方法、系统和计算机设备
CN111949349A (zh) * 2018-08-21 2020-11-17 第四范式(北京)技术有限公司 统一地执行特征抽取的方法及系统
CN109656914A (zh) * 2018-11-07 2019-04-19 上海前隆信息科技有限公司 线上线下混合的风控建模训练和生产发布方法及系统
CN109767255B (zh) * 2018-12-06 2023-05-12 东莞团贷网互联网科技服务有限公司 一种通过大数据建模实现智能运营及精准营销的方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8156119B2 (en) * 2009-01-19 2012-04-10 Microsoft Corporation Smart attribute classification (SAC) for online reviews
US20150278706A1 (en) * 2014-03-26 2015-10-01 Telefonaktiebolaget L M Ericsson (Publ) Method, Predictive Analytics System, and Computer Program Product for Performing Online and Offline Learning
CN105488662A (zh) * 2016-01-07 2016-04-13 北京歌利沃夫企业管理有限公司 一种基于双向推荐的在线招聘系统
CN109597842A (zh) * 2018-12-14 2019-04-09 深圳前海微众银行股份有限公司 数据实时计算方法、装置、设备及计算机可读存储介质
CN109918048A (zh) * 2018-12-27 2019-06-21 北京奇艺世纪科技有限公司 目标对象提取方法、装置、系统及计算机可读存储介质
CN110502579A (zh) * 2019-08-26 2019-11-26 第四范式(北京)技术有限公司 用于批量和实时特征计算的系统和方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP4024228A4

Also Published As

Publication number Publication date
US11971882B2 (en) 2024-04-30
EP4024228A1 (en) 2022-07-06
CN110502579A (zh) 2019-11-26
US20220292083A1 (en) 2022-09-15
EP4024228A4 (en) 2022-11-02

Similar Documents

Publication Publication Date Title
WO2021037066A1 (zh) 用于批量和实时特征计算的系统和方法
US10901961B2 (en) Systems and methods for generating schemas that represent multiple data sources
EP3842948B1 (en) Method and apparatus for testing edge computing, device, and readable storage medium
US10387798B2 (en) Machine for development of analytical models
KR101621137B1 (ko) 아파치 하둡을 위한 로우 레이턴시 쿼리 엔진
US8321450B2 (en) Standardized database connectivity support for an event processing server in an embedded context
US8387076B2 (en) Standardized database connectivity support for an event processing server
JP5298117B2 (ja) 分散コンピューティングにおけるデータマージング
US9659012B2 (en) Debugging framework for distributed ETL process with multi-language support
US20160292591A1 (en) Streamlined analytic model training and scoring system
AU2017327824B2 (en) Data integration job conversion
CN107273979B (zh) 基于服务级别来执行机器学习预测的方法及系统
US11928130B2 (en) Automated performing of replication tasks in a multiple database system
US10949218B2 (en) Generating an execution script for configuration of a system
US20190361999A1 (en) Data analysis over the combination of relational and big data
US20220327012A1 (en) Software validation framework
US20190213007A1 (en) Method and device for executing the distributed computation task
WO2020038376A1 (zh) 统一地执行特征抽取的方法及系统
Wang et al. Flint: A platform for federated learning integration
JP2015035216A (ja) アプリケーションプログラムサーチの方法及びそのシステム
CN111523676B (zh) 辅助机器学习模型上线的方法及装置
US11853196B1 (en) Artificial intelligence driven testing
US20220107817A1 (en) Dynamic System Parameter for Robotics Automation
US20170161359A1 (en) Pattern-driven data generator
Sagaama et al. Automatic parameter tuning for big data pipelines with deep reinforcement learning

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20857623

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2020857623

Country of ref document: EP

Effective date: 20220328