CN113282500A - 接收测试数据的方法、装置、设备及存储介质 - Google Patents
接收测试数据的方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN113282500A CN113282500A CN202110610933.2A CN202110610933A CN113282500A CN 113282500 A CN113282500 A CN 113282500A CN 202110610933 A CN202110610933 A CN 202110610933A CN 113282500 A CN113282500 A CN 113282500A
- Authority
- CN
- China
- Prior art keywords
- test data
- test
- production machine
- block
- block chain
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
- G06N20/20—Ensemble learning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Abstract
本发明提供了一种获取测试数据的方法、装置、设备及存储介质,其中,方法包括:获取待获取的测试数据的数据信息;其中,所述数据信息至少包括所述测试数据的名称信息;基于所述数据信息选取多个生产机器节点与测试机器连接;通过各个所述生产机器节点接收所述测试机器上传的测试数据块;基于所述TOKEN标签将各个所述生产机器节点上传的测试数据块进行汇总,得到所述测试数据;将所述测试数据存储于所述区块链中对应的存储池中,以使各个所述生产机器节点进行调用。本发明的有益效果提高了测试数据的传输效率,使得生产环境中的生产机器可以快速获取到测试数据。
Description
技术领域
本发明涉及测试领域,特别涉及一种获取测试数据的方法、装置、设备及存储介质。
背景技术
为了实现生产环境中各个生产机器中的各个模型的训练,一般需要从测试环境中获取对应的测试数据,以便于完成对模型的快速训练。目前,获取测试数据的方式主要是通过git(开源的分布式版本控制系统)的方式去获取对应的测试数据,再对测试数据进行编译,根据编译结果发送给对应的生产机器,但是这种方式获取测试数据仍然比较缓慢,因此继亟需一种获取测试数据的方法。
发明内容
本发明的主要目的为提供一种获取测试数据的方法、装置、设备及存储介质,旨在解决通过git的方式获取测试数据比较缓慢的问题。
本发明提供了一种获取测试数据的方法,包括:
获取待获取的测试数据的数据信息;其中,所述数据信息至少包括所述测试数据的名称信息;
基于所述数据信息选取多个生产机器节点与测试机器连接;其中所述生产机器节点为区块链中的一个节点,所述测试机器内含有所述测试数据;
通过各个所述生产机器节点接收所述测试机器上传的测试数据块;其中,所述测试数据块为所述测试机器将所述测试数据分割后的数据块,各所述测试数据块中含有各自在测试数据中的位置所对应的TOKEN标签,各个所述生产机器节点接收所述测试数据块后上传至所述区块链中;
基于所述TOKEN标签将各个所述生产机器节点上传的测试数据块进行汇总,得到所述测试数据;
将所述测试数据存储于所述区块链中对应的存储池中,以使各个所述生产机器节点进行调用。
进一步地,所述基于所述数据信息选取多个生产机器节点与测试机器连接的步骤,包括:
基于所述数据信息获取所述测试数据的大小;
根据文件大小和测试数据块划分数目的预设对应关系,并基于所述测试数据的大小,得到所述测试数据块的块数量;
基于所述块数量在所述区块链中按照预设的选取方法选取与所述块数量一样数目的生产机器节点与所述测试机器连接。
进一步地,所述基于所述TOKEN标签将各个所述生产机器节点上传的测试数据块进行汇总,得到所述测试数据的步骤之后,还包括:
将所述测试数据输入至预设的向量机中,得到对应固定维度的文件向量X=(x1,x2,…,xi,…,xn);
根据公式计算所述文件向量与每个生产机器节点对应的预存类别向量之间的匹配度;其中,Y为各消息队列对应的预存类别向量的多维坐标,Y=(y1,y2,…,yi,…,yn),xi表示文件向量中第i维的数值,yi表示对应的预存类别向量中第i维的数值,si为第i维数据所对应的系数,p为设定的参数值;
选取所述匹配度大于预设匹配度的机器向量对应的目标生产机器节点,并将所述测试数据发送至各所述目标生产机器节点上。
进一步地,所述通过各个所述生产机器节点接收所述测试机器上传的测试数据块的步骤,包括:
为各个生产机器节点设置多线程接收对应的数据块拆分后的碎片;其中,每个所述碎片都附加有对应的循环冗余校验码;
基于所述循环冗余校验码,采用模2除法对接收到的所述碎片进行碎片数目校验;
若校验结果为合格,则反馈所述测试机器该所述测试数据块接收完毕。
进一步地,所述若校验结果为合格,则反馈所述测试机器该所述测试数据块接收完毕的步骤之后,还包括:
为每个线程设置对应的消息队列;
基于预设的接收方式通过各消息队列接收对应的所述碎片;
获取接收了所述碎片后的各消息队列的长度,并根据各消息队列的长度建立长度集合;
根据公式Δdmax=max(|li-lj|)计算所述长度集合中最大长度差;其中,所述Δdmax表示所述最大长度差,li和lj分别表示所述长度集合中任意两个不同的消息队列长度,max(|li-lj|)表示|li-lj|计算得到的最大值;
判断所述最大长度差是否超过了长度预设值;
若超过了长度预设值,则将处理所述长度集合中长度最小的消息队列的处理线程,在处理完毕长度最小的消息队列后,获取处理所述长度集合中长度最大的消息队列对应的处理线程中的碎片进行处理。
进一步地,所述通过各个所述生产机器节点接收所述测试机器上传的测试数据块的步骤之前,还包括:
在所述区块链中获取根据所述区块链的预设共识机制投选出的多个审核区块链节点;
向各所述审核区块链节点发送连接确认信息,并将回复所述连接确认信息的审核区块链节点记为最终审核区块链节点;
将所述数据信息发送给所述最终审核区块链节点,并接收所述最终审核区块链节点的回执信息,并判断所述回执信息是否满足预设的区块链数据交互条件;
若所述回执信息满足预设的区块链数据交互条件,则执行所述通过各个所述生产机器节点接收所述测试机器上传的测试数据块的步骤。
本发明还提供了一种获取测试数据的装置,包括:
获取模块,用于获取待获取的测试数据的数据信息;其中,所述数据信息至少包括所述测试数据的名称信息;
选取模块,用于基于所述数据信息选取多个生产机器节点与测试机器连接;其中所述生产机器节点为区块链中的一个节点,所述测试机器内含有所述测试数据;
接收模块,用于通过各个所述生产机器节点接收所述测试机器上传的测试数据块;其中,所述测试数据块为所述测试机器将所述测试数据分割后的数据块,各所述测试数据块中含有各自在测试数据中的位置所对应的TOKEN标签,各个所述生产机器节点接收所述测试数据块后上传至所述区块链中;
汇总模块,用于基于所述TOKEN标签将各个所述生产机器节点上传的测试数据块进行汇总,得到所述测试数据;
存储模块,用于将所述测试数据存储于所述区块链中对应的存储池中,以使各个所述生产机器节点进行调用。
进一步地,所述选取模块,包括:
数据大小获取子模块,用于基于所述数据信息获取所述测试数据的大小;
块数量计算子模块,用于根据文件大小和测试数据块划分数目的预设对应关系,并基于所述测试数据的大小,得到所述测试数据块的块数量;
选取子模块,用于基于所述块数量在所述区块链中按照预设的选取方法选取与所述块数量一样数目的生产机器节点与所述测试机器连接。
本发明还提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述方法的步骤。
本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的方法的步骤。
本发明的有益效果:通过将各个生产机器节点设置成区块链,基于区块链的共享机制实现将测试数据分块获取,然后在区块链中重新汇总成测试数据,从而提高了测试数据的传输效率,使得生产环境中的生产机器可以快速获取到测试数据。
附图说明
图1是本发明一实施例的一种获取测试数据的方法的流程示意图;
图2是本发明一实施例的一种获取测试数据的装置的结构示意框图;
图3为本申请一实施例的计算机设备的结构示意框图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明,本发明实施例中所有方向性指示(诸如上、下、左、右、前、后等)仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变,所述的连接可以是直接连接,也可以是间接连接。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
另外,在本发明中如涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
参照图1,本发明提出一种获取测试数据的方法,包括:
S1:获取待获取的测试数据的数据信息;其中,所述数据信息至少包括所述测试数据的名称信息;
S2:基于所述数据信息选取多个生产机器节点与测试机器连接;其中所述生产机器节点为区块链中的一个节点,所述测试机器内含有所述测试数据;
S3:通过各个所述生产机器节点接收所述测试机器上传的测试数据块;其中,所述测试数据块为所述测试机器将所述测试数据分割后的数据块,各所述测试数据块中含有各自在测试数据中的位置所对应的TOKEN标签,各个所述生产机器节点接收所述测试数据块后上传至所述区块链中;
S4:基于所述TOKEN标签将各个所述生产机器节点上传的测试数据块进行汇总,得到所述测试数据;
S5:将所述测试数据存储于所述区块链中对应的存储池中,以使各个所述生产机器节点进行调用。
如上述步骤S1所述,获取待获取的测试数据的数据信息。其中,该待获取的测试数据一般是由生产机器节点上传的数据信息,即各生产机器在训练模型时,需要获取到对应的测试数据,故而该数据信息一般是由生产机器发出的,当然也可以是由其他方式输入至生产机器所得到的。本实施例中,获取数据信息的主体可以是区块链中的任意一个生产机器节点,也可以是一个虚拟区块链节点。其中,所述数据信息至少包括所述测试数据的名称信息;还可以包括测试数据的大小信息,类别信息等。需要说明的是,基于该信息可以知晓所需获取的测试数据,以便于选取生产机器节点进行获取。
如上述步骤S2所述,基于所述数据信息选取多个生产机器节点与测试机器连接;其中所述生产机器节点为区块链中的一个节点;通过设置区块链对测试数据进行数据连接,可以快速的获取到对应的测试数据,各个生产机器节点之间可以通过p2p(peer-to-peer,一种计算机网络协议)的方式相互进行数据的传输,因此,可以将测试数据划分为多个测试数据块,每一个数据块对应一个生产机器节点,即对应的每个生产机器节点只需要获取一个测试数据块即可,提升了传输速度。
如上述步骤S3所述,通过各个所述生产机器节点接收所述测试机器上传的测试数据块。其中通过各个所述生产机器节点接收所述测试机器上传的测试数据块。需要说明的是,若对应的生产机器节点亟需该测试数据,可以将分割后的测试数据块全部发送给该生产机器节点,并且优先进行传输。而若具有很多生产机器节点都需要获取到该测试数据,则可以将该测试数据分割成多个测试数据块。
如上述步骤S4所述,基于所述TOKEN标签将各个所述生产机器节点上传的测试数据块进行汇总,得到所述测试数据。其中,TOKEN标签可以防止测试数据块重复提交,在进入页面的时候就调用后端代码,通过后端代码为每个测试数据块生成一个TOKEN标签,并返回给测试机器,测试机器储存TOKEN标签,并生成TOKEN列表,且TOKEN列表可以发送给执行主体,使其安排对应的生产机器节点获取测试数据块。
如上述步骤S5所述,将所述测试数据存储于所述区块链中对应的存储池中,以使各个所述生产机器节点进行调用。存储池上具有与每个生产机器节点对应的存储空间,用于存储对应的测试数据,并可以对测试数据进行汇总,以使各个生产机器节点调用该数据块,其中,上述将各个生产机器节点上传的测试数据块进行汇总的步骤也可以在该存储池内进行。
在一些实施例中,所述基于所述数据信息选取多个生产机器节点与测试机器连接的步骤S2,包括:
S201:基于所述数据信息获取所述测试数据的大小;
S202:根据文件大小和测试数据块划分数目的预设对应关系,并基于所述测试数据的大小,得到所述测试数据块的块数量;
S203:基于所述块数量在所述区块链中按照预设的选取方法选取与所述块数量一样数目的生产机器节点与所述测试机器连接。
实现了对生产机器节点个数的设定,从而使传输效率更快更佳。
如上述步骤S201所述,基于所述数据信息获取所述测试数据的大小。一些实施例中,该数据信息含有对应的测试数据的大小,故而可以直接从数据信息中进行获取。在另一些实施例中,若只知晓该测试数据的信息(例如名称、类别等),不清楚测试数据的大小,则可以将该数据信息发送给对应的测试机器,然后由测试机器反馈对应的数据信息的大小。
如上述步骤S202所述,根据文件大小和测试数据块划分数目的预设对应关系,基于所述测试数据的大小,得到所述测试数据块的块数量。即事先划分好文件大小和测试数据块划分数目的预设对应关系,根据文件大小将文件划分为对应数目的测试数据块。
如上述步骤S203所述,基于所述块数量在所述区块链中按照预设的选取方法选取与所述块数量一样数目的生产机器节点与所述测试机器连接。各个测试数据块可以选取对应的一个生产机器节点进行接收,从而实现高效的对测试数据块进行接收,在一些实施例中,也可以设置一个生产机器节点接收多个测试数据块,各个生产机器节点接收的测试数据块的数目不一致。可以根据各个生产机器节点接收的能力进行设置,也可以在传输过程中通过传输帧控制帧对各个测试数据块进行动态调试,当一个生产机器节点已经接收完毕其对应的测试数据块之后,可以调用其他未被接收的测试数据块(该测试数据块的接收任务还没有进行)进行接收。
在一个实施例中,所述基于所述TOKEN标签将各个所述生产机器节点上传的测试数据块进行汇总,得到所述测试数据的步骤S4之后,还包括:
S501:将所述测试数据输入至预设的向量机中,得到对应固定维度的文件向量X=(x1,x2,…,xi,…,xn);
S502:根据公式计算所述文件向量与每个生产机器节点对应的预存类别向量之间的匹配度;其中,Y为各消息队列对应的预存类别向量的多维坐标,Y=(y1,y2,…,yi,…,yn),xi表示文件向量中第i维的数值,yi表示对应的预存类别向量中第i维的数值,si为第i维数据所对应的系数,p为设定的参数值;
S503:选取所述匹配度大于预设匹配度的机器向量对应的目标生产机器节点,并将所述测试数据发送至各所述目标生产机器节点上。
如上述步骤S501所述,该向量机可以是支持向量机(SVM),从而得到对应的文件向量。其中,该支持向量机为事先通过对应的多个文件信息以及对应的期望向量训练而成。
如上述步骤S502所述,根据公式计算所述文件向量与每个生产机器节点对应的预存类别向量之间的匹配度。该公式中参考了对于每个维度的计算,从而使得获取到的匹配度更加精确,另外需要说明的是该预存类别向量也是通过上述向量机事先计算得到。
如上述步骤S503所述,选取所述匹配度大于预设匹配度的机器向量对应的目标生产机器节点,并将所述测试数据发送至各所述目标生产机器节点上。为了便于对应的生产机器可以快速获取到测试数据,可以将测试数据发送给匹配度大于预设匹配度所对应的生产机器。需要说明的是,当匹配度大于该预设匹配度时,一般认为该生产机器需要该测试数据,或者之前已经接收过相类似的数据,因此大概率需要用对应的测试数据,因此不需要生产机器自己发出命令获取,提高了传输效率。且测试数据一般不会发送给所有的生产机器,一方面避免不需要占用该测试数据的生产机器的内存,另一方面,也可以提高传输给对应的生产机器的传输速度。
在一个实施例中,所述通过各个所述生产机器节点接收所述测试机器上传的测试数据块的步骤S3,包括:
S301:为各个生产机器节点设置多线程接收对应的数据块拆分后的碎片;其中,每个所述碎片都附加有对应的循环冗余校验码;
S302:基于所述循环冗余校验码,采用模2除法对接收到的所述碎片进行碎片数目校验;
S303:若校验结果为合格,则反馈所述测试机器该所述测试数据块接收完毕。
如上述步骤S301所述,测试机器可以将测试数据块拆分为多个碎片,其中,拆分的方式可以是通过设置对应的程序进行拆分,即设置对应的拆分逻辑,也可以是根据已有的拆分工具进行拆分。测试机器可以为各个碎片加入一个循环冗余校验码,以便于识别到碎片在文件块中的位置。因此可以将各个所述碎片与所述测试数据块所对应的目标生产机器节点采用多线程数据传输,从而可以提高碎片的传输效率。
如上述步骤S302所述,在所述目标生产机器节点处采用模2除法对接收到的碎片进行碎片数目校验。其中,本实施例是通过CRC校验,其原理为在要发送的帧后面附加一个数(即为每个所述碎片附加一个循环冗余校验码),生成一个新帧发送给接收端。当然,附加的数不是随意的,需要使所生成的新帧能与发送端和接收端共同选定的某个特定数整除(注意,这里不是直接采用二进制除法,而是采用一种称之为“模2除法”)。到达接收端后,再把接收到的新帧除以(同样采用“模2除法”)这个选定的除数。因为在发送端发送数据帧之前就已通过附加一个数,做了“去余”处理(也就已经能整除了),所以结果应该是没有余数。如果有余数,则表明该帧在传输过程中出现了差错。
如上述步骤S305所述,若校验结果为合格,说明各个碎片都已成功进行发送,可以判定所述生产机器节点接收了所述测试数据块。若校验结果为不合格,则可以由所述生产机器节点反馈给测试机器,重新传输数据,或者将部分数据再次重传,直至校验结果合格,从而保证了测试数据块的传输正确性。
在一个实施例中,所述若校验结果为合格,则反馈所述测试机器该所述测试数据块接收完毕的步骤S301之后,还包括:
S3011:为每个线程设置对应的消息队列;
S3012:基于预设的接收方式通过各消息队列接收对应的所述碎片;
S3013:获取接收了所述碎片后的各消息队列的长度,并根据各消息队列的长度建立长度集合;
S3014:根据公式Δdmax=max(|li-lj|)计算所述长度集合中最大长度差;其中,所述Δdmax表示所述最大长度差,li和lj分别表示所述长度集合中任意两个不同的消息队列长度,max(|li-lj|)表示|li-lj|计算得到的最大值;
S3035:判断所述最大长度差是否超过了长度预设值;
S3036:若超过了长度预设值,则将处理所述长度集合中长度最小的消息队列的处理线程,在处理完毕长度最小的消息队列后,获取处理所述长度集合中长度最大的消息队列对应的处理线程中的碎片进行处理。
如上述步骤S3031-S3036所述,在各消息队列接收了碎片后,根据各消息队列的长度建立长度集合,应当理解的是,碎片具备不同的信息量,故而也存在只有一个碎片的消息队列的长度大于两个甚至更多碎片的消息队列长度。因此,默认为日志处理模型处理的碎片的速度与长度有关,然后根据公式计算最大长度差,当最大长度差大于预设值时,说明在处理过程中,短的消息队列对应的处理线程已处理完毕一段时间后,长的消息队列对应的处理线程仍在处理,此时短的消息队列对应的处理线程会存在相当多的一段时间空闲,因此会造成资源浪费,此时可以将处理长度最小的消息队列的第一处理线程,在处理完毕长度最小的消息队列后,获取处理所述长度集合中长度最大的消息队列对应的第二处理线程中的参数数据,对长度最大的消息队列中未处理的碎片进行处理,从而有效避免了第一处理线程的处理时间的空缺,极大的提高了处理线程的综合处理效率。另外,还可以设置消息队列的监控工具,监控工具优选使用RabbitMQ,其支持查看状态与配置,健康检查,用户及权限管理,集群管理,虚拟主机/交换机/连接/队列/信道管理等操作。可以实现监控不同消息队列的处理情况,碎片的积压情况,QPS(Queries Per Second,每秒查询率)指标等。便于对消息队列的实时调控,即实现通过第一处理线程处理第二处理线程中未处理的碎片。
在一个实施例中,所述通过各个所述生产机器节点接收所述测试机器上传的测试数据块的步骤S3之前,还包括:
S201:在所述区块链中获取根据所述区块链的预设共识机制投选出的多个审核区块链节点;
S202:向各所述审核区块链节点发送连接确认信息,并将回复所述连接确认信息的审核区块链节点记为最终审核区块链节点;
S203:将所述数据信息发送给所述最终审核区块链节点,并接收所述最终审核区块链节点的回执信息,并判断所述回执信息是否满足预设的区块链数据交互条件;
S204:若所述回执信息满足预设的区块链数据交互条件,则执行所述通过各个所述生产机器节点接收所述测试机器上传的测试数据块的步骤。
如上述步骤S201-S204所述,实现了是否满足执行获取测试数据块之前的步骤,使得文件传输更加安全,避免了资料的泄露。本实施方式采用的共识机制可为任意共识机制,优选股份授权证明机制。其中股份授权证明机制是指,所有区块链节点投选出多个委托区块链节点,从而多个委托区块链节点代表所有区块链节点对是否将数据记录入区块链做出判断,从而避免当区块链节点数量过多时区块链运作缓慢的缺点。并且,为了防止部分监督区块链节点不能参与审核(例如部分监督区块链节点未开机,或者通讯故障等原因)而导致最终决定不准确,本实施方式还采用向所有所述监督区块链节点发送连接确认信息,并将回复所述连接确认信息的监督区块链节点记为最终监督区块链节点的方式,以确定能够监督的监督区块链节点,并记为最终监督区块链节点,从而既减少了不必要的网络开销,又能保证后续判断的准确性(排除了不能参与审核的节点)。其中预设的区块链记录条件例如为所述监督结果为通过的最终监督区块链节点数量大于预设阈值。
参照图2,本申请还提供了一种获取测试数据的装置,包括:
获取模块10,用于获取待获取的测试数据的数据信息;其中,所述数据信息至少包括所述测试数据的名称信息;
选取模块20,用于基于所述数据信息选取多个生产机器节点与测试机器连接;其中所述生产机器节点为区块链中的一个节点,所述测试机器内含有所述测试数据;
接收模块30,用于通过各个所述生产机器节点接收所述测试机器上传的测试数据块;其中,所述测试数据块为所述测试机器将所述测试数据分割后的数据块,各所述测试数据块中含有各自在测试数据中的位置所对应的TOKEN标签,各个所述生产机器节点接收所述测试数据块后上传至所述区块链中;
汇总模块40,用于基于所述TOKEN标签将各个所述生产机器节点上传的测试数据块进行汇总,得到所述测试数据;
存储模块50,用于将所述测试数据存储于所述区块链中对应的存储池中,以使各个所述生产机器节点进行调用。
在一个实施例中,所述选取模块20,包括:
数据大小获取子模块,用于基于所述数据信息获取所述测试数据的大小;
块数量计算子模块,用于根据文件大小和测试数据块划分数目的预设对应关系,并基于所述测试数据的大小,得到所述测试数据块的块数量;
选取子模块,用于基于所述块数量在所述区块链中按照预设的选取方法选取与所述块数量一样数目的生产机器节点与所述测试机器连接。
在一个实施例中,获取测试数据的装置,还包括:
数据输入模块,用于将所述测试数据输入至预设的向量机中,得到对应固定维度的文件向量X=(x1,x2,…,xi,…,xn);
匹配度计算模块,用于根据公式计算所述文件向量与每个生产机器节点对应的预存类别向量之间的匹配度;其中,Y为各消息队列对应的预存类别向量的多维坐标,Y=(y1,y2,…,yi,…,yn),xi表示文件向量中第i维的数值,yi表示对应的预存类别向量中第i维的数值,si为第i维数据所对应的系数,p为设定的参数值;
生产机器节点选取模块,用于选取所述匹配度大于预设匹配度的机器向量对应的目标生产机器节点,并将所述测试数据发送至各所述目标生产机器节点上。
在一个实施例中,接收模块30,包括:
碎片接收子模块,用于为各个生产机器节点设置多线程接收对应的数据块拆分后的碎片;其中,每个所述碎片都附加有对应的循环冗余校验码;
碎片校验子模块,用于基于所述循环冗余校验码,采用模2除法对接收到的所述碎片进行碎片数目校验;
反馈子模块,用于若校验结果为合格,则反馈所述测试机器该所述测试数据块接收完毕。
在一个实施例中,接收模块30,还包括:
消息队列设置子模块,用于为每个线程设置对应的消息队列;
碎片接收子模块,用于基于预设的接收方式通过各消息队列接收对应的所述碎片;
长度获取子模块,用于获取接收了所述碎片后的各消息队列的长度,并根据各消息队列的长度建立长度集合;
最大长度差计算子模块,用于根据公式Δdmax=max(|li-lj|)计算所述长度集合中最大长度差;其中,所述Δdmax表示所述最大长度差,li和lj分别表示所述长度集合中任意两个不同的消息队列长度,max(|li-lj|)表示|li-lj|计算得到的最大值;
最大长度差判断子模块,用于判断所述最大长度差是否超过了长度预设值;
处理子模块,用于若超过了长度预设值,则将处理所述长度集合中长度最小的消息队列的处理线程,在处理完毕长度最小的消息队列后,获取处理所述长度集合中长度最大的消息队列对应的处理线程中的碎片进行处理。
在一个实施例中,获取测试数据的装置,还包括:
投选模块,用于在所述区块链中获取根据所述区块链的预设共识机制投选出的多个审核区块链节点;
确认信息发送模块,用于向各所述审核区块链节点发送连接确认信息,并将回复所述连接确认信息的审核区块链节点记为最终审核区块链节点;
数据信息发送模块,用于将所述数据信息发送给所述最终审核区块链节点,并接收所述最终审核区块链节点的回执信息,并判断所述回执信息是否满足预设的区块链数据交互条件;
条件判断模块,用于若所述回执信息满足预设的区块链数据交互条件,则执行所述通过各个所述生产机器节点接收所述测试机器上传的测试数据块的步骤。
本发明的有益效果:通过将各个生产机器节点设置成区块链,基于区块链的共享机制实现将测试数据分块获取,然后在区块链中重新汇总成测试数据,从而提高了测试数据的传输效率,使得生产环境中的生产机器可以快速获取到测试数据。
参照图3,本申请实施例中还提供一种计算机设备,该计算机设备可以是服务器,其内部结构可以如图3所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储各种测试数据等。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时可以实现上述任一实施例所述的获取测试数据的方法。
本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定。
本申请实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时可以实现上述任一实施例所述的获取测试数据的方法。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储与一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、存储、存储池或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM一多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双速据率SDRAM(SSRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的存储池,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
区块链底层平台可以包括用户管理、基础服务、智能合约以及运营监控等处理模块。其中,用户管理模块负责所有区块链参与者的身份信息管理,包括维护公私钥生成(账户管理)、密钥管理以及用户真实身份和区块链地址对应关系维护(权限管理)等,并且在授权的情况下,监管和审计某些真实身份的交易情况,提供风险控制的规则配置(风控审计);基础服务模块部署在所有区块链节点设备上,用来验证业务请求的有效性,并对有效请求完成共识后记录到存储上,对于一个新的业务请求,基础服务先对接口适配解析和鉴权处理(接口适配),然后通过共识算法将业务信息加密(共识管理),在加密之后完整一致的传输至共享账本上(网络通信),并进行记录存储;智能合约模块负责合约的注册发行以及合约触发和合约执行,开发人员可以通过某种编程语言定义合约逻辑,发布到区块链上(合约注册),根据合约条款的逻辑,调用密钥或者其它的事件触发执行,完成合约逻辑,同时还提供对合约升级注销的功能;运营监控模块主要负责产品发布过程中的部署、配置的修改、合约设置、云适配以及产品运行中的实时状态的可视化输出,例如:告警、监控网络情况、监控节点设备健康状态等。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。
Claims (10)
1.一种获取测试数据的方法,其特征在于,包括:
获取待获取的测试数据的数据信息;其中,所述数据信息至少包括所述测试数据的名称信息;
基于所述数据信息选取多个生产机器节点与测试机器连接;其中所述生产机器节点为区块链中的一个节点,所述测试机器内含有所述测试数据;
通过各个所述生产机器节点接收所述测试机器上传的测试数据块;其中,所述测试数据块为所述测试机器将所述测试数据分割后的数据块,各所述测试数据块中含有各自在测试数据中的位置所对应的TOKEN标签,各个所述生产机器节点接收所述测试数据块后上传至所述区块链中;
基于所述TOKEN标签将各个所述生产机器节点上传的测试数据块进行汇总,得到所述测试数据;
将所述测试数据存储于所述区块链中对应的存储池中,以使各个所述生产机器节点进行调用。
2.如权利要求1所述的获取测试数据的方法,其特征在于,所述基于所述数据信息选取多个生产机器节点与测试机器连接的步骤,包括:
基于所述数据信息获取所述测试数据的大小;
根据文件大小和测试数据块划分数目的预设对应关系,并基于所述测试数据的大小,得到所述测试数据块的块数量;
基于所述块数量在所述区块链中按照预设的选取方法选取与所述块数量相同数目的生产机器节点与所述测试机器连接。
3.如权利要求1所述的获取测试数据的方法,其特征在于,所述基于所述TOKEN标签将各个所述生产机器节点上传的测试数据块进行汇总,得到所述测试数据的步骤之后,还包括:
将所述测试数据输入至预设的向量机中,得到对应固定维度的文件向量X=(x1,x2,…,xi,…,xn);
根据公式计算所述文件向量与每个生产机器节点对应的预存类别向量之间的匹配度;其中,Y为各消息队列对应的预存类别向量的多维坐标,Y=(y1,y2,…,yi,…,yn),xi表示文件向量中第i维的数值,yi表示对应的预存类别向量中第i维的数值,si为第i维数据所对应的系数,p为设定的参数值;
选取所述匹配度大于预设匹配度的机器向量对应的目标生产机器节点,并将所述测试数据发送至各所述目标生产机器节点上。
4.如权利要求1所述的获取测试数据的方法,其特征在于,所述通过各个所述生产机器节点接收所述测试机器上传的测试数据块的步骤,包括:
为各个生产机器节点设置多线程接收对应的数据块拆分后的碎片;其中,每个所述碎片都附加有对应的循环冗余校验码;
基于所述循环冗余校验码,采用模2除法对接收到的所述碎片进行碎片数目校验;
若校验结果为合格,则反馈所述测试机器该所述测试数据块接收完毕。
5.如权利要求4所述的获取测试数据的方法,其特征在于,所述若校验结果为合格,则反馈所述测试机器该所述测试数据块接收完毕的步骤之后,还包括:
为每个线程设置对应的消息队列;
基于预设的接收方式通过各消息队列接收对应的所述碎片;
获取接收了所述碎片后的各消息队列的长度,并根据各消息队列的长度建立长度集合;
根据公式Δdmax=max(|li-lj|)计算所述长度集合中最大长度差;其中,所述Δdmax表示所述最大长度差,li和lj分别表示所述长度集合中任意两个不同的消息队列长度,max(|li-lj|)表示|li-lj|计算得到的最大值;
判断所述最大长度差是否超过了长度预设值;
若超过了长度预设值,则将处理所述长度集合中长度最小的消息队列的处理线程,在处理完毕长度最小的消息队列后,获取处理所述长度集合中长度最大的消息队列对应的处理线程中的碎片进行处理。
6.如权利要求1所述的获取测试数据的方法,其特征在于,所述通过各个所述生产机器节点接收所述测试机器上传的测试数据块的步骤之前,还包括:
在所述区块链中获取根据所述区块链的预设共识机制投选出的多个审核区块链节点;
向各所述审核区块链节点发送连接确认信息,并将回复所述连接确认信息的审核区块链节点记为最终审核区块链节点;
将所述数据信息发送给所述最终审核区块链节点,并接收所述最终审核区块链节点的回执信息,并判断所述回执信息是否满足预设的区块链数据交互条件;
若所述回执信息满足预设的区块链数据交互条件,则执行所述通过各个所述生产机器节点接收所述测试机器上传的测试数据块的步骤。
7.一种获取测试数据的装置,其特征在于,包括:
获取模块,用于获取待获取的测试数据的数据信息;其中,所述数据信息至少包括所述测试数据的名称信息;
选取模块,用于基于所述数据信息选取多个生产机器节点与测试机器连接;其中所述生产机器节点为区块链中的一个节点,所述测试机器内含有所述测试数据;
接收模块,用于通过各个所述生产机器节点接收所述测试机器上传的测试数据块;其中,所述测试数据块为所述测试机器将所述测试数据分割后的数据块,各所述测试数据块中含有各自在测试数据中的位置所对应的TOKEN标签,各个所述生产机器节点接收所述测试数据块后上传至所述区块链中;
汇总模块,用于基于所述TOKEN标签将各个所述生产机器节点上传的测试数据块进行汇总,得到所述测试数据;
存储模块,用于将所述测试数据存储于所述区块链中对应的存储池中,以使各个所述生产机器节点进行调用。
8.如权利要求7所述的获取测试数据的装置,其特征在于,所述选取模块,包括:
数据大小获取子模块,用于基于所述数据信息获取所述测试数据的大小;
块数量计算子模块,用于根据文件大小和测试数据块划分数目的预设对应关系,并基于所述测试数据的大小,得到所述测试数据块的块数量;
选取子模块,用于基于所述块数量在所述区块链中按照预设的选取方法选取与所述块数量一样数目的生产机器节点与所述测试机器连接。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110610933.2A CN113282500B (zh) | 2021-06-01 | 2021-06-01 | 获取测试数据的方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110610933.2A CN113282500B (zh) | 2021-06-01 | 2021-06-01 | 获取测试数据的方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113282500A true CN113282500A (zh) | 2021-08-20 |
CN113282500B CN113282500B (zh) | 2023-09-22 |
Family
ID=77282966
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110610933.2A Active CN113282500B (zh) | 2021-06-01 | 2021-06-01 | 获取测试数据的方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113282500B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008084295A (ja) * | 2006-09-01 | 2008-04-10 | Hitachi Medical Corp | 画像処理装置、画像処理方法、およびプログラム |
WO2020011068A1 (zh) * | 2018-07-10 | 2020-01-16 | 第四范式(北京)技术有限公司 | 用于执行机器学习过程的方法和系统 |
CN111314174A (zh) * | 2020-02-11 | 2020-06-19 | 广州智乐物联网技术有限公司 | 基于区块链和sdn边缘计算网络系统的网络拨测方法及装置 |
KR20200077830A (ko) * | 2018-12-21 | 2020-07-01 | 이화여자대학교 산학협력단 | 블록체인 기반 테스트 데이터 관리 방법 및 블록체인 노드 장치 |
US20200387753A1 (en) * | 2019-06-10 | 2020-12-10 | International Business Machines Corporation | Data slicing for machine learning performance testing and improvement |
CN112131104A (zh) * | 2020-09-11 | 2020-12-25 | 北京达佳互联信息技术有限公司 | 测试数据分发方法、装置、电子设备和存储介质 |
CN112364163A (zh) * | 2020-11-10 | 2021-02-12 | 平安普惠企业管理有限公司 | 日志的缓存方法、装置以及计算机设备 |
CN112835759A (zh) * | 2021-02-01 | 2021-05-25 | 百度在线网络技术(北京)有限公司 | 测试数据处理方法、装置、电子设备以及存储介质 |
-
2021
- 2021-06-01 CN CN202110610933.2A patent/CN113282500B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008084295A (ja) * | 2006-09-01 | 2008-04-10 | Hitachi Medical Corp | 画像処理装置、画像処理方法、およびプログラム |
WO2020011068A1 (zh) * | 2018-07-10 | 2020-01-16 | 第四范式(北京)技术有限公司 | 用于执行机器学习过程的方法和系统 |
KR20200077830A (ko) * | 2018-12-21 | 2020-07-01 | 이화여자대학교 산학협력단 | 블록체인 기반 테스트 데이터 관리 방법 및 블록체인 노드 장치 |
US20200387753A1 (en) * | 2019-06-10 | 2020-12-10 | International Business Machines Corporation | Data slicing for machine learning performance testing and improvement |
CN111314174A (zh) * | 2020-02-11 | 2020-06-19 | 广州智乐物联网技术有限公司 | 基于区块链和sdn边缘计算网络系统的网络拨测方法及装置 |
CN112131104A (zh) * | 2020-09-11 | 2020-12-25 | 北京达佳互联信息技术有限公司 | 测试数据分发方法、装置、电子设备和存储介质 |
CN112364163A (zh) * | 2020-11-10 | 2021-02-12 | 平安普惠企业管理有限公司 | 日志的缓存方法、装置以及计算机设备 |
CN112835759A (zh) * | 2021-02-01 | 2021-05-25 | 百度在线网络技术(北京)有限公司 | 测试数据处理方法、装置、电子设备以及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113282500B (zh) | 2023-09-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111427957B (zh) | 区块链投票信息校验方法、装置、设备以及存储介质 | |
CN110990183B (zh) | 数据库集群的异常检测方法、装置、计算机可读存储介质 | |
CN115174231B (zh) | 一种基于AI Knowledge Base的网络欺诈分析方法及服务器 | |
CN112288101A (zh) | 基于联邦学习的gbdt与lr融合方法、装置、设备和存储介质 | |
CN112540811A (zh) | 缓存数据的检测方法、装置、计算机设备和存储介质 | |
CN111899019A (zh) | 一种黑名单多方交叉验证和共享的方法及系统 | |
CN113434310A (zh) | 多线程任务分配方法、装置、设备及存储介质 | |
CN110930254A (zh) | 基于区块链的数据处理方法、装置、终端及介质 | |
CN112685012A (zh) | 基于区块链的微服务架构实现方法、装置、设备及介质 | |
CN114416875B (zh) | 基于区块链的任务处理方法、装置、设备以及存储介质 | |
CN112364059A (zh) | 多规则场景下关联匹配方法、装置、设备和存储介质 | |
CN111752819B (zh) | 一种异常监控方法、装置、系统、设备和存储介质 | |
CN112927414A (zh) | 基于联盟区块链的业务公识系统及方法 | |
CN112506570A (zh) | 设备指令下发方法、系统和服务器 | |
CN113282500B (zh) | 获取测试数据的方法、装置、设备及存储介质 | |
CN111524009A (zh) | 区块链系统的交易验证方法、装置及硬件设备 | |
CN113077185B (zh) | 工作量评估方法、装置、计算机设备和存储介质 | |
CN115225636A (zh) | 请求处理方法、装置、计算机设备和存储介质 | |
CN114579582A (zh) | 一种基于区块链的资源处理方法和装置 | |
CN113919953A (zh) | 跨链生成智能合约的实现方法、装置、设备以及存储介质 | |
CN113420307B (zh) | 密文数据的评估方法、装置、计算机设备和存储介质 | |
CN113177396B (zh) | 报表生成方法、装置、计算机设备和存储介质 | |
CN113435517A (zh) | 异常数据点输出方法、装置、计算机设备和存储介质 | |
CN114579581A (zh) | 一种基于区块链的数据监管方法和装置 | |
CN113312481A (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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20220916 Address after: 518000 Room 2601 (Unit 07), Qianhai Free Trade Building, No. 3048, Xinghai Avenue, Liwan Community, Nanshan Street, Nanshan District, Shenzhen, Guangdong, China Applicant after: Shenzhen Ping An Smart Healthcare Technology Co.,Ltd. Address before: 1-34 / F, Qianhai free trade building, 3048 Xinghai Avenue, Mawan, Qianhai Shenzhen Hong Kong cooperation zone, Shenzhen, Guangdong 518000 Applicant before: Ping An International Smart City Technology Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |