CN113254350A - 一种Flink作业测试方法、装置、设备及存储介质 - Google Patents

一种Flink作业测试方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN113254350A
CN113254350A CN202110698909.9A CN202110698909A CN113254350A CN 113254350 A CN113254350 A CN 113254350A CN 202110698909 A CN202110698909 A CN 202110698909A CN 113254350 A CN113254350 A CN 113254350A
Authority
CN
China
Prior art keywords
operator
flink
data
chain
test result
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
CN202110698909.9A
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.)
Sangfor Technologies Co Ltd
Original Assignee
Sangfor Technologies 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 Sangfor Technologies Co Ltd filed Critical Sangfor Technologies Co Ltd
Priority to CN202110698909.9A priority Critical patent/CN113254350A/zh
Publication of CN113254350A publication Critical patent/CN113254350A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请公开了一种Flink作业测试方法,Flink作业包括由多个作业算子形成的算子链,算子链中除最后一个作业算子外的一个或多个作业算子分别对应有转储算子;该方法包括以下步骤:获得测试数据;将测试数据输入到算子链进行数据处理,获得最终测试结果;且在数据处理的过程中,对应有转储算子的作业算子除了将其输出的数据发给算子链中的下游算子外,还发给对应的转储算子,以获得相应的中间测试结果。应用本申请所提供的技术方案,通过对中间测试结果的查看可以对Flink作业的正确与否进行及时判断,可以快速定位到具体问题点,提高开发效率。本申请还公开了一种Flink作业测试装置、设备及存储介质,具有相应技术效果。

Description

一种Flink作业测试方法、装置、设备及存储介质
技术领域
本申请涉及计算机应用技术领域,特别是涉及一种Flink作业测试方法、装置、设备及存储介质。
背景技术
随着计算机技术的快速发展,Flink技术也逐渐发展起来。Flink是一个在无界和有界数据流上进行状态计算的框架和分布式处理引擎。在Flink中可以运行Flink应用(Flink Application),这是一种Java应用,包含一个或者多个Flink作业(Flink Job)。
在开发Flink应用时,需要对Flink作业进行测试,通过查看Flink作业的最终输出结果确定Flink作业是否存在问题。
目前,对Flink作业进行测试,只能得到Flink作业的最终输出结果。也就是说,只能在Flink作业运行完成后,才能依赖于对最终输出结果的查看确定Flink作业是否存在问题,而具体哪个环节出现问题还需要进一步分析,无法及时判断Flink作业的正确性,容易影响Flink应用的开发效率。
发明内容
本申请的目的是提供一种Flink作业测试方法、装置、设备及存储介质,以对Flink作业的正确与否进行及时判断,提高Flink应用开发效率。
为解决上述技术问题,本申请提供如下技术方案:
一种Flink作业测试方法,Flink作业包括由多个作业算子形成的算子链,所述算子链中除最后一个作业算子外的一个或多个作业算子分别对应有转储算子;所述Flink作业测试方法包括:
获得测试数据;
将所述测试数据输入到所述算子链进行数据处理,获得最终测试结果;且在所述数据处理的过程中,对应有转储算子的作业算子除了将其输出的数据发给所述算子链中的下游算子外,还发给对应的转储算子,以获得相应的中间测试结果。
在本申请的一种具体实施方式中,在所述将所述测试数据输入到所述算子链进行数据处理之前,还包括:
将所述Flink作业提交到分布式资源调度平台,以使所述分布式资源调度平台为所述Flink作业进行集群的资源调度;
相应的,所述将所述测试数据输入到所述算子链进行数据处理,包括:
在所述Flink作业所在集群通过所述算子链对所述测试数据进行数据处理。
在本申请的一种具体实施方式中,在所述发给对应的转储算子之后,所述方法还包括:
通过每个所述转储算子将对应的作业算子输出的数据写入数据库;
通过读取所述数据库,获得相应的中间测试结果。
在本申请的一种具体实施方式中,所述通过读取所述数据库,获得相应的中间测试结果,包括:
在所述数据库有数据写入时,实时读取所述数据库,获得相应的中间测试结果。
在本申请的一种具体实施方式中,在所述获得最终测试结果之后,还包括:
展示所述最终测试结果和各个中间测试结果。
在本申请的一种具体实施方式中,所述Flink作业包括源算子、解析算子、标签算子和目的算子。
一种Flink作业测试装置,Flink作业包括由多个作业算子形成的算子链,所述算子链中除最后一个作业算子外的一个或多个作业算子分别对应有转储算子;所述Flink作业测试装置包括:
数据获得模块,用于获得测试数据;
作业测试模块,用于将所述测试数据输入到所述算子链进行数据处理,获得最终测试结果;且在所述数据处理的过程中,对应有转储算子的作业算子除了将其输出的数据发给所述算子链中的下游算子外,还发给对应的转储算子,以获得相应的中间测试结果。
在本申请的一种具体实施方式中,还包括资源调度模块,用于:
在所述将所述测试数据输入到所述算子链进行数据处理之前,将所述Flink作业提交到分布式资源调度平台,以使所述分布式资源调度平台为所述Flink作业进行集群的资源调度;
相应的,所述作业测试模块,用于:
在所述Flink作业所在集群通过所述算子链对所述测试数据进行数据处理。
一种Flink作业测试设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现上述任一项所述的Flink作业测试方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的Flink作业测试方法的步骤。
应用本申请实施例所提供的技术方案,在Flink作业包括的算子链中除最后一个作业算子外的一个或多个作业算子分别对应有转储算子,在进行Flink作业测试时,对应有转储算子的作业算子,除了将其输出的数据发送给算子链中的下游算子外,还发给对应的转储算子,以获得相应的中间处理结果。也就是说,可以获得对应有转储算子的作业算子对数据进行处理后的中间测试结果,通过对中间测试结果的查看可以对Flink作业的正确与否进行及时判断,而且可以快速定位到具体问题点,提高Flink应用开发效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例中一种Flink作业测试方法的实施流程图;
图2为本申请实施例中Flink作业具体测试过程示意图;
图3为本申请实施例中一种Flink作业测试装置的结构示意图;
图4为本申请实施例中一种Flink作业测试设备的结构示意图。
具体实施方式
本申请的核心是提供一种Flink作业测试方法。
Flink作业可以包括由多个作业算子形成的算子链,对于算子链中相邻两个作业算子而言,在前的作业算子可以称为上游算子,在后的作业算子可以称为下游算子。在Flink作业包括的由多个作业算子形成的算子链中,除最后一个作业算子外的一个或多个作业算子分别对应有转储算子。
具体的,可以依据作业算子的重要程度,确定其是否对应转储算子,以获得具有较重要功能的作业算子的中间测试结果。或者,Flink作业的除最后一个作业算子外的其他每个作业算子均对应有转储算子,以方便得到每个作业算子的中间测试结果。
转储算子可以拼接在相应的作业算子之后,如隐式拼接在相应的作业算子之后,这样在UI(User Interface用户界面)中将使得转储算子对于用户不可见,避免影响用户的操作。
本申请实施例中的Flink作业可以是Flink应用包含的任意一个Flink作业,即对于Flink应用的任意一个Flink作业都可以按照本申请实施例所提供的技术方案进行测试。
为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
参见图1所示,为本申请实施例所提供的一种Flink作业测试方法的实施流程图,该方法可以包括以下步骤:
S110:获得测试数据。
测试数据可以是预先构建或者采集得到的用于测试的数据,还可以是实际应用时正式数据中的部分数据。
获得测试数据后,可以继续执行后续步骤的操作。
S120:将测试数据输入到算子链进行数据处理,获得最终测试结果;且在数据处理过程中,对应有转储算子的作业算子除了将其输出的数据发给算子链中的下游算子外,还发给对应的转储算子,以获得相应的中间测试结果。
在本申请实施例中,Flink作业包括多个作业算子,多个作业算子可形成算子链。具体的,Flink作业可以包括源算子、目的算子和一个或多个中间算子,中间算子可以是解析算子、标签算子等。算子链中的第一个作业算子可以称为源算子,用于数据输入,最后一个作业算子可以称为目的算子,用于数据输出。每个作业算子用于执行某种操作,具有执行某种操作功能。
获得测试数据后,可以将测试数据输入到算子链进行数据处理。如可以将测试数据注入数据源节点,作为Flink作业的数据源,经过Flink作业包括的算子链进行数据处理。通过算子链对测试数据进行数据处理后,可以获得最终测试结果。如可以将算子链中最后一个作业算子输出的结果作为最终测试结果。
具体的,Flink作业包括的算子链中的第一个作业算子,即源算子可以在数据源节点拉取测试数据,其拉取到的测试数据作为该源算子输出的数据,发送给算子链中的下游算子,即第二个作业算子,作为第二个作业算子的输入数据。
第二个作业算子对其接收到的输入数据进行数据处理,将输出的数据发送给算子链中的下游算子,即第三个作业算子,作为第三个作业算子的输入数据。
同样,第三个作业算子可以对其接收到的输入数据进行数据处理,将输出的数据发送给算子链中的下游算子,即再下一个作业算子,以此类推,直至最后一个作业算子对其接收到的输入数据进行数据处理,其输出的数据即为最终测试结果。
在数据处理的过程中,对应有转储算子的作业算子除了将其输出的数据发给算子链中的下游算子外,还发给对应的转储算子,以获得相应的中间测试结果。即针对Flink作业包括的算子链中的除最后一个作业算子外的其他每个作业算子,如果当前作业算子对应有转储算子,则当前作业算子除将进行相应数据处理得到的中间测试结果发送给当前作业算子的下游算子,以作为下游算子的输入数据之外,还将该中间测试结果发送给当前作业算子对应的转储算子,以通过转储算子获得该中间测试结果。
应用本申请实施例所提供的方法,在Flink作业包括的算子链中除最后一个作业算子外的一个或多个作业算子分别对应有转储算子,在进行Flink作业测试时,对应有转储算子的作业算子,除了将其输出的数据发送给算子链中的下游算子外,还发给对应的转储算子,以获得相应的中间处理结果。也就是说,可以获得对应有转储算子的作业算子对数据进行处理后的中间测试结果,通过对中间测试结果的查看可以对Flink作业的正确与否进行及时判断,而且可以快速定位到具体问题点,提高Flink应用开发效率。
在本申请的一个实施例中,在将测试数据输入到算子链进行数据处理之前,该方法还可以包括以下步骤:
将Flink作业提交到分布式资源调度平台,以使分布式资源调度平台为Flink作业进行集群的资源调度;
相应的,将测试数据输入到算子链进行数据处理,包括:
在Flink作业所在集群通过算子链对测试数据进行数据处理。
Flink作业是逻辑图(Logical Graph)(通常称为数据流图)的运行时表示,是通过在Flink应用中调用execute()方法创建和提交的。所谓逻辑图是一种有向图,其中的节点是算子(Operator),边定义算子的输入/输出关系,以及对应的数据流或数据集。逻辑图可以通过从Flink应用提交作业来创建。算子执行某种操作,该操作通常由函数(Function)执行。Flink作业中的算子即为本申请中所提的作业算子。两个或多个连续的算子可以组成算子链,同一算子链内的算子可以彼此直接传递记录(record),而无需通过序列化或Flink的网络栈。
在要进行Flink作业测试时,可以先将Flink作业的逻辑图转换为物理图,将Flink作业提交到分布式资源调度平台,以使分布式资源调度平台为Flink作业进行集群的资源调度。具体的,分布式资源调度平台可以在测试集群或者正式集群中进行资源调度,将Flink作业调度到相应集群的工作节点上,这样Flink作业可以在集群中启动并运行,在获得测试数据后,可以在Flink作业所在集群通过算子链对测试数据进行数据处理。相较于相关技术中在单台测试机上运行Flink作业进行测试的方式,更符合用户的真实使用场景,更有利于通过数据处理结果及时发现问题。
在本申请的一个实施例中,在发给对应的转储算子之后,该方法还可以包括以下步骤:
步骤一:通过每个转储算子将对应的作业算子输出的数据写入数据库;
步骤二:通过读取数据库,获得相应的中间测试结果。
为便于描述,将上述两个步骤结合起来进行说明。
在本申请实施例中,获得测试数据后,将测试数据输入到算子链进行数据处理,在数据处理过程中,对应有转储算子的作业算子除了将其输出的数据发给算子链中的下游算子外,还发给对应的转储算子。
每个作业算子对其输入数据进行数据处理后,输出的数据即为相应作业算子的中间测试结果。通过每个转储算子可以将对应的作业算子输出的数据写入数据库,即将对应的作业算子的中间测试结果写入到了数据库,通过读取数据库,可以获得相应的中间测试结果。
通过数据库进行中间测试结果的保存,方便随时查看对应有转储算子的每个作业算子的中间测试结果。
在本申请的一种具体实施方式中,通过读取数据库,获得相应的中间测试结果,包括:
在数据库有数据写入时,实时读取数据库,获得相应的中间测试结果。
在本申请实施例中,对应有转储算子的作业算子,在对其输入的数据进行相应数据处理后,除了将其输出的数据发给算子链中的下游算子外,还会发给对应的转储算子。转储算子将对应的作业算子输出的数据写入到数据库中,作业算子输出的数据对应该作业算子的中间测试结果。在数据库有数据写入时,可以认为当前存在中间测试结果,可以实时读取数据库,获得相应的中间测试结果。同时,可以将读取到的中间测试结果展示出来,以方便查看,并可通过对中间测试结果的查看,及时发现Flink作业存在的问题。
在本申请的一个实施例中,在获得最终测试结果之后,该方法还可以包括以下步骤:
展示最终测试结果和各个中间测试结果。
在本申请实施例中,在将测试数据输入到算子链进行数据处理完成之后,可以获得最终测试结果。因为在数据处理的过程中,对应有转储算子的作业算子除了将其输出的数据发给算子链中的下游算子外,还发给对应的转储算子,可以获得相应的中间测试结果。所以在获得最终测试结果后,可以将最终测试结果和各个中间测试结果都输出展示给用户,以方便用户查看,并通过对最终测试结果和中间测试结果的查看,确定Flink作业是否存在问题。
为方便理解,以图2所示Flink作业具体测试过程为例对本申请实施例进行说明。Flink作业可以包括源算子、解析算子、标签算子和目的算子。
图2中,工作流平台可以根据用户开发的工作流图,生成Flink应用,Flink应用中包含一个或者多个Flink作业,每个Flink作业可以包括由多个作业算子形成的算子链,算子链中除最后一个作业算子外的每个作业算子隐式拼接一个转储算子,每个Flink作业是一个有向无环图,图的每个顶点是一个算子。
工作流平台将生成后的Flink应用提交到分布式资源调度平台,比如提交到在Yarn(一个大数据资源管理和调度系统)平台。分布式资源调度平台可以为Flink应用中的Flink作业进行集群的资源调度,将Flink作业调度到相应集群的工作节点上。启动Flink作业,启动后的Flink作业包括的算子链中的源算子开始监听数据源节点的数据输入。
获得测试数据后,工作流平台将测试数据通过数据源接口,将测试数据注入到数据源节点,比如Kafka(一个分布式订阅分发消息系统),作为Flink作业的数据源。Flink作业的源算子监听到数据源节点有新增数据,准备开始消费数据。
源算子从数据源节点拉取测试数据,拉取到的测试数据作为该源算子输出的数据,发送给算子链中的下游算子,作为下游算子的输入数据,并同时发送给对应的转储算子1。
源算子的下游算子为解析算子,解析算子对其输入数据进行字段匹配、字段过滤等相应处理,输出的数据即为其相应的中间测试结果,将该中间测试结果发送给下游算子,作为下游算子的输入数据,并同时发送给对应的转储算子2。
解析算子的下游算子为标签算子,标签算子对其输入数据进行打标签等相应处理,输出的数据即为其相应的中间测试结果,将该中间测试结果发送给下游算子,作为下游算子的输入数据,并同时发送给对应的转储算子3。
解析算子的下游算子为目的算子,目的算子对其输入数据进行相应处理,输出的数据即为最终测试结果。
转储算子可以连接数据库,如MySQL数据库。源算子、解析算子、标签算子在将相应的中间测试结果发送给对应的转储算子后,对应的转储算子将相应的中间测试结果写入到数据库中。
数据展示平台可以实时从数据库中取出每个数据流环节中转储算子写入的中间测试结果,并可以实时展示。在Flink作业运行完成之后,通过ES(Elasticsearch,搜索服务器)可以从目的算子中取出最终测试结果,并展示。
在Flink应用执行完成之后,数据展示平台可以输出展示所有的中间测试结果和最终测试结果,以供用户查看。
本申请实施例通过增加转储算子,获得相应的中间测试结果,可以实时展示每个作业算子的状态和结果,在开发阶段可以对Flink作业进行调试,可以查看中间环节测试结果,可以对Flink作业的正确与否进行及时判断,提高Flink应用开发效率。
相应于上面的方法实施例,本申请实施例还提供了一种Flink作业测试装置,Flink作业包括由多个作业算子形成的算子链,算子链中除最后一个作业算子外的一个或多个作业算子分别对应有转储算子,下文描述的Flink作业测试装置与上文描述的Flink作业测试方法可相互对应参照。
参见图3所示,该装置可以包括以下模块:
数据获得模块310,用于获得测试数据;
作业测试模块320,用于将测试数据输入到算子链进行数据处理,获得最终测试结果;且在数据处理的过程中,对应有转储算子的作业算子除了将其输出的数据发给算子链中的下游算子外,还发给对应的转储算子,以获得相应的中间测试结果。
应用本申请实施例所提供的装置,在Flink作业包括的算子链中除最后一个作业算子外的一个或多个作业算子分别对应有转储算子,在进行Flink作业测试时,对应有转储算子的作业算子,除了将其输出的数据发送给算子链中的下游算子外,还发给对应的转储算子,以获得相应的中间处理结果。也就是说,可以获得对应有转储算子的作业算子对数据进行处理后的中间测试结果,通过对中间测试结果的查看可以对Flink作业的正确与否进行及时判断,而且可以快速定位到具体问题点,提高Flink应用开发效率。
在本申请的一种具体实施方式中,还包括资源调度模块,用于:
将Flink作业提交到分布式资源调度平台,以使分布式资源调度平台为Flink作业进行集群的资源调度;
相应的,作业测试模块320,用于:
在Flink作业所在集群通过算子链对测试数据进行数据处理。
在本申请的一种具体实施方式中,作业测试模块320,还用于:
通过每个转储算子将对应的作业算子输出的数据写入数据库;
通过读取数据库,获得相应的中间测试结果。
在本申请的一种具体实施方式中,作业测试模块320,用于:
在数据库有数据写入时,实时读取数据库,获得相应的中间测试结果。
在本申请的一种具体实施方式中,还包括结果展示模块,用于:
在获得最终测试结果之后,展示最终测试结果和各个中间测试结果。
在本申请的一种具体实施方式中,Flink作业包括源算子、解析算子、标签算子和目的算子。
相应于上面的方法实施例,本申请实施例还提供了一种Flink作业测试设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行计算机程序时实现上述Flink作业测试方法的步骤。
如图4所示,为Flink作业测试设备的组成结构示意图,Flink作业测试设备可以包括:处理器10、存储器11、通信接口12和通信总线13。处理器10、存储器11、通信接口12均通过通信总线13完成相互间的通信。
在本申请实施例中,处理器10可以为中央处理器(Central Processing Unit,CPU)、特定应用集成电路、数字信号处理器、现场可编程门阵列或者其他可编程逻辑器件等。
处理器10可以调用存储器11中存储的程序,具体的,处理器10可以执行Flink作业测试方法的实施例中的操作。
存储器11中用于存放一个或者一个以上程序,程序可以包括程序代码,程序代码包括计算机操作指令,在本申请实施例中,存储器11中至少存储有用于实现以下功能的程序:
获得测试数据;
将测试数据输入到算子链进行数据处理,获得最终测试结果;且在数据处理的过程中,对应有转储算子的作业算子除了将其输出的数据发给算子链中的下游算子外,还发给对应的转储算子,以获得相应的中间测试结果。
在一种可能的实现方式中,存储器11可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统,以及至少一个功能(比如数据获取功能、结果分发功能)所需的应用程序等;存储数据区可存储使用过程中所创建的数据,如测试结果数据等。
此外,存储器11可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件或其他易失性固态存储器件。
通信接口12可以为通信模块的接口,用于与其他设备或者系统连接。
当然,需要说明的是,图4所示的结构并不构成对本申请实施例中Flink作业测试设备的限定,在实际应用中Flink作业测试设备可以包括比图4所示的更多或更少的部件,或者组合某些部件。
相应于上面的方法实施例,本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述Flink作业测试方法的步骤。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的技术方案及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

Claims (10)

1.一种Flink作业测试方法,其特征在于,Flink作业包括由多个作业算子形成的算子链,所述算子链中除最后一个作业算子外的一个或多个作业算子分别对应有转储算子;所述Flink作业测试方法包括:
获得测试数据;
将所述测试数据输入到所述算子链进行数据处理,获得最终测试结果;且在所述数据处理的过程中,对应有转储算子的作业算子除了将其输出的数据发给所述算子链中的下游算子外,还发给对应的转储算子,以获得相应的中间测试结果。
2.根据权利要求1所述的Flink作业测试方法,其特征在于,在所述将所述测试数据输入到所述算子链进行数据处理之前,还包括:
将所述Flink作业提交到分布式资源调度平台,以使所述分布式资源调度平台为所述Flink作业进行集群的资源调度;
相应的,所述将所述测试数据输入到所述算子链进行数据处理,包括:
在所述Flink作业所在集群通过所述算子链对所述测试数据进行数据处理。
3.根据权利要求1所述的Flink作业测试方法,其特征在于,在所述发给对应的转储算子之后,所述方法还包括:
通过每个所述转储算子将对应的作业算子输出的数据写入数据库;
通过读取所述数据库,获得相应的中间测试结果。
4.根据权利要求3所述的Flink作业测试方法,其特征在于,所述通过读取所述数据库,获得相应的中间测试结果,包括:
在所述数据库有数据写入时,实时读取所述数据库,获得相应的中间测试结果。
5.根据权利要求1所述的Flink作业测试方法,其特征在于,在所述获得最终测试结果之后,还包括:
展示所述最终测试结果和各个中间测试结果。
6.根据权利要求1至5之中任一项所述的Flink作业测试方法,其特征在于,所述Flink作业包括源算子、解析算子、标签算子和目的算子。
7.一种Flink作业测试装置,其特征在于,Flink作业包括由多个作业算子形成的算子链,所述算子链中除最后一个作业算子外的一个或多个作业算子分别对应有转储算子;所述Flink作业测试装置包括:
数据获得模块,用于获得测试数据;
作业测试模块,用于将所述测试数据输入到所述算子链进行数据处理,获得最终测试结果;且在所述数据处理的过程中,对应有转储算子的作业算子除了将其输出的数据发给所述算子链中的下游算子外,还发给对应的转储算子,以获得相应的中间测试结果。
8.根据权利要求7所述的Flink作业测试装置,其特征在于,还包括资源调度模块,用于:
在所述将所述测试数据输入到所述算子链进行数据处理之前,将所述Flink作业提交到分布式资源调度平台,以使所述分布式资源调度平台为所述Flink作业进行集群的资源调度;
相应的,所述作业测试模块,用于:
在所述Flink作业所在集群通过所述算子链对所述测试数据进行数据处理。
9.一种Flink作业测试设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至6任一项所述的Flink作业测试方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的Flink作业测试方法的步骤。
CN202110698909.9A 2021-06-23 2021-06-23 一种Flink作业测试方法、装置、设备及存储介质 Pending CN113254350A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110698909.9A CN113254350A (zh) 2021-06-23 2021-06-23 一种Flink作业测试方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110698909.9A CN113254350A (zh) 2021-06-23 2021-06-23 一种Flink作业测试方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN113254350A true CN113254350A (zh) 2021-08-13

Family

ID=77189276

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110698909.9A Pending CN113254350A (zh) 2021-06-23 2021-06-23 一种Flink作业测试方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN113254350A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113641420A (zh) * 2021-08-16 2021-11-12 北京明略昭辉科技有限公司 基于Flink的工作流引擎实现方法、系统、设备及存储介质
CN117135345A (zh) * 2023-10-19 2023-11-28 芯动微电子科技(武汉)有限公司 一种图像信号处理的仿真验证方法和装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5481740A (en) * 1986-04-14 1996-01-02 National Instruments Corporation Method and apparatus for providing autoprobe features in a graphical data flow diagram
US20170060969A1 (en) * 2015-09-02 2017-03-02 International Business Machines Corporation Automating extract, transform, and load job testing
US20170091076A1 (en) * 2015-09-25 2017-03-30 Microsoft Technology Licensing, Llc Debugging remote vertex code on test machine
CN106708719A (zh) * 2015-08-04 2017-05-24 阿里巴巴集团控股有限公司 业务功能的测试方法和装置
CN109117381A (zh) * 2018-10-24 2019-01-01 北京奇虎科技有限公司 处理任务的调测方法及装置
CN112650590A (zh) * 2020-12-29 2021-04-13 北京奇艺世纪科技有限公司 任务的处理方法、装置及系统、分配方法和装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5481740A (en) * 1986-04-14 1996-01-02 National Instruments Corporation Method and apparatus for providing autoprobe features in a graphical data flow diagram
CN106708719A (zh) * 2015-08-04 2017-05-24 阿里巴巴集团控股有限公司 业务功能的测试方法和装置
US20170060969A1 (en) * 2015-09-02 2017-03-02 International Business Machines Corporation Automating extract, transform, and load job testing
US20170091076A1 (en) * 2015-09-25 2017-03-30 Microsoft Technology Licensing, Llc Debugging remote vertex code on test machine
CN109117381A (zh) * 2018-10-24 2019-01-01 北京奇虎科技有限公司 处理任务的调测方法及装置
CN112650590A (zh) * 2020-12-29 2021-04-13 北京奇艺世纪科技有限公司 任务的处理方法、装置及系统、分配方法和装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113641420A (zh) * 2021-08-16 2021-11-12 北京明略昭辉科技有限公司 基于Flink的工作流引擎实现方法、系统、设备及存储介质
CN113641420B (zh) * 2021-08-16 2024-07-05 北京明略昭辉科技有限公司 基于Flink的工作流引擎实现方法、系统、设备及存储介质
CN117135345A (zh) * 2023-10-19 2023-11-28 芯动微电子科技(武汉)有限公司 一种图像信号处理的仿真验证方法和装置
CN117135345B (zh) * 2023-10-19 2024-01-02 芯动微电子科技(武汉)有限公司 一种图像信号处理的仿真验证方法和装置

Similar Documents

Publication Publication Date Title
CN108614770B (zh) 自动化测试断言方法、装置、存储介质及设备
CN111159049B (zh) 接口自动化测试方法及系统
US7178135B2 (en) Scope-based breakpoint selection and operation
CN107025167B (zh) 在处理器追踪日志中使用编译器类型信息进行数据流分析的方法和设备
CN112241360A (zh) 一种测试用例生成方法、装置、设备及存储介质
CN112631919B (zh) 一种对比测试方法、装置、计算机设备及存储介质
CN113254350A (zh) 一种Flink作业测试方法、装置、设备及存储介质
CN113434396A (zh) 接口测试方法、装置、设备、存储介质及程序产品
CN112685316A (zh) 代码执行路径的获取方法、装置、计算机设备及存储介质
CN117743145A (zh) 一种基于编码模板的测试脚本生成方法、装置及处理设备
CN112613275A (zh) 单据生成方法、装置、计算机设备和存储介质
CN112632174A (zh) 一种数据检验的方法、装置和系统
CN115686621B (zh) 一种规则引擎规则脚本的生成方法及装置
CN115587048A (zh) 回归测试方法、终端设备及计算机可读存储介质
CN111984496B (zh) 一种监控栈内存泄露的方法、装置、介质和电子设备
CN114942887A (zh) 一种程序安全测试方法、装置、设备和介质
CN113849404A (zh) 对接口测试相关信息的管理方法、装置及存储介质
CN114461520A (zh) 一种软件测试方法、装置及电子设备
CN113220586A (zh) 一种自动化的接口压力测试执行方法、装置和系统
CN113806231A (zh) 一种代码覆盖率分析方法、装置、设备和介质
CN113868140A (zh) 一种自动化测试的方法及存储介质
CN114371866A (zh) 业务系统的版本重构测试方法、装置和设备
CN117155628B (zh) 一种容器化应用交互式安全测试方法、系统、装置及可读存储介质
CN113176994B (zh) 一种基于函数计算的Mock数据方法及装置
CN112835803B (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