一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种大数据特征提取方法、设备及计算机可读存储介质与流程

2022-06-01 03:03:16 来源:中国专利 TAG:
1.本发明涉及数据处理
技术领域
:,尤其涉及一种大数据特征提取方法、设备及计算机可读存储介质。
背景技术
::2.随着计算机技术的发展,越来越多的领域开始使用人工智能技术,其中经典的人工智能技术是机器学习技术。机器学习一般分为4个步骤:数据清洗、特征提取、模型训练和模型预测。数据清洗处理样本数据中的异常值,比如缺失值、超过临界的值等,从而避免噪声数据对最终的模型产生干扰;特征提取是从清洗过的样本数据中提取特征,提取特征的方法很多,常用的有数据统计、非线性变换、数据分桶、特征组合、特征选择等,提取的特征的质量直接关系到模型的好坏,所以提取高质量的特征是尤其重要的。3.通用特征提取方案是将样本数据以文本文件的方式保存在计算机的存储介质上,然后在计算机上编写相应的特征提取代码(例如python代码)加载文本文件数据到内存中,然后调用机器学习的库方法进行特征提取,提取后的特征数据保存到文本文件中或者直接用于模型训练。4.通用的特征提取方案具有实现简单、普适性高的优点。但随着数据量级的不断变大,通用的特征提取方案面临数据量巨大、大数据生态结合困难、特征使用灵活性不足、适用场景不广等问题,因此需要一种适合于大数据场景的特征提取方法。技术实现要素:5.本发明的目的在于提供一种大数据特征提取方法、设备及计算机可读存储介质,旨在解决现有技术中通用特征提取方法采取单机提取资源不足、不能结合大数据生态、特征提取效率不高、特征使用灵活性不足等问题。6.第一方面,本发明提供了一种大数据特征提取方法,所述方法包括:7.s101、创建分布式集群kubernetes;8.s102、构建任务镜像,所述任务镜像包括driver任务镜像和flink任务镜像;9.s103、配置特征提取参数;10.s104、创建所述任务;11.s105、运行所述任务进行特征提取获得特征数据;12.s106、结束所述任务;13.s107、发布特征在线服务;14.s108、调用所述特征在线服务得到所述特征数据。15.第二方面,本发明提供了一种大数据特征提取设备,包括:16.一个或多个处理器;17.存储器;以及18.一个或多个计算机程序,所述处理器和所述存储器通过总线连接,其中所述一个或多个计算机程序被存储在所述存储器中,并且被配置成由所述一个或多个处理器执行,其特征在于,所述处理器执行所述计算机程序时实现如上所述的大数据特征提取方法的步骤。19.第三方面,本发明提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如上所述的大数据特征提取方法的步骤。20.在本发明中,基于分布式集群kubernetes和使用大数据分布式计算引擎flink,解决了单机进行特征提取资源不足的问题,与大数据hive数仓和分布式存储介质相结合,能完整的融入到大数据生态,提高了特征提取效率,将特征数据发布到线上系统,提供http和/或rpc的访问方式,可以更简便灵活的使用特征,还支持sql和python进行特征提取,拥有更广的使用场景。附图说明21.图1是本发明实施例一提供的大数据特征提取方法的流程图;22.图2是本发明实施例一提供的driver任务流程图;23.图3是本发明实施例一提供的flink任务流程图。具体实施方式24.为了使本发明的目的、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。25.为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。26.实施例一:27.如图1所示,本发明实施例一提供了一种大数据特征提取方法,包括:28.s101、创建分布式集群(kubernetes),具体包括:kuberneters集群的创建、hadoop和hive的相关配置。29.s102、构建任务镜像,包括制作启动任务和监听任务状态的driver任务镜像以及flink任务镜像。30.s103、配置特征提取参数,其中特征提取参数包括但不限于样本源参数、特征提取代码和特征存储参数等。样本源参数用以从样本源读取样本数据,详细参数包括输入源类型、数据库db、数据表table、消息队列topic、样本字段fields、是否为主键pk、是否是分区键等。输入源类型包括关系型数据库rdbs(relationaldatabase),数据仓库hive,数据库hbase,实时消息队列kafka等。特征提取代码用以从样本数据中提取特征,常用方法包括数据清洗、机器学习、统计方法等。特征提取的代码可以是sql、python等语言,sql支持多表关联join,python支持常用的pandas、numpy、scikit-learn等库。特征存储参数用以存储提取的特征数据,包括存储的数据库类型、所属数据中心(dc,datacenter)等,存储类型包括elasticsearch、rdbs、hive、redis等。31.s104、创建任务,创建任务具体包括:32.s1041、将特征提取参数进行封装,例如样本输入源或者存储源包含多个数据库表,需要对多个库表组装成列表,同时如果查询sql或者代码包含特殊的占位符或者关键字,需要对占位符及关键字进行替换或拼接;33.s1042、将封装好的特征提取参数写入到任务配置的环境变量中,并配置任务使用的资源信息,例如cpu、内存、挂载文件、镜像信息等;34.s1043、通过kubernetesapi服务器提交任务并启动任务。35.s105、运行任务进行特征提取获得特征数据,kubernetes首先启动driver任务,driver进行环境初始化,随后启动flink任务,flink任务进行特征提取,driver任务监听flink任务运行状态。任务运行包括两个阶段,driver任务运行阶段和flink任务运行阶段。36.driver任务进行解析参数、保存任务初始状态、初始化对分布式存储环境、启动和监听flink任务运行、提交特征数据、保存状态并退出任务。详细步骤如下:37.10511、解析参数,包括解析pod的环境变量,提取样本源参数和特征存储参数。38.10512、保存任务初始状态,具体地,在rdbs中创建任务信息并初始化状态为运行中的状态。39.10513、初始化分布式存储环境,具体是根据特征存储参数创建特征存储表,用以存储最终的特征数据,此时创建的表会追加tmp后缀,用以后续的两阶段提交,保证数据的一致性。如果创建的特征存储表已经存在或者创建特征存储表失败,则执行步骤10517保存任务状态为失败,然后退出driver任务。40.10514、启动flink任务并判断启动是否成功,flink任务从样本源中读取样本数据,然后执行特征提取代码,并将特征数据写入到tmp后缀的特征存储表。如果启动flink任务失败,则保存任务状态为失败,然后退出driver任务。如果启动flink任务成功,则执行步骤10515。41.10515、监听flink任务状态:启动flink任务之后,flink任务开始运行,driver打开一个端口,并监听该端口的数据写入情况。flink任务将最终状态写入该端口。42.10516、提交特征数据:特征数据通过flink任务已经写入到步骤10513创建的tmp后缀的特征存储表,此为第一阶段,第二阶段driver将tmp后缀的特征存储表的数据写入到正式特征存储表,对于新表则采用重命名的方式,而对于非新表需要将数据导入到正式特征存储表中。特征数据写入到正式特征存储表之后删除tmp后缀的特征存储表。43.10517、保存状态并退出任务,状态包括成功和成败,当特征数据已经写入到正式特征存储表,任务已经运行成功,将rdbs的任务状态置为成功,并退出driver任务;当初始化分布式存储环境失败或启动flink任务失败则保存任务状态为失败并退出driver任务。44.flink任务进行解析参数、获取driver任务id、将作业管理器与driver生命周期关联、从样本源读取样本数据进行特征提取获得特征数据、将特征数据写入到分布式存储介质、汇报任务给driver、最后清理环境并退出flink任务。详细步骤如下:45.10521、解析参数,driver在启动flink任务时会带上必要的参数,参数包括任务id、实例id、任务类型、样本源参数、特征存储参数、特征提取代码等。46.10522、获取driver任务id,flink任务包含作业管理器jobmanager和任务管理器taskmanager两个组件,作业管理器jobmanager进行任务流的管控,并启动任务管理器taskmanager,任务管理器taskmanager是实际进行特征提取任务的组件。作业管理器jobmanager和任务管理器taskmanager自动关联生命周期,如果作业管理器jobmanager运行结束,任务管理器taskmanager会自动停止。而作业管理器jobmanager缺少与driver生命周期的关联,需要匹配driver任务,并进行关联。此处通过kubernetesapi服务器和任务id查询得到driver任务的id。47.10523、作业管理器jobmanager与driver生命周期关联,具体地可以通过kubernetes的ownerreference机制进行作业管理器jobmanager与driver生命周期关联。关联之后,如果driverpod停止运行,则作业管理器jobmanager会自动停止,随后任务管理器taskmanager会自动停止,从而释放所有任务资源。48.10524、从样本源读取样本数据进行特征提取获得特征数据,在flink的环境中注册样本源,当使用的是sql提取特征的方式,则在此步骤执行sql命令,查询得到特征数据。当使用的不是sql提取特征的方式,例如python类型的特征提取,则先使用sql查询选定的特征字段,而且不做特征的特殊处理,然后执行特征提取代码以获取特征数据,具体地,对于python类型的特征提取,将python代码封装成udf(用户自定义函数userdefinedfunction),并执行该udf。49.10525、写入特征数据到分布式存储介质中,由于存储类型的多样性,需要选定不同的存储连接器(sinkconnector),然后通过sinkconnector将特征数据写入到存储介质中,具体是写入到driver任务创建的tmp后缀的特征存储表。如果有配置特征数据统计,还可以包括步骤:执行特征数据统计分析,具体地,通过sql的方式计算提取的特征的数量、均值、方差、最大值、最小值、唯一值等数据,并写入到rdbs中。50.10526、汇报任务状态给driver,具体地,作业管理器jobmanager将任务状态汇报给driver,向driver的端口中写入任务运行的状态码。51.10527、清理环境并退出任务,具体地,作业管理器jobmanager调用kubernetesapi服务器结束flink任务。52.s106、结束任务,flink任务结束之后,将状态信息发送给driver,driver继续任务的收尾工作,包括将任务的最终状态保存到rdbs以及安全退出driver进程。53.s107、发布特征在线服务,通过负载均衡技术,将特征服务发布成特征在线服务,每个服务对应多台计算机,每台计算机上部署在线服务,在线服务通过client方式连接分布式存储介质查询数据,然后将数据返回给服务调用方。54.s108、调用特征在线服务得到特征数据,特征在线服务通过http和/或rpc的方式暴露调用接口,业务方根据接口文档调用特征在线服务得到特征数据。55.实施例二:56.本发明实施例二提供了一种大数据特征提取设备,包括:57.一个或多个处理器;58.存储器;以及59.一个或多个计算机程序,所述处理器和所述存储器通过总线连接,其中所述一个或多个计算机程序被存储在所述存储器中,并且被配置成由所述一个或多个处理器执行,其特征在于,所述处理器执行所述计算机程序时实现如实施例一提供的大数据特征提取方法的步骤。60.实施例三:61.本发明实施例三提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如实施例一提供的大数据特征提取方法的步骤。62.在本发明中,基于分布式集群kubernetes和使用大数据分布式计算引擎flink,解决了单机进行特征提取资源不足的问题,与大数据hive数仓和分布式存储介质相结合,能完整的融入到大数据生态,提高了特征提取效率,将特征数据发布到线上系统,提供http和/或rpc的访问方式,可以更简便灵活的使用特征,还支持sql和python进行特征提取,拥有更广的使用场景。63.以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献