一种规范代码开发的方法、装置和设备与流程

未命名 07-14 阅读:133 评论:0


1.本发明属于软件开发技术领域,具体涉及一种规范代码开发的方法、装置和设备。


背景技术:

2.伴随着互联网技术的持续发展,对数据的处理需求越来越高,需要数据分析技术人员开发大量的sql(structured query language,结构化查询语言)代码来实现数据需求。
3.目前,数据分析技术人员在开发sql代码时,主要是通过手写来完成每一段代码的开发,由于不同的数据分析人员具有不同的编码方式和代码开发习惯,如函数的实现方式、先后代码步骤顺序及注释的多样性等,这样,就导致在代码开发过程中,使得开发成本及后期对代码的调整和维护成本变高,代码管理变得复杂。


技术实现要素:

4.为此,本发明提供一种规范代码开发的方法、装置和设备,有助于帮助解决在代码开发过程中,因技术人员编码方式及习惯不同而导致代码开发成本及后期对代码的调整和维护成本变高的问题。
5.为实现以上目的,本发明采用如下技术方案:
6.第一方面,本发明提供一种规范代码开发的方法,包括:
7.响应于目标报表创建指令,调用目标报表创建接口,创建待开发报表任务;其中,所述待开发报表任务包括至少一个任务指标;
8.响应于作业创建指令,基于所述任务指标,调用作业创建接口,创建作业,并确定对应的执行引擎;
9.响应于临时表创建指令,调用临时表创建接口,创建对应的临时表;其中,所述作业包括至少一个所述临时表;
10.根据所述任务指标,对所述临时表进行代码段开发,得到对应的已开发临时表;
11.基于预设的逻辑规则,将多个所述已开发临时表进行关联汇总,得到创建后的目标报表,并通过所述执行引擎来验证所述目标报表的正确性。
12.进一步地,所述响应于作业创建指令,基于所述任务指标,调用作业创建接口,创建作业,并确定对应的执行引擎,包括:
13.接收所述作业创建指令;
14.基于所述任务指标,确定作业类型;
15.根据所述作业类型,调用作业创建接口,得到对应的作业,并确定对应的执行引擎。
16.进一步地,所述响应于临时表创建指令,调用临时表创建接口,创建对应的临时表,包括:
17.接收所述临时表创建指令;
18.根据所述任务指标,调用临时表创建接口,在所述作业中创建所述临时表,得到对应的临时表。
19.进一步地,所述根据所述任务指标,对所述临时表进行代码段开发,得到对应的已开发临时表,包括:
20.根据所述任务指标,对所述临时表进行命名和代码段注释,并在所述临时表中写入对应的字段和逻辑方式;
21.根据所述任务指标,确定对应的数据来源表;
22.通过预设关联方式和预设关联字段,将所述临时表和至少一个所述数据来源表进行关联,得到对应的已开发临时表。
23.进一步地,所述执行引擎的类型至少包括以下一项:spark执行引擎、hive执行引擎、presto执行引擎。
24.第二方面,本发明提供一种规范代码开发的装置,包括:
25.待开发报表创建模块,用于响应于目标报表创建指令,调用目标报表创建接口,创建待开发报表任务;其中,所述待开发报表任务中包括至少一个任务指标;
26.作业创建模块,用于响应于作业创建指令,基于所述任务指标,调用作业创建接口,创建作业,并确定对应的执行引擎;
27.临时表创建模块,用于响应于临时表创建指令,调用临时表创建接口,创建对应的临时表;其中,所述作业包括至少一个所述临时表;
28.临时表开发模块,用于根据所述任务指标,对所述临时表进行代码段开发,得到对应的已开发临时表;
29.目标报表生成模块,用于基于预设的逻辑规则,将多个所述已开发临时表进行关联汇总,得到创建后的目标报表,并通过所述执行引擎来验证所述目标报表的正确性。
30.进一步地,所述作业创建模块具体用于:
31.接收所述作业创建指令;
32.基于所述任务指标,确定作业类型;
33.根据所述作业类型,调用作业创建接口,得到对应的作业,并确定对应的执行引擎。
34.进一步地,所述临时表创建模块具体用于:
35.接收所述临时表创建指令;
36.根据所述任务指标,调用临时表创建接口,在所述作业中创建所述临时表,得到对应的临时表。
37.进一步地,所述临时表开发模块具体用于:
38.根据所述任务指标,对所述临时表进行命名和代码段注释,并在所述临时表中写入对应的字段和逻辑方式;
39.根据所述任务指标,确定对应的数据来源表;
40.通过预设关联方式和预设关联字段,将所述临时表和至少一个所述数据来源表进行关联,得到对应的已开发临时表。
41.第三方面,本发明提供一种规范代码开发的设备,包括:
42.一个或者多个存储器,其上存储有可执行程序;
43.一个或者多个处理器,用于执行所述存储器中的所述可执行程序,以实现上述任一项所述方法的步骤。
44.本发明采用以上技术方案,至少具备以下有益效果:
45.本发明通过响应于目标报表创建指令,调用目标报表创建接口,创建待开发报表;其中,待开发报表包括至少一个任务指标;再响应于作业创建指令,基于任务指标,调用作业创建接口,创建作业,并确定对应的执行引擎;然后响应于临时表创建指令,调用临时表创建接口,创建对应的临时表;其中,作业包括至少一个临时表;根据任务指标,对临时表进行代码段开发,得到对应的已开发临时表;基于预设的逻辑规则,将多个已开发临时表进行关联汇总,得到创建后的目标报表,并通过执行引擎来验证目标报表的正确性。在代码开发过程中,通过创建具有多个临时表的作业,来约束并规范代码的开发,使得代码维护管理更方便,从而解决因技术人员编码方式及习惯不同而导致代码开发成本及后期对代码的调整和维护成本变高的问题。
46.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
47.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
48.图1是本发明实施例示出的一种规范代码开发的方法的流程图;
49.图2是本发明实施例示出的一种规范代码开发的装置的框图示意图;
50.图3是本发明实施例示出的一种规范代码开发的设备的框图示意图。
具体实施方式
51.为使本发明的目的、技术方案和优点更加清楚,下面将对本发明的技术方案进行详细的描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本发明所保护的范围。
52.请参阅图1,图1是本发明实施例示出的一种规范代码开发的方法的流程图,如图1所示,该方法包括如下步骤:
53.步骤s11、响应于目标报表创建指令,调用目标报表创建接口,创建待开发报表任务;其中,所述待开发报表任务包括至少一个任务指标。
54.步骤s12、响应于作业创建指令,基于所述任务指标,调用作业创建接口,创建作业,并确定对应的执行引擎。
55.步骤s13、响应于临时表创建指令,调用临时表创建接口,创建对应的临时表;其中,所述作业包括至少一个所述临时表。
56.步骤s14、根据所述任务指标,对所述临时表进行代码段开发,得到对应的已开发临时表。
57.步骤s15、基于预设的逻辑规则,将多个所述已开发临时表进行关联汇总,得到创建后的目标报表,并通过所述执行引擎来验证所述目标报表的正确性。
58.需要说明的是,在本实施例中,执行主体为终端设备、服务器等电子设备。
59.需要说明的是,对于用户的报表任务,在进行代码开发时,不同的数据分析人员具有不同的编码方式和代码开发习惯,针对此情况,提出本方案来规范不同数据分析人员的代码开发,使得代码后期的维护管理更方便。
60.具体地,基于用户的任务指标,开发人员通过点击“创建目标报表”按钮,触发创建指令,创建待开发报表任务。通过点击“创建作业”按钮,触发作业创建指令,根据待开发报表任务中的多个任务指标,创建作业,同时,选择适应此次报表开发的执行引擎,用来后期数据的跑批任务。通过点击“创建临时表”按钮,触发创建指令,开始创建开发中所需要的临时表,同时,根据任务指标,在临时表中进行代码段的开发,得到已开发临时表。根据多个任务指标可以得到一个或多个对应的已开发临时表,最终基于预设的逻辑规则,将多个已开发临时表进行逻辑关联汇总,得到所需要的目标报表。在将多个已开发临时表进行关联汇总的过程中,执行引擎一直在进行数据跑批,来验证所开发代码的正确性。
61.可以理解的是,针对一个报表进行开发的时候,这个报表涉及了多个业务的多个不同任务指标,避免代码过于复杂以及跑批资源的限制,需要创建多个临时表用来临时存放相关的数据,最后再将涉及到的临时表慢慢融合汇总,形成最终需要的报表。
62.需要说明的是,待开发报表任务中包括多个不同含义的任务指标,如在物流行业场景中的快递业务量、重量、汽运成本、载荷重量、返程带货收入等等。本实施例中,对任务指标的数量及类型不做具体限定。
63.作业是针对所有待开发报表任务进行的一个操作,包含着临时表、代码段,并且服务器中的调度系统会执行每天的跑批命令,来执行此作业。
64.临时表是用来临时存放开发过程中涉及的相关数据,每段代码可以写入一个临时表中。
65.预设的逻辑规则就是提前根据关键字等设置好的逻辑规则,用来将已开发临时表进行逻辑的关联。
66.上述目标报表创建接口、作业创建接口和调用临时表创建接口均为封装后的程序包,分别用来执行待开发报表任务创建指令、作业创建指令和临时表创建指令。通过点击相关按钮,调用接口来创建作业、临时表并对临时表进行代码段开发等来完成目标报表的开发,使得代码开发更加规范、维护更高效。
67.可以理解的是,本发明通过响应于目标报表创建指令,调用目标报表创建接口,创建待开发报表;其中,待开发报表包括至少一个任务指标;再响应于作业创建指令,基于任务指标,调用作业创建接口,创建作业,并确定对应的执行引擎;然后响应于临时表创建指令,调用临时表创建接口,创建对应的临时表;其中,作业包括至少一个临时表;根据任务指标,对临时表进行代码段开发,得到对应的已开发临时表;基于预设的逻辑规则,将多个已开发临时表进行关联汇总,得到创建后的目标报表,并通过执行引擎来验证目标报表的正确性。在代码开发过程中,通过创建具有多个临时表的作业,来约束并规范代码的开发,使得代码维护管理更方便,从而解决因技术人员编码方式及习惯不同而导致代码开发成本及后期对代码的调整和维护成本变高的问题。
68.进一步地,所述响应于作业创建指令,基于所述任务指标,调用作业创建接口,创建作业,并确定对应的执行引擎,包括:
69.接收所述作业创建指令;
70.基于所述任务指标,确定作业类型;
71.根据所述作业类型,调用作业创建接口,得到对应的作业,并确定对应的执行引擎。
72.需要说明的是,在创建作业时,先根据待开发报表任务中的多个任务指标,确定作业类型,然后调用作业创建接口,创建相应的作业。根据不同的任务指标得到作业类型,不同作业类型代表着作业中涉及的数据、场景不同,其跑批运行过程中需要的执行引擎也就不同。因此,需要根据作业类型来选择相应的执行引擎来进行跑批任务。
73.进一步地,所述响应于临时表创建指令,调用临时表创建接口,创建对应的临时表,包括:
74.接收所述临时表创建指令;
75.根据所述任务指标,调用临时表创建接口,在所述作业中创建所述临时表,得到对应的临时表。
76.需要说明的是,当开发人员点击“创建临时表”按钮时,根据任务指标,调用临时表创建接口,在上述创建的作业中,创建所需要的临时表。
77.进一步地,所述根据所述任务指标,对所述临时表进行代码段开发,得到对应的已开发临时表,包括:
78.根据所述任务指标,对所述临时表进行命名和代码段注释,并在所述临时表中写入对应的字段和逻辑方式;
79.根据所述任务指标,确定对应的数据来源表;
80.通过预设关联方式和预设关联字段,将所述临时表和至少一个所述数据来源表进行关联,得到对应的已开发临时表。
81.需要说明的是,在创建临时表后,根据任务指标,对临时表进行代码段的开发,先对创建的临时表进行命名,对临时表内的代码段进行注释,写入相应的字段和字段对应的逻辑方式;然后,引入与任务指标有关的数据来源表;最后通过预设关联方式和预设关联字段将数据来源表与临时表关联起来,得到最后已开发临时表。
82.需要说明的是,数据来源表是开发人员最后开发的目标报表所需要的上游表。创建的临时表可以存储数据来源表中的数据,然后根据预设关联字段去关联下一个或几个数据来源表得到其它的数据,还可以不与数据来源表关联,而与其它数据来源表生成的另外的临时表进行关联,可自由决定。
83.需要说明的是,本实施例中,对预设关联方式的具体内容不做具体限定,对临时表的数量也不做具体限定。
84.进一步地,所述执行引擎的类型至少包括以下一项:spark执行引擎、hive执行引擎、presto执行引擎。
85.需要说明的是,sql是最通用的数据处理语言,可以完成对数据库的增删改查等操作,结合执行引擎的跑批运行,实现对各种查询类型的高性能处理。目前,大数据分布式特点让存储和计算分离的hadoop(分布式计算和存储框架)生态拥有的计算引擎更加多样化,
本实施例中,常用到的执行引擎类型包括:spark执行引擎、hive执行引擎、presto执行引擎。每个执行引擎应用的场景不同,其中,spark执行引擎需要的内存较大;hive执行引擎适用的场景广泛,但是执行速度较慢;presto执行引擎适用的数据量较少,时效较高,比spark执行引擎的执行速度还要快。
86.需要说明的是,本实施例中对执行引擎的类型不做具体的限定。
87.请参阅图2,图2是本发明实施例示出的一种规范代码开发的装置的框图示意图,该规范代码开发的装置2包括:
88.待开发报表任务创建模块21,用于响应于目标报表创建指令,调用目标报表创建接口,创建待开发报表任务;其中,所述待开发报表任务中包括至少一个任务指标;
89.作业创建模块22,用于响应于作业创建指令,基于所述任务指标,调用作业创建接口,创建作业,并确定对应的执行引擎;
90.临时表创建模块23,用于响应于临时表创建指令,调用临时表创建接口,创建对应的临时表;其中,所述作业包括至少一个所述临时表;
91.临时表开发模块24,用于根据所述任务指标,对所述临时表进行代码段开发,得到对应的已开发临时表;
92.目标报表生成模块25,用于基于预设的逻辑规则,将多个所述已开发临时表进行关联汇总,得到创建后的目标报表,并通过所述执行引擎来验证所述目标报表的正确性。
93.进一步地,所述作业创建模块22具体用于:
94.接收所述作业创建指令;
95.基于所述任务指标,确定作业类型;
96.根据所述作业类型,调用作业创建接口,得到对应的作业,并确定对应的执行引擎。
97.进一步地,所述临时表创建模块23具体用于:
98.接收所述临时表创建指令;
99.根据所述任务指标,调用临时表创建接口,在所述作业中创建所述临时表,得到对应的临时表。
100.进一步地,所述临时表开发模块24具体用于:
101.根据所述任务指标,对所述临时表进行命名和代码段注释,并在所述临时表中写入对应的字段和逻辑方式;
102.根据所述任务指标,确定对应的数据来源表;
103.通过预设关联方式和预设关联字段,将所述临时表和至少一个所述数据来源表进行关联,得到对应的已开发临时表。
104.关于上述实施例中的一种规范代码开发的装置2,其各个模块执行操作的具体方式已经在上述相关方法的实施例中进行了详细描述,此处将不做详细阐述说明。
105.请参阅图3,图3是本发明实施例示出的一种规范代码开发的设备的框图示意图,该规范代码开发的设备3包括:
106.一个或者多个存储器31,其上存储有可执行程序;
107.一个或者多个处理器32,用于执行所述存储器31中的所述可执行程序,以实现上述任一项所述方法的步骤。
108.关于上述实施例中的一种规范代码开发的设备3,其处理器32执行存储器31中程序的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
109.可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。
110.需要说明的是,在本发明的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”、“多”的含义是指至少两个。
111.应该理解,当元件被称为“固定于”或“设置于”另一个元件,它可以直接在另一个元件上或者可能同时存在居中元件;当一个元件被称为“连接”另一个元件,它可以是直接连接到另一个元件或者可能同时存在居中元件,此外,这里使用的“连接”可以包括无线连接;使用的措辞“和/或”包括一个或更多个相关联的列出项的任一单元和全部组合。
112.流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为:表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
113.应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。
114.本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
115.此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
116.上述提到的存储介质可以是只读存储器,磁盘或光盘等。
117.在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
118.尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

技术特征:
1.一种规范代码开发的方法,其特征在于,包括:响应于目标报表创建指令,调用目标报表创建接口,创建待开发报表任务;其中,所述待开发报表任务包括至少一个任务指标;响应于作业创建指令,基于所述任务指标,调用作业创建接口,创建作业,并确定对应的执行引擎;响应于临时表创建指令,调用临时表创建接口,创建对应的临时表;其中,所述作业包括至少一个所述临时表;根据所述任务指标,对所述临时表进行代码段开发,得到对应的已开发临时表;基于预设的逻辑规则,将多个所述已开发临时表进行关联汇总,得到创建后的目标报表,并通过所述执行引擎来验证所述目标报表的正确性。2.根据权利要求1所述的方法,其特征在于,所述响应于作业创建指令,基于所述任务指标,调用作业创建接口,创建作业,并确定对应的执行引擎,包括:接收所述作业创建指令;基于所述任务指标,确定作业类型;根据所述作业类型,调用作业创建接口,得到对应的作业,并确定对应的执行引擎。3.根据权利要求1所述的方法,其特征在于,所述响应于临时表创建指令,调用临时表创建接口,创建对应的临时表,包括:接收所述临时表创建指令;根据所述任务指标,调用临时表创建接口,在所述作业中创建所述临时表,得到对应的临时表。4.根据权利要求1所述的方法,其特征在于,所述根据所述任务指标,对所述临时表进行代码段开发,得到对应的已开发临时表,包括:根据所述任务指标,对所述临时表进行命名和代码段注释,并在所述临时表中写入对应的字段和逻辑方式;根据所述任务指标,确定对应的数据来源表;通过预设关联方式和预设关联字段,将所述临时表和至少一个所述数据来源表进行关联,得到对应的已开发临时表。5.根据权利要求1所述的方法,其特征在于,所述执行引擎的类型至少包括以下一项:spark执行引擎、hive执行引擎、presto执行引擎。6.一种规范代码开发的装置,其特征在于,包括:待开发报表创建模块,用于响应于目标报表创建指令,调用目标报表创建接口,创建待开发报表任务;其中,所述待开发报表任务中包括至少一个任务指标;作业创建模块,用于响应于作业创建指令,基于所述任务指标,调用作业创建接口,创建作业,并确定对应的执行引擎;临时表创建模块,用于响应于临时表创建指令,调用临时表创建接口,创建对应的临时表;其中,所述作业包括至少一个所述临时表;临时表开发模块,用于根据所述任务指标,对所述临时表进行代码段开发,得到对应的已开发临时表;目标报表生成模块,用于基于预设的逻辑规则,将多个所述已开发临时表进行关联汇
总,得到创建后的目标报表,并通过所述执行引擎来验证所述目标报表的正确性。7.根据权利要求6所述的装置,其特征在于,所述作业创建模块具体用于:接收所述作业创建指令;基于所述任务指标,确定作业类型;根据所述作业类型,调用作业创建接口,得到对应的作业,并确定对应的执行引擎。8.根据权利要求6所述的装置,其特征在于,所述临时表创建模块具体用于:接收所述临时表创建指令;根据所述任务指标,调用临时表创建接口,在所述作业中创建所述临时表,得到对应的临时表。9.根据权利要求6所述的装置,其特征在于,所述临时表开发模块具体用于:根据所述任务指标,对所述临时表进行命名和代码段注释,并在所述临时表中写入对应的字段和逻辑方式;根据所述任务指标,确定对应的数据来源表;通过预设关联方式和预设关联字段,将所述临时表和至少一个所述数据来源表进行关联,得到对应的已开发临时表。10.一种规范代码开发的设备,其特征在于,包括:一个或者多个存储器,其上存储有可执行程序;一个或者多个处理器,用于执行所述存储器中的所述可执行程序,以实现权利要求1-5中任一项所述方法的步骤。

技术总结
本发明涉及一种规范代码开发的方法、装置和设备,属于软件开发技术领域。本发明通过响应于目标报表创建指令,调用目标报表创建接口,创建待开发报表;再响应于作业创建指令,基于任务指标,调用作业创建接口,创建作业,并确定对应的执行引擎;然后响应于临时表创建指令,调用临时表创建接口,创建对应的临时表;根据任务指标,对临时表进行代码段开发,得到对应的已开发临时表;基于预设的逻辑规则,将多个已开发临时表进行关联汇总,得到创建后的目标报表,并通过执行引擎来验证目标报表的正确性。本发明在代码开发过程中,通过创建具有多个临时表的作业,来约束并规范代码的开发,从而降低代码开发成本,使得代码维护管理更方便。便。便。


技术研发人员:李长辉
受保护的技术使用者:上海中通吉网络技术有限公司
技术研发日:2023.04.03
技术公布日:2023/7/13
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐