CN113467985A - 一种函数校验方法、装置、电子设备及存储介质 - Google Patents

一种函数校验方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN113467985A
CN113467985A CN202110859203.6A CN202110859203A CN113467985A CN 113467985 A CN113467985 A CN 113467985A CN 202110859203 A CN202110859203 A CN 202110859203A CN 113467985 A CN113467985 A CN 113467985A
Authority
CN
China
Prior art keywords
function
data
verification
verified
user
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
CN202110859203.6A
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.)
Zhejiang Dahua Technology Co Ltd
Original Assignee
Zhejiang Dahua 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 Zhejiang Dahua Technology Co Ltd filed Critical Zhejiang Dahua Technology Co Ltd
Priority to CN202110859203.6A priority Critical patent/CN113467985A/zh
Publication of CN113467985A publication Critical patent/CN113467985A/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/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/32Monitoring with visual or acoustical indication of the functioning of the machine
    • G06F11/324Display of status information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请实施例提供一种函数校验方法、装置、电子设备及存储介质,涉及大数据技术领域,用以提高函数校验效率;该方法包括:获取待校验函数,以及待校验函数对应的校验数据;基于校验数据,对待校验函数对应的初始校验逻辑进行调整,得到待校验函数对应的校验逻辑;通过数据层执行所述校验逻辑,得到校验逻辑的执行结果;在结果显示界面显示校验逻辑的执行结果,以使用户根据执行结果确定待校验函数对应的校验结果。由于本申请实施例在直接获取到待校验函数和待校验数据后,基于校验数据对待校验函数对应的初始校验逻辑进行调整,得到包含待校验函数对应的包含校验数据的校验逻辑,无需用户手动编写命令行和校验数据,从而提高了函数校验效率。

Description

一种函数校验方法、装置、电子设备及存储介质
技术领域
本申请涉及大数据技术领域,尤其涉及一种函数校验方法、装置、电子设备及存储介质。
背景技术
大数据技术演进至今,数据中台体系已经愈发成熟。HIVE,作为数据中台体系中数仓的代表之一,同时也是HADOOP生态圈中不可或缺的一环,在离线数据处理领域有着广泛的应用。开发人员基于平台(此处平台泛指任意符合数据中台体系的开发平台,例如数据计算平台)进行数据开发,通常会通过平台功能向底层HIVE数据库中注册HIVE自定义函数以便后续开发使用。
在传统场景下,当开发人员需要对函数功能进行校验时,采用的方法通常为:开发人员获取HIVE环境信息及用户名密码,然后通过命令行登录HIVE后台,编写HIVESQL去操作,如果函数校验中涉及测试数据,则还需要自行准备DML(Data Manipulation Language,数据操纵语言)语句,整个过程并不友好,费时费力,函数校验的效率较低。
发明内容
本申请实施例提供一种函数校验方法、装置、电子设备及存储介质,可以提高函数校验的效率。
第一方面,本申请实施例提供一种函数校验方法,所述方法包括:
获取待校验函数,以及所述待校验函数对应的校验数据;
基于所述校验数据,对所述待校验函数对应的初始校验逻辑进行调整,得到所述待校验函数对应的校验逻辑;
通过数据层执行所述校验逻辑,得到所述校验逻辑的执行结果;
在结果显示界面显示所述校验逻辑的执行结果,以使用户根据所述执行结果确定所述待校验函数对应的校验结果。
由于本申请实施例在获取到待校验函数,以及待校验函数对应的校验数据后,基于接收到的校验数据,对预先存储的待校验函数对应的初始校验逻辑进行调整,得到待校验函数对应的包含校验数据的校验逻辑,无需用户手动设置命令行,得到待校验函数对应的校验逻辑;通过数据层执行校验逻辑,得到执行结果,并在结果显示界面中显示该执行结果,以使用户通过确定该执行结果,确定待校验函数对应的校验结果,从而提高了函数校验的效率。
一种可选的实施方式为,所述获取待校验函数,以及所述待校验函数对应的校验数据,包括:
通过函数显示界面接收用户选取的待校验函数;
通过数据设置界面接收所述待校验函数对应的校验数据,所述校验数据为临时数据。
由于本申请实施例通过函数显示界面接收用户选取的待检验函数后,通过数据设置界面接收用户输入的待校验函数对应的校验数据,为获取待校验函数对应的校验逻辑提供了数据基础,通过数据层执行校验逻辑,得到执行结果,并在结果显示界面中显示该执行结果,以使用户通过确定该执行结果,确定待校验函数对应的校验结果,从而实现了函数校验流程的可视化。并且,由于本申请实施例采用的校验数据为临时数据,在进行校验时无数据冗余。
一种可选的实施方式为,所述通过数据设置界面接收所述待校验函数对应的校验数据,包括:
若所述待校验函数为所述普通函数或所述表生成函数,则通过所述数据设置界面接收用户输入的测试参数;并将接收到的测试参数作为所述待校验函数对应的校验数据;或
若所述待校验函数为所述聚合函数,则通过所述数据设置界面接收所述用户输入的测试参数和测试数据;并将接收到的测试参数和测试数据作为所述待校验函数对应的校验数据。
由于本申请实施例能够在数据设置界面接收不同待校验函数对应的校验数据,实现了在数据设置接收界面,接收不同类型的待校验函数对应的校验函数,进而可对不同类型的待校验函数进行校验,从而提高了函数校验的效率。
一种可选的实施方式为,所述通过数据层执行所述校验逻辑,得到所述校验逻辑的执行结果,包括:
若所述待校验函数为所述聚合函数,则基于所述校验数据通过所述数据层创建临时表;
基于所述临时表,通过所述数据层执行所述校验逻辑,得到所述校验逻辑的执行结果。
由于本申请实施例在通过数据层执行校验逻辑之前,需要根据校验数据创建临时表,使得本申请实施例在执行校验逻辑时,只使用临时表,不会调用数据层中的永久表,从而不会造成数据冗余。
一种可选的实施方式为,所述得到所述校验逻辑的执行结果之后,还包括:
清除所述数据层中的临时表。
由于本申请实施例在得到校验逻辑的执行结果后,清除在执行校验逻辑的过程中产生的临时表,避免了数据冗余的产生。
一种可选的实施方式为,所述待校验函数为数据中台HIVE自定义函数;所述获取待校验函数,以及所述待校验函数对应的校验数据,包括:
通过函数显示界面接收用户选取的数据中台HIVE自定义函数;所述数据中台HIVE自定义函数包括所述普通函数、所述表生成函数和所述聚合函数;
通过数据设置界面接收所述数据中台HIVE自定义函数对应的校验数据,所述校验数据为临时数据。
第二方面,本申请实施例提供一种函数校验装置,所述装置包括:
获取单元,用于获取待校验函数,以及所述待校验函数对应的校验数据;
调整单元,用于基于所述校验数据,对所述待校验函数对应的初始校验逻辑进行调整,得到所述待校验函数对应的校验逻辑;
执行单元,用于通过数据层执行所述校验逻辑,得到所述校验逻辑的执行结果;
显示单元,用于在结果显示界面显示所述校验逻辑的执行结果,以使用户根据所述执行结果确定所述待校验函数对应的校验结果。
一种可选的实施方式为,所述获取单元具体用于:
通过函数显示界面接收用户选取的待校验函数;
通过数据设置界面接收所述待校验函数对应的校验数据,所述校验数据为临时数据。
一种可选的实施方式为,所述获取单元具体用于:
若所述待校验函数为所述普通函数或所述表生成函数,则通过所述数据设置界面接收用户输入的测试参数;并将接收到的测试参数作为所述待校验函数对应的校验数据;或
若所述待校验函数为所述聚合函数,则通过所述数据设置界面接收所述用户输入的测试参数和测试数据;并将接收到的测试参数和测试数据作为所述待校验函数对应的校验数据。
一种可选的实施方式为,所述执行单元具体用于:
若所述待校验函数为所述聚合函数,则基于所述校验数据通过所述数据层创建临时表;
基于所述临时表,通过所述数据层执行所述校验逻辑,得到所述校验逻辑的执行结果。
一种可选的实施方式为,所述得到所述校验逻辑的执行结果之后,所述执行单元还用于:
清除所述数据层中的临时表。
一种可选的实施方式为,所述待校验函数为数据中台HIVE自定义函数;所述获取单元具体用于:
通过函数显示界面接收用户选取的数据中台HIVE自定义函数;所述数据中台HIVE自定义函数包括所述普通函数、所述表生成函数和所述聚合函数;
通过数据设置界面接收所述数据中台HIVE自定义函数对应的校验数据,所述校验数据为临时数据。
第三方面,本申请实施例提供一种数据计算平台,包括数据库和处理模块,所述数据库中上存储有可在所述处理模块上运行的计算机程序,当所述计算机程序被所述处理模块执行时,实现上述第一方面任一种的函数校验方法。
第四方面,本申请实施例提供一种电子设备,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,当所述计算机程序被所述处理器执行时,实现上述第一方面任一种的函数校验方法。
第五方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时,实现上述第一方面中任意一种函数校验方法的步骤。
第二方面至第五方面中任意一种实现方式所带来的技术效果可参见第一方面中对应的实现方式所带来的技术效果,此处不再赘述。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种函数校验方法的应用场景示意图;
图2为本申请实施例提供的另一种函数校验方法的应用场景示意图;
图3为本申请实施例提供的一种函数校验方法的流程示意图;
图4为本申请实施例提供的一种函数显示界面示意图;
图5为本申请实施例提供的一种数据设置界面示意图;
图6为本申请实施例提供的另一种数据设置界面示意图;
图7为本申请实施例提供的另一种数据设置界面示意图;
图8为本申请实施例提供的一种结果展示界面示意图;
图9为本申请实施例提供的一种函数校验方法的完整流程示意图;
图10为本申请实施例提供的一种函数校验装置的结构示意图;
图11为本申请实施例提供的一种数据计算平台的结构框图;
图12为本申请实施例提供的一种电子设备的结构框图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
下面对文中出现的一些术语进行解释:
(1)HIVE:是基于Hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。hive数据仓库工具能将结构化的数据文件映射为一张数据库表,并提供SQL(Structured Query Language,结构化查询语言)查询功能,能将SQL语句转变成MapReduce任务来执行。Hive的优点是学习成本低,可以通过类似SQL语句实现快速MapReduce统计,使MapReduce变得更加简单,而不必开发专门的MapReduce应用程序。hive十分适合对数据仓库进行统计分析。
(2)SQL:是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统,可以使用相同的结构化查询语言作为数据输入与管理的接口。结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。
(3)DML:是用于数据库操作,对数据库其中的对象和数据运行访问工作的编程语句,通常是数据库专用编程语言之中的一个子集,例如在信息软件产业通行标准的SQL语言中,以INSERT、UPDATE、DELETE三种指令为核心,分别代表插入(意指新增或创建)、更新(修改)与删除(销毁)。
(4)普通函数(User-Defined Functions,UDF):是指用户定义的函数,用以进行一些普通运算,且只对单行数值进行计算,例如,加、减、乘、除等基础运算。
(5)表生成函数(User-Defined Table-Generating Functions,UDTF):用户定义的表生成函数。UDTF用于从原始表中的一行生成多行数据。典型的UDTF有EXPLODE、posexplode等函数,它能将array或者map展开。
(6)聚合函数(User-Defined Aggregation Funcation,UDAF):是指用户定义的基本函数,聚合函数对多行数据执行计算,并返回一行数据。聚合函数经常与SELECT语句的GROUP BY子句的HAVING一同使用。
本申请实施例中术语“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
目前,在传统场景下,当开发人员需要对函数功能进行校验时,采用的方法为:开发人员往往需要获取HIVE环境信息及用户名密码,然后通过命令行登录HIVE后台,编写HIVESQL去操作,如果函数校验中涉及测试数据,则还需要自行准备DML语句,整个过程并不友好,费时费力,函数校验的效率较低。
基于上述问题,本申请实施例提供了一种函数校验方法、装置、电子设备及存储介质。该函数校验方法可以应用于终端,例如,计算机;也可应用于服务器。
如图1所示,本申请实施例提供一种函数校验方法的应用场景。如图1所示,该应用场景包括:用户10和终端20;其中,终端20上安装有函数校验平台。用户10可点击终端20上的函数校验平台,使终端20响应用户的操作,并将显示界面切换为函数显示界面。用户10可在函数显示界面中选取待校验函数;终端20通过函数显示界面接收用户选取的待校验函数,并将函数显示界面切换为数据设置界面;用户10可在数据设置界面上输入待校验函数对应的校验数据;终端20通过数据设置界面接收用户输入的校验数据,并基于接收到的校验数据,对待校验函数对应的初始校验逻辑进行调整,得到待校验函数对应的校验逻辑。终端20通过数据层执行校验逻辑,得到校验逻辑的执行结果,并在结果显示界面中显示执行结果;用户10根据终端20的结果显示界面上显示的执行结果,确定待校验函数对应的校验结果。
在一些实施例中,数据层可以位于终端20中,也可位于独立数据库中。
如图2所示,本申请实施例提供另一种函数校验方法的应用场景。如图2所示,该应用场景包括:用户10、显示设备20和服务器30。显示设备20和服务器30之间可以通过有线连接方式或无线连接方式进行连接并传输数据。例如,显示设备20和服务器30之间可以通过数据线连接或者通过有线网络连接;显示设备20和服务器30之间也可以通过射频模块、蓝牙模块或者无线网络连接。
用户10通过显示设备20的函数显示界面,选取待校验函数;显示设备20将通过函数显示界面接收到的用户10选取的待校验函数,发送给服务器30;服务器30在接收到待校验函数后,向显示设备20发送待校验函数对应的界面切换指令;显示设备20在接收到界面切换指令后,将函数显示界面切换为数据设置界面。用户10在显示设备20的数据设置界面上输入校验数据;显示设备20将通过数据设置界面接收到的校验数据发送给服务器30。服务器30基于接收到的校验数据,对待校验函数对应的初始校验逻辑进行调整,得到待校验函数对应的校验逻辑,并通过数据层执行校验逻辑,得到校验逻辑的执行结果。服务器30将得到的执行结果发送给显示设备20;显示设备20在接收到执行结果后,在结果显示界面中显示执行结果,使用户10根据显示的执行结果,确定待校验函数的校验结果。
在一些实施例中,数据层可以位于服务器30中,也可位于独立数据库中。
如图3所示,本申请实施例提供一种函数校验方法,包括以下步骤:
步骤S301,获取待校验函数,以及待校验函数对应的校验数据。
需要说明的是,校验数据为临时数据。
具体实施中,本申请实施例可通过函数显示界面接收用户选取的待校验函数。
需要说明的是,待校验函数为数据中台HIVE自定义函数;其中,HIVE自定义函数包括:普通函数、表生成函数和聚合函数。
实施中,本申请实施例通过函数显示界面接收用户选取的数据中台HIVE自定义函数。
具体地,本申请实施例在函数显示界面中显示本申请实施例在HIVE中自定义的函数,用户可在HIVE自定义函数中选取待校验函数;并且,本申请实施例通过函数显示界面接收用户选取的待校验函数。
例如,如图4所示,本申请实施例提供一种函数显示界面;用户通过在函数显示界面中选取待校验函数,并点击“确定”按键,本申请实施例响应用户选取待校验函数的操作,接收用户选取的进行校验的待校验函数。
本申请实施例在接收到进行校验的待校验函数后,通过数据设置界面接收待校验函数对应的校验数据。
在一些实施例中,本申请实施例通过数据设置界面接收数据中台HIVE自定义函数对应的校验数据。
具体实施中,用户可在数据设置界面,根据选取的待校验函数输入对应的校验数据;本申请实施例通过数据设置界面,接收用户输入的校验数据。
需要说明的是,普通函数和表生成函数对应的校验数据为测试参数;聚合函数对应的校验数据为测试数据和测试参数。
步骤S302,基于校验数据,对待校验函数对应的初始校验逻辑进行调整,得到待校验函数对应的校验逻辑。
本申请实施例在接收到用户输入的校验数据后,确定待校验函数对应的初始校验逻辑;基于接收到的校验数据,对确定出的初始校验逻辑进行调整,得到待校验函数对应的校验逻辑。
步骤S303,通过数据层执行校验逻辑,得到校验逻辑的执行结果。
本申请实施例在得到待校验函数对应的校验逻辑后,通过数据层执行校验逻辑,得到校验逻辑的执行结果。
具体实施中,本申请实施例通过数据层执行校验逻辑,根据校验逻辑执行数据层中存储的待校验函数的执行逻辑,得到校验逻辑的执行结果。
步骤S304,在结果显示界面显示校验逻辑的执行结果,以使用户根据执行结果确定待校验函数对应的校验结果。
本申请实施例在得到校验逻辑的执行结果后,在结果显示界面显示校验逻辑的执行结果,以使用户基于数据层中存储的待校验函数的执行逻辑以及所述校验逻辑的执行结果,确定待校验函数对应的校验结果。
由于本申请实施例在获取到待校验函数,以及待校验函数对应的校验数据后,基于接收到的校验数据,对预先存储的待校验函数对应的初始校验逻辑进行调整,得到待校验函数对应的包含校验数据的校验逻辑,无需用户手动设置命令行,得到待校验函数对应的校验逻辑;通过数据层执行校验逻辑,得到执行结果,并在结果显示界面中显示该执行结果,以使用户通过确定该执行结果,是否与基于该待校验函数对应的执行逻辑得到的执行结果相同,确定待校验函数对应的校验结果,从而提高了函数校验的效率。
在一些实施例中,若待校验函数为普通函数或表生成函数,则通过数据设置界面接收用户输入的测试参数;并将接收到的测试参数作为待校验函数对应的校验数据。
具体实施中,若用户在函数显示界面中选取的待校验函数为普通函数或表生成函数,则用户可在数据设置界面中输入测试参数;本申请实施例将接收到的测试参数作为待校验函数对应的校验数据。例如,待校验函数为普通函数时,用户可输入的测试参数为:1,2;待校验函数为表生成函数时,用户可输入的测试参数为:‘a,b#1,2#c,d#3,4’,其中,#为分行符。
例如,如图5所示,本申请实施例提供一种数据设置界面;用户在函数显示界面中选取普通函数或表生成函数作为待校验函数时,本申请实施例响应用户的选取操作,将函数显示界面切换为数据设置界面;其中,用户可在该数据界面中输入测试参数;本申请实施例将通过数据设置界面接收到的测试参数,作为待校验函数对应的校验数据。
又例如,如图6所示,本申请实施例还提供一种数据设置界面;用户在函数显示界面中选取普通函数或表生成函数作为待校验函数时,本申请实施例响应用户的选取操作,将函数显示界面切换为数据设置界面;其中,用户选取的待校验函数对应的校验数据中不包括测试数据,即用户可通过点击“下一步”,进入数据设置界面中的测试参数的输入模块,如图7所示;用户可在图7所示的数据设置界面输入测试参数;且本申请实施例将通过数据设置界面接收到的测试参数,作为待校验函数对应的校验数据。
在另一些实施例中,若待校验函数为聚合函数,则本申请实施例通过数据设置界面接收用户输入的测试参数和测试数据;并将接收到的测试参数和测试数据作为待校验函数对应的校验数据。
具体地,若用户在函数显示界面中选取的待校验函数为聚合函数,则用户可在数据设置界面中输入测试数据和测试参数;本申请实施例将接收到的测试数据和测试参数作为待校验函数对应的校验数据。
需要说明的是,用户在输入测试数据时,应输入支持HIVE的字段类型。
例如,用户在函数显示界面中选取聚合函数作为待校验函数时,本申请实施例响应用户的选取操作,将函数显示界面切换为数据设置界面;如图6所示,用户可在数据设置界面的测试数据输入模块输入待校验函数对应的测试数据,具体地,用户准备输入的测试数据为四列三行数据;具体实施中,用户通过点击“新增列”添加列数,其中,第一列列名为name(类型为string),第二列列名为yuwen(类型为bigint),第三列列名为shuxue(类型为bigint),第四列列名为yingyu(类型为bigint);用户通过点击“新增行”增加行数后添加数据,第一行数据为zhangsan,90,90,90,第二行数据为lisi,80,80,80,第三行数据为wangwu,70,70,70。用户在完成测试数据输入时,点击“下一步”按键,进入测试参数输入模块;如图7所示,用户在数据设置界面的测试参数输入模块中输入待校验函数对应的测试参数,具体地,用户根据输入的测试数据以及待校验函数的入参类型,填写测试参数name,yuwen,shuxue,yingyu;用户在完成输入测试参数后,点击“确定”按键,完成对待校验函数对应的校验数据的输入,以使本申请实施例将通过数据设置界面接收到的测试数据和测试参数作为待校验函数对应的校验数据,并开始对待校验函数的校验。
本申请实施例可通过下列方式对待校验函数进行校验。
在一些实施例中,本申请实施例在获得待校验函数对应的校验数据后,基于得到的校验数据,对待校验函数对应的初始校验逻辑进行调整,得到待校验函数对应的校验逻辑。
具体实施中,本申请实施例在获取到待校验函数对应的校验数据后,确定待校验函数对应的初始校验逻辑,然后,基于得到的校验数据,调整初始校验逻辑得到待校验函数对应的校验逻辑。
例如,待校验函数为普通函数,校验数据为用户输入的测试参数“1,2”;确定待校验函数对应的初始校验逻辑为:SELECT udf();根据得到的校验数据调整初始校验逻辑,得到待校验函数对应的校验逻辑为:SELECT udf(1,2)。
又例如,待校验函数为表生成函数,校验数据为用户输入的测试参数“‘a,b#1,2#c,d#3,4’”,其中,#表示分行符(#为用户定义的分行符,用户也可将其他符号定义为分行符);确定待校验函数对应的初始校验逻辑为:SELECT udtf();根据得到的校验数据调整初始校验逻辑,得到待校验函数对应的校验逻辑为:SELECT udtf(‘a,b#1,2#c,d#3,4’)。
再例如,待校验函数为聚合函数,校验数据为用户输入的测试数据
Figure BDA0003185220040000131
以及测试参数“col1,col2”;确定待校验函数对应的初始校验逻辑为:
CREATE TEMPORARY TABLE tmp_table();
INSERT INTO tmp_table VALUES();
SELECT udaf()FROM tmp_table;
其中,tmp_table表示临时表的名称;
根据得到的校验数据调整初始校验逻辑,得到待校验函数对应的校验逻辑为:
CREATE TEMPORARY TABLE tmp_table(col1 STRING,col2 STRING);
INSERT INTO tmp_table VALUES(‘1’,’a’),(‘2’,’b’);
SELECT udaf(col1,col2)FROM tmp_table。
本申请实施例在基于校验数据,得到待校验函数对应的校验逻辑后,通过数据层执行校验逻辑,得到校验逻辑的执行结果。
在一些实施例中,若待校验函数为普通函数或者表生成函数,则直接通过数据层执行待校验函数对应的校验逻辑,调用数据层中存储的待校验函数对应的执行逻辑,得到校验逻辑的执行结果。
例如,待校验函数为普通函数UDF,校验数据为“1,2”;UDF对应的执行逻辑为求和;本申请实施例执行UDF对应的校验逻辑,调用UDF对应的执行逻辑,得到的执行结果为2。待校验函数为表生成函数UDTF,校验数据为“‘a,b#1,2#c,d#3,4’”;本申请实施例执行UDTF对应的校验逻辑,调用UDTF对应的执行逻辑,得到的执行结果如下表1所示:
表1执行结果
a b
1 2
c d
3 4
在另一些实施例中,若待校验函数为聚合函数,则本申请实施例基于校验数据通过数据层创建临时表;并基于得到的临时表,通过数据层执行校验逻辑,得到校验逻辑的执行结果。
具体实施中,本申请实施例在确定待校验函数为聚合函数时,则基于校验数据,通过数据库创建临时表。
例如,待校验函数对应的校验数据为:测试数据
Figure BDA0003185220040000141
以及测试参数“col1,col2”;待校验函数为聚合函数;本申请实施例基于校验数据,通过数据层创建临时表;其中,临时表如下表2所示:
表2临时表
col1 col2
1 a
2 b
本申请实施例在创建临时表后,基于创建的临时表,执行校验逻辑,调用数据层中存储的待校验函数对应的执行逻辑,得到校验逻辑的执行结果。
例如,待校验函数为聚合函数UDAF,临时表如表2所示,UDAF对应的执行逻辑为求字符总长度;本申请实施例执行UDAF对应的校验逻辑,基于临时表,调用UDAF对应的执行逻辑,得到的执行结果为4。
在一些实施例中,若本申请实施例在数据层中创建的临时表的名称tmp_table与数据层中存储的永久数据表的名称相同,则本申请实施例在执行校验逻辑时,其中,所有与tmp_table相关的逻辑语言均指向临时表,而不是永久表。
需要说明的是,本申请实施例在得到聚合函数对应的校验逻辑的执行结果后,清除数据层中创建的临时表。
本申请实施例在确定出待校验函数对应的校验结果后,在结果显示界面中显示校验逻辑的执行结果,以使用户根据执行结果,确定待校验函数对应的校验结果。
例如,如图8所示,本申请实施例提供一种结果显示界面;本申请实施例在结果显示界面中显示校验逻辑的执行结果。
在一些实施例中,用户根据进行校验的待校验函数在数据层中存储的执行逻辑,结合输入的校验数据,得到待校验函数对应的目标结果;用户再结合结果显示界面中显示的校验逻辑的执行结果,确定待校验函数对应的校验结果。
具体地,用户通过确定执行结果与目标结果是否相同,确定待校验函数对应的校验结果是否成功。若用户确定执行结果与目标结果相同,则确定待校验函数的校验结果为校验成功,待校验函数不存在编写错误。若用户确定执行结果与目标结果不同,则确定待校验函数的校验结果为校验设备,待校验函数存在编写错误。
例如,待校验函数为普通函数,校验数据为“1,2”,待校验函数对应的执行逻辑为求和,待校验函数对应的校验逻辑的执行结果为2;用户基于校验数据“1,2”,以及待校验函数对应的执行逻辑,得到目标结果1+2=3;其中,目标结果为3,执行结果为2,即目标结果与执行结果并不相同,确定待校验函数存在编写错误。
如图9所示,本申请实施例提供一种函数校验方法的完整流程,包括以下步骤:
步骤S901,通过函数显示界面接收用户选取的待校验函数。
需要说明的是,待校验函数为数据中台HIVE自定义函数。HIVE自定义函数包括:普通函数、表生成函数和聚合函数。
步骤S902,确定待校验函数是否为聚合函数;若是,则执行步骤S903,;若否,则执行步骤S909。
步骤S903,通过数据设置界面接收用户输入的测试参数和测试数据。
步骤S904,将接收到的测试参数和测试数据作为待校验函数对应的校验数据。
需要说明的是,校验数据为临时数据。
步骤S905,基于校验数据,对待校验函数对应的初始校验逻辑进行调整,得到待校验函数对应的校验逻辑。
步骤S906,基于校验数据通过数据层创建临时表。
步骤S907,基于临时表,通过数据层执行校验逻辑,得到校验逻辑的执行结果。
步骤S908,清除临时表。
步骤S909,通过数据设置界面接收用户输入的测试参数。
步骤S910,将接收到的测试参数作为待校验函数对应的校验数据。
需要说明的是,校验数据为临时数据。
步骤S911,基于校验数据,对待校验函数对应的初始校验逻辑进行调整,得到待校验函数对应的校验逻辑。
步骤S912,通过数据层执行校验逻辑,得到校验逻辑的执行结果。
步骤S913,在结果显示界面显示校验逻辑的执行结果,以使用户根据执行结果确定待校验函数对应的校验结果。
与图3所示的函数校验方法基于同一发明构思,本申请实施例中还提供了一种函数校验装置,该函数校验装置可以布设在终端中,也可布设在服务器中。由于该装置是本申请实施例函数校验方法对应的装置,并且该装置解决问题的原理与该方法相似,因此该装置的实施可以参见上述方法的实施,重复之处不再赘述。
图10示出了本申请实施例提供的一种函数校验装置的结构示意图,如图10所示,该函数校验装置包括:
获取单元1001,用于获取待校验函数,以及待校验函数对应的校验数据;
调整单元1002,用于基于校验数据,对待校验函数对应的初始校验逻辑进行调整,得到待校验函数对应的校验逻辑;
执行单元1003,用于通过数据层执行校验逻辑,得到校验逻辑的执行结果;
显示单元1004,用于在结果显示界面显示校验逻辑的执行结果,以使用户根据执行结果确定待校验函数对应的校验结果。
一种可选的实施方式为,获取单元1001具体用于:
通过函数显示界面接收用户选取的待校验函数;
通过数据设置界面接收待校验函数对应的校验数据,校验数据为临时数据。
一种可选的实施方式为,获取单元1001具体用于:
若待校验函数为普通函数或表生成函数,则通过数据设置界面接收用户输入的测试参数;并将接收到的测试参数作为待校验函数对应的校验数据;或
若待校验函数为聚合函数,则通过数据设置界面接收用户输入的测试参数和测试数据;并将接收到的测试参数和测试数据作为待校验函数对应的校验数据。
一种可选的实施方式为,执行单元1003具体用于:
若待校验函数为聚合函数,则基于校验数据通过数据层创建临时表;
基于临时表,通过数据层执行校验逻辑,得到校验逻辑的执行结果。
一种可选的实施方式为,得到校验逻辑的执行结果之后,执行单元1003还用于:
清除数据层中的临时表。
一种可选的实施方式为,待校验函数为数据中台HIVE自定义函数;获取单元1001具体用于:
通过函数显示界面接收用户选取的数据中台HIVE自定义函数;数据中台HIVE自定义函数包括普通函数、表生成函数和聚合函数;
通过数据设置界面接收数据中台HIVE自定义函数对应的校验数据,校验数据为临时数据。
与上述函数校验方法的实施例相对应地,本申请实施例还提供了一种数据计算平台。该数据计算平台至少包括用于存储数据的数据库,用于数据处理的处理模块。
图11为本申请实施例提供的一种数据计算平台的结构示意图;如图11所示,本申请实施例中该数据计算平台包括:数据库1101、处理模块1102和显示模块1103。其中,数据库可以为HIVE数据库。
其中,数据库1101用于存储数据中台HIVE自定义函数,以及软件程序,如本申请实施例中的函数校验方法对应的程序指令。处理模块1102可通过执行存储在数据库1101中的软件程序,从而执行数据计算平台的各种功能应用以及数据处理,如本申请实施例提供的函数校验方法。
处理模块1102可以将校验逻辑的执行结果通过显示模块1103展示给用户。
与上述函数校验方法的实施例相对应地,本申请实施例还提供了一种电子设备。该电子设备可以终端,如图1中所示的终端20;也可以是服务器,如图2所示的服务器20。
该电子设备至少包括用于存储数据的存储器和用于数据处理的处理器。其中,对于用于数据处理的处理器而言,在执行处理时,可以采用微处理器、CPU、GPU(GraphicsProcessing Unit,图形处理单元)、DSP或FPGA实现。对于存储器来说,存储器中存储有操作指令,该操作指令可以为计算机可执行代码,通过该操作指令来实现上述本申请实施例的函数校验方法的流程中的各个步骤。
图12为本申请实施例提供的一种电子设备的结构示意图;如图12所示,本申请实施例中该电子设备100包括:处理器101、显示器102、存储器103、输入设备106、总线105和通讯模块104;该处理器101、存储器103、输入设备106、显示器102和通讯模块104均通过总线105连接,该总线105用于该处理器101、存储器103、显示器102、通讯模块104和输入设备106之间传输数据。
其中,存储器103可用于存储软件程序以及模块,如本申请实施例中的函数校验方法对应的程序指令/模块,处理器101通过运行存储在存储器103中的软件程序以及模块,从而执行电子设备100的各种功能应用以及数据处理,如本申请实施例提供的函数校验方法。存储器103可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个应用的应用程序等;存储数据区可存储根据电子设备100的使用所创建的数据(比如临时表、初始校验逻辑)等。此外,存储器103可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
处理器101是电子设备100的控制中心,利用总线105以及各种接口和线路连接整个电子设备100的各个部分,通过运行或执行存储在存储器103内的软件程序和/或模块,以及调用存储在存储器103内的数据,执行电子设备100的各种功能和处理数据。可选的,处理器101可包括一个或多个处理单元,如CPU、GPU、数字处理单元等。
处理器101可以将校验逻辑的执行结果通过显示器102展示给用户。
处理器101还可以通过通讯模块104连接网络,获取用户选取的待校验函数等。
输入设备106主要用于获得用户的输入操作,当该电子设备不同时,该输入设备106也可能不同。例如,当该电子设备为计算机时,该输入设备106可以为鼠标、键盘等输入设备;当该电子设备为智能手机、平板电脑等便携设备时,该输入设备106可以为触控屏。
本申请实施例还提供了一种计算机存储介质,该计算机存储介质中存储有计算机可执行指令,该计算机可执行指令用于实现本申请任一实施例所记载的函数校验方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (15)

1.一种函数校验方法,其特征在于,所述方法包括:
获取待校验函数,以及所述待校验函数对应的校验数据;
基于所述校验数据,对所述待校验函数对应的初始校验逻辑进行调整,得到所述待校验函数对应的校验逻辑;
通过数据层执行所述校验逻辑,得到所述校验逻辑的执行结果;
在结果显示界面显示所述校验逻辑的执行结果,以使用户根据所述执行结果确定所述待校验函数对应的校验结果。
2.根据权利要求1所述的方法,其特征在于,所述获取待校验函数,以及所述待校验函数对应的校验数据,包括:
通过函数显示界面接收用户选取的待校验函数;
通过数据设置界面接收所述待校验函数对应的校验数据,所述校验数据为临时数据。
3.根据权利要求2所述的方法,其特征在于,所述通过数据设置界面接收所述待校验函数对应的校验数据,包括:
若所述待校验函数为所述普通函数或所述表生成函数,则通过所述数据设置界面接收用户输入的测试参数;并将接收到的测试参数作为所述待校验函数对应的校验数据;或
若所述待校验函数为所述聚合函数,则通过所述数据设置界面接收所述用户输入的测试参数和测试数据;并将接收到的测试参数和测试数据作为所述待校验函数对应的校验数据。
4.根据权利要求1所述的方法,其特征在于,所述通过数据层执行所述校验逻辑,得到所述校验逻辑的执行结果,包括:
若所述待校验函数为所述聚合函数,则基于所述校验数据通过所述数据层创建临时表;
基于所述临时表,通过所述数据层执行所述校验逻辑,得到所述校验逻辑的执行结果。
5.根据权利要求4所述的方法,其特征在于,所述得到所述校验逻辑的执行结果之后,还包括:
清除所述数据层中的临时表。
6.根据权利要求1所述的方法,其特征在于,所述待校验函数为数据中台HIVE自定义函数;所述获取待校验函数,以及所述待校验函数对应的校验数据,包括:
通过函数显示界面接收用户选取的数据中台HIVE自定义函数;所述数据中台HIVE自定义函数包括所述普通函数、所述表生成函数和所述聚合函数;
通过数据设置界面接收所述数据中台HIVE自定义函数对应的校验数据,所述校验数据为临时数据。
7.一种函数校验装置,其特征在于,所述装置包括:
获取单元,用于获取待校验函数,以及所述待校验函数对应的校验数据;所述校验数据为临时数据;
调整单元,用于基于所述校验数据,对所述待校验函数对应的初始校验逻辑进行调整,得到所述待校验函数对应的校验逻辑;
执行单元,用于通过数据层执行所述校验逻辑,得到所述校验逻辑的执行结果;
显示单元,用于在结果显示界面显示所述校验逻辑的执行结果,以使用户根据所述执行结果确定所述待校验函数对应的校验结果。
8.根据权利要求7所述的装置,其特征在于,所述获取单元具体用于:
通过函数显示界面接收用户选取的待校验函数;
通过数据设置界面接收所述待校验函数对应的校验数据,所述校验数据为临时数据。
9.根据权利要求8所述的装置,其特征在于,所述接收单元具体用于:
若所述待校验函数为所述普通函数或所述表生成函数,则通过所述数据设置界面接收用户输入的测试参数;并将接收到的测试参数作为所述待校验函数对应的校验数据;或
若所述待校验函数为所述聚合函数,则通过所述数据设置界面接收所述用户输入的测试参数和测试数据;并将接收到的测试参数和测试数据作为所述待校验函数对应的校验数据。
10.根据权利要求7所述的装置,其特征在于,所述执行单元具体用于:
若所述待校验函数为所述聚合函数,则基于所述校验数据通过所述数据层创建临时表;
基于所述临时表,通过所述数据层执行所述校验逻辑,得到所述校验逻辑的执行结果。
11.根据权利要求10所述的装置,其特征在于,所述得到所述校验逻辑的执行结果之后,所述执行单元还用于:
清除所述数据层中的临时表。
12.根据权利要求7任一所述的装置,其特征在于,所述待校验函数为数据中台HIVE自定义函数;所述获取单元具体用于:
通过函数显示界面接收用户选取的数据中台HIVE自定义函数;所述数据中台HIVE自定义函数包括所述普通函数、所述表生成函数和所述聚合函数;
通过数据设置界面接收所述数据中台HIVE自定义函数对应的校验数据,所述校验数据为临时数据。
13.一种数据计算平台,其特征在于,包括数据库和处理模块,所述数据库中上存储有可在所述处理模块上运行的计算机程序,当所述计算机程序被所述处理模块执行时,实现权利要求1~6中任一项所述的方法。
14.一种电子设备,其特征在于,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,当所述计算机程序被所述处理器执行时,实现权利要求1~6中任一项所述的方法。
15.一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,其特征在于:所述计算机程序被处理器执行时,实现权利要求1~6中任一项所述的方法。
CN202110859203.6A 2021-07-28 2021-07-28 一种函数校验方法、装置、电子设备及存储介质 Pending CN113467985A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110859203.6A CN113467985A (zh) 2021-07-28 2021-07-28 一种函数校验方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110859203.6A CN113467985A (zh) 2021-07-28 2021-07-28 一种函数校验方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN113467985A true CN113467985A (zh) 2021-10-01

Family

ID=77882986

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110859203.6A Pending CN113467985A (zh) 2021-07-28 2021-07-28 一种函数校验方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN113467985A (zh)

Similar Documents

Publication Publication Date Title
CN111026470B (zh) 用于输入数据的验证和转换的系统和方法
CN107239392B (zh) 一种测试方法、装置、终端及存储介质
CN110704398B (zh) 从MySQL到Oracle的数据库迁移方法、装置及计算机设备
CN104252481A (zh) 主从数据库一致性的动态校验方法和装置
CN108491326B (zh) 测试行为重组方法、装置及存储介质
US8904352B2 (en) Systems and methods for processing source code during debugging operations
CN109376153B (zh) 一种基于NiFi的数据写入图数据库的系统及方法
CN114328452A (zh) 数据稽核方法、装置、平台、电子设备及存储介质
CN110674029A (zh) 自动生成测试数据方法、装置、电子设备及存储介质
CN109697083A (zh) 数据的定点化加速方法、装置、电子设备及存储介质
CN112306452A (zh) 归并排序算法处理业务数据的方法、装置及系统
CN112199443A (zh) 数据同步方法、装置、计算机设备和存储介质
CN112947907A (zh) 一种创建代码分支的方法
CN113467985A (zh) 一种函数校验方法、装置、电子设备及存储介质
CN115454971A (zh) 数据迁移方法、装置、电子设备及存储介质
CN114356379A (zh) 基于备份的服务升级方法、装置、设备及存储介质
CN112612427A (zh) 一种车辆停靠点数据处理方法、装置、存储介质及终端
CN111078671A (zh) 数据表字段的修改方法、装置、设备和介质
CN113986305B (zh) B/s模型升级的检测方法、装置、设备和存储介质
CN110175116B (zh) 一种测试日期切换方法、装置及系统
JP2019144873A (ja) ブロック線図解析装置
CN113627106B (zh) 多比特寄存器的仿真方法、装置和电子设备
US20090132532A1 (en) Procedure generation apparatus and method
CN112130841B (zh) Sql开发方法、装置及终端设备
US20210334288A1 (en) Methods and systems for data wrangling

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