CN104267938B - 一种流式计算的应用快速开发部署的方法及装置 - Google Patents
一种流式计算的应用快速开发部署的方法及装置 Download PDFInfo
- Publication number
- CN104267938B CN104267938B CN201410471712.1A CN201410471712A CN104267938B CN 104267938 B CN104267938 B CN 104267938B CN 201410471712 A CN201410471712 A CN 201410471712A CN 104267938 B CN104267938 B CN 104267938B
- Authority
- CN
- China
- Prior art keywords
- application
- template
- application template
- streaming computing
- file
- 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.)
- Active
Links
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开一种流式计算的应用快速开发部署的方法,包括:预先设置一模板库,所述模板库包括两个以上应用模板,根据业务类型选择相应的应用模板,并配置所述应用模板;检查所述应用模板的配置信息是否正确,若是,则转入下一步骤,若否,则提示重新配置应用模板;将所述配置信息映射到所选择的应用模板的处理节点生成代码文件;将所述代码文件加入到流式计算工程中进行编译;发布工程;其中,编译的步骤包括:将代码文件的名称和命令空间添加到编译文件中;调用编译命令进行编译。本发明将业务需求快速准确的汇编成流式计算产品工程,可以降低企业对于大数据领域的开发成本。本发明还提供一种流式计算的应用快速开发部署的装置。
Description
技术领域
本发明涉及流式计算领域,特别是涉及一种流式计算的应用快速开发部署的方法及装置。
背景技术
现有数据分析运营系统一般采用单一的数据仓库提供数据处理能力,通过数据仓库提供的ETL工具运行数据抽取、加载和转换,之后再利用数据仓库的数据分析和关联处理能力应对业务需求。传统数据仓库厂商的产品基于关系模型的高性能数据查询和分析,主要处理结构化数据的高性能查询和分析;并提供成熟的报表工具和数据访问接口,目前已经在银行、电信等具有大量数据的行业广泛使用。但随着移动互联网的迅速发展,大量由互联网产生的结构化、非结构化数据需要分析和处理,但企业级数据仓库不适合非结构化数据的处理;海量数据规模下,传统数据仓库在大数据的存储和分析方面都显得能力不足;除此之外,传统数据仓库对于实时需求的处理能力不足,无法支持实时性需求。面对移动互联网和大数据时代的挑战,数据分析系统的服务对象越来越广泛、业务量、数据量越来越大,经营分析系统需要对内容、音频、文本信息、视频、图片等非结构化的海量的数据信息进行有效分析,传统的数据仓库无法处理这些新型的业务数据,hadoop和MapReduce的批处理方法在某些情况下也不适合处理这些数据,并且在及时性和处理效率方面也存在着天生的缺陷。
流式计算主要应用于对数据的即时处理,统计学习等功能中。随着互联网大数据的爆发,流式计算也采用更加高级的分布式计算方式来提高处理速度,称之为分布式流式计算系统。分布式流式计算系统中最具代表性的是IBM InfoSphere Streams、TwitterStorm,基于它写出来的应用程序能够运行在成百上千台商用机器组成的大型集群上,并以一种可靠容错的方式并行处理上T级别的数据集。应用程序将需要计算的任务分割为很多的小块,通过类似流(tuple)的方式,使其经过不同的处理节点(stream称为PE),完成实时数据分析和事件处理。但目前业界流式计算产品实现实时业务应用都会涉及新的开发方式、协议等,有的产品提供产品自带的编程语言,随着信息技术的飞速发展,实现技术也会不断的迭代。这势必增加企业的生产成本。
发明内容
本发明所要解决的技术问题是:提供一种流式计算的应用快速开发部署的方法及装置,用于解决流式计算的应用产品开发成本高的问题。
为了解决上述技术问题,本发明采用的技术方案为:
预先设置一模板库,所述模板库包括两个以上应用模板,根据业务类型选择相应的应用模板,并配置所述应用模板;检查所述应用模板的配置信息是否正确,若是,则将所述配置信息映射到所选择的应用模板的处理节点生成代码文件,若否,则提示重新配置应用模板;对所述代码文件加入到流式计算工程中进行编译;编译后发布工程;其中,所述编译的步骤包括:将代码文件的名称和命令空间添加到编译文件中;调用编译命令进行编译。
为解决上述技术问题,本发明采用的另一技术方案为:
一种流式计算的应用快速开发部署的装置,包括配置模块、检查模块、汇编模块、编译模块和发布模块;所述配置模块用于预先设置一模板库,所述模板库包括两个以上应用模板,根据业务类型选择相应的应用模板,并配置所述应用模板;所述检查模块用于检查所述应用模板的配置信息是否正确,当检查到所述配置信息出错时提示重新配置应用模板;所述汇编模块用于将所述配置信息映射到所选择的应用模板的处理节点生成代码文件;所述编译模块用于对所述代码文件加入到流式计算工程中进行编译;所述发布模块用于发布工程;其中,所述编译模块包括:加载单元和编译单元;所述加载单元用于将代码文件的名称和命令空间添加到编译文件中;所述编译单元用于调用编译命令进行编译。
本发明的有益效果在于:区别于现有技术中流式计算产品实现实时业务应用都会涉及新的开发方式、协议和自带的编程语言,产品的开发成本高,本发明通过预设应用模板,将应用模板信息的配置信息映射到所选择的应用模板的处理节点生成代码文件,并进行编译和发布,本发明利用开发语言对流式计算的自带语言和业务应用内容进行结合,将业务需求快速准确的汇编成流式计算产品,有效降低企业对流式产品的开发成本,本发明特别适用于大数据领域。
附图说明
图1为流式计算的应用快速开发、部署装置的功能框架图;
图2为本发明流式计算的应用快速开发部署的方法一实施方式的流程图;
图3为本发明流式计算的应用快速开发部署的方法中配置信息与应用模板映射过程流程图;
图4为本发明完成应用开发的步骤流程。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
请参阅图1,为流式计算的应用快速开发、部署装置的功能框架图,其包括装置访问层、装置功能层和基础平台层;
基础平台层:本装置底层流式计算产品为核心基础平台,流式计算产品是完成业务开发的最终实现载体。Perl脚本语言与java程序负责装置的功能开发,是结合用户访问层和流式计算产品语言汇编的关键。它们组成了装置的基础平台层。
装置功能层:功能层利用perl/java实现访问层的页面功能开发、并将用户通过访问层提供的应用开发部署信息进行合法性校验、流式计算代码汇编、流式计算节点编译、流式计算工程发布等功能。
装置访问层:是用户访问的入口,用户通过访问层进行应用开发部署信息的配置、发布等操作。
本发明最关键的构思在于:通过利用开发语言对流式计算的自带语言和业务应用内容进行结合,提高汇编成流式计算产品开发速度,从而降低开发成本。
请参照图2,一种流式计算的应用快速开发部署的方法,包括:
S1、预先设置一模板库,所述模板库包括两个以上应用模板,根据业务类型选择相应的应用模板,并配置所述应用模板;
S2、检查所述应用模板的配置信息是否正确,若是,则将所述配置信息映射到所选择的应用模板的处理节点生成代码文件,若否,则提示重新配置应用模板;
其中,应用模板既业务流程的主要配置信息,如在【接口加载】这样的业务类型中,需要有接口名称,接口目录,加载目标等关键配置内容;映射其实是个代码汇编的过程,通过本装置将业务流程要完成的工作汇编成流失处理的代码文件。
S3、对所述代码文件加入到流式计算工程中进行编译;
S4、编译后发布工程;
其中,所述编译的步骤包括:
将代码文件的名称和命令空间添加到编译文件中;
调用编译命令进行编译。
由上述描述可知,区别于现有技术中,一个业务场景需要开发人员学习流式处理语言,并使用流式处理语言进行代码开发,本发明通过预设应用模板,根据业务类型选择相应的应用模板进行业务信息配置,并通过应用模板将配置信息映射到应用模板的处理节点进行汇编,生成代码文件,并将所述代码文件编译和发布,因此只要根据业务场景的内容在装置中进行配置,将业务逻辑汇编成流式计算代码,然后自动编译和发布,本发明利用开发语言对流式计算的自带语言和业务应用内容进行结合,将业务需求快速准确的汇编成流式计算产品,有效降低企业对流式产品的开发成本,本发明特别适用于大数据领域。进一步的,所述应用模板中需要配置的信息包括业务名称、文件格式、目标位置源目录和模板类型。
进一步的,所述检查所述应用模板的配置信息是否正确包括检查所述应用模板上的需要配置的信息是否已配置完整。
进一步的,对配置的信息进行汇编生成的代码文件为SPL文件。
本发明提供的另一技术方案为:
一种流式计算的应用快速开发部署的装置,包括配置模块、检查模块、汇编模块、编译模块和发布模块;
所述配置模块用于预先设置一模板库,所述模板库包括两个以上应用模板,根据业务类型选择相应的应用模板,并配置所述应用模板;
所述检查模块用于检查所述应用模板的配置信息是否正确,当检查到所述配置信息出错时提示重新配置应用模板;
所述汇编模块用于将所述配置信息映射到所选择的应用模板的处理节点生成代码文件;
所述编译模块用于对所述代码文件加入到流式计算工程中进行编译;
所述发布模块用于发布工程;
其中,所述编译模块包括:加载单元和编译单元;
所述加载单元用于将代码文件的名称和命令空间添加到编译文件中;
所述编译单元用于(以流式计算产品方式)调用编译命令(make all)进行编译。
由上述描述可知,本发明通过预设应用模板,根据业务类型选择相应的应用模板进行业务信息配置,并通过应用模板将配置信息映射到应用模板的处理节点进行汇编,生成代码文件,并将所述代码文件编译和发布,本发明利用开发语言对流式计算的自带语言和业务应用内容进行结合,将业务需求快速准确的汇编成流式计算产品,有效降低企业对流式产品的开发成本,本发明特别适用于大数据领域。
进一步的,所述应用模板中需要配置的信息包括业务名称、文件格式、目标位置源目录和模板类型。
进一步的,所述检查模块检查应用模板的配置信息是否正确包括检查所述应用模板上的需要配置的信息是否已配置完整。
进一步的,所述汇编模块对配置的信息进行汇编生成的代码文件为SPL文件。
为了更好的理解本发明内容,以下通过完成一个ETL(数据抽取、转换、加载)业务实例来详细说明本发明的具体实施过程;
应用模板配置
用户通过装置访问层完成业务模板配置,一个ETL业务实现需要以下信息:
文件接口的名称:用于扫描文件源系统生成的对应文件;
源目录:源接口文件所在的目录信息;
目标文件格式:用于在流式计算节点中解析记录;
文件字段数:用户在流式计算节点中解析记录;
目标数据库:数据装载的数据库载体,如ORACLE、HBASE等;
应用模板:业务流程开发的关键,不同的模板对应的配置不同,也解决不同的业务应用,如ETL、数据预处理、实时事件匹配、数据实时分发等。
用户配置指定源目录路径、目标目录、文件格式、文件字段数、命名空间等属性,可在模板库位置选择相应的SPL模板。
应用合法性检查
对业务人员配置的信息属性进行检查,以保证配置数据的完整性、准确性。如用户配置的目录是否存在、数据文件是否可以检索等业务层面的校验功能。界面上的应用模板“提交”动作,程序会自动检查配置属性是否正确,如图是检查配置属性出现错误的情况,弹框提示。
汇编
负责对用户配置的流信息进行汇编,映射到各个模板库PE,并生成SPL文件。模板为下拉可选择项,如:选择了ETL模板(该模板内置了采集、解析、生成文件等节点PE)。这时候程序运行时,就可以根据该模板进行一一映射。
至此,通过模板映射成一个完整的SPL程序,在由脚本将这些节点,写入SPL文件,生成.spl文件。
编译
该编译原理如下:
1、根据配置“命名空间”属性(命名空间即为包名,也就是文件所在的目标位置路径),利用JAVA代码,检查命名空间是否存在,不存在则会创建,在将文件加入到指定命名空间下,如:命名空间配置为:com.newland.gn就将此文件放在该目录下。
2、在编译文件Makefile中自动生成相应的文件编译信息,文件编译信息是根据预先设置好的一个模板,当有新的文件生成,该模板即会被自动调用,将新文件属性信息一一映射到配置模板中,完成信息到模板自动化匹配的过程。
以往在做编译过程的时候,通常是将写好的文件借助IDE工具进行编译,现通过流式计算的应用快速开发、部署装置,无需借助IDE,即可实现自动化编译过程。
请参照图3,为基于流式计算的应用快速开发、部署装置配置之模板映射过程,以下通过文字说明下流式计算的应用快速开发、部署装置模板映射匹配原理流程:
第一步:通过JAVA程序,读取文件信息:文件名称、命名空间;
第二步:基于编译模板配置,利用JAVA程序把文件名称、命令空间分别映射到编译模板里;
第三步:利用JAVA程序,将映射后的编译模板内容,以增量方式新增到编译文件Makefile中;
第四步:以流式计算产品方式,调用编译命令make all进行编译。
发布
stream的每一个SPL都可以作为一个JOB单独发布。编译完成后,定位到流编译目录下(output目录),获取到编译后的编译文件(后缀为.adl的编译文件),脚本调用stream发布命令streamtool submitjob进行发布管理。
请参照图4,本发明的实施例二为:一种基于流式计算的应用快速开发、部署装置具体流程;
业务人员可以根据模板说明,配置模板的各个属性值。快速开发部署装置可让业务人员只关注业务内容,而不用熟悉代码开发技术,只要完成业务配置操作,即可实现流式开发、编译到发布的一系列工作。
以下通过文字说明下流式计算的应用快速开发、部署装置实现流程:
第一步:通过页面配置,配置业务相关数据信息;
第二步:基于业务模板配置,捕获并检查分析配置信息的完整性,正确性,若不符合检查,返回第一步继续完善配置;
第三步:流式计算产品语言汇编,生成代码文件;
第四步:以流式计算产品方式,将代码文件加入到流式计算工程中进行编译;
第五步:以流式计算产品方式发布工程。发布行为发生后,涉及该业务流程的各个流式计算处理节点将发布到流处理集群的各个物理节点上;
至此,基于流式计算的应用快速开发、部署装置流程结束。
综上所述,本发明提供的流式计算的应用快速开发部署的方法及装置通过对流式计算产品的研究、实验,利用开发语言(java)对流式计算的自带语言和业务应用内容进行结合,将业务需求快速准确的汇编成流式计算产品代码、工程,可以降低企业对于大数据领域的开发成本。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (6)
1.一种流式计算的应用快速开发部署的方法,其特征在于,包括:
预先设置一模板库,所述模板库包括两个以上应用模板,根据业务类型选择相应的应用模板,并配置所述应用模板;
检查所述应用模板的配置信息是否正确,若是,则将所述配置信息映射到所选择的应用模板的处理节点生成代码文件,若否,则提示重新配置应用模板;
对所述代码文件加入到流式计算工程中进行编译;
编译后发布工程;
其中,所述编译的步骤包括:
将代码文件的名称和命名空间添加到编译文件中;
调用编译命令进行编译;
所述应用模板中需要配置的信息包括业务名称、文件格式、目标位置源目录和模板类型。
2.根据权利要求1所述的流式计算的应用快速开发部署方法,其特征在于,所述检查所述应用模板的配置信息是否正确包括检查所述应用模板上的需要配置的信息是否已配置完整。
3.根据权利要求1所述的流式计算的应用快速开发部署方法,其特征在于,对配置的信息进行汇编生成的代码文件为SPL文件。
4.一种流式计算的应用快速开发部署的装置,其特征在于,包括配置模块、检查模块、汇编模块、编译模块和发布模块;
所述配置模块用于预先设置一模板库,所述模板库包括两个以上应用模板,根据业务类型选择相应的应用模板,并配置所述应用模板;
所述检查模块用于检查所述应用模板的配置信息是否正确,当检查到所述配置信息出错时提示重新配置应用模板;
所述汇编模块用于将所述配置信息映射到所选择的应用模板的处理节点生成代码文件;
所述编译模块用于对所述代码文件加入到流式计算工程中进行编译;
所述发布模块用于编译后发布工程;
其中,所述编译模块包括:加载单元和编译单元;
所述加载单元用于将代码文件的名称和命名空间添加到编译文件中;
所述编译单元用于调用编译命令进行编译;
所述应用模板中需要配置的信息包括业务名称、文件格式、目标位置源目录和模板类型。
5.根据权利要求4所述的流式计算的应用快速开发部署的装置,其特征在于,所述检查模块检查应用模板的配置信息是否正确包括检查所述应用模板上的需要配置的信息是否已配置完整。
6.根据权利要求4所述的流式计算的应用快速开发部署的装置,其特征在于,所述汇编模块对配置的信息进行汇编生成的代码文件为SPL文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410471712.1A CN104267938B (zh) | 2014-09-16 | 2014-09-16 | 一种流式计算的应用快速开发部署的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410471712.1A CN104267938B (zh) | 2014-09-16 | 2014-09-16 | 一种流式计算的应用快速开发部署的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104267938A CN104267938A (zh) | 2015-01-07 |
CN104267938B true CN104267938B (zh) | 2018-02-23 |
Family
ID=52159462
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410471712.1A Active CN104267938B (zh) | 2014-09-16 | 2014-09-16 | 一种流式计算的应用快速开发部署的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104267938B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105243167B (zh) * | 2015-11-10 | 2019-01-29 | 中国建设银行股份有限公司 | 一种数据处理方法及装置 |
US20170220654A1 (en) * | 2016-02-03 | 2017-08-03 | Wipro Limited | Method for automatically generating extract transform load (etl) codes using a code generation device |
CN108196831B (zh) * | 2017-12-29 | 2021-03-30 | 广州斯沃德科技有限公司 | 业务系统的构建方法和装置 |
CN108874395B (zh) * | 2018-05-22 | 2022-03-18 | 四川创意信息技术股份有限公司 | 一种组件化流处理过程中的硬编译方法及装置 |
CN109445771B (zh) * | 2018-10-25 | 2021-06-15 | 北京和普威视科技股份有限公司 | 一种cs架构下网络层模块代码自动生成工具及方法 |
CN110196731B (zh) * | 2018-10-29 | 2021-05-11 | 腾讯科技(深圳)有限公司 | 一种运维系统、方法及存储介质 |
CN109710263B (zh) * | 2018-12-18 | 2020-03-03 | 北京字节跳动网络技术有限公司 | 代码的编译方法、装置、存储介质及电子设备 |
CN109710231A (zh) * | 2018-12-21 | 2019-05-03 | 成都四方伟业软件股份有限公司 | 一种可视化脚本编辑方法与装置 |
CN110490483A (zh) * | 2019-08-26 | 2019-11-22 | 中国建设银行股份有限公司 | 投产方法、装置、设备和存储介质 |
CN114676095A (zh) * | 2022-05-27 | 2022-06-28 | 恒生电子股份有限公司 | 基于流处理框架文件管理方法以及系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104020994A (zh) * | 2014-05-30 | 2014-09-03 | 华为技术有限公司 | 基于流系统的流过程定义装置和流过程定义方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103135976B (zh) * | 2011-11-30 | 2016-05-11 | 阿里巴巴集团控股有限公司 | 代码自动生成方法及装置 |
CN103294450B (zh) * | 2012-02-22 | 2018-04-06 | 腾讯科技(深圳)有限公司 | 应用发布方法及系统 |
CN103543993B (zh) * | 2012-07-11 | 2017-07-28 | 深圳市华高软件科技有限公司 | 应用程序构建方法和系统 |
CN104008007B (zh) * | 2014-06-12 | 2018-06-01 | 深圳先进技术研究院 | 基于流式计算和批处理计算的互操作数据处理系统及方法 |
-
2014
- 2014-09-16 CN CN201410471712.1A patent/CN104267938B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104020994A (zh) * | 2014-05-30 | 2014-09-03 | 华为技术有限公司 | 基于流系统的流过程定义装置和流过程定义方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104267938A (zh) | 2015-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104267938B (zh) | 一种流式计算的应用快速开发部署的方法及装置 | |
US11216302B2 (en) | Modifying task dependencies at worker nodes using precompiled libraries | |
CN101887365B (zh) | 用于构造基于组件的应用的可执行代码的方法和编译器 | |
US7716254B2 (en) | System for modeling architecture for business systems and methods thereof | |
CN106104472A (zh) | 指定逻辑验证规则并将逻辑验证规则应用于数据 | |
CN102298607A (zh) | 数据集成的方案合约 | |
CN105550268A (zh) | 大数据流程建模分析引擎 | |
Zimmermann et al. | Architectural decision guidance across projects-problem space modeling, decision backlog management and cloud computing knowledge | |
US20130117319A1 (en) | Objects in a storage environment for connected applications | |
CN110275861A (zh) | 数据存储方法及装置、存储介质、电子装置 | |
CN103309904A (zh) | 一种生成数据仓库etl 代码的方法及装置 | |
CN102521232B (zh) | 一种互联网元数据的分布式采集处理系统及方法 | |
CN109656963A (zh) | 元数据获取方法、装置、设备及计算机可读存储介质 | |
CN107656729A (zh) | 列表视图的更新装置、方法及计算机可读存储介质 | |
CN103810272A (zh) | 一种数据处理方法和系统 | |
Weder et al. | Automated quantum hardware selection for quantum workflows | |
CN107851002A (zh) | 一种代码编译方法及代码编译器 | |
CN111813739A (zh) | 数据迁移方法、装置、计算机设备及存储介质 | |
Lerner et al. | Using introspection to collect provenance in R | |
Trias | Building CMS-based Web applications using a model-driven approach | |
Hardisty et al. | The specimen data refinery: a canonical workflow framework and FAIR digital object approach to speeding up digital mobilisation of natural history collections | |
CN102968404B (zh) | 地震资料的初至信息处理方法及装置 | |
Rahmouni et al. | MDA-based ATL transformation to generate MVC 2 web models | |
Efendioglu et al. | Modelling method design: a model-driven approach | |
Murguzur et al. | Run-time variability for context-aware smart workflows |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |