一种文件事件化驱动解析与多端持久化方法及装置与流程

摘要: 本发明属于计算机,尤其涉及一种文件事件化驱动解析与多端持久化方法及装置。背景技术:1、现代企业级应用中,大量异构文件(文档、表格、视频、音频)的采集-过滤-解析...
一种文件事件化驱动解析与多端持久化方法及装置与流程

本发明属于计算机,尤其涉及一种文件事件化驱动解析与多端持久化方法及装置。

背景技术:

1、现代企业级应用中,大量异构文件(文档、表格、视频、音频)的采集-过滤-解析-持久化已经成为处理大数据与云存储核心问题的基础能力,尽管随着计算机技术的发展已经有了apache camel、spring integration等基础框架,但是仍存在以下技术缺陷:

2、(1)文件监控延迟高、资源浪费严重:现有系统普遍通过轮询机制定期遍历文件目录,如果缩短轮询间隔,频繁的扫描操作会造成计算资源浪费;若是延长轮询间隔,会延迟对文件操作的感知,缺乏实时性。

3、(2)文件过滤规则固定,动态调整难:现有系统大多将文件的过滤规则静态写入配置文件中,当系统运行后无法进行更改,缺乏运行弹性。

4、(3)解析器扩展困难:随着文件类型的不断增多,解析器往往需要在配置中进行硬编码注册,新增格式需要修改核心代码和配置信息,灵活性差。

5、(4)解析器输出结构不统一,下游逻辑复杂:异构文件的属性与其对应的数据库差异大,解析器输出的数据也不尽相同,在持久化层需要分别编写对应的转换逻辑,导致运行维护效率低下。

6、(5)多后端接入困难,缺乏统一协调能力:异构文件需要针对其特性写入不同数据库中,现有技术没有统一的数据定义语言来建立表结构与索引,只能依靠系统管理员手动建立,阻碍自动化流程。

技术实现思路

1、为了解决现有技术中灵活性差、扩展难以及运维效率低的问题,本发明提供一种文件事件化驱动解析与多端持久化方法及装置,所述技术方案如下:

2、一种文件事件化驱动解析与多端持久化方法,包括:

3、s1:应用启动阶段开启事件监听器,注册目标文件目录,实时捕获文件更改事件;

4、s2:通过过滤链管理器过滤文件更改事件信息,并将过滤后的事件分发到解析层;

5、s3:解析层匹配当前文件类型对应的解析插件,输出为统一的中间数据模型,中间数据模型包括文件的数据结构定义与数据集合;

6、s4:数据持久化层根据中间数据模型的数据结构定义,动态生成对应目标数据库的结构定义语句,并在首次写入时创建表结构与索引;

7、s5:多存储适配层将中间数据模型中的数据集合批量存储至目标数据库中。

8、可选地,s1中,在应用整个生命周期的初始化回调函数中,建立事件监听器,将待监听的目标目录与文件变更操作类型进行注册,实现文件更改事件的监听。

9、可选地,s2中,将文件更改事件信息对应的过滤规则封装为过滤器节点,在应用运行时通过过滤链管理器对过滤器节点进行重排、启动、停止的配置,过滤文件更改事件信息,若文件在经过任一过滤器节点返回拒绝,则终止后续处理。

10、可选地,s3中,将多种文件类型的解析方法封装为格式一致的接口并部署于应用中,解析层提取过滤后的文件更改事件的信息,应用自动扫描并匹配文件解析接口,利用对应的解析插件对目标文件进行解析,输出为统一的中间数据模型。

11、可选地,s4中,根据中间数据模型的数据结构定义匹配后端数据库类型,将数据结构定义中的属性转换为数据表的实体类字段和语法规范。

12、可选地,s5中,适配器包含批量存储方式、并行存储方式,适配器将中间数据模型的数据集合转换为存储指令,写入关系型数据库、文档型数据库、时序性数据库以及缓存数据库。

13、可选地,数据结构定义的字段包含:字段名称、字段类型、索引;

14、数据集合中的数据采用键值对或者矩阵形式进行存储。

15、第二方面,提供一种文件事件化驱动解析与多端持久化装置,包括:

16、文件事件监听器模块在应用启动阶段进行初始化,同时注册目标文件目录并开启事件监听服务,实时捕获文件更改事件;

17、过滤链管理器模块通过过滤链管理器过滤文件更改事件信息,并将过滤后的事件分发到解析层;

18、插件解析模块动态匹配当前文件类型对应的解析插件,输出为统一的中间数据模型;

19、多端持久化模块根据中间数据模型的数据结构定义生成对应数据库的结构定义语句,在首次写入时创建表结构与索引,将中间数据模型中的数据集合批量存储至目标数据库中。

20、本发明的有益效果至少在于:

21、1.实现实时文件变动感知:在应用启动阶段自动注册事件驱动的文件系统监听服务,将文件目录与文件操作事件进行绑定,通过事件驱动实时捕获文件新增、删除、修改,减少轮询带来的资源浪费与延迟,提高灵活性。

22、2.动态组合过滤链,增强应用弹性:构造文件类型、大小、时间等过滤节点,运行时收到用户控制指令或者配置更新,过滤链管理器会对过滤节点实时更新、启用停用。所有捕获到的文件延过滤器节点依次传递,若有任一节点不符合规则,则停止后续解析。

23、3.提高系统可扩展性:采用基于服务发现(spi)机制,定义一个统一解析接口,不同文件类型的解析器同时实现该接口,作为独立插件部署于应用中。在应用启动时进行动态扫描插件并加载,当有文件传入直接驱动对应插件进行解析。

24、4.消除结构割裂,减少开发工作:规范强制约束所有插件,在解析完成后输出统一的中间数据模型,所有中间数据模型包含:

25、a.文件信息数据段:包含文件名称、大小、生成时间等。

26、b.数据结构定义字段:字段名称、字段类型、索引等。

27、c.数据集合段:采用键值对或者矩阵形式存储数据记录。

28、持久化层仅需要针对一种中间数据模型进行一种解析转换即可。

29、5.实现全自动的数据集成流程:在持久化层设计动态的数据定义语言(ddl)和数据控制语言(dcl),在语句执行之前,判断对应的表和集合在数据库中是否已经存在,若不存在则执行生成语句进行数据表建立与索引建立,确保后续数据能够顺利存储。

1.一种文件事件化驱动解析与多端持久化方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,s1中,在应用整个生命周期的初始化回调函数中,建立事件监听器,将待监听的目标目录与文件变更操作类型进行注册,实现文件更改事件的监听。

3.根据权利要求1所述的方法,其特征在于,s2中,将文件更改事件信息对应的过滤规则封装为过滤器节点,在应用运行时通过过滤链管理器对过滤器节点进行重排、启动、停止的配置,过滤文件更改事件信息,若文件在经过任一过滤器节点返回拒绝,则终止后续处理。

4.根据权利要求1所述的方法,其特征在于,s3中,将多种文件类型的解析方法封装为格式一致的接口并部署于应用中,解析层提取过滤后的文件更改事件的信息,应用自动扫描并匹配文件解析接口,利用对应的解析插件对目标文件进行解析,输出为统一的中间数据模型。

5.根据权利要求1所述的方法,其特征在于,s4中,根据中间数据模型的数据结构定义匹配后端数据库类型,将数据结构定义中的属性转换为数据表的实体类字段和语法规范。

6.根据权利要求1所述的方法,其特征在于,s5中,适配器包含批量存储方式、并行存储方式,适配器将中间数据模型的数据集合转换为存储指令,写入关系型数据库、文档型数据库、时序性数据库以及缓存数据库。

7.根据权利要求4所述的方法,其特征在于,数据结构定义的字段包含:字段名称、字段类型、索引;

8.一种文件事件化驱动解析与多端持久化装置,其特征在于,包括: