CN111104214B - 一种工作流应用方法及装置 - Google Patents

一种工作流应用方法及装置 Download PDF

Info

Publication number
CN111104214B
CN111104214B CN201911362036.3A CN201911362036A CN111104214B CN 111104214 B CN111104214 B CN 111104214B CN 201911362036 A CN201911362036 A CN 201911362036A CN 111104214 B CN111104214 B CN 111104214B
Authority
CN
China
Prior art keywords
operator
called
data
workflow
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
Application number
CN201911362036.3A
Other languages
English (en)
Other versions
CN111104214A (zh
Inventor
方磊
杨睿辰
胡宗星
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Zetyun Tech Co ltd
Original Assignee
Beijing Zetyun Tech Co ltd
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 Beijing Zetyun Tech Co ltd filed Critical Beijing Zetyun Tech Co ltd
Priority to CN201911362036.3A priority Critical patent/CN111104214B/zh
Publication of CN111104214A publication Critical patent/CN111104214A/zh
Application granted granted Critical
Publication of CN111104214B publication Critical patent/CN111104214B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Abstract

本发明提供了一种工作流应用方法及装置,其中该方法包括:响应于工作流构建指令,解析用户输入的简易代码,得到被调用算子标识和被调用算子参数;根据所述被调用算子标识和被调用算子参数,调用算子,以构建工作流;基于所述工作流处理实时流数据。本发明可以通过编码规则简单的简易代码实现工作流的构建和应用,简化了构建和应用工作流的复杂度,降低对用户的要求,提高了用户体验性。

Description

一种工作流应用方法及装置
技术领域
本发明涉及大数据处理领域,尤其涉及一种工作流应用方法及装置。
背景技术
随着机器学习的兴起,算法模型具有充分训练后预测时间短,预测准确率高的优点,其在人工智能领域的应用越来越广泛,尤其在复杂问题领域,如NLP(Natural LanguageProcessing,自然语言处理),CV(Computer Vision,计算机视觉),自动驾驶,人脸识别等场景有着良好的表现。
现有数据分析系统中,都需要相对复杂的编码才能构建算法模型,在构建算法模型时还需要调整复杂的参数,对各个领域的算法工程人员有一定专业要求。
因此,现有的算法模型通常需要通过相对复杂的编码的方式来构建,对算法工程人员的专业要求高。
发明内容
为了解决上述技术问题,本发明提供一种工作流应用方法及装置,以解决现有技术中现有的算法模型通常需要通过相对复杂的编码的方式来构建,对算法工程人员的专业要求高的技术问题。
本发明实施例提供一种工作流应用方法,所述方法包括:响应于工作流构建指令,解析用户输入的简易代码,得到被调用算子标识和被调用算子参数;根据所述被调用算子标识和被调用算子参数,调用算子,以构建工作流;基于所述工作流处理实时流数据。
在一种可能的实现方式中,被调用算子包括以下至少一项:数据接收算子、特征工程算子、模型应用算子、数据输出算子。
在一种可能的实现方式中,所述工作流包括多个被调用算子,被调用算子参数包括调用顺序参数,所述根据所述被调用算子标识和被调用算子参数,调用算子,以构建工作流,包括:通过各个被调用算子的调用顺序参数确定的算子调用顺序,依次调用对应于被调用算子标识的算子,以构建工作流。
在一种可能的实现方式中,所述调用顺序参数包括上游算子标识和/或下游算子标识。
在一种可能的实现方式中,所述根据所述被调用算子标识和被调用算子参数,调用算子,以构建工作流,包括:根据所述被调用算子标识和被调用算子参数,确定被调用的模型应用算子和模型,适配模型的代码框架解析模型,以构建工作流。
在一种可能的实现方式中,所述工作流包括多个算子和各算子之间的连接关系。
在一种可能的实现方式中,所述被调用算子参数包括数据窗口参数,所述基于所述工作流处理实时流数据包括:基于所述工作流,并根据所述数据窗口参数处理实时流数据。
在一种可能的实现方式中,所述被调用算子参数包括数据窗口调整参数,所述方法还包括:根据所述数据窗口调整参数调整所述数据窗口参数。
在一种可能的实现方式中,所述被调用算子参数包括数据格式转换参数,所述方法还包括:根据所述数据格式转换参数对接收到的数据进行格式转换;和/或根据所述数据格式转换参数对待输出的数据进行格式转换。
在一种可能的实现方式中,所述被调用算子包括数据接收算子时,所述被调用算子参数包括用于配置数据接收算子的数据输入地址参数;所述被调用算子包括数据输出算子时,所述被调用算子参数包括用于配置数据输出算子的数据输出地址参数。
在一种可能的实现方式中,所述特征工程算子包括以下至少一项:独热编码算子、特征合并算子、缺失值填充算子、去重算子、过滤算子、异常行删除算子、数据聚合处理算子、特征压缩算子、特征扩展算子。
在一种可能的实现方式中,所述响应于工作流构建指令,解析用户输入的简易代码,得到被调用算子标识和被调用算子参数,包括:响应于工作流构建指令,基于预设的代码解析规则,解析简易代码中的多个代码片段,得到被调用算子标识和被调用算子参数。
在一种可能的实现方式中,所述代码片段包括以下至少一项:元信息代码片段、结构信息代码片段、扩展属性代码片段、调用顺序代码片段。
在一种可能的实现方式中,响应于工作流构建指令,解析用户输入的简易代码,得到被调用算子标识和被调用算子参数之前,所述方法还包括:在用户输入简易代码的情况下,根据完成输入的代码片段输出代码编写提示。
本发明实施例还提供一种工作流应用装置,所述装置包括:解析模块,用于响应于工作流构建指令,解析用户输入的简易代码,得到被调用算子标识和被调用算子参数;调用模块,用于根据所述被调用算子标识和被调用算子参数,调用算子,以构建工作流;处理模块,用于基于所述工作流处理实时流数据。
在一种可能的实现方式中,被调用算子包括以下至少一项:数据接收算子、特征工程算子、模型应用算子、数据输出算子。
在一种可能的实现方式中,所述工作流包括多个被调用算子,被调用算子参数包括调用顺序参数,所述调用模块包括:第一调用单元,用于通过各个被调用算子的调用顺序参数确定的算子调用顺序,依次调用对应于被调用算子标识的算子,以构建工作流。
在一种可能的实现方式中,所述调用顺序参数包括上游算子标识和/或下游算子标识。
在一种可能的实现方式中,所述调用模块包括:第二调用单元,用于根据所述被调用算子标识和被调用算子参数,确定被调用的模型应用算子和模型,适配模型的代码框架解析模型,以构建工作流。
在一种可能的实现方式中,所述工作流包括多个算子和各算子之间的连接关系。
在一种可能的实现方式中,所述被调用算子参数包括数据窗口参数,所述处理模块包括:处理单元,用于基于所述工作流,并根据所述数据窗口参数处理实时流数据。
在一种可能的实现方式中,所述被调用算子参数包括数据窗口调整参数,所述装置还包括:参数调整模块,用于根据所述数据窗口调整参数调整所述数据窗口参数。
在一种可能的实现方式中,所述被调用算子参数包括数据格式转换参数,所述装置还包括:第一格式转换模块,用于根据所述数据格式转换参数对接收到的数据进行格式转换;和/或第二格式转换模块,用于根据所述数据格式转换参数对待输出的数据进行格式转换。
在一种可能的实现方式中,所述被调用算子包括数据接收算子时,所述被调用算子参数包括用于配置数据接收算子的数据输入地址参数;所述被调用算子包括数据输出算子时,所述被调用算子参数包括用于配置数据输出算子的数据输出地址参数。
在一种可能的实现方式中,所述特征工程算子包括以下至少一项:独热编码算子、特征合并算子、缺失值填充算子、去重算子、过滤算子、异常行删除算子、数据聚合处理算子、特征压缩算子、特征扩展算子。
在一种可能的实现方式中,所述解析模块包括:解析单元,用于响应于工作流构建指令,基于预设的代码解析规则,解析简易代码中的多个代码片段,得到被调用算子标识和被调用算子参数。
在一种可能的实现方式中,所述代码片段包括以下至少一项:元信息代码片段、结构信息代码片段、扩展属性代码片段、调用顺序代码片段。
在一种可能的实现方式中,所述装置还包括:提示模块,用于在用户输入简易代码的情况下,根据完成输入的代码片段输出代码编写提示。
本发明实施例还提供一种工作流应用系统,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述工作流应用方法。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述工作流应用方法。
本发明的上述技术方案的有益效果如下:用户可以通过编码规则简单的简易代码实现工作流的构建和应用,简化了构建和应用工作流的复杂度,降低对用户的要求,提高了用户体验性;同时,通过简易代码对算子中的数据窗口参数、数据窗口调整参数进行设置,进而使得算子可以将实时流数据划分为批数据再进行处理,提高高速缓存的使用效率,使得工作流快速高效的处理实时流数据;通过简易代码对模型应用算子适配不同的框架。
附图说明
图1表示本发明实施例的工作流应用方法的流程示意图;
图2为本发明实施例的完成构建的工作流的流程示意图;
图3为本发明实施例的完成构建的工作流的流程示意图;
图4为本发明实施例的工作流应用装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例的附图,对本发明实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于所描述的本发明的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,图1为本发明实施例的工作流应用方法的流程示意图,该方法包括:
步骤S110、响应于工作流构建指令,解析用户输入的简易代码,得到被调用算子标识和被调用算子参数;
步骤S120、根据所述被调用算子标识和被调用算子参数,调用算子,以构建工作流;
步骤S130、基于所述工作流处理实时流数据。
本实现方式中,所述工作流应用方法可以根据用户输入的简易代码自动构建并应用工作流,以简化构建和应用工作流的复杂度,降低对用户的要求,提高了用户体验性。
其中,所述用户可以是需要使用实时流数据处理系统构建并运行工作流的软件用户和/或软件程序开发人员。所述简易代码可以为符合本实现方式的默认的或自定义的代码解析规则、编写规则的较为简单的代码,本实现方式可以对简易代码进行解析得到相应的源代码,并运行所述源代码来构建和应用工作流。所述工作流构建指令可以在简易代码输入完成后发出,在接收到工作流构建指令后,开始解析简易代码。
在一种可能的实现方式中,所述工作流包括多个算子和各算子之间的连接关系。所述工作流用于处理连续不断的实时流数据,以保证数据处理的实时性。该工作流可以由不同类型的算子(被调用算子)组成,各个算子之间通过连接线进行连接;其中,算子可以用于对数据的处理和传输,以完成各计算规则/计算模型的计算抽象及用于上下游关联算子的数据传输。具体的,算子可以从指定的数据源(如消息队列,数据库,网络等)获取数据,可以将数据输出到指定的目的(消息队列,数据库,网络等),在接收到前一个算子输出的数据进行处理以后传输到下一个算子。本实现方式中,所述被调用算子可以是数据实时处理系统(RT系统)中已有的算子,包括系统默认的和/或用户自定义的算子。算子之间的连接线可以用于表示数据流向的逻辑关系。
图2为本发明实施例的完成构建的工作流的示意图,请参考图2,被调用算子包括以下至少一项:数据接收算子、特征工程算子、模型应用算子、数据输出算子。其中,所述数据接收算子,用于从数据源中获取数据;特征工程算子,用于对数据进行特征处理。具体的,所述特征工程算子包括以下至少一项:独热编码算子、特征合并算子、缺失值填充算子、去重算子、过滤算子、异常行删除算子、数据聚合处理算子、特征压缩算子、特征扩展算子。所述模型应用算子,可以用于利用完成训练的模型对获取的数据进行计算,生成待输出数据;所述数据输出算子,用于将所述待输出数据按预设方式输出。所述特征合并算子,用于将数据集/数据表中的多个字段调整为下游算子所需要的数据字段及字段名称,例如将多个特征合并为集合(例如map)格式的数据;同时,特征压缩算子用于将数据的存储格式由稀疏的存储格式转为稠密的存储格式;特征扩展算子,用于将数据的存储格式由稠密的存储格式转为稀疏的存储格式。
本实现方式中,所述被调用算子标识可以是用于识别算子的唯一标识;例如,被调用算子标识可以是算子的元信息,其中,元信息可以包括算子名称和算子的类名中的至少一项。被调用算子参数可以包括各种类型算子中的参数;例如,可以是用于表示工作流中被调用算子执行顺序的调用顺序参数;可以是用于对实时流数据进行分批处理的数据窗口参数;可以是用于格式转换的数据格式转换参数。确定被调用算子标识,可以利用(例如用Java读)简易代码中的字符串,对字符串进行切割和/或检索,确定关键字即唯一标识,也可以将简易代码保存成文件,并直接读取简易代码文件。
调用算子的过程中,可以根据调用算子标识从算子库中确定相应算子,并获取被调用算子参数,以完成构建工作流。
本实现方式中,所述工作流可以用于处理实时流数据的任意场景;例如实时计算场景,提供风险监控、精准营销、实时预警、数据处理分析等。例如用于风险监控,具体的包括风险控制、合规检查等,用于应用完成训练的模型对输入的流数据进行预测,判断是否属于欺诈行为、判断资金是否流入非法途径、判断是否异常交易等;又例如用于精准营销,具体的包括产品推荐、广告推荐等,用于应用完成训练的模型对输入的流数据进行预测,预估产品购买概率、广告点击概率等;又例如用于实时预警,具体的包括系统日志数据实时监控、舆情实时监控等,用于应用完成训练的模型对输入的流数据进行计算、分析,即进行实时的指标计算、实时的NLP自然语言处理,输出告警信息;又例如用于数据处理分析系统,具体的包括对输入的流数据进行抽取、转换、过滤等。
本实施例通过响应工作流构建指令,解析用户输入的简易代码,得到被调用算子标识和被调用算子参数;根据所述被调用算子标识和被调用算子参数,调用算子,以构建工作流;基于所述工作流处理实时流数据,简化了构建和应用工作流的复杂度,降低对用户的要求,提高了用户体验性。
在一种可能的实现方式中,所述工作流包括多个被调用算子,被调用算子参数包括调用顺序参数,所述根据所述被调用算子标识和被调用算子参数,调用算子,以构建工作流,包括:通过各个被调用算子的调用顺序参数确定的算子调用顺序,依次调用对应于被调用算子标识的算子,以构建工作流。
其中,调用顺序参数用于表示工作流中各个算子之间的连接顺序(或执行顺序)。具体的,所述调用顺序参数可以用于表示算子运行的绝对顺序,例如可以是算子执行顺序的序号;还可以用于表示算子运行的相对顺序,例如,所述调用顺序参数可以是上游算子标识和/或下游算子标识,对应的,调用顺序参数包括对应于各个被调用算子的上游算子标识和/或下游算子标识,以确定上游算子和/或下游算子;更具体的,每个被调用算子的上游算子标识和/或下游算子标识可以有多个,其可以表示其上游算子或下游算子为多个。
在一种可能的实现方式中,所述被调用算子参数包括数据格式转换参数,所述方法还包括:根据所述数据格式转换参数对接收到的数据进行格式转换;和/或根据所述数据格式转换参数对待输出的数据进行格式转换。
其中,数据格式转换参数可以用于将被调用算子接收到的数据或待输出的数据进行格式转化,以使得数据的格式与算子处理数据的数据格式相匹配。所述数据格式转换参数可以用于配置各个被调用算子,也可以用于配置用于连接被调用算子的连接线,连接线基于该数据格式转换参数对需要传输的数据进行格式转换。优选的,所述数据格式转换参数可以包括输入数据的字段名和输出数据的数据格式,例如,数据格式转换参数可以包括feature1和Double(双精度型)。其中,feature1为输入数据的字段名,Double为输出数据的数据格式,也即根据该数据格式转换参数可以将字段名为feature1的任意格式的输入数据,转换为Double格式的输出数据。
在一种可能的实现方式中,所述被调用算子包括数据接收算子时,所述被调用算子参数包括用于配置数据接收算子的数据输入地址参数;所述被调用算子包括数据输出算子时,所述被调用算子参数包括用于配置数据输出算子的数据输出地址参数。
其中,所述数据输入地址参数表示源数据的获取地址,数据输出地址参数表示数据完成处理后的输出地址,具体的,获取地址和输出地址可以是网络地址,例如IP(Internet Protocol,网际互连协议)地址和端口号;也可以是源数据的存储路径,例如C:\Users\Nolan\Desktop。
在一种可能的实现方式中,所述响应于工作流构建指令,解析用户输入的简易代码,得到被调用算子标识和被调用算子参数,包括:响应于工作流构建指令,基于预设的代码解析规则,解析简易代码中的多个代码片段,得到被调用算子标识和被调用算子参数。
其中,所述代码解析规则用于将简易代码中内容进行解析,得到被调用算子标识和被调用算子参数,调用算子,以完成构建和应用工作流;也可以根据简易代码生成对应的构建和应用工作流的规则源代码。进一步的,在简易代码中可以包括多个代码片段,其可以对应于各个算子,也可以对应于算子中被调用算子标识和/或被调用算子参数。
本实现方式中,所述代码片段包括以下至少一项:元信息代码片段、结构信息代码片段、扩展属性代码片段、调用顺序代码片段。对应于各个算子,即各算子的简易代码包括以下至少一项:元信息代码片段、结构信息代码片段、扩展属性代码片段、调用顺序代码片段。其中,不同代码片段对应着不同的被调用算子参数。
图3为本发明实施例的完成构建的工作流的流程示意图,优选的,图3中示出的工作流可以通过简易代码构建完成,所述简易代码包括各个算子的简易代码等。对简易代码的描述通过下述部分的简易代码片段示例,简易代码片段可以包括按照分段形成的第一段代码、第二段代码、第三段代码。具体的,如第二段代码和第三段代码中所示,用于定义OpMeta的代码片段为元信息代码片段,用于定义OpSchema的代码片段为结构信息代码片段,用于定义OpProperty的代码片段为扩展属性代码片段,用于定义childOperator的代码片段为调用顺序代码片段。
Figure BDA0002337422550000091
Figure BDA0002337422550000101
图3所示的工作流通过流入数据源算子、输入格式转换算子、onehot算子(独热编码算子)、minmax算子(最大最小值缩放算子)、两个vector算子、两个model算子(模型应用算子)、两个输出格式转换算子、两个数据流出算子构建而成。其中,流入数据源算子、输入格式转换算子属于数据接收算子,onehot算子(独热编码算子)、minmax算子、vector算子属于特征工程算子,model算子属于模型应用算子,输出格式转换算子、数据流出算子属于数据输出算子。
具体的,简易代码中的第一段代码用于表示工作流的构建过程。其包括算子之间的连接关系及顺序,同时,第一段代码中的每一行代码映射图3中工作流的一层算子,并从左到右按顺序对应。作为示例,代码片段(‘流入数据源’,kafkaSource),对应于流入数据源算子和输入格式转换算子;代码片段('vector',vectorAssembler1),('vector',vectorAssembler2),对应于两个vector算子;代码片段predicted=工作流.predict(Xpredict)对应为运行工作流的指令。
简易代码中的第二段代码和第三段代码用于表示工作流中各个被调用算子的实例化,其中,OpMeta用于表示算子的元信息,即算子的描述信息,例如元信息可以是算子的名称、算子的版本信息、算子的类等。
OpSchema用于表示算子的输入和输出Schema结构信息(即格式信息)。其中,Schema指的是工作流中数据结构,可以用于表示数据包含的字段(或者属性)等。例如,Schema可以包括具体的字段属性:名称、类型和缺失值等信息。具体的,通过Schema可以表示数据包含name(字符串类型)、age(整型类型)和cash(长整型类型)三种属性。在一种可能的实现方式中,数据接收算子的OpSchema包含输入格式转换信息,数据输出算子的OpSchema包含输出格式转换信息,对应的可以生成输入格式转换算子、输出格式转换算子。
OpProperty可以用于表示算子的扩展属性(即算子的除了格式信息外的其他信息),通常可以以Key-Value形式存储,其中Key为字段名、Value为字段值。以Onehot算子举例阐述OpProperty,本实现方式中,OpProperty包括每一个需要做onehot处理的字段的所有可能的取值和输出的新字段后缀名(例如新字段后缀名为_onehot,进行Onehot处理的特征是a,输出则新增加一个a_onehot)。当a对应的字段值是(所有可能的)1、2、3的情况下,a_onehot分别对应的字段值是[1,0,0]、[0,1,0]、[0,0,1],也即Key可以是a,Value是1、2、3中的任意之一,Key是a_onehot、Value是[1,0,0]、[0,1,0]、[0,0,1]中的任意之一。以模型应用算子举例阐述OpProperty,OpProperty包括模型名称、模型类型、输出信息至少之一。
childOperator表示每个被调用算子的下游算子或上游算子的列表;其中,算子的数量可以是1个,也可以是多个。
更为具体的,在第二段代码中为数据接收算子的实例化代码,Operator中的被调用算子参数都是用“;”(第一撰写格式)隔开,解析第一撰写格式的代码得到OpMeta的class值为KafkaSourceAction(算子的类名,被调用算子标识),然后根据class的值来寻找对应的算子。不同数据结构可以通过不同的数据格式撰写,例如list(列表)数据使用[],map(集合)使用{},类的格式为类名={},childOperator为下游算子的名称。其映射到算子的过程描述如下:工作流在构建的过程中,会通过OpMeta中唯一标识(例如KafkaSourceAction)扫描RT算子库中所有的算子的元信息找到对应的算子。
在另外的实现方式中,不同的代码片段的撰写格式可以是不同的,在解析过程中,可以根据撰写格式识别和提取被调用算子标识和被调用算子参数。具体的,元信息代码片段可以通过第一撰写格式撰写,通过第一撰写格式的代码片段可以解析得到被调用算子标识;调用顺序代码片段可以通过第二撰写格式撰写,通过第二撰写格式的代码片段可以解析得到调用顺序参数。
继续以第二段代码为例,代码片段OpSchema={“feature1”:Double,“feature2”:Float};表示KafkaSourceAction可以将字段名为feature1的输入数据转化为Double双精度型格式数据,将字段名为feature2的输入数据转化为Float浮点型格式数据。代码片段OpProperty={“bootstrap.servers”:[172.20.3.40:9092],“topic”:pmmldata,“inputType”:CSV}表示KafkaSourceAction算子的源数据的数据输入地址参数和主题,KafkaSourceAction算子的源数据的数据格式为CSV,代码片段childOperator={Operator:[onehotEncoder,minmax]}(第二撰写格式)表示该算子的下游算子名称为onehotEncoder和minmax。
更为具体的,在第三段代码中为特征工程算子的实例化代码,其中,特征工程算子的被调用算子标识为OneHotEncodeAction(独热编码算子),下游算子标识为vectorassembler,独热编码算子提供根据选定的特征列的信息生成OneHot格式数据的功能,其中,OpSchema为输入数据的字段名和输出时数据对应的格式,也即将输入数据的字段名对应的数据转化为输出时对应的格式,在进行其他处理前即进行数据格式转换,OpProperty包括一个输入特征的参数“inputColumns”和一个输出特征的参数“fieldSuffix”,输入特征的参数是一个数据结构SchemaColumn的list列表,SchemaColumn包括了特征名和一个list<String>这个list中包括了该特征所有可能取值;输出特征的参数是新生成的特征的名称的后缀。
本实现方式中,图3中示出的工作流包括两个工作流分支,基于两个工作流分支可以对两个不同的模型应用算子进行测试和对比,以直观快速的对比两者的测试结果;具体的,左右两侧的工作流分支可以用于产品推荐,应用模型对输入流数据进行处理、进行预测,预测出用户感兴趣的产品;左右两个工作流分支应用不同的特征工程和模型,对同样的输入流数据进行处理、进行预测,可以对比预测结果。具体的,输入流数据为用户信息,包括用户交易时间、交易金额、购买产品信息等,预测结果为各类别产品的购买概率。
在另外的实现方式中,所述被调用算子参数包括数据窗口参数,所述基于所述工作流处理实时流数据包括:基于所述工作流,并根据所述数据窗口参数处理实时流数据。数据窗口参数可以为扩展属性的一种,其用于将实时流数据分批处理,进而将接收到的实时流数据存储至高速缓存中,直到存储一定的数据条数再进行处理。也即,将实时流数据逐条进入并进行处理的数据改以小批量的形式进行处理,以批的形式对数据进行处理更加符合工作负载假设,提高了单位时间的吞吐量,从而提高计算速度和性能。同时,数据进入后不会直接调用模型进行数据处理,而是会以list的形式存储在高速缓存中,等到收集到足够多的数据(可以指定批大小的值)再统一进行数据处理。其中,吞吐量指在一次交互过程中网络上传输的数据量的总和。
进一步的,可以通过在OpProperty代码片段中增加batchsize批大小属性(即数据窗口参数),来控制窗口(分批数据的数量)的大小。进一步的,当OpProperty代码片段种不包括batchsize属性的情况下,按照默认的处理方式执行,例如来一条数据处理一条。
本实现方式为了提高高速缓存的使用效率,可以在OpProperty代码片段中增加用于自适应调整batchsize属性的数据窗口调整参数。具体的,所述被调用算子参数包括数据窗口调整参数,所述方法还包括:根据所述数据窗口调整参数调整所述数据窗口参数。通过该数据窗口调整参数可以使数据吞吐量维持在最大的状态。具体的,所述数据窗口调整参数包括数据窗口增量参数和数据窗口减量参数,其中,所述数据窗口增量参数用于对数据窗口参数线性增加,数据窗口减量参数用于对数据窗口参数乘性减小。其中,乘性减小即设置一个系数,数据窗口的值乘以这个系数用于减小批大小。
作为示例,通过数据窗口调整参数可以表示数据窗口参数每次增加的幅度和每次减小的系数,也可以表示基于一定的频率(例如每分钟、每秒N次,N为大于零的整数)监控数据吞吐量及调整数据窗口参数,进而使得在数据吞吐量上升的情况下增加(例如线性增加)数据窗口参数的值,或者在数据吞吐量下降的情况下减小(例如乘性减小)数据窗口参数的值,数据处理过程中一直循环这个过程,直到符合预设的停止条件,例如监控到数据窗口参数连续M次的改变量都小于Q(N为大于零的整数,Q为预设阈值),则停止调整数据窗口参数的值。
在一种可能的实现方式中,响应于工作流构建指令,解析用户输入的简易代码,得到被调用算子标识和被调用算子参数之前,所述方法还包括:在用户输入简易代码的情况下,根据完成输入的代码片段输出代码编写提示。
例如,在用户撰写简易代码的过程中,可以给出后续代码提示,还可以提示每个参数的功能。例如特征合并算子,基于用户输入的OpMeta和/或该算子的上游算子的信息,系统提示该算子的OpSchema和/或OpProperty,用户可以基于提示输入及调整。同时,还可以展示对应的用户手册,用户可以基于用户手册查询简易代码的语法和编写规则。
在一种可能的实现方式中,所述根据所述被调用算子标识和被调用算子参数,调用算子,以构建工作流,包括:根据所述被调用算子标识和被调用算子参数,确定被调用的模型应用算子和模型,适配模型的代码框架解析模型,以构建工作流。具体的,可以解析模型应用算子代码片段,调用模型应用算子,同步适配代码框架,并获得简易代码里面包含的模型(即选定一个模型),进而解析模型。
本实现方式中,可以根据不同用户需求和应用场景提供对应的代码框架。例如被调用算子的模型可以来源于不同的平台,其导出模型的格式不同,其使用的编程语言也可能不同,基于应用程序编程接口可以加载不同编程语言的规则源代码的算子文件。系统可以通过相应的应用程序编程接口来适配相应的代码框架,并加载用于存储规则源代码的算子文件,进而完成对被调用算子的调用操作。其中,代码框架可以包括以下至少之一:TensorFlow、sparkML、scikit-learn、PyTorch、Mxnet。
在另外的实现方式中,为了方便使用、简化理解,增加了统一的整合接口(即框架抽象层),使用时,可以预先把模型(模型应用算子中应用的模型)放入模型仓库(不同于发布到生产环境),选定其中的一个模型,框架抽象层会根据算子参数(例如模型名称和/或模型类型)自动选择模型的框架来适配模型。框架抽象层还可以发布并应用模型到流任务(工作流)中使用模型进行数据处理,操作便捷。可选的,本实现方式中可以基于模型应用算子的OpProperty中的算子参数识别模型的框架,映射到具体框架,使用整合接口进行框架适配和模型文件的加载。例如,框架抽象层对应简易代码中的代码片段('model',MODEL1),('model',MODEL2)。
本发明实施例还提供一种工作流应用装置,如图4所示,所述装置包括:
解析模块410,用于响应于工作流构建指令,解析用户输入的简易代码,得到被调用算子标识和被调用算子参数;
调用模块420,用于根据所述被调用算子标识和被调用算子参数,调用算子,以构建工作流;
处理模块430,用于基于所述工作流处理实时流数据。
在一种可能的实现方式中,被调用算子包括以下至少一项:数据接收算子、特征工程算子、模型应用算子、数据输出算子。
在一种可能的实现方式中,所述工作流包括多个被调用算子,被调用算子参数包括调用顺序参数,所述调用模块包括:第一调用单元,用于通过各个被调用算子的调用顺序参数确定的算子调用顺序,依次调用对应于被调用算子标识的算子,以构建工作流。
在一种可能的实现方式中,所述调用顺序参数包括上游算子标识和/或下游算子标识。
在一种可能的实现方式中,所述调用模块包括:第二调用单元,用于根据所述被调用算子标识和被调用算子参数,确定被调用的模型应用算子和模型,适配模型的代码框架解析模型,以构建工作流。
在一种可能的实现方式中,所述工作流包括多个算子和各算子之间的连接关系。
在一种可能的实现方式中,所述被调用算子参数包括数据窗口参数,所述处理模块包括:处理单元,用于基于所述工作流,并根据所述数据窗口参数处理实时流数据。
在一种可能的实现方式中,所述被调用算子参数包括数据窗口调整参数,所述装置还包括:参数调整模块,用于根据所述数据窗口调整参数调整所述数据窗口参数。
在一种可能的实现方式中,所述被调用算子参数包括数据格式转换参数,所述装置还包括:第一格式转换模块,用于根据所述数据格式转换参数对接收到的数据进行格式转换;和/或第二格式转换模块,用于根据所述数据格式转换参数对待输出的数据进行格式转换。
在一种可能的实现方式中,所述被调用算子包括数据接收算子时,所述被调用算子参数包括用于配置数据接收算子的数据输入地址参数;所述被调用算子包括数据输出算子时,所述被调用算子参数包括用于配置数据输出算子的数据输出地址参数。
在一种可能的实现方式中,所述特征工程算子包括以下至少一项:独热编码算子、特征合并算子、缺失值填充算子、去重算子、过滤算子、异常行删除算子、数据聚合处理算子、特征压缩算子、特征扩展算子。
在一种可能的实现方式中,所述解析模块包括:解析单元,用于响应于工作流构建指令,基于预设的代码解析规则,解析简易代码中的多个代码片段,得到被调用算子标识和被调用算子参数。
在一种可能的实现方式中,所述代码片段包括以下至少一项:元信息代码片段、结构信息代码片段、扩展属性代码片段、调用顺序代码片段。
在一种可能的实现方式中,所述装置还包括:提示模块,用于在用户输入简易代码的情况下,根据完成输入的代码片段输出代码编写提示。
本发明实施例还提供一种工作流应用系统,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述工作流应用方法。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述工作流应用方法。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (28)

1.一种工作流应用方法,其特征在于,所述方法包括:
响应于工作流构建指令,解析用户输入的简易代码,得到被调用算子标识和被调用算子参数;
根据所述被调用算子标识和被调用算子参数,调用算子,以构建工作流;
基于所述工作流处理实时流数据;
其中,根据所述被调用算子标识和被调用算子参数,调用算子,以构建工作流,包括:根据所述被调用算子标识从算子库中确定相应被调用算子,并获取被调用算子参数,以构建工作流;
进一步的,所述被调用算子包括模型应用算子,所述根据所述被调用算子标识和被调用算子参数,调用算子,以构建工作流包括:
根据所述被调用算子标识和被调用算子参数,确定被调用的模型应用算子和模型应用算子包含的模型;
根据被调用算子参数适配所述模型对应的代码框架,解析模型,以构建工作流。
2.根据权利要求1所述的方法,其特征在于,被调用算子包括:数据接收算子、特征工程算子、模型应用算子、数据输出算子。
3.根据权利要求1所述的方法,其特征在于,所述工作流包括多个被调用算子,被调用算子参数包括调用顺序参数,所述根据所述被调用算子标识和被调用算子参数,调用算子,以构建工作流,包括:
通过各个被调用算子的调用顺序参数确定的算子调用顺序,依次调用对应于被调用算子标识的算子,以构建工作流。
4.根据权利要求3所述的方法,其特征在于,所述调用顺序参数包括上游算子标识和/或下游算子标识。
5.根据权利要求1所述的方法,其特征在于:所述工作流包括多个算子和各算子之间的连接关系。
6.根据权利要求1所述的方法,其特征在于,所述被调用算子参数包括数据窗口参数,所述基于所述工作流处理实时流数据包括:
基于所述工作流,并根据所述数据窗口参数处理实时流数据。
7.根据权利要求6所述的方法,其特征在于,所述被调用算子参数包括数据窗口调整参数,所述方法还包括:
根据所述数据窗口调整参数调整所述数据窗口参数。
8.根据权利要求1所述的方法,其特征在于,所述被调用算子参数包括数据格式转换参数,所述方法还包括:
根据所述数据格式转换参数对接收到的数据进行格式转换;和/或根据所述数据格式转换参数对待输出的数据进行格式转换。
9.根据权利要求2所述的方法,其特征在于,所述被调用算子包括数据接收算子时,所述被调用算子参数包括用于配置数据接收算子的数据输入地址参数;所述被调用算子包括数据输出算子时,所述被调用算子参数包括用于配置数据输出算子的数据输出地址参数。
10.根据权利要求2所述的方法,其特征在于,所述特征工程算子包括以下至少一项:独热编码算子、特征合并算子、缺失值填充算子、去重算子、过滤算子、异常行删除算子、数据聚合处理算子、特征压缩算子、特征扩展算子。
11.根据权利要求1所述的方法,其特征在于,所述响应于工作流构建指令,解析用户输入的简易代码,得到被调用算子标识和被调用算子参数,包括:响应于工作流构建指令,基于预设的代码解析规则,解析简易代码中的多个代码片段,得到被调用算子标识和被调用算子参数。
12.根据权利要求11所述的方法,其特征在于,所述代码片段包括以下至少一项:元信息代码片段、结构信息代码片段、扩展属性代码片段、调用顺序代码片段。
13.根据权利要求1-12中任意一项所述的方法,其特征在于,响应于工作流构建指令,解析用户输入的简易代码,得到被调用算子标识和被调用算子参数之前,所述方法还包括:
在用户输入简易代码的情况下,根据完成输入的代码片段输出代码编写提示。
14.一种工作流应用装置,其特征在于,所述装置包括:
解析模块,用于响应于工作流构建指令,解析用户输入的简易代码,得到被调用算子标识和被调用算子参数;
调用模块,用于根据所述被调用算子标识和被调用算子参数,调用算子,以构建工作流;
处理模块,用于基于所述工作流处理实时流数据;
其中,调用模块用于:根据所述被调用算子标识从算子库中确定相应被调用算子,并获取被调用算子参数,以构建工作流;
进一步的,所述调用模块包括第二调用单元,所述被调用算子包括模型应用算子,所述第二调用单元用于:
根据所述被调用算子标识和被调用算子参数,确定被调用的模型应用算子和模型应用算子包含的模型;
根据被调用算子参数适配所述模型对应的代码框架,解析模型,以构建工作流。
15.根据权利要求14所述的装置,其特征在于,被调用算子包括:数据接收算子、特征工程算子、模型应用算子、数据输出算子。
16.根据权利要求14所述的装置,其特征在于,所述工作流包括多个被调用算子,被调用算子参数包括调用顺序参数,所述调用模块包括:
第一调用单元,用于通过各个被调用算子的调用顺序参数确定的算子调用顺序,依次调用对应于被调用算子标识的算子,以构建工作流。
17.根据权利要求16所述的装置,其特征在于,所述调用顺序参数包括上游算子标识和/或下游算子标识。
18.根据权利要求14所述的装置,其特征在于:所述工作流包括多个算子和各算子之间的连接关系。
19.根据权利要求14所述的装置,其特征在于,所述被调用算子参数包括数据窗口参数,所述处理模块包括:
处理单元,用于基于所述工作流,并根据所述数据窗口参数处理实时流数据。
20.根据权利要求19所述的装置,其特征在于,所述被调用算子参数包括数据窗口调整参数,所述装置还包括:
参数调整模块,用于根据所述数据窗口调整参数调整所述数据窗口参数。
21.根据权利要求14所述的装置,其特征在于,所述被调用算子参数包括数据格式转换参数,所述装置还包括:
第一格式转换模块,用于根据所述数据格式转换参数对接收到的数据进行格式转换;和/或
第二格式转换模块,用于根据所述数据格式转换参数对待输出的数据进行格式转换。
22.根据权利要求15所述的装置,其特征在于,所述被调用算子包括数据接收算子时,所述被调用算子参数包括用于配置数据接收算子的数据输入地址参数;所述被调用算子包括数据输出算子时,所述被调用算子参数包括用于配置数据输出算子的数据输出地址参数。
23.根据权利要求15所述的装置,其特征在于,所述特征工程算子包括以下至少一项:独热编码算子、特征合并算子、缺失值填充算子、去重算子、过滤算子、异常行删除算子、数据聚合处理算子、特征压缩算子、特征扩展算子。
24.根据权利要求14所述的装置,其特征在于,所述解析模块包括:
解析单元,用于响应于工作流构建指令,基于预设的代码解析规则,解析简易代码中的多个代码片段,得到被调用算子标识和被调用算子参数。
25.根据权利要求24所述的装置,其特征在于,所述代码片段包括以下至少一项:元信息代码片段、结构信息代码片段、扩展属性代码片段、调用顺序代码片段。
26.根据权利要求14-25中任意一项所述的装置,其特征在于,所述装置还包括:
提示模块,用于在用户输入简易代码的情况下,根据完成输入的代码片段输出代码编写提示。
27.一种工作流应用系统,其特征在于,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述权利要求1-13任一项所述的方法。
28.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述权利要求1-13任一项所述的方法。
CN201911362036.3A 2019-12-26 2019-12-26 一种工作流应用方法及装置 Active CN111104214B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911362036.3A CN111104214B (zh) 2019-12-26 2019-12-26 一种工作流应用方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911362036.3A CN111104214B (zh) 2019-12-26 2019-12-26 一种工作流应用方法及装置

Publications (2)

Publication Number Publication Date
CN111104214A CN111104214A (zh) 2020-05-05
CN111104214B true CN111104214B (zh) 2020-12-15

Family

ID=70425162

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911362036.3A Active CN111104214B (zh) 2019-12-26 2019-12-26 一种工作流应用方法及装置

Country Status (1)

Country Link
CN (1) CN111104214B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112182314B (zh) * 2020-09-30 2021-07-06 北京九章云极科技有限公司 一种数据处理方法和系统
CN112346736B (zh) * 2020-11-17 2022-02-01 北京九章云极科技有限公司 一种数据处理方法和系统
CN114091688B (zh) * 2021-11-25 2022-05-20 北京九章云极科技有限公司 一种计算资源获取方法、装置、电子设备和存储介质

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103092617A (zh) * 2013-01-15 2013-05-08 南京大学 一种基于后备服务的高可靠工作流开发方法
CN107678790B (zh) * 2016-07-29 2020-05-08 华为技术有限公司 流计算方法、装置及系统
CN107169572B (zh) * 2016-12-23 2018-09-18 福州大学 一种基于Mahout的机器学习服务组装方法
US20180322564A1 (en) * 2017-05-02 2018-11-08 Dell Products, Lp System and Method for Accessing and Evaluating Orders in an Order Processing and Fulfillment System
CN107480365B (zh) * 2017-08-09 2019-11-12 华中科技大学 一种程式化异质建模系统
CN107526600B (zh) * 2017-09-05 2020-11-10 成都优易数据有限公司 一种基于hadoop和spark的可视化数据挖掘分析平台及其数据清洗方法
CN107590254B (zh) * 2017-09-19 2020-03-17 华南理工大学 具有合并处理方法的大数据支撑平台
CN109753323A (zh) * 2017-11-02 2019-05-14 北京国双科技有限公司 一种外部服务调用方法及装置
CN107943463B (zh) * 2017-12-15 2018-10-16 清华大学 交互式自动化大数据分析应用开发系统
CN108984155B (zh) * 2018-05-17 2021-09-07 创新先进技术有限公司 数据处理流程设定方法和装置
CN108846076A (zh) * 2018-06-08 2018-11-20 山大地纬软件股份有限公司 支持接口适配的海量多源异构数据etl方法及系统
CN110378413A (zh) * 2019-07-17 2019-10-25 Oppo广东移动通信有限公司 神经网络模型处理方法、装置以及电子设备

Also Published As

Publication number Publication date
CN111104214A (zh) 2020-05-05

Similar Documents

Publication Publication Date Title
CN111104214B (zh) 一种工作流应用方法及装置
US10936645B2 (en) Method and apparatus for generating to-be-played multimedia content
JP2000011005A (ja) データ分析方法及び装置及びデータ分析プログラムを記録したコンピュータ読み取り可能な記録媒体
CN110704518A (zh) 基于Flink引擎的业务数据处理方法及装置
WO2022126984A1 (zh) 缓存数据的检测方法、装置、计算机设备和存储介质
CN106293891B (zh) 多维投资指标监督方法
CN110515944B (zh) 基于分布式数据库的数据存储方法、存储介质和电子设备
CN110991871A (zh) 风险监测方法、装置、设备与计算机可读存储介质
CN113377372A (zh) 业务规则的解析方法、装置、计算机设备及存储介质
CN114036183A (zh) 一种数据etl处理方法、装置、设备及介质
CN112582073B (zh) 医疗信息获取方法、装置、电子设备和介质
CN112883088B (zh) 一种数据处理方法、装置、设备及存储介质
CN114531334A (zh) 意图处理方法、装置、电子设备和可读存储介质
CN112398906A (zh) 一种互联网平台数据交互方法及装置
CN115186738B (zh) 模型训练方法、装置和存储介质
CN114880498B (zh) 事件信息展示方法及装置、设备和介质
CN114490969B (zh) 基于表格的问答方法、装置以及电子设备
CN115422202A (zh) 业务模型的生成方法、业务数据查询方法、装置及设备
CN114661571A (zh) 模型评测方法、装置、电子设备和存储介质
CN114090514A (zh) 分布式系统的日志检索方法及装置
CN112989066A (zh) 数据处理方法和装置、电子设备、计算机可读介质
CN111401020A (zh) 一种界面加载方法、系统和计算设备
CN117272970B (zh) 一种文档生成方法、装置、设备以及存储介质
CN113836291A (zh) 数据处理方法、装置、设备和存储介质
CN114302431A (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