【技术实现步骤摘要】
一种基于YAML文件的规则解析方法及系统
本专利技术涉及规则解析
,具体涉及一种基于YAML文件的规则解析方法及系统。
技术介绍
在出现需要根据配置值来判断选择接下来的执行流程时,现有的技术是不同的场景下使用不同的方法来实现,即硬编码。当前有些系统也有使用规则解析的方法,但多数使用groovy、JavaScript等脚本语言实现。在数据采集系统中需要根据配置的不同数据源,根据不同的需求采集处理数据并写入配置好的目标数据源。如果没有可编辑规则的设计,系统难以维持,只能应用在某个固定特殊的场景下,当有新的需要时,难以变更与扩展。现有技术中存在一定的不足,比如在对应不同的需求时系统修改复杂,可能需要多次部署程序;当需要扩展需求进行定制化开发时,要不实现不了,要不实现难道大,程序改造复杂;脚本语言学习成本高,需要一定的编程基础才能编写阅读,因此,提出一种基于YAML文件的规则解析方法及系统。
技术实现思路
本专利技术所要解决的技术问题在于:如何解决现有技术中系统修改复杂、定制化开发实施困难以及脚本语言学习成本高等问题,提供了一种基于YAML文件的规则解析方法。本专利技术是通过以下技术方案解决上述技术问题的,本专利技术包括以下步骤:S1:配置数据源对数据源进行配置,数据源包括数据来源项(input项)与数据目标源项(output项);S2:配置数据采集作业对数据采集作业进行配置,即配置数据的流程走向;S3:配置YAML文件规则r>配置YAML文件的规则并保存,配置的内容包括配置处理逻辑项(filters项)的规则内容与根据步骤S2的作业配置中的信息完善整个规则信息;S4:解析规则采集数据保存配置后,根据已经完善的规则解析获取采集流程信息,匹配相应流程执行数据采集。更进一步的,在所述步骤S1中,数据来源项与数据目标源项均支持多种数据类型,多种数据类型包括JDBC、Hbase、ftp、hdfs、kafka。更进一步的,在所述步骤S1中,数据来源项用于表示数据源端的配置信息,包括数据来源库的连接登录信息与数据来源信息;数据目标源项用于表示数据目标端的连接信息。更进一步的,在所述步骤S3中,处理逻辑项用于表示在读取数据后,对数据进行的处理操作。更进一步的,所述处理操作包括移除数据、空值过滤、计算、重命名、添加字段等操作。更进一步的,在所述步骤S3中,根据步骤S2的作业配置中的信息完善整个规则信息的具体过程为:S31:获取作业配置选择的数据来源与数据目标源的数据源名称;S32:根据数据源名称获取各数据源的连接信息,例如连接用户名、密码等信息;S33:将获取到的数据来源连接信息补充到规则的input项中,数据目标源连接信息补充到规则的output项中,即完成整个规则完善过程。更进一步的,在所述步骤S3中,所述处理逻辑项包括多个关键字,多个所述关键字是已设计确定的关键字,关键字后的字符串存有目标信息,目标信息可以根据实际设计需求进行配置修改。更进一步的,在所述步骤S4中,使用YAML的解析引擎解析已经完善的规则。其中,使用的是YAML文件常规解析引擎,属于开源技术。是根据开源的YAML解析技术解析YAML文件,可以将YAML文件解析成类对象,例如MAP,或者程序中设计的规则类,在本专利技术中解析为程序中设计的类。该类包括map类型的input和output,list类型的filters。解析成类后,可以获取类的属性,例如input,output,filters。根据类属性,可以获取具体的input、output、filters信息。该获取过程即常规的map、list获取。更进一步的,匹配相应流程执行数据采集的过程如下:S41:根据获取到的采集流程名称,例如FTP,从程序缓存中(程序启动时会将程序中支持的流程信息存入缓存,信息包括流程名称及对应的类名)获取匹配的流程类名称,获取到的FTP流程类名为com.ustcinfo.ishare.bdp.transfer.api.plugins.input.FTP;S42:根据类名称创建对应的类实体并执行类。本专利技术还提供了一种基于YAML文件的规则解析系统,包括:第一配置模块,用于对数据源项进行配置,数据源项包括数据来源项与数据目标源项;第二配置模块,用于对数据采集作业进行配置,即配置数据的流程走向;第三配置模块,用于配置YAML文件的规则并保存,配置的内容包括配置处理逻辑项的规则内容与根据步骤S2的作业配置中的信息完善整个规则信息;规则解析模块,用于在保存配置后根据已经完善的规则解析获取采集流程信息,匹配相应流程执行数据采集;中央处理模块,用于向其他模块发出指令,完成相关动作;所述第一配置模块、第二配置模块、第三配置模块、规则解析模块均与中央处理模块电连接。本专利技术相比现有技术具有以下优点:该基于YAML文件的规则解析方法,根据YAML文件的规则配置,程序部署只需一次,用户只需要进行配置的修改即可实现满足不同的数据采集需求,无需多次部署多次修改;可以在程序中增加新的处理逻辑,无需修改其他的程序,用户也只需在配置时配置新增的逻辑关键字及相应信息即可实现定制化需求,使得程序灵活度大大提高;YAML语言学习快,相比较于脚本语言来说,具有容易编写、方便配置与便于阅读的特点,值得被推广使用。附图说明图1是本专利技术实施例一中规则解析方法的流程示意图;图2是本专利技术实施例三中配置数据源的界面示意图;图3是本专利技术实施例三中配置数据采集作业的界面示意图;图4是本专利技术实施例三中配置YAML文件规则的界面示意图。具体实施方式下面对本专利技术的实施例作详细说明,本实施例在以本专利技术技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本专利技术的保护范围不限于下述的实施例。实施例一如图1~4所示,本实施例提供一种技术方案:一种基于YAML文件的规则解析方法,包括以下步骤:S1:配置数据源对数据源进行配置,数据源包括数据来源项(input项)与数据目标源项(output项);S2:配置数据采集作业对数据采集作业进行配置,即配置数据的流程走向;S3:配置YAML文件规则配置YAML文件的规则并保存,配置的内容包括配置处理逻辑项(filters项)的规则内容与根据步骤S2的作业配置中的信息完善整个规则信息;S4:解析规则采集数据保存配置后,根据已经完善的规则解析获取采集流程信息,匹配相应流程执行数据采集。在所述步骤S1中,数据来源项与数据目标源项均支持多种数据类型,多种数据类型包括JDBC、Hbase、ftp、hdfs、kafka。在所述步骤S1中,数据来源项用于表示数据源端的配置信息,包括数据来源库的连接登录信息与数据来源本文档来自技高网...
【技术保护点】
1.一种基于YAML文件的规则解析方法,其特征在于,包括以下步骤:/nS1:配置数据源/n对数据源进行配置,数据源包括数据来源项与数据目标源项;/nS2:配置数据采集作业/n对数据采集作业进行配置,即配置数据的流程走向;/nS3:配置YAML文件规则/n配置YAML文件的规则并保存,配置的内容包括配置处理逻辑项的规则内容与根据步骤S2的作业配置中的信息完善整个规则信息;/nS4:解析规则采集数据/n保存配置后,根据已经完善的规则解析获取采集流程信息,匹配相应流程执行数据采集。/n
【技术特征摘要】
1.一种基于YAML文件的规则解析方法,其特征在于,包括以下步骤:
S1:配置数据源
对数据源进行配置,数据源包括数据来源项与数据目标源项;
S2:配置数据采集作业
对数据采集作业进行配置,即配置数据的流程走向;
S3:配置YAML文件规则
配置YAML文件的规则并保存,配置的内容包括配置处理逻辑项的规则内容与根据步骤S2的作业配置中的信息完善整个规则信息;
S4:解析规则采集数据
保存配置后,根据已经完善的规则解析获取采集流程信息,匹配相应流程执行数据采集。
2.根据权利要求1所述的一种基于YAML文件的规则解析方法,其特征在于:在所述步骤S1中,数据来源项与数据目标源项均支持多种数据类型,多种数据类型包括JDBC、Hbase、ftp、hdfs、kafka。
3.根据权利要求1所述的一种基于YAML文件的规则解析方法,其特征在于:在所述步骤S1中,数据来源项用于表示数据源端的配置信息,包括数据来源库的连接登录信息与数据来源信息;数据目标源项用于表示数据目标端的连接信息。
4.根据权利要求1所述的一种基于YAML文件的规则解析方法,其特征在于:在所述步骤S3中,处理逻辑项用于表示在读取数据后,对数据进行的处理操作。
5.根据权利要求4所述的一种基于YAML文件的规则解析方法,其特征在于:所述处理操作包括移除数据、空值过滤、计算、重命名、添加字段。
6.根据权利要求1所述的一种基于YAML文件的规则解析方法,其特征在于:在所述步骤S3中,所述处理逻辑项包括多个关键字,多个所述关键字是已设计确定的关键字,关键字后的字符串存有目标信息,目标信息可以根据实际设计需求进行配置...
【专利技术属性】
技术研发人员:裴孝贞,倪亮,王慧,王震,冯强中,
申请(专利权)人:科大国创软件股份有限公司,
类型:发明
国别省市:安徽;34
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。