掌桥专利:专业的专利平台
掌桥专利
首页

逻辑脚本的处理方法、装置、电子设备及存储介质

文献发布时间:2023-06-19 10:27:30


逻辑脚本的处理方法、装置、电子设备及存储介质

技术领域

本申请涉及大数据标签处理技术领域,具体而言,涉及一种逻辑脚本的处理方法、装置、电子设备及存储介质。

背景技术

在常见的标签或者指标的离线数据的ETL批量开发过程中,当调度任务发布之后,由于临时需求再单独的计算某些标签或者某些时间段的数据,就需要更改工作流脚本内容,重新发布调度,操作流程比较繁琐。

目前许多开源的数据处理平台构建ETL的数据开发流程都是根据现有的数据控件,拖拽控件,使用有向箭头相连,编辑控件中的脚本的内容,构建一个类似于有向无环图的流程Job。进而通过调度程序去进行数据的流程计算处理。市面上常见的工具有DSS、Kettle、Azkaban等等。

通常将标签逻辑使用HQL处理好之后,将开发好的Job通过调度程序进行调度,根据一定的时间规则(如每天/每周/每月/每年)去定时的跑批计算。对于回溯历史分区数据以及标签更新的种类等操作,很难便捷的去进行管控,只能多次修改定时调度的脚本,以清除式的插入数据的方式然后进行数据的全量跑批。一方面不够方便灵活,另一方面也在一定程度上占用集群资源。

发明内容

有鉴于此,本申请的目的在于提供一种逻辑脚本的处理方法及装置,以传参的形式对逻辑脚本进行控制,更加的方便灵活。

第一方面,本申请实施例提供一种逻辑脚本的处理方法,包括以下步骤:

获取HQL控件中的逻辑脚本;

创建本地的参数文件,并将所述参数文件传入到HDFS的文件系统中,得到所述参数文件的存储路径;其中,所述参数文件中包括控制变量名称及控制变量值;

基于所述参数文件的存储路径和所述控制变量名称,读取所述控制变量名称对应的控制变量值,并将所述控制变量值返回给HIVE;

修改所述HQL控件中的逻辑脚本。

优选的,所述HQL控件对应于DSS平台的至少一个工作流。

优选的,在所述创建本地的参数文件,并将所述参数文件传入到HDFS的文件系统中,得到所述参数文件的存储路径的步骤之后,还包括步骤:

在所述DSS平台的至少一个工作流上设置路径参数,使每个工作流分别对应一个所述参数文件。

优选的,在所述修改所述HQL控件中的逻辑脚本的步骤之后,还包括步骤:

将修改后的逻辑脚本发布到定时调度程序中,按照预设的时间参数运行。

优选的,在所述基于所述参数文件的存储路径和所述控制变量名称,读取所述控制变量名称对应的控制变量值,并将所述控制变量值返回给HIVE的步骤中,还包括:

自定义并运行UDF函数,并通过所述UDF函数调用所述HDFS的文件系统中的相关API接口,从而读取所述HDFS的文件系统中的参数文件。

第二方面,本申请实施例提供一种逻辑脚本的处理装置,包括以下部分:

获取模块,用于获取HQL控件中的逻辑脚本;

编辑模块,用于创建本地的参数文件,并将所述参数文件传入到HDFS的文件系统中,得到所述参数文件的存储路径;其中,所述参数文件中包括控制变量名称及控制变量值;

读取模块,用于基于所述参数文件的存储路径和所述控制变量名称,读取所述控制变量名称对应的控制变量值,并将所述控制变量值返回给HIVE;

处理模块,用于修改所述HQL控件中的逻辑脚本。

优选的,所述的处理装置还包括设置模块,用于在DSS平台的至少一个工作流上设置路径参数,使每个工作流分别对应一个所述参数文件。

优选的,所述的处理装置还包括定时调度模块,用于将修改后的逻辑脚本发布到定时调度程序中,按照预设的时间参数运行。

第三方面,本申请的实施例还提供一种电子设备,包括:处理器、存储介质和总线,

所述存储介质存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述机器可读指令,以执行所述逻辑脚本的处理方法的步骤。

第四方面,本申请的实施例还提供一种计算机可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行所述逻辑脚本的处理方法的步骤。

本发明的有益效果是:

创建本地的参数文件,通过读取参数文件中参数变量值去修改逻辑脚本,并通过修改后的逻辑脚本进行调度,从而实现在不修改程序的基础上,既能处理计算现有标签的数据,也能处理部分需要修改的标签的数据,还可以回溯历史分区数据,方便灵活,能够提高开发以及维护的效率。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本申请实施例提供的逻辑脚本的处理方法的第一种流程示意图;

图2为本申请实施例提供的逻辑脚本的处理方法的第二种流程示意图;

图3为本申请实施例提供的逻辑脚本的处理方法的第三种流程示意图;

图4为本申请实施例所提供的逻辑脚本的处理装置第一种结构示意图;

图5为本申请实施例所提供的逻辑脚本的处理装置第二种结构示意图;

图6为本申请实施例提供的一种电子设备的结构示意图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的每个其他实施例,都属于本申请保护的范围。

对本申请文件中出现的技术术语及缩写解释如下:

DSS:Datasphere Studio(微众银行开源的数据处理平台);

ETL:Extract-Transform-Load,将数据从来源端经过抽取、转换、加载至目的端的过程;

Hadoop:一种分布式系统基础架构;

HIVE:基于Hadoop的一个数据仓库工具,用来进行数据提取、转化、加载;

HQL:HIVE的一种面向对象的查询语言,一种类SQL语言;

Sqoop:关系型数据库到HIVE之间的数据导入、导出工具;

Waterdrop:一个能够进行实时数据处理的产品,构建于Apache Spark之上,可以用来将数据从HIVE导出到ClickHouse;

UDF:HIVE的用户自定义函数;

HDFS:开源大数据框架Hadoop的一个组件,用来做分布式存储。

下面结合附图,对本发明的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。

本申请可应用于标签或者指标的离线数据的ETL批量开发过程中。在此过程中,当调度任务发布之后,由于临时需求再单独的计算某些标签或者某些时间段的数据(非全部的数据),需要更改工作流脚本内容,重新发布调度,操作流程就会比较繁琐。

基于此,本申请实施例提供了一种逻辑脚本的处理方法,以传参的形式对逻辑脚本进行控制,更加的方便灵活。

请参阅图1,图1为本申请实施例提供的逻辑脚本的处理方法的第一种流程示意图。所如图1中所示,本实施例提供的逻辑脚本的处理方法,包括:

S101、获取HQL控件中的逻辑脚本;

在该步骤中,HQL控件中的逻辑脚本为用于处理和计算数据标签的程序。

本实施例中,采用基于DSS开源的基础数据处理平台来进行说明。一般的流程开发过程为,在DSS平台上的至少一个工作流上拖拽对应的HQL控件,将写好的逻辑脚本写入HQL控件中,根据相应的命名规范进行开发。在HQL控件之前或者之后拖拽Qualities控件进行数据质量的校验,保证输入的目标表的数据的正确性。在数据质量检查完成之后开始使用Shell控件(Shell脚本的形式)来调用Sqoop、Waterdrop等工具导出到目标表。

本实施例的方法中,并不涉及HQL控件的开发过程,直接获取已开发的HQL控件中的逻辑脚本即可。

S102、创建本地的参数文件,并将所述参数文件传入到HDFS的文件系统中,得到所述参数文件的存储路径;其中,所述参数文件中包括控制变量名称及控制变量值;

在本步骤中,需要在服务器本地创建参数文件,例如shell控件,来控制整个项目的控制变量key=value,具体包括控制变量名称及控制变量值。之后通过Hadoop命令将本地的参数文件上传到HDFS的文件系统中,参数文件统一存放。

例如,拟控制分区表的分区字段,可以在本地的参数文件中设置一个“curdate=xxx”的控制参数,并将所述参数文件传入到HDFS的文件系统中。在HQL控件中通过获取变量“curdate”的值来在“where”条件中控制要运行的分区数据。

再例如,在一个工作流中同时运行了很多标签,每个标签的计算逻辑用一个HQL控件来单独的存放,调用计算。这种情况,在工作流的调度中,很不方便指定哪些标签的HQL控件执行,哪些不执行。这种情况下,可以在本地的参数文件中设置“tag_list=[xxx,yyy,…]”这样的控制参数,进而来判断是否要运行该HQL控件中的数据。

S103、基于所述参数文件的存储路径和所述控制变量名称,读取所述控制变量名称对应的控制变量值,并将所述控制变量值返回给HIVE;

在本步骤中,需要自定义并运行UDF函数,并通过所述UDF函数调用所述HDFS的文件系统中的相关API接口,从而读取所述HDFS的文件系统中的参数文件。通过调用自定义UDF函数中的参数路径及控制变量名称,将控制变量值经过处理后返回给HIVE。

S104、修改所述HQL控件中的逻辑脚本;

在本步骤中,基于HIVE获取的控制变量值,对HQL控件中的逻辑脚本进行相应的修改。

当用户需求更改跑批的标签或者业务时间等其他的条件,便可以通过步骤S102,将控制变量信息写入到参数文件中,通过读取参数文件中参数变量值去修改逻辑脚本,并通过修改后的逻辑脚本进行调度,从而达到对某种流程条件的控制,从而实现在不修改程序的基础上,既能处理计算现有标签的数据,也能处理部分需要修改的标签的数据,还可以回溯历史分区数据,方便灵活,能够提高开发以及维护的效率。

请参阅图2,图2为本申请实施例提供的逻辑脚本的处理方法的第二种流程示意图。所如图2中所示,本实施例提供的逻辑脚本的处理方法,包括:

S201、获取HQL控件中的逻辑脚本;其中,所述HQL控件对应于DSS平台的至少一个工作流;

S202、创建本地的参数文件,并将所述参数文件传入到HDFS的文件系统中,得到所述参数文件的存储路径;其中,所述参数文件中包括控制变量名称及控制变量值;

S203、在所述DSS平台的至少一个工作流上设置路径参数,使每个工作流分别对应一个所述参数文件;

在本步骤中,通过在各工作流上分别设置路径参数,每个工作流对应一个参数文件,在一定程度上进行控制变量的数据隔离,从而可以避免数据混淆,在一定程度上缓解读写压力。

S204、基于所述参数文件的存储路径和所述控制变量名称,读取所述控制变量名称对应的控制变量值,并将所述控制变量值返回给HIVE;

S205、修改所述HQL控件中的逻辑脚本。

其他步骤的内容与效果与前一实施例相同,在此不再赘述。

请参阅图3,图3为本申请实施例提供的逻辑脚本的处理方法的第三种流程示意图。所如图3中所示,本实施例提供的逻辑脚本的处理方法,包括:

S301、获取HQL控件中的逻辑脚本;其中,所述HQL控件对应于DSS平台的至少一个工作流;

S302、创建本地的参数文件,并将所述参数文件传入到HDFS的文件系统中,得到所述参数文件的存储路径;其中,所述参数文件中包括控制变量名称及控制变量值;

S303、在所述DSS平台的至少一个工作流上设置路径参数,使每个工作流分别对应一个所述参数文件;

S304、基于所述参数文件的存储路径和所述控制变量名称,读取所述控制变量名称对应的控制变量值,并将所述控制变量值返回给HIVE;

S305、修改所述HQL控件中的逻辑脚本;

S306、将修改后的逻辑脚本发布到定时调度程序中,按照预设的时间参数运行。

在本步骤中,预设的时间参数可以是周期性的,如按天、周、月、年等,也可以是非周期性的,根据需要由用户自行设置。

其他步骤的内容与效果与前一实施例相同,在此不再赘述。

基于同一发明构思,本申请实施例中还提供了与逻辑脚本的处理方法对应的逻辑脚本的处理装置,由于本申请实施例中的装置解决问题的原理与本申请实施例上述逻辑脚本的处理方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。

请参阅图4,图4为本申请实施例所提供的逻辑脚本的处理装置第一种结构示意图。如图4中所示,所述处理装置400包括:

获取模块410,用于获取HQL控件中的逻辑脚本;

编辑模块420,用于创建本地的参数文件,并将所述参数文件传入到HDFS的文件系统中,得到所述参数文件的存储路径;其中,所述参数文件中包括控制变量名称及控制变量值;

读取模块430,用于基于所述参数文件的存储路径和所述控制变量名称,读取所述控制变量名称对应的控制变量值,并将所述控制变量值返回给HIVE;

处理模块440,用于修改所述HQL控件中的逻辑脚本。

请参阅图5,图5为本申请实施例所提供的逻辑脚本的处理装置第二种结构示意图。

在该实施例中,该处理装置还包括设置模块450,用于在所述DSS平台的至少一个工作流上设置路径参数,使每个工作流分别对应一个所述参数文件。

另外,在该实施例中,该处理装置还包括定时调度模块460,用于将修改后的逻辑脚本发布到定时调度程序中,按照预设的时间参数运行。

请参阅图6,图6为本申请实施例所提供的一种电子设备的结构示意图。如图6中所示,所述电子设备500包括处理器510、存储器520和总线530。

所述存储器520存储有所述处理器510可执行的机器可读指令,当电子设备500运行时,所述处理器510与所述存储器520之间通过总线530通信,所述机器可读指令被所述处理器510执行时,可以执行如上述图1~图3所示方法实施例中的逻辑脚本的处理方法的步骤,具体实现方式可参见方法实施例,在此不再赘述。

本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时可以执行如上述图1~图3所示方法实施例中的逻辑脚本的处理方法的步骤,具体实现方式可参见方法实施例,在此不再赘述。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

相关技术
  • 逻辑脚本的处理方法、装置、电子设备及存储介质
  • 控制脚本处理方法、装置、电子设备与存储介质
技术分类

06120112553962