CN111435356A - 数据特征提取方法、装置、计算机设备以及存储介质 - Google Patents

数据特征提取方法、装置、计算机设备以及存储介质 Download PDF

Info

Publication number
CN111435356A
CN111435356A CN201910036799.2A CN201910036799A CN111435356A CN 111435356 A CN111435356 A CN 111435356A CN 201910036799 A CN201910036799 A CN 201910036799A CN 111435356 A CN111435356 A CN 111435356A
Authority
CN
China
Prior art keywords
data
model
stream
computer device
identifier
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
Application number
CN201910036799.2A
Other languages
English (en)
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.)
Hangzhou Hikvision Digital Technology Co Ltd
Original Assignee
Hangzhou Hikvision Digital Technology 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 Hangzhou Hikvision Digital Technology Co Ltd filed Critical Hangzhou Hikvision Digital Technology Co Ltd
Priority to CN201910036799.2A priority Critical patent/CN111435356A/zh
Publication of CN111435356A publication Critical patent/CN111435356A/zh
Pending legal-status Critical Current

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/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
    • 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/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种数据特征提取方法、装置、计算机设备以及存储介质,属于物联网技术领域。所述方法通过将直接获取的数据流中的各个数据输入至少一个目标模型中,得到至少一个目标特征,基于该至少一个目标模型,从而可以直接实现数据的特征提取,而不必通过使用流计算引擎来实现数据的特征提取,也就无需对流计算引擎各个接口进行二次开发,从而技术人员无需学习Flink流计算引擎,进而降低了技术人员的学习和开发成本。

Description

数据特征提取方法、装置、计算机设备以及存储介质
技术领域
本申请涉及物联网技术领域,特别涉及一种数据特征提取方法、装置、计算机设备以及存储介质。
背景技术
随着物联网在生活中的广泛应用,产生了大量的物联网数据,而技术人员可以提取该物联网数据的特征,并基于提取的特征对该物联网数据进行分析,来发现消费者的消费方向,从而为企业提供一个正确的发展方向,以促进企业的发展。
目前,物联网数据进行特征提取可以是以下过程:Flink流计算引擎是一个开源的流处理框架,其针对数据流的分布式计算提供了数据分布、数据通信以及容错机制等功能,基于上述功能,技术人员再对物联网数据进行特征提取时,需要对Flink流计算引擎的各类接口进行二次开发,以实现对物联网数据的特征提取。
在上述过程中,技术人员需要对Flink流计算引擎进行二次开发后,才能提取物联网数据的特征,而技术人员必须先学习Flink流计算引擎,才能对Flink流计算引擎进行二次开发,那么,为了在Flink流计算引擎上实现物联网数据的特征提取,该技术人员需要大量的时间来学习和开发Flink流计算引擎,从而导致技术人员学习和开发的成本较高。
发明内容
本申请实施例提供了一种数据特征提取方法、装置、计算机设备以及存储介质,能够解决对物联网数据进行特征提取时技术人员学习成本高的问题。所述技术方案如下:
第一方面,提供了一种数据特征提取方法,所述方法包括:
从开源流处理平台中获取数据流,将该数据流中的各个数据存储至数据队列中,每个数据携带类型标识,所述类型标识用于指示数据类型;
按照该数据队列中的存储顺序,从该数据队列中获取待进行特征提取的数据;
每获取到一个数据时,基于该数据的类型标识,获取至少一个目标模型,该类型标识对应至少一个目标模型;
将该数据输入至该至少一个目标模型中,得到至少一个第一特征,一个第一特征与一个目标模型对应。
可选地,将该数据输入至该至少一个目标模型中,得到至少一个第一特征,包括:
根据该数据的类型标识,对数据库中该至少一个目标模型的第二特征进行加锁,该第二特征为上一次模型运算过程中所产生的特征;
将该数据以及每个第二特征输入至对应的目标模型,得到至少一个第一特征;
将该至少一个第一特征存储在该数据库中;
释放该数据库中每个第二特征的锁。
可选地,该方法还包括:
当从该数据库中获取不到该至少一个目标模型的第二特征时,持续获取该至少一个目标模型的第二特征;
当在预设次数内获取到该至少一个目标模型的第二特征时,将该数据以及每个第二特征输入至对应的目标模型,得到至少一个第一特征,当在预设次数内获取不到该至少一个目标模型的第二特征时,丢弃该数据,获取该数据队列中的下一个数据。
可选地,将该至少一个第一特征存储在所述数据库中,包括:
通过封装接口,根据数据输出接口的输出协议,封装该至少一个第一特征;
通过该数据输出接口,将该至少一个第一特征存储在数据库中。
可选地,该方法还包括:
订阅模型消息,该模型消息包括更新标识,该更新标识用于指示更新指示缓存区中的模型;
当接收到该模型消息后,根据该模型消息中的更新标识,更新该缓存区中的模型。
可选地,根据该模型消息中的更新标识,更新该缓存区中的模型,包括下述至少一项:
当该模型消息中的更新标识为删除标识时,删除该缓存区中与该删除标识对应的模型;
当该模型消息中的更新标识为增加标识时,将该增加标识指示的模型存储至缓存区中;
当该模型消息中的更新标识为替换标识时,将该缓存区中与该替换标识对应的模型替换为该替换标识指示的模型。
可选地,从开源流处理平台中获取数据流,将该数据流中的各个数据存储至数据队列中,包括:
启动数据接收服务,该数据接收服务用于从开源流处理平台接收数据流;
接收数据流;
当数据队列中的数据未满时,将该数据流中的各个数据写入到该数据队列中。
可选地,从开源流处理平台中获取数据流之前,该方法还包括:
获取第一资源配置文件,该第一资源配置文件存储有开源流处理平台的地址以及第一类型标识,该第一类型标识用于指示数据类型;
解析该第一资源配置文件,得到该开源流处理平台的地址以及类型标识;
根据该开源流处理平台的地址,与该开源流处理平台建立连接;
当与该开源流处理平台连接成功时,启动数据拉取线程,将该数据拉取线程的状态设置为阻塞状态。
可选地,从开源流处理平台中获取数据流之前,该方法还包括:
获取第二资源配置文件,该第二资源配置文件存储有第一预设数目的内存资源以及第二预设数目的线程;
解析该第二资源配置文件,得到该第一预设数目的内存资源以及第二预设数目的线程;
设置第一预设数目的内存资源来存储接收的数据、模型以及提取的特征,在线程池中设置第二预设数目的线程,该第二预设数目的线程为特征提取所占用的线程。
可选地,每获取到一个数据时,基于该数据的类型标识,获取至少一个目标模型之前,该方法还包括:
获取模型配置文件,该模型配置文件包括模型列表和至少一个模型文件,该模型列表用于指示该至少一个模型文件中的模型,一个模型文件中存储有一个模型;
解析该模型配置文件,得到该模型列表和至少一个模型文件;
将该模型列表中指示的模型存储在缓存区中。
可选地,该方法还包括:
接收停止指令,该停止指令用于指示关闭流计算***,该流计算***用于执行上述数据特征提取的过程;
基于该停止指令,停止接收数据;
当该数据队列中的数据消费完成时,关闭该流计算***。
第二方面,提供了一种数据特征提取装置,用于执行上述数据特征提取方法。具体地,该数据存储装置包括用于执行上述第一方面或上述第一方面的任一种可选方式提供的数据特征提取的功能模块,其中,该上述方面为应用于流计算***对物联网数据进行特征提取时的一种数据特征提取方法所对应的方面。
第三方面,提供一种计算机设备,该计算机设备包括处理器和存储器,该存储器中存储有至少一条指令,该指令由该处理器加载并执行以实现如上述数据特征提取加载方法所执行的操作。
第四方面,提供一种计算机可读存储介质,该存储介质中存储有至少一条指令,该指令由处理器加载并执行以实现如上述数据特征提取方法所执行的操作。
本申请实施例提供的技术方案带来的有益效果是:
通过将直接获取的数据流中的各个数据输入至少一个目标模型中,得到至少一个目标特征,基于该至少一个目标模型,从而可以直接实现数据的特征提取,而不必通过使用流计算引擎来实现数据的特征提取,也就无需对流计算引擎各个接口进行二次开发,从而技术人员无需学习流计算引擎,进而降低了技术人员的学习和开发成本。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种实施环境的示意图;
图2是本申请实施例提供的一种计算机设备的结构示意图;
图3A是本申请实施例提供的一种流计算***初始化的方法流程图;
图3B是本申请实施例提供的一种初始化方法的流程图;
图3C是本申请实施例提供的一种初始化方法的流程图;
图3D是本申请实施例提供的一种初始化方法的流程图;
图4A是本申请实施例提供的一种数据特征提取方法的流程图;
图4B是本申请实施例提供的一种数据接收方法的流程图;
图4C是本申请实施例提供的一种数据输出方法的流程图;
图5是本申请实施例提供的一种模型更新方法的流程图;
图6是本申请实施例提供的一种流计算***关闭方法的流程图;
图7是本申请实施例提供的一种数据特征提取装置结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
图1是本申请实施例提供的一种实施环境的示意图。参见图1,该实施环境中包括流计算***以及开源流处理平台,其中,该流计算***可以对物联网数据进行特征提取,该流计算***包括初始化模块、数据接收模块、计算模块、输出模块、模型订阅调整模块以及停止模块。
开源流处理平台,用于为该流计算***提供物联网数据,该数据为物联网设备产生的数据,也可以是其他来源的数据,例如,其他网络***产生的数据。其中,该物联网设备可以是工业控制***中的控制设备和监控设备,也可以是商业可穿戴设备(例如,智能手表、智能手环),还可以是其他设备,该开源流处理平台可以是Kafka平台,Kafka平台在存储数据时可以分类存储,每个类型的数据和一个话题(topic)名称对应,例如,当存储的数据为工业上监控的电流数据时,该存储的数据与“电流”,“电流”即是topic名称。
初始化模块,用于流计算***的初始化操作,该初始化操作初始化数据接收模块、初始化计算模块以及初始化缓存区的模型等,也即是,初始化数据接收功能、计算功能以及模型缓存功能,以便该流计算***可以进行正常的工作。
数据接收模块,用于接收开源流处理平台提供的数据,并将接收的数据写入到数据队列中,以便计算模块从数据队列中获取数据。
计算模块,用于提取数据的特征,具体地,该计算模块将数据接收模块接收的数据输入至模型中,以便模型基于输入的数据进行计算,进而得到输入数据的特征。
输出模块,用于输出计算模块计算得到的特征,该输出模块可以通过封装接口对计算模块计算得到的特征进行封装,并通过数据输出接口输出封装后的特征,该数据输出接口可以是Redis应用程序编程接口(application programming interface,API)和KafkaAPI等第三方服务提供的对外数据接口。
模型订阅调整模块,用于订阅流计算***接收的模型消息,以便模型订阅调整模块可以基于模型消息中的内容,对缓存区中的模型进行更新。当用户进行模型的上线、删除以及修改等操作时,用户可以向流计算***发送模型消息,该模型消息用于指示模型订阅调整模块对缓存区的模型进行相应的更新操作,例如,在当用户进行模型的上线操作时,基于该模型消息中的增加标识,该模型订阅调整模块在缓存区中增加上线的模型;在当用户进行模型的删除操作时,基于该模型消息中的删除标识,该模型订阅调整模块在缓存区中删除对应的模型,在当用户进行模型的修改操作时,该模型订阅调整模块在缓存区中修改对应的模型。
停止模块,用于关闭正在运行的流计算***,使得该流计算***不再进行特征提取。
该流计算***中各个模块所实现的功能,可以由任一个计算机设备来实现,也可以由多个计算机设备来实现,在此本申请实施例提供一种计算机设备的结构示意图,参见图2,计算机设备200包括可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器201和一个或一个以上的存储器202,其中,该存储器202中存储有至少一条指令,该至少一条指令由该处理器201加载并执行以实现下述各个方法实施例提供的方法。当然,该计算机设备200还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该计算机设备200还可以包括其他用于实现设备功能的部件,在此不做赘述。
图1是对本申请提出的数据特征提取方法的实施环境的描述,为了进一步体现该流计算***进行特征提取的过程,在此以该流计算***在一个计算机设备上运行为例,对下述各个方法实施例进行描述。其中,在利用图1中的流计算***进行特征提取之前,该流计算***中的初始化模块需要初始化其他模块的功能,该流计算***的初始化过程可以是如图3A的过程,图3A是本申请实施例提供的一种流计算***初始化的方法流程图,如图3A所示,包括以下步骤。
301、计算机设备初始化数据接收功能。
该计算机设备为运行该流计算***的设备,本步骤301也即是该计算机设备初始化该流计算***中的数据接收模块,当该计算机设备在接收到流计算***的开启指令时,该计算机设备可以通过该流计算***中的初始化模块执行本步骤301,该开启可以基于用户的操作而来下达,例如,当用户点击该计算机设备显示界面上该流计算***的启动键时,该计算机设备可以接收到该开启指令,该流计算***可以开启该流计算***,当该流计算***在开启时,该计算机设备开始对该流计算***进行初始化。
在一种可能的实现方式中,参见图3B,图3B是本申请实施例提供的一种初始化方法的流程图,该方法具体包括下述步骤301A至301D。
步骤301A、计算机设备获取第一资源配置文件,该第一资源配置文件存储开源流处理平台的地址以及第一类型标识,该第一类型标识用于指示数据类型。
该计算机设备可以通过该流计算***中的初始化模块执行本步骤301A,该开源流处理平台存储实时的数据,该数据可以为物联网数据,还可以为互联网数据,当然也可以是其他数据,该开源流处理平台可以为Kafka平台,相应地,开源流处理平台的地址为Kafka地址,该第一类型标识可以是主题(topic)名称,例如,生产为topic,该第一类型标识指示的为成产过程中产生的数据,该计算机设备可以从该流计算***的数据源管理的接口中获取该第一资源配置文件。
步骤301B、该计算机设备解析该第一资源配置文件,得到该开源流处理平台的地址以及第一类型标识。
该计算机设备可以通过该流计算***中的初始化模块执行本步骤301B,需要说明的是,当该计算机设备在解析该第一资源配置文件,不出现解析异常时,该计算机设备可以得到该开源流处理平台的地址以及数据标识;当该计算机设备在解析该第一资源配置文件,出现解析异常时,该计算机设备记录日志,退出初始化。其中,该解析异常可以是当该计算机设备在解析该第一资源配置文件时,报出解析异常,当然,该解析异常还可以是其他异常,本申请实施例对该解析异常的具体体现不做限定。
步骤301C、根据该开源流处理平台的地址,该计算机设备与该开源流处理平台建立连接。
该计算机设备可以通过该流计算***中的初始化模块执行本步骤301C。
步骤301D、当与该开源流处理平台连接成功时,该计算机设备启动数据拉取线程,将该数据拉取线程的状态设置为阻塞状态。
该计算机设备可以通过该流计算***中的初始化模块执行本步骤301D。当该计算机设备与该开源流处理平台建立连接后,接收到连接成功响应时,即视为与该开源流处理平台连接成功,当接收到连接失败响应时,即视为与该开源流处理平台连接失败,该计算机设备记录日志,退出初始化。其中,该连接成功响应用于指示该计算机设备与该开源流处理平台连接成功,该连接失败响应用于指示该计算机设备与该开源流处理平台连接失败。
该数据拉取线程用于从该开源流处理平台中拉取数据流,该阻塞状态用于指示该数据拉取线程不能进行数据流拉取的工作,那么,当该数据拉取线程的状态为运行状态时,该数据拉取线程可以从该开源流处理平台中拉取数据流,具体地,该计算机设备可以用0和1来表示该数据拉取线程的状态,例如,当该数据拉取线程的状态为0时,该数据拉取线程为阻塞状态,当该数据拉取线程的状态为1时,该数据拉取线程的状态为运行状态。
302、该计算机设备初始化计算功能。
该计算机设备可以通过该流计算***中的初始化模块执行本步骤302,本步骤302也即是该计算机设备初始化该流计算***中的计算模块,在一种可能的实现方式中,参见图3C,图3C是本申请实施例提供的一种初始化方法的流程图,该方法具体包括下述步骤302A至302D。
步骤302A、该计算机设备获取第二资源配置文件,该第二资源配置文件存储有第一预设数目的内存资源以及第二预设数目的线程。
该计算机设备可以通过该流计算***中的初始化模块执行本步骤302A。该第一预设数目的内存资源可以用第一预设数目的内存容量来表示,例如,100Mb内存。该第二预设数目的线程为该流计算***中的模型在进行计算时,所占用的线程,例如,10个线程。当然,该第二资源配置文件中还可以包括第三预设数目的中央处理器(central processingunit,CPU)资源,该CPU资源为该流计算***中的模型在进行计算时占用的CPU,例如,6CPUs。
需要说明的是,本申请实施例对第一预设数目、第二预设数目、第三预设数目的具体数值不做限定。
步骤302B、该计算机设备解析该第二资源配置文件,得到该第一预设数目的内存资源以及第二预设数目的线程。
该计算机设备可以通过该流计算***中的初始化模块执行本步骤302B。需要说明的是,当该计算机设备在解析该第二资源配置文件,不出现解析异常时,该计算机设备才可以解析出该第一预设数目的内存资源以及第二预设数目的线程;该计算机设备在解析该第二资源配置文件,出现解析异常时,该计算机设备记录日志,退出初始化。其中,该解析异常可以是当该计算机设备在解析该第二资源配置文件时,报出解析失败,该解析异常还可以是其他异常,本申请实施例对该解析异常的具体体现不做限定。
步骤302C、该计算机设备设置第一预设数目的内存资源来存储接收的数据、模型以及模型指标,在线程池中设置第二预设数目的线程,该第二预设数目的线程为特征提取所占用的线程。
该计算机设备可以通过该流计算***中的初始化模块执行本步骤302C。该接收的数据为该计算机设备接收的开源流处理平台发送的数据,该模型为该计算机设备中的流计算***在进行特征提取时,使用的各种用于特征提取的各个模型,该模型指标为各个模型在进行特征提取时,得到的结果。该线程池用于管理线程。
具体地,仍以步骤302A中的示例为例,该第一预设数目的内存资源为100Mb内存,该第二预设数目的线程为10个线程,该计算机设备设置100Mb的内存用于存储接收的数据、模型以及模型指标等,在设置该计算机设备中的线程池中设置10个线程用于该流计算***进行数据特征提取,需要说明的是,当该计算机设备中的内存资源小于该第一预设数目的内存资源,或者,该计算机设备的线程池中的线程数目小于该第二预设数目时,该计算机设备记录日志,退出初始化,例如,该计算机设备的内存资源为50Mb,该计算机设备的线程池中有15个线程,虽然该计算机设备的线程池中的线程的数目(15)大于该第二预设数目(10),但是,该计算机设备的内存资源(50Mb)小于该第一预设数目的内存资源(100Mb),表明该计算机设备提供足够的内存来存储接收的数据、模型以及模型指标等,该计算机设备记录日志,退出初始化。
步骤302D、当该计算机设备中的内存资源大于该第一预设数目的内存资源,且该计算机设备中的线程池中的线程数目大于该第二预设数目时,该计算机设备启动该线程池,将该线程池的状态设置为阻塞状态。
该计算机设备可以通过该流计算***中的初始化模块执行本步骤302D。
该阻塞状态用于指示该线程池不能工作,当该线程池的状态为运行状态时,线程池才能工作,也即是,该线程池管理的线程才能工作,具体地,该计算机设备可以用0和1来表示该线程池的状态,例如,当该线程池的状态为0时,该线程池为阻塞状态,当该线程池的状态为1时,该线程池的状态为运行状态。
303、该计算机设备初始化模型缓存功能。
该计算机设备可以通过该流计算***中的初始化模块执行本步骤303。本步骤303也即是,该计算机设备初始化缓存区的模型,该缓存区用于存储进行特征提取的模块。
在一种可能的实现方式中,参见图3D,图3D是本申请实施例提供的一种初始化方法的流程图,该方法具体包括下述步骤303A至303C。
步骤303A、该计算机设备获取模型配置文件,该模型配置文件包括模型列表和至少一个模型文件,该模型列表用于指示该至少一个模型文件中的模型,一个模型文件中存储有一个模型。
该计算机设备可以通过该流计算***中的初始化模块执行本步骤303A。该模型文件中的模型用于提取数据的特征,每个模型用于提取数据的一个特征,该模型列表包括模型文件的序列号以及模型标识。在一种可能的实现方式中,参见表1所示的模型列表,从表1中可知,该模型列表中指示了3个模型,分别为模型文件001中的用于求和的累加模型、模型文件002中的用于求方差的方差模型、模型文件003中的用于求平均数的平均数模型。当然,该模型列表中还可以包括其他字段,例如模型身份标识号(identification,ID),本申请实施例对其他字段不做具体赘述。
表1
序号 模型标识 模型文件序列号
1 累加模型 001
2 方差模型 002
3 平均数模型 003
303B、该计算机设备解析该模型配置文件,得到该模型列表和至少一个模型文件。
该计算机设备可以通过该流计算***中的初始化模块执行本步骤303B。需要说明的是,当该计算机设备在解析该模型配置文件,不出现解析异常时,该计算机设备才可以解析出该模型列表和至少一个模型文件;当该计算机设备在解析该模型配置文件,出现解析异常时,该流计算***记录日志,退出初始化。其中,该解析异常可以是当该计算机设备在解析该模型配置文件时,报出解析失败,该解析异常还可以是其他异常,本申请实施例对该解析异常的具体体现不做限定。
303C、该计算机设备将该模型列表中指示的模型存储在缓存区中。
该计算机设备可以通过该流计算***中的初始化模块执行本步骤303C。根据模型列表中的模型文件序列号,在解析出的模型文件中具有该模型文件序列号对应的模型文件时,该计算机设备将该模型文件中的模型存储在缓存区中,当在解析出的模型文件中没有该模型文件序列号对应的模型文件时,则该计算机设备记录日志,退出初始化。
在一种可能的实现方式中,仍以步骤301中的表1为例,当该计算机设备在表1中获取的模型文件序列号为001时,且在解析出的模型文件中有模型文件001,则将模型文件001中的求和模型存储在缓存区中,当该流计算***在表1中获取的模型文件序列号为002时,而在解析出的模型文件中没有模型文件002,该计算机设备记录日志,退出初始化。
该计算机设备还可以为缓存区中存储的模型分配模型序列号,例如按照模型在该缓存区中存储顺序为该模型分配序列号,第一个存储在该缓存区中的模型的序列号为001,第二个存储在该缓存区中的模型的序列号为002,以此类推。当然,该流计算***还可以根据模型文件序列号来为缓存区中的模型分配模型序列号,使的该缓存区中的每个模型与一个模型文件对应。当然,该计算机设备也可以将模型ID作为模型的序列号,在此,本申请实施例对为缓存区中的模型分配模型序列号的具体分配方式不做限定。
需要说明的是,该计算机设备在将模型存储至该缓存区时,可以分类存储,也即是,每个模型对应一个模型类型标识,每个模型类型标识和一种类型的多个模型对应,同一类型中的多个模型可以对同一类数据进行特征提取。
需要说明的是,该计算机设备可以按照上述顺序执行,也可以先执行步骤303,再执行步骤302、最后执行步骤301,当然,也可以是其他的执行顺序,本申请实施例对步骤301-303的具体的执行顺序不做限定。
当该流计算***初始化完成后,该计算机设备可以从该开源流处理平台处获取实时的数据流,并提取流各个数据的特征,参见图4A,图4A是本申请实施例提供一种数据特征提取方法的流程图,该方法步骤包括:
401、计算机设备从开源流处理平台中获取数据流,将该数据流中的各个数据存储至数据队列中,每个数据携带类型标识,该类型标识用于指示数据类型。
该计算机设备为运行该流计算***的设备,该计算机设备可以通过该流计算***中的数据接收模块执行本步骤401,该数据队列用于存储接收的数据流中的各个数据。在一种可能的实现方式中,参见图4B,图4B是本申请实施例提供的一种数据接收方法的流程图,该方法具体包括下述步骤401A至401C。
步骤401A、该计算机设备启动数据接收服务,该数据接收服务用于从开源流处理平台接收数据流。
该计算机设备可以通过该流计算***中的数据接收模块执行本步骤401A,当接收到启动数据接收服务的指令时,该计算机设备执行本步骤401A,例如,用户在该流计算***的显示界面中点击数据接收服务的开启按钮时,该计算机设备可以接收到该启动数据服务的指令,进而该计算机设备可以启动数据接收服务。当开启该数据接收服务时,该计算机设备将数据拉取线程的状态更新为运行状态,具体地,仍以步骤301D中的示例为例,该计算机设备将该数据拉取线程的状态由0更新为1,使得该数据拉取线程的状态由阻塞状态更新为运行状态。
步骤401B、当该数据接收服务开启后,该计算机设备向开源该流处理平台发送数据拉取请求,该数据拉取请求包括第一类型标识。
该计算机设备可以通过该流计算***中的数据接收模块执行本步骤401B,该数据拉取请求用于向该开源流处理平台拉取该第一类型标识对应的数据,该第一类型标识对应每个数据上都携带有类型标识,该类型标识用于表示一个数据的类型,该第一类型标识用于表示至少一个数据的类型。
步骤401C、基于该数据拉取请求中的第一类型标识,该开源流处理平台向该计算机设备发送与该第一类型标识对应的数据流。
该计算机设备可以通过该流计算***中的数据接收模块执行本步骤401C,该数据流为该数据类型为该第一类型标识的数据所组成的数据流在本发明实施例中,该数据流中的数据可以为物联网数据。
步骤401D、该计算机设备接收该数据流。
该计算机设备可以通过该流计算***中的数据接收模块执行本步骤401D,
步骤401E、当数据队列中的数据未满时,该计算机设备将该数据流中的各个数据写入到该数据队列中。
该计算机设备可以通过该流计算***中的数据接收模块执行本步骤401E,需要说明的是,该数据队列已满时,该计算机设备暂时不将该数据流中各个数据写入至该数据队列中,等待数据队列中的数据被消费,当该数据队列中有数据被消费时,该数据队列为未满状态,该计算机设备才可以将该数据流中的数据写入到该数据队列中。另外,当该数据写入至该数据队列后,该计算机设备将接着从该开源流处理平台拉取数据。
402、按照该数据队列中的存储顺序,该计算机设备从该数据队列中获取待进行特征提取的数据。
该计算机设备可以通过该流计算***中的计算模块执行本步骤402,该数据队列的存储顺序可以是,该数据队列中的数据被写入到该数据队列的先后顺序,在一种可能的实现方式中,该计算机设备可以从该数据队列中获取先被写入的数据,当然,该计算机设备可以按照其他存储顺序从该数据队列中获取待进行特征提取的数据。
403、该计算机设备向线程池提交任务,该任务包括该数据以及该至少一个目标模型,该任务用于指示利用该至少一个目标模型提取该数据的至少一个目标特征。
该计算机设备可以通过该流计算***的计算模块执行本步骤403。
404、每获取到一个数据时,基于该数据的类型标识,该计算机设备获取至少一个目标模型,该类型标识对应至少一个目标模型。
该计算机设备可以通过流计算***中的计算模块执行本步骤404,该缓存区中的一类模型具有同一个模型类型标识,该数据的类型标识可以对应一个模型类型标识,从而,该计算***可以在缓存区中确定该类型标识对应的模型类型标识,进而可以将与该模型类型标识对应的至少一个模型确定为至少一个目标模型,例如,该数据的类型标识为“产量”,与模型类型标识“产量指标”对应,而累加模型、方差模型以及平均数模型的模型类型标识均是“产量指标”,从而根据“产量”以及“产量指标”的对应关系,可以将缓存区中的累加模型、方差模型以及平均数模型作为目标模型。
405、根据该数据的类型标识,对数据库中该至少一个目标模型的第二特征进行加锁,该第二特征为上一次模型运算过程中所产生的特征。
该计算机设备可以通过该流计算***中的计算模块执行本步骤405。该数据库可以是数据立方数据库,该数据立方数据库可以键值对(key-value)的形式来存储数据的特征,在一种可能的实施方式中,一个Key与一个类型标识对应,一个Key与一个value对应,一个value与一个与数据库中的至少一个模型指标对应,每个模型指标可以包括模型序列号、时间点以及特征,该时间点为第一数据生成的时间点,该第一数据可以携带该时间点,该第一数据为与该模型序列号对应的模型进行特征提取的数据,该特征为与该模型序列号对应的模型对该第一数据进行特征提取的结果。仍以步骤403中的示例为例,类型标识“产量”与Key1对应,Key1与Key100、Key101、Key102对应,Key100与value1对应,Key101与value2对应,Key102与value3对应,value1对应累加模型的模型指标1(累加模型序列号,时间点1、特征1,),value1对应方差模型的模型指标2(方差模型序列号、时间点1、特征2),value3平均数模型的模型指标(平均数模型序列号,时间点1、特征3),其中,特征1-3为累加模型、平均数模型以及方差模型上一次进行模型运算所产生的特征,时间点1为该数据的时间点。基于上述对应关系,可知Key1对应模型指标1-3,从而该计算机设备可以通过对该模型指标1-3进行加锁,来实现对特征1-3的加锁。需要说明的是,本申请实施例对类型标识、Key、value、指标类型标识以及模型指标之间的具体的对应方式不做具体限定。
为了进一步体现本步骤405的具体过程,本步骤405可以通过下述步骤405A-405B所述的过程来实现。
步骤405A、根据该数据的类型标识,该计算机设备确定一个Key。
仍以步骤405中的上述示例为例,例如,根据类型标识与Key的对应关系,由类型标识“产量”可以确定Key1。
步骤405B、根据确定的key,该计算机设备对该数据库中至少一个第二模型指标进行加锁,获取该至少一个第二模型指标。
Key与value的对应的关系,该计算机设备可以确定至少一个value,并根据该至少一个value,确定至少一个第二模型指标,仍以步骤405中上述示例为例,模型指标1为携带累加模型上次结果的模型指标,模型指标2为携带方差模型上次计算结果的模型指标,模型3为携带平均数模型上次计算结果的模型指标,由Key1可以确定与Key1对应的Key100-102,由Key100-102与value1-3的对应关系可以确定value1-3,由value1-3与模型指标1-3的关系,可以确定模型指标1-3,从而可以对模型指标1-3进行加锁,该计算机设备在加锁后可以从该数据库中获取模型指标1-3。
需要说明的是,该线程池接收到该任务后,该线程池将该任务添加至一个线程中,当该计算机设备通过线程对该至少一个第二模型指标加锁后,其他线程将不能获取该至少一个第二模型指标,也不能使用该至少一个目标模型来进行特征提取,进而其他线程也就不会将该至少一个目标模型生成的模型指标存储在数据库中,从而可以避免出现该线程在获取该第二模型指标时,其他线程还没有将该至少一个目标模型已经生成的模型指标存储在数据库中的情况,进而可以避免该线程获取的第二模型指标不是该至少一个目标模型上次计算生成的模型指标,从而可以保证该至少一个目标模型本次进行特征提取的结果的正确性。
406、该计算机设备将该数据以及每个第二特征输入至对应的目标模型,得到至少一个第一特征。
该计算机设备可以通过流计算***的计算模块执行本步骤406,在一种可能的实现方式中,仍以步骤405B中的示例为例,目标模型为累加模型、方差模型以及平均数模型,模型指标1(累加模型序列号,时间点1、特征1,)为累加模型的第二模型指标,模型指标2(方差模型序列号、时间点1、特征2)为方差模型的第二模型指标,模型指标3(平均数模型序列号,时间点1、特征3)为平均数模型的第二模型指标;将该数据以及模型指标1输入至累加模型,累加模型基于该模型指标1中的特征1以及该数据进行计算得到第一特征1,并基于模型指标1中的累加模型序列号以及该数据携带的时间点2生成第一模型指标1(累加模型序列号、时间点2、第一特征1);将该数据以及模型指标2输入至方差模型,方差模型基于该模型指标2中的特征2以及该数据进行计算得到第一特征2,并基于模型指标2中的方差模型序列号以及该数据携带的时间点2生成第一模型指标2(方差模型序列号、时间点2、第一特征2);将该数据以及模型指标3输入至平均数模型,平均数模型基于该模型指标3中的特征3以及该数据进行计算得到第一特征3,并基于模型指标3中的平均数模型序列号以及该数据携带的时间点2生成第一模型指标3(平均数模型序列号、时间点2、第一特征3),该计算机设备可以在第一模型指标1-3中得到第一特征1-3。
需要说明的是,该计算机设备每将该数据以及一个目标模型的第二特征入至对应的目标模型,且计算成功时,得到一个第一特征;每将该数据以及一个目标模型的第一模型指标输入至对应的目标模型,且计算失败时,该目标模型可以基于该数据以及该目标模型的第二特征进行预设次数的计算,当在输入预设次数内计算成功时,该计算机设备得到一个第一特征,当在预设次数内均计算失败时,该计算机设备丢弃该数据,记录日志。
在一种可能的实现方式中,当该数据出现异常时,目标模型通过计算得到的结果视为计算成功,异常的数据可以是出现故障的物联网设备产生的数据,当然异常的数据还可以为其他形式的异常数据,本申请实施对数据异常的具体体现不做限定。
在一种可能的实现方式中,当从该数据库中无法获取该目标模型的第一模型指标时,视为该目标模型计算失败,例如,当从该数据库中获取不到该至少一个目标模型的第二特征时,该计算机设备持续获取该至少一个目标模型的第二特征;当在预设次数内获取到该至少一个目标模型的第二特征时,将该数据以及每个第二特征输入至对应的目标模型,得到至少一个第一特征,当在预设次数内获取不到该至少一个目标模型的第二特征时,该计算机设备丢弃该数据,获取该数据队列中的下一个数据。另外,当目标模型在计算时,计算机设备的计算模块的功能出现异常时,也可以视为该目标模型计算失败。
在一种可能的实现方式中,该目标模型出现计算失败时,仍以步骤406中的上述示例为例,且预设次数为3,将该数据以及模型指标1输入至累加模型,出现计算失败时,累加模型基于该数据以及模型指标1再次进行重新计算,若计算成功则得到第一模型指标1,若计算失败,则该累加模型再次进行重新计算,若计算成功则得到第一模型指标1,若还是计算失败,则该累加模型最后一次进行重新计算,若计算成功则得到第一模型指标1,若还是计算失败,则该计算机设备记录日志,进入下一个循环,也即是,从数据队列中获取下一个数据,对下一数据进行特征提取。
407、该计算机设备将该至少一个第一特征存储在该数据库中。
该计算机设备可以通过该流计算***的输出模块执行本步骤407,在一种可能的实现方式中,参见图4C,图4C是本申请实施例提供的一种数据输出方法的流程图,该方法具体包括下述步骤407A至407B。
步骤407A、通过封装接口,根据数据输出接口的输出协议,该计算机设备封装该至少一个第一特征。
例如,根据数据输出接口定义的输出协议要求的格式,该计算机设备可以将该至少一个第一特征封装成符合该数据输出接口支持的输出协议的数据包,以便该数据输出接口可以将该封装后的第一特征输出。
步骤407B、通过该数据输出接口,该计算机设备将该至少一个第一特征存储在数据库中。
例如,每当该至少一个第一特征生成时,该计算机设备输出向数据库输出封装后至少一个第一特征,进而该计算机设备可以将该至少一个特征存储至数据库中。该计算机设备可以通过以下2种方式将该至少一个第一特征存储在数据库中:
方式1、每个第一模型指标与一个目标模型的第一特征,且每个第一模型指标与一个value对应,可以每个第一模型指标与对应的value关联存储在数据库中,例如,仍以步骤406中的示例为例,且将第一模型指标1-3为该至少一个目标模型地n次计算的结果,该计算机设备可以将第一模型指标1-3与value1-3对应,且第一模型指标1-3与目标模型的计算次数n对应,并根据这两种对应关系,将第二模型指标1-3、目标模型的计算次数n+1以及value1-3对应存储,从而将第二模型指标1-3中的第二特征1-3存储在该数据库,并且该至少一个目标模型在进行下次计算时,可以将该至少一个第一模型指标作为该至少一个目标下次计算输入的第二模型指标。
方式2、该计算机设备可以将数据库中的至少一个第二模型指标替换成该至少一个第一模型指标,从而将该至少一个第一模型指标存储在数据库中,进而该至少一个第一模型指标中的第一特征存储在数据库中。
408、该计算机设备释放该数据库中每个第二特征的锁。
该计算机设备可以通过该流计算***的计算模块执行本步骤408,以便该至少一个目标模型可以基于该第二特征进行下一次模型计算。当释放完每个第一特征的锁后,该计算机设备可以对数据队列中的下一个数据进行特征提取。
在本申请实施例中,通过将直接获取的数据流中的各个数据输入至少一个目标模型中,得到至少一个目标特征,基于该至少一个目标模型,从而可以直接实现数据的特征提取,而不必通过使用流计算引擎来实现数据的特征提取,也就无需对流计算引擎各个接口进行二次开发,从而技术人员无需学习流计算引擎,进而降低了技术人员的学习和开发成本。并且,通过将一个类型的数据输入至不同的目标模型中,可以提取到这种类型的数据的多个特征,更能体现这种类型数据的特点。并且缓存区中可以存储不同类型的模型,从而该流计算***可以提取不同类型数据的特征,提高了该流计算***的普适性。并且,通过对数据库中的第二特征指标加锁,可以避免输入目标模型中的第二特征不是该目标模型上次计算得到特征,从而保证了该目标模型计算结果的正确性。
为了使该计算机设备基于该流计算***可以提取到更多的特征,缓存区中的模型是可以更新的,且可以基于用户的操作来实现,参见图5,图5是本申请实施例提供的一种模型更新方法流程图,该方法包括以下步骤。
501、该计算机设备订阅模型消息,该模型消息包括更新标识,该更新标识用于指示更新缓存区中与该更新标识对应的模型。
该模型消息为用户在对模型进行上线、修改、删除等操作时,用户向该计算机设备发送的消息,该计算机设备可以通过该流计算***的模型订阅调整模块执行本步骤501,该模型订阅调整模块向该计算机设备请求订阅该模型消息,当该计算机设备接收到该模型消息后,该计算机设备广播该模型消息,该模型订阅调整模块就可以获取该模型信息。该更新标识包括删除标识、增加标识以及替换标识,当该更新标识为删除标识时,该模型信息还可以包括与该模型标识对应的模型序列号,与该模型标识对应的模型序列号用于指示缓存区中待删除的模型;当该更新标识为增加标识时,该模型信息还可以包括与该增加标识对应的模型,与该模型标识对应的模型为用户上线的模型;当该更新标识为替换标识时,该模型信息还可以包括与该替换标识对应的模型以及与该替换标识对应的模型序列号,与该替换标识对应的模型序列号用于指示缓冲区中待替换的模型。
502、当接收到该模型消息后,根据该模型消息中的更新标识,该计算机设备更新缓存区中的模型。
该计算机设备可以通过模型订阅调整模块执行本步骤502,在一种可能的实现方式中,当该模型消息中的更新标识为删除标识时,该计算机设备删除缓存区中与该删除标识对应的模型,例如,该模型消息中包括删除标识以及与该删除标识对应的模型序列号003,根据该模型消息,该计算机设备删除缓存区中模型序列号为003的模型。
在一种可能的实现方式中,当该模型消息中的更新标识为增加标识时,该计算机设备将该增加标识指示的模型存储至缓存区中,例如,该模型消息包括增加标识以及该增加标识对应的模型ID1,根据该模型消息,该计算机设备通过接口可以获取该模型ID1指示的模型1,进而将该模型1存储至缓存区中。
在一种可能的实现方式中,当该模型消息中的更新标识为替换标识时,该计算机设备将该缓存区中与该替换标识对应的模型替换为该替换标识指示的模型,例如,该模型消息包括替换标识,与该替换标识对应的ID2以及与该替换标识对应的模型序列004,根据该模型消息,该计算机设备通过接口可以获取该模型ID2指示的模型2,进而将缓存区中模型序列号为004的模型替换成模型2。
本申请实施例提供的方法,通过基于用户对模型的更新操作,该计算机设备来更新缓存区中的模型,从而使得缓存区中的模型不仅可以符合用户需求,还可以增加模型的数量,以便该计算机设备基于大量的模型可以提取出数据的大量特征,进而可以进一步数据进行分析。
该计算机设备除了根据用户对模型的操作来更新模型,还可以基于停止命令,关闭该流计算***,具体地,参见图6,图6是本申请实施例提供的一种流计算***关闭方法的流程图,该方法具体包括以下步骤。
601、该计算机设备接收停止指令,该停止指令用于指示关闭流计算***,该流计算***用于执行上述数据特征提取的过程。
在一种可能的实时方式中,当用户在该计算机设备的显示界面上点击该流计算***的关闭按钮时,该计算机设备可以通过该流计算***的停止模块执行本步骤601。
602、基于该停止指令,该计算机设备停止接收数据。
该计算机设备可以通过该流计算***的停止模块执行本步骤602,该计算机设备可以关闭数据接收模块,使得数据接收模型不能接收开源流处理平台发送的数据流,该计算机设备还可以关闭数据拉取线程,使得数据接收模块不能从开源流处理平台拉取数据流。
603、当数据队列中的数据消费完成时,该计算机设备关闭该流计算***。
该计算设备可以通过该流计算***的停止模块执行本步骤603,在关闭该流计算***之前,该停止模块需要先查阅数据队列中的数据是否消费完,也即是,数据队列中的数据是否已经全部被提出了特征,当数据队列中的数据已经消费完成时,该停止模块执行本步骤603,当数据队列中的数据没有被消费完成时,该停止模块等待数据队列中的数据消费完成,执行本步骤603。
本申请实施例通过停止指令,使得流计算***中的停止模块关闭该流计算***,从而使得该流计算***不必一直持续的工作,从而可以降低运行该流计算***的设备的负载,从而可以提高设备的使用寿命。
需要说明的是,上述各个实施例均是以流计算***在一个计算机设备上运行来进行说明的,在一种可能的实现方式中,该流计算***也可以由一个计算机设备集群来实现,该计算机设备集群中的一个计算机设备实现该流计算***的至少一个模块对应的功能,在此本发明实施例对该计算机设备集群不做具体限定。
上述所有可选技术方案,可以采用任意结合形成本申请的可选实施例,在此不再一一赘述。
图7是本申请实施例提供的一种数据特征提取装置的结构示意图,该装置包括:
存储模块701,用于从开源流处理平台中获取数据流,将该数据流中的各个数据存储至数据队列中,每个数据携带类型标识,该类型标识用于指示数据类型;
第一获取模块702,用于按照该数据队列中的存储顺序,从该数据队列中获取待进行特征提取的数据;
第二获取模块703,用于每获取到一个数据时,基于该数据的类型标识,获取至少一个目标模型,该类型标识对应至少一个目标模型;
输入模块704,用于将该数据输入至该至少一个目标模型中,得到至少一个第一特征,一个第一特征与一个目标模型对应。
可选地,输入模块704,用于:
加锁单元,用于根据该数据的类型标识,对数据库中该至少一个目标模型的第二特征进行加锁,该第二特征为上一次模型运算过程中所产生的特征;
输入单元,用于将该数据以及每个第二特征输入至对应的目标模型,得到至少一个第一特征;
存储单元,用于将该至少一个第一特征存储在该数据库中;
释放单元,用于释放该数据库中每个第一模型指标的锁。
可选地,该装置还包括:
当从该数据库中获取不到该至少一个目标模型的第二特征时,持续获取该至少一个目标模型的第二特征;
当在预设次数内获取到该至少一个目标模型的第二特征时,将该数据以及每个第二特征输入至对应的目标模型,得到至少一个第一特征,当在预设次数内获取不到该至少一个目标模型的第二特征时,丢弃该数据,获取该数据队列中的下一个数据。
可选地,该存储单元用于:
通过封装接口,根据数据输出接口的输出协议,封装该至少一个第一特征;
还用于通过该数据输出接口,将该至少一个第一特征存储在数据库中。
可选地,该装置还包括:
订阅模块,用于订阅模型消息,该模型消息包括更新标识,该更新标识用于指示更新指示缓存区中的模型;
更新模块,用于当接收到该模型消息后,根据该模型消息中的更新标识,更新该缓存区中的模型。
可选地,更新模块用于下述至少一项:
当该模型消息中的更新标识为删除标识时,删除该缓存区中与该删除标识对应的模型;
当该模型消息中的更新标识为增加标识时,将该增加标识指示的模型存储至缓存区中;
当该模型消息中的更新标识为替换标识时,将该缓存区中与该替换标识对应的模型替换为该替换标识指示的模型。
可选地,第一获取模块702用于:
启动数据接收服务,该数据接收服务用于从开源流处理平台接收数据流;
接收数据流;
当数据队列中的数据未满时,将该数据流中的各个数据写入到该数据队列中。
可选地,该装置还包括:
第三获取模块,用于获取第一资源配置文件,该第一资源配置文件存储有开源流处理平台的地址以及第一类型标识,该第一类型标识用于指示数据类型;
第一解析模块,用于解析该第一资源配置文件,得到该开源流处理平台的地址以及类型标识;
连接模块,用于根据该开源流处理平台的地址,与该开源流处理平台建立连接;
启动模块,用于当与该开源流处理平台连接成功时,启动数据拉取线程,将该数据拉取线程的状态设置为阻塞状态。
可选地,该装置还包括:
第四获取模块,用于获取第二资源配置文件,该第二资源配置文件存储有第一预设数目的内存资源以及第二预设数目的线程;
第二解析模块,用于解析该第二资源配置文件,得到该第一预设数目的内存资源以及第二预设数目的线程;
设置模块,用于设置第一预设数目的内存资源来存储接收的数据、模型以及提取的特征,在线程池中设置第二预设数目的线程,该第二预设数目的线程为特征提取所占用的线程。
可选地,该装置还包括:
第五获取模块,用于获取模型配置文件,该模型配置文件包括模型列表和至少一个模型文件,该模型列表用于指示该至少一个模型文件中的模型,一个模型文件中存储有一个模型;
第三解析模块,用于解析该模型配置文件,得到该模型列表和至少一个模型文件;
存储模块701,还用于将该模型列表中指示的模型存储在缓存区中。
可选地,接收模块,还用于接收停止指令,该停止指令用于指示关闭流计算***,该流计算***用于执行上述数据特征提取的过程;
可选地,该装置还包括:
停止模块,用于基于该停止指令,停止接收数据;
关闭模块,用于当该数据队列中的数据消费完成时,关闭该流计算***。
需要说明的是:上述实施例提供的数据特征提取装置在提取特征时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的数据特征提取装置与数据特征提取方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (14)

1.一种数据特征提取方法,其特征在于,所述方法包括:
从开源流处理平台中获取数据流,将所述数据流中的各个数据存储至数据队列中,每个数据携带类型标识,所述类型标识用于指示数据类型;
按照所述数据队列中的存储顺序,从所述数据队列中获取待进行特征提取的数据;
每获取到一个数据时,基于所述数据的类型标识,获取至少一个目标模型,该类型标识对应至少一个目标模型;
将所述数据输入至所述至少一个目标模型中,得到至少一个第一特征,一个第一特征与一个目标模型对应。
2.根据权利要求1所述的方法,其特征在于,所述将所述数据输入至所述至少一个目标模型中,得到至少一个第一特征,包括:
根据所述数据的类型标识,对数据库中所述至少一个目标模型的第二特征进行加锁,所述第二特征为上一次模型运算过程中所产生的特征;
将所述数据以及每个第二特征输入至对应的目标模型,得到至少一个第一特征;
将所述至少一个第一特征存储在所述数据库中;
释放所述数据库中每个第二特征的锁。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
当从所述数据库中获取不到所述至少一个目标模型的第二特征时,持续获取所述至少一个目标模型的第二特征;
当在预设次数内获取到所述至少一个目标模型的第二特征时,将所述数据以及每个第二特征输入至对应的目标模型,得到至少一个第一特征,当在预设次数内获取不到所述至少一个目标模型的第二特征时,丢弃所述数据,获取所述数据队列中的下一个数据。
4.根据权利要求2所述的方法,其特征在于,所述将所述至少一个第一特征存储在所述数据库中,包括:
通过封装接口,根据数据输出接口的输出协议,封装所述至少一个第一特征;
通过所述数据输出接口,将所述至少一个第一特征存储在数据库中。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
订阅模型消息,所述模型消息包括更新标识,所述更新标识用于指示更新指示缓存区中的模型;
当接收到所述模型消息后,根据所述模型消息中的更新标识,更新所述缓存区中的模型。
6.根据权利要求5所述的方法,其特征在于,所述根据所述模型消息中的更新标识,更新所述缓存区中的模型,包括下述至少一项:
当所述模型消息中的更新标识为删除标识时,删除所述缓存区中与所述删除标识对应的模型;
当所述模型消息中的更新标识为增加标识时,将所述增加标识指示的模型存储至缓存区中;
当所述模型消息中的更新标识为替换标识时,将所述缓存区中与所述替换标识对应的模型替换为所述替换标识指示的模型。
7.根据权利要求1所述的方法,其特征在于,所述从开源流处理平台中获取数据流,将所述数据流中的各个数据存储至数据队列中,包括:
启动数据接收服务,所述数据接收服务用于从开源流处理平台接收数据流;
接收数据流;
当数据队列中的数据未满时,将所述数据流中的各个数据写入到所述数据队列中。
8.根据权利要求1所述的方法,其特征在于,所述从开源流处理平台中获取数据流之前,所述方法还包括:
获取第一资源配置文件,所述第一资源配置文件存储有开源流处理平台的地址以及第一类型标识,所述第一类型标识用于指示数据类型;
解析所述第一资源配置文件,得到所述开源流处理平台的地址以及类型标识;
根据所述开源流处理平台的地址,与所述开源流处理平台建立连接;
当与所述开源流处理平台连接成功时,启动数据拉取线程,将所述数据拉取线程的状态设置为阻塞状态。
9.根据权利要求1所述的方法,其特征在于,所述从开源流处理平台中获取数据流之前,所述方法还包括:
获取第二资源配置文件,所述第二资源配置文件存储有第一预设数目的内存资源以及第二预设数目的线程;
解析所述第二资源配置文件,得到所述第一预设数目的内存资源以及第二预设数目的线程;
设置第一预设数目的内存资源来存储接收的数据、模型以及提取的特征,在线程池中设置第二预设数目的线程,所述第二预设数目的线程为特征提取所占用的线程。
10.根据权利要求1所述的方法,其特征在于,所述每获取到一个数据时,基于所述数据的类型标识,获取至少一个目标模型之前,所述方法还包括:
获取模型配置文件,所述模型配置文件包括模型列表和至少一个模型文件,所述模型列表用于指示所述至少一个模型文件中的模型,一个模型文件中存储有一个模型;
解析所述模型配置文件,得到所述模型列表和至少一个模型文件;
将所述模型列表中指示的模型存储在缓存区中。
11.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收停止指令,所述停止指令用于指示关闭流计算***,所述流计算***用于执行上述数据特征提取的过程;
基于所述停止指令,停止接收数据;
当所述数据队列中的数据消费完成时,关闭所述流计算***。
12.一种数据特征提取装置,其特征在于,所述装置包括:
第一存储模块,用于从开源流处理平台中获取数据流,将所述数据流中的各个数据存储至数据队列中,每个数据携带类型标识,所述类型标识用于指示数据类型;
第一获取模块,按照所述数据队列中的存储顺序,从数据队列中获取待进行特征提取的数据;
第二获取模块,用于每获取到一个数据时,基于所述数据的类型标识,获取至少一个目标模型,该类型标识对应至少一个目标模型;
输入模块,用于将所述数据输入至所述至少一个目标模型中,得到至少一个第一特征,一个第一特征与一个目标模型对应。
13.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现如权利要求1至权利要求11任一项所述的数据特征提取方法所执行的操作。
14.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现如权利要求1至权利要求11任一项所述的数据特征提取方法所执行的操作。
CN201910036799.2A 2019-01-15 2019-01-15 数据特征提取方法、装置、计算机设备以及存储介质 Pending CN111435356A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910036799.2A CN111435356A (zh) 2019-01-15 2019-01-15 数据特征提取方法、装置、计算机设备以及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910036799.2A CN111435356A (zh) 2019-01-15 2019-01-15 数据特征提取方法、装置、计算机设备以及存储介质

Publications (1)

Publication Number Publication Date
CN111435356A true CN111435356A (zh) 2020-07-21

Family

ID=71580024

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910036799.2A Pending CN111435356A (zh) 2019-01-15 2019-01-15 数据特征提取方法、装置、计算机设备以及存储介质

Country Status (1)

Country Link
CN (1) CN111435356A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113676353A (zh) * 2021-08-19 2021-11-19 杭州华橙软件技术有限公司 设备的控制方法、装置、存储介质和电子装置
CN116881610A (zh) * 2023-09-08 2023-10-13 国网信息通信产业集团有限公司 能源设备量测项数据流式计算方法、装置、设备及介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104796300A (zh) * 2015-03-23 2015-07-22 亚信科技(南京)有限公司 一种数据包特征提取方法及装置
CN106156130A (zh) * 2015-04-09 2016-11-23 阿里巴巴集团控股有限公司 一种数据处理方法及装置
CN107741899A (zh) * 2017-10-16 2018-02-27 北京小米移动软件有限公司 处理终端数据的方法、装置及***
CN108304848A (zh) * 2018-01-10 2018-07-20 链家网(北京)科技有限公司 户型特征的自动提取方法、***、电子设备和存储介质
CN108509260A (zh) * 2018-01-31 2018-09-07 深圳市万普拉斯科技有限公司 线程识别处理方法、装置、计算机设备和存储介质
CN108804697A (zh) * 2018-06-15 2018-11-13 中国平安人寿保险股份有限公司 基于Spark的数据同步方法、装置、计算机设备和存储介质
US20180357049A1 (en) * 2017-06-07 2018-12-13 Ab Initio Technology Llc Dataflow graph configuration
CN109086709A (zh) * 2018-07-27 2018-12-25 腾讯科技(深圳)有限公司 特征提取模型训练方法、装置及存储介质

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104796300A (zh) * 2015-03-23 2015-07-22 亚信科技(南京)有限公司 一种数据包特征提取方法及装置
CN106156130A (zh) * 2015-04-09 2016-11-23 阿里巴巴集团控股有限公司 一种数据处理方法及装置
US20180357049A1 (en) * 2017-06-07 2018-12-13 Ab Initio Technology Llc Dataflow graph configuration
CN107741899A (zh) * 2017-10-16 2018-02-27 北京小米移动软件有限公司 处理终端数据的方法、装置及***
CN108304848A (zh) * 2018-01-10 2018-07-20 链家网(北京)科技有限公司 户型特征的自动提取方法、***、电子设备和存储介质
CN108509260A (zh) * 2018-01-31 2018-09-07 深圳市万普拉斯科技有限公司 线程识别处理方法、装置、计算机设备和存储介质
CN108804697A (zh) * 2018-06-15 2018-11-13 中国平安人寿保险股份有限公司 基于Spark的数据同步方法、装置、计算机设备和存储介质
CN109086709A (zh) * 2018-07-27 2018-12-25 腾讯科技(深圳)有限公司 特征提取模型训练方法、装置及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
周立功: "嵌入式Linux开发教程 上", 北京航空航天大学出版社, pages: 327 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113676353A (zh) * 2021-08-19 2021-11-19 杭州华橙软件技术有限公司 设备的控制方法、装置、存储介质和电子装置
CN116881610A (zh) * 2023-09-08 2023-10-13 国网信息通信产业集团有限公司 能源设备量测项数据流式计算方法、装置、设备及介质
CN116881610B (zh) * 2023-09-08 2024-01-09 国网信息通信产业集团有限公司 能源设备量测项数据流式计算方法、装置、设备及介质

Similar Documents

Publication Publication Date Title
US11487536B2 (en) System for automating user-defined actions for applications executed using virtual machines in a guest system
US11036576B2 (en) Automatically reconfiguring a performance test environment
US20210279241A1 (en) Splitting a time-range query into multiple sub-queries for serial execution
US10693711B1 (en) Real-time event correlation in information networks
US12007866B2 (en) System and method for database replication benchmark testing using a pipeline-based microservices model
US10073683B2 (en) System and method for providing software build violation detection and self-healing
CN110837592B (zh) 数据归档的方法、装置和计算机可读存储介质
CN110750592B (zh) 数据同步的方法、装置和终端设备
US20160224393A1 (en) System and method of distributing processes stored in a common database
US10534700B2 (en) Separating test verifications from test executions
US10372572B1 (en) Prediction model testing framework
KR20150087265A (ko) 동적 컴포넌트 퍼포먼스 모니터링
CN113779092A (zh) 基于数据仓库的实时数据展示方法、装置、设备及介质
CN111435356A (zh) 数据特征提取方法、装置、计算机设备以及存储介质
CN108399095B (zh) 支持动态管理定时任务的方法、***、设备和存储介质
US9442818B1 (en) System and method for dynamic data collection
US11119899B2 (en) Determining potential test actions
CN113760491A (zh) 一种任务调度***、方法、设备及存储介质
CN110689137B (zh) 参数确定方法、***、介质和电子设备
CN117336135A (zh) 数据传输方法、装置、存储介质以及电子设备
CN115373886A (zh) 服务群组容器停机方法、装置、计算机设备和存储介质
CN114791900A (zh) 基于Operator的Redis运维方法、装置、***及存储介质
US10949232B2 (en) Managing virtualized computing resources in a cloud computing environment
CN111338609A (zh) 信息获取方法、装置、存储介质及终端
Kukreti et al. CloneHadoop: Process Cloning to Reduce Hadoop's Long Tail

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