CN115454866A - 大数据代码的自动检测方法、装置、设备及介质 - Google Patents
大数据代码的自动检测方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN115454866A CN115454866A CN202211150214.8A CN202211150214A CN115454866A CN 115454866 A CN115454866 A CN 115454866A CN 202211150214 A CN202211150214 A CN 202211150214A CN 115454866 A CN115454866 A CN 115454866A
- Authority
- CN
- China
- Prior art keywords
- big data
- resource
- data code
- code
- detection
- 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
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
- 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/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Data Mining & Analysis (AREA)
- Stored Programmes (AREA)
Abstract
本申请涉及大数据技术领域,提供了一种大数据代码的自动检测方法、装置、设备及介质,方法包括:接收用户上传的大数据代码,获取预设的检测规则信息,其中,检测规则信息包括大数据代码对应的总进程所占用的资源限制,获取大数据代码中预设的作业进程资源参数,对大数据代码中预设的作业进程资源参数进行检测,以确定大数据代码对应的总进程所占用的资源是否超过资源限制,并生成大数据代码对应的资源检测结果,将大数据代码对应的资源检测结果发送给用户。本申请实施例通过获取检测规则信息,实现对用户上传的大数据代码的自动检测,能够检测大数据代码中的缺陷并且减少人力和资源成本。
Description
技术领域
本申请涉及大数据技术领域,尤其涉及一种大数据代码的自动检测方法、装置、电子设备及计算机可读存储介质。
背景技术
随着企业脱Oracle战略的进一步推进,部分企业逐步将其业务模块迁移至大数据系统。由于在大数据环境中进行代码测试的难度较高且工作量较大,对相关大数据代码提出了更加严格的要求。此外,不同部门不同项目对大数据代码有着不同要求,若移交大数据代码之前依据不同的检测要求逐一进行人工检测,仍需要耗费较多人力和资源成本。
发明内容
本申请实施例的主要目的在于提出一种大数据代码的自动检测方法、装置、电子设备及计算机可读存储介质,能够基于检测规则自动扫描检测大数据代码。
为实现上述目的,本申请实施例的第一方面提出了一种大数据代码的自动检测方法,所述方法包括:
接收用户上传的大数据代码;
获取预设的检测规则信息,所述检测规则信息包括所述大数据代码对应的总进程所占用的资源限制;
获取所述大数据代码中预设的作业进程资源参数;
对所述大数据代码中预设的作业进程资源参数进行检测,以确定所述大数据代码对应的总进程所占用的资源是否超过所述资源限制,并生成所述大数据代码对应的资源检测结果;
将所述大数据代码对应的资源检测结果发送给所述用户。
根据本发明一些实施例提供的大数据代码的自动检测方法,所述检测规则信息还包括数据倾斜判定规则;
在所述获取预设的检测规则信息之后,所述方法还包括:
基于所述数据倾斜判定规则对所述大数据代码是否存在数据倾斜进行检测,生成所述大数据代码对应的数据倾斜检测结果;
所述将所述大数据代码对应的资源检测结果发送给所述用户,包括:
将所述大数据代码对应的资源检测结果以及数据倾斜检测结果发送给所述用户。
根据本发明一些实施例提供的大数据代码的自动检测方法,所述基于所述数据倾斜判定规则对所述大数据代码是否存在数据倾斜进行检测,生成所述大数据代码对应的数据倾斜检测结果,包括:
通过资源管理平台获取所述大数据代码对应的任务执行信息,所述任务执行信息包括每个节点任务的执行状态以及处理数据量;
根据每个节点任务的处理数据量确定平均处理数据量;
基于每个所述节点任务的执行状态以及每个所述节点任务的处理数据量与所述平均处理数据量的大小关系,生成所述大数据代码对应的数据倾斜检测结果。
根据本发明一些实施例提供的大数据代码的自动检测方法,所述资源限制包括内存容量限制,所述作业进程资源参数包括作业进程数量以及每个作业进程所占用的内容容量;
所述对所述大数据代码中预设的作业进程资源参数进行检测,以确定所述大数据代码对应的总进程所占用的资源是否超过所述资源限制,并生成所述大数据代码对应的资源检测结果,包括:
根据所述作业进程数量以及每个所述作业进程所占用的内存容量,确定所述大数据代码对应的总进程所占用的内存容量;
基于所述大数据代码对应的总进程所占用的内存容量和所述内存容量限制的大小关系,生成所述大数据代码对应的资源检测结果。
根据本发明一些实施例提供的大数据代码的自动检测方法,所述资源限制包括处理器核心数量限制,所述作业进程资源参数包括作业进程数量以及每个作业进程所占用的处理器核心数量;
所述对所述大数据代码中预设的作业进程资源参数进行检测,以确定所述大数据代码对应的总进程所占用的资源是否超过所述资源限制,并生成所述大数据代码对应的资源检测结果,包括:
根据所述作业进程数量以及每个所述作业进程所占用的处理器核心数量,确定所述大数据代码对应的总进程所占用的处理器核心数量;
基于所述大数据代码对应的总进程所占用的处理器核心数量和所述处理器核心数量限制的大小关系,生成所述大数据代码的资源检测结果。
根据本发明一些实施例提供的大数据代码的自动检测方法,在所述接收用户上传的大数据代码之后,所述方法还包括:
对所述大数据代码进行关键字检测,以确定所述大数据代码中是否存在预设的目标关键字;
若确定所述大数据代码中存在预设的目标关键字,将所述目标关键字以及所述大数据代码中包含所述目标关键字的代码语句发送给所述用户。
根据本发明一些实施例提供的大数据代码的自动检测方法,在所述接收用户上传的大数据代码之后,所述方法还包括:
对所述大数据代码进行语法检测,以确定所述大数据代码是否存在语法错误;
若确定所述大数据代码存在语法错误,将所述大数据代码中存在语法错误的代码语句发送给所述用户。
为实现上述目的,本申请实施例的第二方面提出了一种大数据代码的自动检测装置,所述装置包括:
接收模块,所述接收模块用于接收用户上传的大数据代码;
第一获取模块,所述第一获取模块用于获取预设的检测规则信息,所述检测规则信息包括所述大数据代码对应的总进程所占用的资源限制;
第二获取模块,所述第二获取模块用于获取所述大数据代码中预设的作业进程资源参数;
检测模块,所述检测模块用于对所述大数据代码中预设的作业进程资源参数进行检测,以确定所述大数据代码对应的总进程所占用的资源是否超过所述资源限制,并生成所述大数据代码对应的资源检测结果;
结果发送模块,所述发送模块用于将所述大数据代码对应的资源检测结果发送给所述用户。
为实现上述目的,本申请实施例的第三方面提出了一种电子设备,所述电子设备包括存储器、处理器、存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述第一方面所述的方法。
为实现上述目的,本申请实施例的第四方面提出了一种存储介质,所述存储介质为计算机可读存储介质,用于计算机可读存储,所述存储介质存储有一个或者多个计算机程序,所述一个或者多个计算机程序可被一个或者多个处理器执行,以实现上述第一方面所述的方法。
本申请提出一种大数据代码的自动检测方法、装置、电子设备以及计算机可读存储介质,大数据代码的自动检测方法接收用户上传的大数据代码并获取预设的检测规则信息,检测规则信息包括所述大数据代码对应的总进程所占用的资源限制,之后获取大数据代码中预设的作业进程资源参数,并对大数据代码中预设的作业进程资源参数进行检测,以确定大数据代码对应的总进程所占用的资源是否超过资源限制,并生成大数据代码对应的资源检测结果,最后将大数据代码对应的资源检测结果发送给所述用户。本申请实施例通过获取预设的检测规则信息,实现对用户上传的大数据代码的自动检测,能够检测大数据代码中的缺陷并且减少人力和资源成本。
附图说明
图1是本申请实施例提供的一种大数据代码的自动检测方法的流程示意图;
图2是本申请另一实施例提供的一种大数据代码的自动检测方法的流程示意图;
图3是图2中步骤S210的子步骤流程图;
图4是图1中步骤S140的子步骤流程图;
图5是图1中步骤S140的子步骤流程图;
图6是本申请另一实施例提供的一种大数据代码的自动检测方法的流程示意图;
图7是本申请另一实施例提供的一种大数据代码的自动检测方法的流程示意图;
图8是本申请实施例提供的一种大数据代码的自动检测装置的结构示意图;
图9是本申请实施例提供的一种电子设备的硬件结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
需要说明的是,除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
随着企业脱Oracle战略的进一步推进,部分企业逐步将其业务模块迁移至大数据系统。由于在大数据环境中进行代码测试的难度较高且工作量较大,对相关大数据代码提出了更加严格的要求。此外,不同部门不同项目对大数据代码有着不同要求,若移交大数据代码之前依据不同的检测要求逐一进行人工检测,仍需要耗费较多人力和资源成本。
基于此,本申请实施例提供了一种大数据代码的自动检测方法、装置、电子设备及计算机可读存储介质,能够基于检测规则自动扫描检测大数据代码。
本申请实施例提供的一种大数据代码的自动检测方法、装置、电子设备及计算机可读存储介质,具体通过如下实施例进行说明,首先描述本申请实施例中的大数据代码的自动检测方法。
本申请实施例可以基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。
人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
本申请实施例提供的大数据代码的自动检测方法可应用于终端中,也可应用于服务器端中,还可以是运行于终端或服务器端中的软件。在一些实施例中,终端可以是智能手机、平板电脑、笔记本电脑、台式计算机等;服务器端可以配置成独立的物理服务器,也可以配置成多个物理服务器构成的服务器集群或者分布式系统,还可以配置成提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN以及大数据和人工智能平台等基础云计算服务的云服务器;软件可以是实现大数据代码的自动检测方法的应用等,但并不局限于以上形式。
本申请可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
请参见图1,图1示出了本申请实施例提供的一种大数据代码的自动检测方法的流程示意图。如图1所示,该大数据代码的自动检测方法包括但不限于步骤S110至S150:
步骤S110,接收用户上传的大数据代码;
步骤S120,获取预设的检测规则信息,所述检测规则信息包括所述大数据代码对应的总进程所占用的资源限制;
步骤S130,获取所述大数据代码中预设的作业进程资源参数;
步骤S140,对所述大数据代码中预设的作业进程资源参数进行检测,以确定所述大数据代码对应的总进程所占用的资源是否超过所述资源限制,并生成所述大数据代码对应的资源检测结果;
步骤S150,将所述大数据代码对应的资源检测结果发送给所述用户。
可以理解的是,在正式的大数据代码移交之前,获取用户上传的大数据代码并获取预先配置好的检测规则信息,根据检测规则信息对该大数据代码进行检测,以确定该大数据代码是否符合对应的规则要求。
进一步的,检测规则信息包括该大数据代码对应的总进程所占用的资源限制,获取该大数据代码中预设的作业进程资源参数,之后对该大数据代码中预设的作业进程资源参数进行检测,以确定该大数据代码对应的总进程所占用的资源是否超过该资源限制,并生成大数据代码对应的资源检测结果,最后将大数据代码对应的资源检测结果发送给用户。
在一个具体实施例中,资源检测结果包括检测规则信息中的资源限制、大数据代码中预设的作业进程资源参数,该大数据代码对应的总进程所占用的资源及其是否超过资源限制等信息。将包含有上述信息的资源检测结果发送给用户,以告知用户在上传的大数据代码中涉及资源限制的作业进程资源参数以及该资源参数设置是否超过该资源限制,实现大数据代码的资源预警。
可以理解的是,在执行对大数据代码的自动检测之前,可以先获取用户配置的检测规则信息,实现规则的可配置性。
应能理解的是,针对不同部门或不同项目对应不同检测规则的情况,可以提供给用户多种不同检测规则的选择,从而根据用户选择的检测规则信息对大数据代码进行扫描检测。
在另一个具体实施例中,将所述大数据代码对应的资源检测结果发送给所述用户,包括:
获取该用户的邮件地址;
通过该邮件地址将大数据代码对应的资源检测结果发送给该用户。
在一些实施例中,所述资源限制包括内存容量限制,所述作业进程资源参数包括作业进程数量以及每个作业进程所占用的内容容量;
参见图4,图4是图1中步骤S130的子步骤流程图,如图4所示,所述对所述大数据代码中预设的作业进程资源参数进行检测,以确定所述大数据代码对应的总进程所占用的资源是否超过所述资源限制,并生成所述大数据代码对应的资源检测结果,包括:
步骤S410,根据所述作业进程数量以及每个所述作业进程所占用的内存容量,确定所述大数据代码对应的总进程所占用的内存容量;
步骤S420,基于所述大数据代码对应的总进程所占用的内存容量和所述内存容量限制的大小关系,生成所述大数据代码对应的资源检测结果。
示例性的,大数据代码中预设有作业进程资源参数如下:
num-executors:表征执行Spark任务的Executor进程数量;
executor-memory:表征每个Executor进程占用的内存容量;
其中,每个Spark任务的性能很大程度上取决于Executor进程的内容容量大小,而根据Executor进程数量以及每个Executor进程所占用的内容容量可以确定该大数据代码对应的总Executor进程所占用的内容容量。
需要说明的是,该内容容量限制可以有部门资源队列中的最大内容容量决定。
在一些实施例中,所述资源限制包括处理器核心数量限制,所述作业进程资源参数包括作业进程以及每个作业进程所占用的处理器核心数量;
参见图5,图5是图1中步骤S130的子步骤流程图,如图5所示,所述对所述大数据代码中预设的作业进程资源参数进行检测,以确定所述大数据代码对应的总进程所占用的资源是否超过所述资源限制,并生成所述大数据代码对应的资源检测结果,包括:
步骤S510,根据所述作业进程数量以及每个所述作业进程所占用的处理器核心数量,确定所述大数据代码对应的总进程所占用的处理器核心数量;
步骤S520,基于所述大数据代码对应的总进程所占用的处理器核心数量和所述处理器核心数量限制的大小关系,生成所述大数据代码的资源检测结果。
示例性的,大数据代码中预设有作业进程资源参数如下:
num-executors:表征执行Spark任务的Executor进程数量;
executor-cores:表征每个Executor进程占用的处理器核心数量;
其中,处理器核心数量决定了每个Executor并行执行task线程的能力,而根据Executor进程数量以及每个Executor进程数量所占用的处理器核心数量可以确定该大数据代码对应的总Executor进程所占用的处理器核心数量。
需要说明的是,该处理器核心数量限制可以由部门资源队列中的最大处理器核心数量决定。
可以理解的是,若与他人共享该部门资源队列,则可以通过设置占用比例,确定该处理器核心数量为部门资源队列中的最大处理器核心数量限制的一定比例。
在一些实施例中,所述检测规则信息还包括数据倾斜判定规则,参见图2,图2是本申请另一实施例提供的一种大数据代码的自动检测方法的流程示意图,如图2所示,在获取预设的检测规则信息之后,大数据代码的自动检测方法还包括:
步骤S210,基于所述数据倾斜判定规则对所述大数据代码是否存在数据倾斜进行检测,生成所述大数据代码对应的数据倾斜检测结果;
所述将大数据代码对应的资源检测结果发送给所述用户,包括:
将所述大数据代码对应的资源检测结果以及数据倾斜检测结果发送给所述用户。
应能理解的是,预设的检测规则信息还包括有数据倾斜判定规则,而数据倾斜判定规则用于指示对大数据代码的数据倾斜判定操作。其中,数据倾斜指的是在并行计算模式下(例如在Hadoop的map-reduce框架下,数据被切分为N个片段,分发到不同的计算节点上单独计算),单个计算节点获取以及处理的数据流远远大于其他节点,造成节点计算压力过大,导致计算效率下降或者计算内存溢出。
在一些实施例中,参见图3,图3是图2中步骤S210的子步骤流程图,如图3所示,所述基于所述数据倾斜判定规则对所述大数据代码是否存在数据倾斜进行检测,生成所述大数据代码对应的数据倾斜检测结果,包括但不限于步骤S310至S330:
步骤S310,通过资源管理平台获取所述大数据代码对应的任务执行信息,所述任务执行信息包括每个节点任务的执行状态以及处理数据量;
步骤S320,根据每个节点任务的处理数据量确定平均处理数据量;
步骤S330,基于每个所述节点任务的执行状态以及每个所述节点任务的处理数据量与所述平均处理数据量的大小关系,生成所述大数据代码对应的数据倾斜检测结果。
示例性的,在该大数据代码的执行过程中,通过Apache Hadoop YARN(YetAnother Resource Negotiator,另一种资源协调者)的Hadoop资源管理器获取该大数据代码对应的reduce任务执行信息,包括每个reduce子任务的执行状态以及处理数据量。
进一步的,根据每个节点任务的处理数据量确定节点对应的平均处理数据量,基于每个节点任务的执行状态以及每个节点任务的处理数据量与平均处理数据量的大小关系,生成大数据代码对应的数据倾斜检测结果。具体的,若发现存在少量reduce子任务未完成,之后获取该未完成的reduce子任务对应的处理数据量并将其与平均处理数据量进行比较,若该未完成的reduce子任务对应的处理数据量远大于平均处理数据量时,则可以确定该大数据代码的写法引起数据倾斜。
在一个具体实施例中,数据倾斜检测结果包括大数据代码对应的节点任务、每个节点任务的处理数据量以及是否引起数据倾斜。将包含有上述信息的数据倾斜检测结果发送给用户,以告知用户该大数据代码的写法是否会引起数据倾斜,实现大数据代码的数据倾斜判定。
在一些实施例中,参见图6,图6是本申请实施例提供的一种大数据代码的自动检测方法的流程示意图,如图6所示,在所述接收用户上传的大数据代码之后,所述方法还包括:
步骤S610,对所述大数据代码进行关键字检测,以确定所述大数据代码中是否存在预设的目标关键字;
步骤S620,若确定所述大数据代码中存在预设的目标关键字,将所述目标关键字以及所述大数据代码中包含所述目标关键字的代码语句发送给所述用户。
示例性的,为了防止出现误删的情况发生,可以先预设有如“drop”、“truncate”或“delete”等涉及删除操作的目标关键字,通过对大数据代码进行关键字检测,确实该大数据代码中是否存在该目标关键字,从而在确定该大数据代码存在该目标关键字的情况下,将目标关键字以及该大数据代码中包含该目标关键字的代码语句发送给用户,实现误删数据告警,也就是说,通过提醒用户该大数据代码中存在删除数据的代码语句,让用户进一步检查该代码语句是否存在问题。具体的,可以将该大数据代码存储至预设的数据库,并通过该数据库的查询语句进行关键字查询。
可以理解的是,在对该大数据代码进行关键字检测之前,可以先获取用户配置的目标关键字,实现关键字检测的可配置性。
在一些实施例中,参见图7,图7是本申请实施例提供的一种大数据代码的自动检测方法的流程示意图,如图7所示,在所述接收用户上传的大数据代码之后,所述方法还包括:
步骤S710,对所述大数据代码进行语法检测,以确定所述大数据代码是否存在语法错误;
步骤S720,若确定所述大数据代码存在语法错误,将所述大数据代码中存在语法错误的代码语句发送给所述用户。
在一个具体实施例中,所述接收用户上传的大数据代码包括:
接收用户上传的大数据代码以及目标语法种类;
所述对所述大数据代码进行语法检测,以确定所述大数据代码是否存在语法错误,包括:
根据目标语法种类获取对应的语法检测规则,基于所述语法检测规则对所述大数据代码进行语法检测,以确定所述大数据代码是否存在语法错误。
可以理解的是,该目标语法种类可以是Spark或Scala。Spark以及Scala有各自的语法规则,用户在上传大数据代码的同时,指定该大数据代码的语言种类(Spark或Scala),之后基于该目标语法种类确定对应的语法检测规则。
具体的,获取基于Spark或Scala脚本的语法规则编程的Python代码,通过该Python代码多并发多线程的检索该大数据代码,若确定该大数据代码存在语法错误,则将该大数据代码中存在语法错误的代码语句发送给用户,实现语法错误告警。
需要说明的是,在对大数据代码进行检测时,可以记录本次检测的具体信息,例如将调接口时间、内容、入参以及出差等信息一一记录。一方面,能够支持用户查看该大数据代码相关检测信息,另一方面,在本次检测过程中,可以获取同个用户的同段大数据代码在上一次的检测信息,通过比较两次检测信息,可以确定该大数据代码在上一次检测中存在的代码缺陷是否修改解决,也可以告警用户存在的不确定性风险,例如该大数据代码在上一次扫描中检测为4段代码结构,而这次扫描中检测为5段代码结构,那么就可以告警用户是否误删了一段代码。
下面通过一个具体实施例描述本申请实施例提供的大数据代码的自动检测方法:
该方法应用于代码自助扫描平台,用户将待移交的大数据代码以及该大数据代码的语言种类上传至该扫描平台,扫描平台首先对大数据代码中的涉及删除操作的目标关键字进行扫描检测,防止误删数据的情况发生。继而根据该大数据代码的语言种类确定对应的语法规则,基于该语法规则对该大数据代码进行扫描检测,识别并通知用户该大数据代码中出现语法错误的代码语句,防止移交到测试环境中报错。接下来扫描平台获取预先配置好的检测规则信息,基于该检测规则信息对大数据代码进行检测,实现该大数据代码中的内存资源限制、处理器核心资源限制的告警以及数据倾斜的判定等检测操作。同时,记录本次扫描的检测结果,在下次扫描时对照两次扫描的检测结果,能够提示用户该大数据代码存在的不确定性风险。
通过该代码自助扫描平台对待移交的大数据代码进行扫描检测,能够在正式的代码移交阶段之前,提前发现大数据代码存在的缺陷,从而提高移交代码的质量以及测试的工作效率。
本申请提出一种大数据代码的自动检测方法,大数据代码的自动检测方法接收用户上传的大数据代码并获取预设的检测规则信息,检测规则信息用于指示对所述大数据代码所进行的检测操作,检测规则信息包括所述大数据代码对应的总进程所占用的资源限制,之后获取大数据代码中预设的作业进程资源参数,并对大数据代码中预设的作业进程资源参数进行检测,以确定大数据代码对应的总进程所占用的资源是否超过资源限制,并生成大数据代码对应的资源检测结果,最后将大数据代码对应的资源检测结果发送给所述用户。本申请实施例通过获取预设的检测规则信息,实现对用户上传的大数据代码的自动检测,能够检测大数据代码中的缺陷并且减少人力和资源成本。
请参见图8,本申请实施例还提供了一种大数据代码的自动检测装置100,所述大数据代码的自动检测装置100包括:
接收模块110,所述接收模块用于接收用户上传的大数据代码;
第一获取模块120,所述第一获取模块用于获取预设的检测规则信息,所述检测规则信息包括所述大数据代码对应的总进程所占用的资源限制;
第二获取模块130,所述第二获取模块用于获取所述大数据代码中预设的作业进程资源参数;
检测模块140,所述检测模块用于对所述大数据代码中预设的作业进程资源参数进行检测,以确定所述大数据代码对应的总进程所占用的资源是否超过所述资源限制,并生成所述大数据代码对应的资源检测结果;
结果发送模块150,所述发送模块用于将所述大数据代码对应的资源检测结果发送给所述用户。
在一些实施例中,所述检测规则信息还包括数据倾斜判定规则,所述检测模块140还用于基于所述数据倾斜判定规则对所述大数据代码是否存在数据倾斜进行检测,生成所述大数据代码对应的数据倾斜检测结果。
在一些实施例中,所述检测模块140还包括:
第一检测子模块141,所述第一检测子模块用于通过资源管理平台获取所述大数据代码对应的任务执行信息,所述任务执行信息包括每个节点任务的执行状态以及处理数据量;
第二检测子模块142,所述第二检测子模块用于根据每个节点任务的处理数据量确定平均处理数据量;
第三检测子模块143,所述第三检测子模块用于基于每个所述节点任务的执行状态以及每个所述节点任务的处理数据量与所述平均处理数据量的大小关系,生成所述大数据代码对应的数据倾斜检测结果。
在一些实施例中,所述大数据代码的自动检测装置100还包括:
关键字检测模块160,所述关键字检测模块用于对所述大数据代码进行关键字检测,以确定所述大数据代码中是否存在预设的目标关键字;
第一发送模块170,所述第一发送模块用于若确定所述大数据代码中存在预设的目标关键字,将所述目标关键字以及所述大数据代码中包含所述目标关键字的代码语句发送给所述用户。
在一些实施例中,所述大数据代码的自动检测装置100还包括:
语法检测模块180,所述语法检测模块用于对所述大数据代码进行语法检测,以确定所述大数据代码是否存在语法错误;
第二发送模块190,所述第二发送模块用于若确定所述大数据代码存在语法错误,将所述大数据代码中存在语法错误的代码语句发送给所述用户。
本申请提出一种大数据代码的自动检测装置,该大数据代码的自动检测装置通过接收模块接收用户上传的大数据代码并通过第一获取模块获取预设的检测规则信息,检测规则信息用于指示对所述大数据代码所进行的检测操作,检测规则信息包括所述大数据代码对应的总进程所占用的资源限制,之后通过第二模块获取大数据代码中预设的作业进程资源参数,并通过检测模块对大数据代码中预设的作业进程资源参数进行检测,以确定大数据代码对应的总进程所占用的资源是否超过资源限制,并生成大数据代码对应的资源检测结果,最后通过结果发送模块将大数据代码对应的资源检测结果发送给所述用户。本申请实施例通过获取预设的检测规则信息,实现对用户上传的大数据代码的自动检测,能够检测大数据代码中的缺陷并且减少人力和资源成本。
需要说明的是,上述装置的模块之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
请参见图9,图9示出本申请实施例提供的一种电子设备的硬件结构,电子设备包括:
处理器210,可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集合成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集合成电路等方式实现,用于执行相关计算机程序,以实现本申请实施例所提供的技术方案;
存储器220,可以采用只读存储器(Read Only Memory,ROM)、静态存储设备、动态存储设备或者随机存取存储器(Random Access Memory,RAM)等形式实现。存储器220可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器220中,并由处理器210来调用执行本申请实施例的大数据代码的自动检测方法;
输入/输出接口230,用于实现信息输入及输出;
通信接口240,用于实现本设备与其他设备的通信交互,可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信;和总线250,在设备的每个组件(例如处理器210、存储器220、输入/输出接口230和通信接口240)之间传输信息;
其中处理器210、存储器220、输入/输出接口230和通信接口240通过总线250实现彼此之间在设备内部的通信连接。
本申请实施例还提供了一种存储介质,存储介质为计算机可读存储介质,用于计算机可读存储,存储介质存储有一个或者多个计算机程序,一个或者多个计算机程序可被一个或者多个处理器执行,以实现上述大数据代码的自动检测方法。
存储器作为一种计算机可读存储介质,可用于存储软件程序以及计算机可执行程序。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
本申请实施例描述的实施例是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域技术人员可知,随着技术的演变和新应用场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、设备中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本申请的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集合成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请每个实施例中的各功能单元可以集合成在一个处理单元中,也可以是每个单元单独物理存在,也可以两个或两个以上单元集合成在一个单元中。上述集合成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集合成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括多指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请每个实施例的方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序的介质。
以上参照附图说明了本申请实施例的优选实施例,并非因此局限本申请实施例的权利范围。本领域技术人员不脱离本申请实施例的范围和实质内所作的任何修改、等同替换和改进,均应在本申请实施例的权利范围之内。
Claims (10)
1.一种大数据代码的自动检测方法,其特征在于,所述方法包括:
接收用户上传的大数据代码;
获取预设的检测规则信息,所述检测规则信息包括所述大数据代码对应的总进程所占用的资源限制;
获取所述大数据代码中预设的作业进程资源参数;
对所述大数据代码中预设的作业进程资源参数进行检测,以确定所述大数据代码对应的总进程所占用的资源是否超过所述资源限制,并生成所述大数据代码对应的资源检测结果;
将所述大数据代码对应的资源检测结果发送给所述用户。
2.根据权利要求1所述的大数据代码的自动检测方法,其特征在于,所述检测规则信息还包括数据倾斜判定规则;
在所述获取预设的检测规则信息之后,所述方法还包括:
基于所述数据倾斜判定规则对所述大数据代码是否存在数据倾斜进行检测,生成所述大数据代码对应的数据倾斜检测结果;
所述将所述大数据代码对应的资源检测结果发送给所述用户,包括:
将所述大数据代码对应的资源检测结果以及数据倾斜检测结果发送给所述用户。
3.根据权利要求2所述的大数据代码的自动检测方法,其特征在于,所述基于所述数据倾斜判定规则对所述大数据代码是否存在数据倾斜进行检测,生成所述大数据代码对应的数据倾斜检测结果,包括:
通过资源管理平台获取所述大数据代码对应的任务执行信息,所述任务执行信息包括每个节点任务的执行状态以及处理数据量;
根据每个节点任务的处理数据量确定平均处理数据量;
基于每个所述节点任务的执行状态以及每个所述节点任务的处理数据量与所述平均处理数据量的大小关系,生成所述大数据代码对应的数据倾斜检测结果。
4.根据权利要求1所述的大数据代码的自动检测方法,其特征在于,所述资源限制包括内存容量限制,所述作业进程资源参数包括作业进程数量以及每个作业进程所占用的内容容量;
所述对所述大数据代码中预设的作业进程资源参数进行检测,以确定所述大数据代码对应的总进程所占用的资源是否超过所述资源限制,并生成所述大数据代码对应的资源检测结果,包括:
根据所述作业进程数量以及每个所述作业进程所占用的内存容量,确定所述大数据代码对应的总进程所占用的内存容量;
基于所述大数据代码对应的总进程所占用的内存容量和所述内存容量限制的大小关系,生成所述大数据代码对应的资源检测结果。
5.根据权利要求1所述的大数据代码的自动检测方法,其特征在于,所述资源限制包括处理器核心数量限制,所述作业进程资源参数包括作业进程数量以及每个作业进程所占用的处理器核心数量;
所述对所述大数据代码中预设的作业进程资源参数进行检测,以确定所述大数据代码对应的总进程所占用的资源是否超过所述资源限制,并生成所述大数据代码对应的资源检测结果,包括:
根据所述作业进程数量以及每个所述作业进程所占用的处理器核心数量,确定所述大数据代码对应的总进程所占用的处理器核心数量;
基于所述大数据代码对应的总进程所占用的处理器核心数量和所述处理器核心数量限制的大小关系,生成所述大数据代码的资源检测结果。
6.根据权利要求1所述的大数据代码的自动检测方法,其特征在于,在所述接收用户上传的大数据代码之后,所述方法还包括:
对所述大数据代码进行关键字检测,以确定所述大数据代码中是否存在预设的目标关键字;
若确定所述大数据代码中存在预设的目标关键字,将所述目标关键字以及所述大数据代码中包含所述目标关键字的代码语句发送给所述用户。
7.根据权利要求1所述的大数据代码的自动检测方法,其特征在于,在所述接收用户上传的大数据代码之后,所述方法还包括:
对所述大数据代码进行语法检测,以确定所述大数据代码是否存在语法错误;
若确定所述大数据代码存在语法错误,将所述大数据代码中存在语法错误的代码语句发送给所述用户。
8.一种大数据代码的自动检测装置,其特征在于,所述装置包括:
接收模块,所述接收模块用于接收用户上传的大数据代码;
第一获取模块,所述第一获取模块用于获取预设的检测规则信息,所述检测规则信息包括所述大数据代码对应的总进程所占用的资源限制;
第二获取模块,所述第二获取模块用于获取所述大数据代码中预设的作业进程资源参数;
检测模块,所述检测模块用于对所述大数据代码中预设的作业进程资源参数进行检测,以确定所述大数据代码对应的总进程所占用的资源是否超过所述资源限制,并生成所述大数据代码对应的资源检测结果;
结果发送模块,所述发送模块用于将所述大数据代码对应的资源检测结果发送给所述用户。
9.一种电子设备,其特征在于,包括:
至少一个处理器;以及,
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至7中任一项所述的大数据代码的自动检测方法。
10.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的大数据代码的自动检测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211150214.8A CN115454866A (zh) | 2022-09-21 | 2022-09-21 | 大数据代码的自动检测方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211150214.8A CN115454866A (zh) | 2022-09-21 | 2022-09-21 | 大数据代码的自动检测方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115454866A true CN115454866A (zh) | 2022-12-09 |
Family
ID=84305788
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211150214.8A Pending CN115454866A (zh) | 2022-09-21 | 2022-09-21 | 大数据代码的自动检测方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115454866A (zh) |
-
2022
- 2022-09-21 CN CN202211150214.8A patent/CN115454866A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109471783B (zh) | 预测任务运行参数的方法和装置 | |
CN109901881B (zh) | 应用程序的插件加载方法、装置、计算机设备及存储介质 | |
CN111510468B (zh) | 计算任务的调度方法、装置、服务器及计算系统 | |
CN109241084B (zh) | 数据的查询方法、终端设备及介质 | |
CN113157315A (zh) | 一种软件不同版本的差异信息识别方法、装置、设备及介质 | |
CN114462952A (zh) | 智能仓储管理方法、装置、设备及介质 | |
CN112861895B (zh) | 一种异常物品的检测方法和装置 | |
CN109787884A (zh) | 一种消息推送方法和装置 | |
CN111338693A (zh) | 基于模型构建的目标文件生成方法、服务器及存储介质 | |
CN107402878B (zh) | 测试方法和装置 | |
CN107025129B (zh) | 一种数据处理方法以及装置 | |
CN111125057A (zh) | 一种业务请求的处理方法、装置及计算机系统 | |
CN109472540B (zh) | 业务处理方法和装置 | |
CN113127735A (zh) | 车货匹配方法、装置、计算机设备和介质 | |
CN107784043B (zh) | 数据仓库数据表的监控方法、装置及系统 | |
CN115454866A (zh) | 大数据代码的自动检测方法、装置、设备及介质 | |
CN104424300A (zh) | 个性化搜索提示方法及装置 | |
CN116303320A (zh) | 基于日志文件的实时任务管理方法、装置、设备及介质 | |
CN113435489B (zh) | 部署系统的方法、装置、计算机可读存储介质及处理器 | |
CN113672497B (zh) | 无埋点事件的生成方法、装置、设备及存储介质 | |
CN113138974B (zh) | 数据库合规检测的方法和装置 | |
CN112612597A (zh) | 一种生成线性任务队列方法及装置 | |
CN113672281A (zh) | 代码差异查询方法、装置、设备及存储介质 | |
CN111966605A (zh) | 一种Redfish的资源自动检索方法、系统及存储介质 | |
CN112184027A (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 |