CN111538490A - 一种基于FreeMarker的数据融合方法及装置 - Google Patents

一种基于FreeMarker的数据融合方法及装置 Download PDF

Info

Publication number
CN111538490A
CN111538490A CN202010296116.XA CN202010296116A CN111538490A CN 111538490 A CN111538490 A CN 111538490A CN 202010296116 A CN202010296116 A CN 202010296116A CN 111538490 A CN111538490 A CN 111538490A
Authority
CN
China
Prior art keywords
data
freemarker
fusion
fused
preset
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
Application number
CN202010296116.XA
Other languages
English (en)
Inventor
易存道
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Baolande Software Co ltd
Original Assignee
Beijing Baolande Software Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Baolande Software Co ltd filed Critical Beijing Baolande Software Co ltd
Priority to CN202010296116.XA priority Critical patent/CN111538490A/zh
Publication of CN111538490A publication Critical patent/CN111538490A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明实施例提供一种基于FreeMarker的数据融合方法及装置。所述方法包括从预设的各数据源接口获取对应的各待融合数据;根据预设的转换规则创建FreeMarker转换引擎;将各待融合数据,通过所述FreeMarker转换引擎执行融合操作,得到融合结果数据,本发明实施例通过将基于FreeMarker模板引擎,以java语言为基础,将预设的转换规则编写为FreeMarker转换代码,用于对多数据源数据进行数据融合,从而使数据融合更加快速、高效。

Description

一种基于FreeMarker的数据融合方法及装置
技术领域
本发明涉及数据处理技术领域,尤其涉及一种基于FreeMarker的数据融合方法及装置。
背景技术
随着人工智能和机器学习等前沿技术的发展,市面上出现了越来越多的交互式可视化商业智能(BI)产品,越来越多的厂家开始涉及这一领域,即包含了对于数据的融合、分析、挖掘、画像、可视化展示等多维度的展现,其中重要的一环就是对于数据的融合,然后才会进行相关分析和数据展示。因此,数据融合的方案的好坏就显得格外重要,需要其满足高效和灵活等特点。
各种产品的融合方案不尽相同,目前常见的方案如下:通常情况下,对于两两数据之间的融合,会将两个数据按照某个相关联的字段进行数据的合并,这样会将所有的数据都进行合并成新的数据,但实际情况可能包含多个数据表之间的融合与调整,或者可能不需要所有的数据,或者会预先对数据进行一些处理,所以使用此方法会导致效率比较低下和灵活度降低。
发明内容
由于现有方法存在上述问题,本发明实施例提供一种基于FreeMarker的数据融合方法及装置。
第一方面,本发明实施例提供了一种基于FreeMarker的数据融合方法,包括:
从预设的各数据源接口获取对应的各待融合数据;
根据预设的转换规则创建FreeMarker转换引擎;
将各待融合数据,通过所述FreeMarker转换引擎执行融合操作,得到融合结果数据。
进一步地,所述将各待融合数据,通过所述FreeMarker转换引擎执行融合操作,得到融合结果数据,具体包括:
将各待融合数据,以及预设的全局变量,通过所述FreeMarker转换引擎执行融合操作,得到融合结果数据;其中,所述全局变量用于对各待融合数据中的预设属性进行替换。
进一步地,所述各数据源接口具体为以下各类型的数据源接口的任意组合:
数据库接口、API接口或文本接口。
第二方面,本发明实施例提供了一种基于FreeMarker的数据融合装置,包括:
数据获取模块,用于从预设的各数据源接口获取对应的各待融合数据;
代码编译模块,用于根据预设的转换规则创建FreeMarker转换引擎;
数据融合模块,用于将各待融合数据,通过所述FreeMarker转换引擎执行融合操作,得到融合结果数据。
进一步地,所述数据融合模块,具体用于:
将各待融合数据,以及预设的全局变量,通过所述FreeMarker转换引擎执行融合操作,得到融合结果数据;其中,所述全局变量用于对各待融合数据中的预设属性进行替换。
进一步地,所述各数据源接口具体为以下各类型的数据源接口的任意组合:
数据库接口、API接口或文本接口。
第三方面,本发明实施例还提供了一种电子设备,包括:
处理器、存储器、通信接口和通信总线;其中,
所述处理器、存储器、通信接口通过所述通信总线完成相互间的通信;
所述通信接口用于该电子设备的通信设备之间的信息传输;
所述存储器存储有可被所述处理器执行的计算机程序指令,所述处理器调用所述程序指令能够执行如下方法:
从预设的各数据源接口获取对应的各待融合数据;
根据预设的转换规则创建FreeMarker转换引擎;
将各待融合数据,通过所述FreeMarker转换引擎执行融合操作,得到融合结果数据。
第四方面,本发明实施例还提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如下方法:
从预设的各数据源接口获取对应的各待融合数据;
根据预设的转换规则创建FreeMarker转换引擎;
将各待融合数据,通过所述FreeMarker转换引擎执行融合操作,得到融合结果数据。
本发明实施例提供的基于FreeMarker的数据融合方法及装置,通过将基于FreeMarker模板引擎,以java语言为基础,将预设的转换规则编写为FreeMarker转换代码,用于对多数据源数据进行数据融合,从而使数据融合更加快速、高效。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例的基于FreeMarker的数据融合方法流程图;
图2为本发明实施例的另一基于FreeMarker的数据融合方法流程图;
图3为本发明实施例的基于FreeMarker的数据融合装置流程图;
图4示例了一种电子设备的实体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例的基于FreeMarker的数据融合方法流程图,如图1所示,所述方法包括:
步骤S01、从预设的各数据源接口获取对应的各待融合数据。
对数据融合而言,在实际的生产环境中,数据可能来自多种数据源接口或途径,需要先从预先确定的多个数据源接口分别获取各自的待融合数据。
进一步地,所述各数据源接口具体为以下各类型的数据源接口的任意组合:
数据库接口、API接口或文本接口。
所述数据库接口具体可以包括:Mysql数据库接口、Oracal数据库接口;所述API接口具体可以包括:Restful API接口;所述文本接口具体可以包括:excel文本接口。
步骤S02、根据预设的转换规则创建FreeMarker转换引擎。
不同的数据源接口获取到的待融合数据的数据格式和数据内容各不相同,并且在融合的过程中可能需要对待融合数据进行部分处理,来得到需要的融合结果数据。根据上述需求设定转换规则,再根据FreeMarker模板引擎,以java语言为基础,编写合理的转换代码ConvertCode,再调用相应的方法,将转换代码放入字符串模板加载器中,然后使用加载器创建FreeMarker转换引擎。
所述FreeMarker模板引擎,是一种基于模板和要转变的数据,用来生成输出文本的通用工具,例如,HTML网页,电子邮件,配置文件,源代码等。它面向一个Java类库,模板编写为FreeMarker Template Language(FTL)。由于FreeMarker是一种简单的,专用的语言,不是成熟的编程语言。因此,需要准备数据在真实编程语言中来显示,比如数据库查询和业务运算,之后模板显示已经准备好的数据。在模板中,可以专注于如何展现数据,而在模板之外可以专注于要展示什么数据。
Freemarker模板引擎提供了一系列函数可对数据进行逻辑处理,list、if、${}等。同时内置了50多种模板方法,可通过在转换代码中使用来格式化数据。
在数据融合的过程中可以使用原生和自定义的Javascript方法,对数据进行处理。var、for、if等Javascript操作,通过一系列的Javascript语法进行组装、过滤等操作,同时结合freemarker引擎实现数据的融合处理。
步骤S03、将各待融合数据,通过所述FreeMarker转换引擎执行融合操作,得到融合结果数据。
将各待融合数据放入一个数据对象,并放入所述FreeMarker转换引擎的引擎对象,然后对其调用相应的方法执行数据融合,从而得到融合结果数据。
本发明实施例通过将基于FreeMarker模板引擎,以java语言为基础,将预设的转换规则编写为FreeMarker转换代码,用于对多数据源数据进行数据融合,从而使数据融合更加快速、高效。
图2为本发明实施例的另一基于FreeMarker的数据融合方法流程图,如图2所示,所述步骤S03具体包括:
步骤S031、将各待融合数据,以及预设的全局变量,通过所述FreeMarker转换引擎执行融合操作,得到融合结果数据;其中,所述全局变量用于对各待融合数据中的预设属性进行替换。
在实际的生产过程中,待融合数据的某些属性可能在实时的更新变化,那么在对数据融合过程中,需要对某些属性的属性值进行实时的更新,为此,根据实际的需求可设定全局变量,来为数据融合提供支持。
此时,数据融合的过程如下:
1.将各待融合数据、预设的全局变量和FreeMarker内置的多种函数对象等数据放入一个Map对象Data中;
2.根据数据融合的实际需求,编写相应的转换代码ConvertCode;
3.调用预设的FreeMarkerDataConverter方法,传递Data和ConverCode到抽象类中;
4.调用预设的AbstractDataConverter,getTemplateContent方法,先将转换码ConverCode放入字符串模板加载器中,然后使用加载器创建FreeMarker转换引擎,并将Data放入引擎对象,调用FreeMarker的getTemplateOut()方法进行数据融合,得到融合结果数据。
本发明实施例通过将基于FreeMarker模板引擎,以java语言为基础,将预设的转换规则编写为FreeMarker转换代码,并用全局变量对相应的属性进行更新,用于对多数据源数据进行数据融合,从而使数据融合更加快速、高效。
图3为本发明实施例的基于FreeMarker的数据融合装置流程图,如图3所示,所述装置包括:数据获取模块10、代码编译模块11和数据融合模块12;其中,
所述数据获取模块10用于从预设的各数据源接口获取对应的各待融合数据;所述代码编译模块11用于根据预设的转换规则创建FreeMarker转换引擎;所述数据融合模块12用于将各待融合数据,通过所述FreeMarker转换引擎执行融合操作,得到融合结果数据。具体地:
对数据融合而言,在实际的生产环境中,数据可能来自多种数据源接口或途径,数据获取模块10需要先从预先确定的多个数据源接口分别获取各自的待融合数据。
进一步地,所述各数据源接口具体为以下各类型的数据源接口的任意组合:
数据库接口、API接口或文本接口。
数据获取模块10从不同的数据源接口获取到的待融合数据的数据格式和数据内容各不相同,并且在融合的过程中可能需要对待融合数据进行部分处理,来得到需要的融合结果数据。代码编译模块11根据上述需求设定转换规则,再根据FreeMarker模板引擎,以java语言为基础,编写合理的转换代码ConvertCode,再调用相应的方法,将转换代码放入字符串模板加载器中,然后使用加载器创建FreeMarker转换引擎。
数据融合模块12将各待融合数据放入一个数据对象,并放入所述FreeMarker转换引擎的引擎对象,然后对其调用相应的方法执行数据融合,从而得到融合结果数据。
本发明实施例提供的装置用于执行上述方法,其功能具体参考上述方法实施例,其具体方法流程在此处不再赘述。
本发明实施例通过将基于FreeMarker模板引擎,以java语言为基础,将预设的转换规则编写为FreeMarker转换代码,用于对多数据源数据进行数据融合,从而使数据融合更加快速、高效。
基于上述实施例,进一步地,所述数据融合模块12具体用于:
将各待融合数据,以及预设的全局变量,通过所述FreeMarker转换引擎执行融合操作,得到融合结果数据;其中,所述全局变量用于对各待融合数据中的预设属性进行替换。
在实际的生产过程中,待融合数据的某些属性可能在实时的更新变化,那么在对数据融合过程中,需要对某些属性的属性值进行实时的更新,为此,根据实际的需求可设定全局变量,来为数据融合提供支持。
此时,数据融合的过程如下:
1.数据获取模块10将各待融合数据、预设的全局变量和FreeMarker内置的多种函数对象等数据放入一个Map对象Data中;
2.代码编译模块11根据数据融合的实际需求,编写相应的转换代码ConvertCode;
3.数据融合模块12调用预设的FreeMarkerDataConverter方法,传递Data和ConverCode到抽象类中;
4.数据融合模块12调用预设的AbstractDataConverter,getTemplateContent方法,先将转换码ConverCode放入字符串模板加载器中,然后使用加载器创建FreeMarker转换引擎,并将Data放入引擎对象,调用FreeMarker的getTemplateOut()方法进行数据融合,得到融合结果数据。
本发明实施例通过将基于FreeMarker模板引擎,以java语言为基础,将预设的转换规则编写为FreeMarker转换代码,并用全局变量对相应的属性进行更新,用于对多数据源数据进行数据融合,从而使数据融合更加快速、高效。
本发明实施例提供的装置用于执行上述方法,其功能具体参考上述方法实施例,其具体方法流程在此处不再赘述。
图4示例了一种电子设备的实体结构示意图,如图4所示,该电子设备可以包括:处理器(processor)401、通信接口(Communications Interface)403、存储器(memory)402和通信总线404,其中,处理器401,通信接口403,存储器402通过通信总线404完成相互间的通信。处理器401可以调用存储器402中的逻辑指令,以执行上述方法。
进一步地,本发明实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法。
进一步地,本发明实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法。
本领域普通技术人员可以理解:此外,上述的存储器402中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random AccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (8)

1.一种基于FreeMarker的数据融合方法,其特征在于,包括:
从预设的各数据源接口获取对应的各待融合数据;
根据预设的转换规则创建FreeMarker转换引擎;
将各待融合数据,通过所述FreeMarker转换引擎执行融合操作,得到融合结果数据。
2.根据权利要求1所述的基于FreeMarker的数据融合方法,其特征在于,所述将各待融合数据,通过所述FreeMarker转换引擎执行融合操作,得到融合结果数据,具体包括:
将各待融合数据,以及预设的全局变量,通过所述FreeMarker转换引擎执行融合操作,得到融合结果数据;其中,所述全局变量用于对各待融合数据中的预设属性进行替换。
3.根据权利要求2所述的基于FreeMarker的数据融合方法,其特征在于,所述各数据源接口具体为以下各类型的数据源接口的任意组合:
数据库接口、API接口或文本接口。
4.一种基于FreeMarker的数据融合装置,其特征在于,包括:
数据获取模块,用于从预设的各数据源接口获取对应的各待融合数据;
代码编译模块,用于根据预设的转换规则创建FreeMarker转换引擎;
数据融合模块,用于将各待融合数据,通过所述FreeMarker转换引擎执行融合操作,得到融合结果数据。
5.根据权利要求4所述的基于FreeMarker的数据融合装置,其特征在于,所述数据融合模块,具体用于:
将各待融合数据,以及预设的全局变量,通过所述FreeMarker转换引擎执行融合操作,得到融合结果数据;其中,所述全局变量用于对各待融合数据中的预设属性进行替换。
6.根据权利要求5所述的基于FreeMarker的数据融合装置,其特征在于,所述各数据源接口具体为以下各类型的数据源接口的任意组合:
数据库接口、API接口或文本接口。
7.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至3任一项基于FreeMarker的数据融合方法的步骤。
8.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至3任一项基于FreeMarker的数据融合方法的步骤。
CN202010296116.XA 2020-04-15 2020-04-15 一种基于FreeMarker的数据融合方法及装置 Pending CN111538490A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010296116.XA CN111538490A (zh) 2020-04-15 2020-04-15 一种基于FreeMarker的数据融合方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010296116.XA CN111538490A (zh) 2020-04-15 2020-04-15 一种基于FreeMarker的数据融合方法及装置

Publications (1)

Publication Number Publication Date
CN111538490A true CN111538490A (zh) 2020-08-14

Family

ID=71972925

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010296116.XA Pending CN111538490A (zh) 2020-04-15 2020-04-15 一种基于FreeMarker的数据融合方法及装置

Country Status (1)

Country Link
CN (1) CN111538490A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114330268A (zh) * 2021-12-09 2022-04-12 北京金山云网络技术有限公司 文档生成方法、装置、电子设备及计算机可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103605801A (zh) * 2013-12-05 2014-02-26 用友软件股份有限公司 一种管理单据数据的方法和系统
US20150350016A1 (en) * 2014-06-03 2015-12-03 Equinix, Inc. Transformation engine for datacenter colocation and network interconnection products
CN106777180A (zh) * 2016-12-22 2017-05-31 北京京东金融科技控股有限公司 高性能分布式数据转换的方法、装置及系统
CN107657154A (zh) * 2017-09-18 2018-02-02 北京深思数盾科技股份有限公司 一种目标程序的保护方法、装置、设备及存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103605801A (zh) * 2013-12-05 2014-02-26 用友软件股份有限公司 一种管理单据数据的方法和系统
US20150350016A1 (en) * 2014-06-03 2015-12-03 Equinix, Inc. Transformation engine for datacenter colocation and network interconnection products
CN106777180A (zh) * 2016-12-22 2017-05-31 北京京东金融科技控股有限公司 高性能分布式数据转换的方法、装置及系统
CN107657154A (zh) * 2017-09-18 2018-02-02 北京深思数盾科技股份有限公司 一种目标程序的保护方法、装置、设备及存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114330268A (zh) * 2021-12-09 2022-04-12 北京金山云网络技术有限公司 文档生成方法、装置、电子设备及计算机可读存储介质

Similar Documents

Publication Publication Date Title
CN105511873B (zh) 用户界面控件展示方法及装置
CN105487864A (zh) 代码自动生成的方法和装置
US8589877B2 (en) Modeling and linking documents for packaged software application configuration
CN109542556A (zh) 一种基于Activiti的流程与表单交互方法及系统
CN103593414A (zh) 一种浏览器中网页的展现方法和装置
CN113535165A (zh) 界面生成方法、装置、电子设备及计算机可读存储介质
CN109471580B (zh) 一种可视化3d课件编辑器及课件编辑方法
CN107329765A (zh) 程序文件处理方法及装置
CN117875288A (zh) 一种表单页面生成方法、装置及电子设备
CN104375814A (zh) 接口文档的生成方法及装置
CN116401407A (zh) 思维导图的节点属性配置方法、装置、设备和存储介质
CN114579118A (zh) 编程方法和系统、设备、存储介质
CN110688109A (zh) 一种模型编辑系统的创建方法及模型编辑系统
CN114548056A (zh) 富文本编辑方法、装置及设备
CN111538490A (zh) 一种基于FreeMarker的数据融合方法及装置
CN116225902A (zh) 生成测试用例的方法、装置及设备
CN112204527A (zh) 用于处理多工程系统环境中的工程数据的方法和系统
CN114489639A (zh) 文件生成方法、装置、设备及存储介质
CN113190509A (zh) 动画处理方法、装置、电子设备及计算机可读存储介质
CN113778401A (zh) 一种页面生成的方法和装置
CN110516028A (zh) 一种基于react实现复杂编辑器的方法及装置
CN112686002B (zh) 一种文件处理方法及装置
CN112181396A (zh) Rn代码自动生成系统、方法、设备及介质
Ruponen The front-end architectural design and implementation of a modularized web portal
CN114841254A (zh) Web富雷达图生成方法和装置

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20200814

RJ01 Rejection of invention patent application after publication