本申请属于数据通信技术领域,涉及一种通用的离线数据接入方法及系统。
背景技术:
目前的离线数据接入系统大都与特定的业务相关,根据业务的不同定制设计不同的接入接口,每个系统只针对特定的业务,无法将定制的系统应用到其他的数据处理业务。现有的开发出来的不同的数据接入系统,其数据提供方和数据接入系统没有可遵循的统一规范,这导致数据接入系统的使用具有局限性,通用性差。此外,现有系统大多采用单节点数据采集,传输效率低;异常处理和报错机制不完善,系统出错后难以在较短的时间内恢复。
技术实现要素:
本发明的目的在于提供一种通用的离线数据接入方法及系统,基于离线数据接入通用处理模板,来适配多种业务数据接入。
为了实现上述目的,本发明采用以下技术方案:
一种通用的离线数据接入方法,包括以下步骤:
1)构建离线数据接入通用处理模板;
2)数据提供方根据步骤1)构建的离线数据接入通用处理模板提供规范化数据;
3)数据接收方根据步骤1)构建的离线数据接入通用处理模板从数据提供方多节点分布式采集数据并进行解析及存储。
进一步地,步骤1)中,所述离线数据接入通用处理模板的构建包括构建用于存储数据提供方提交的结构化和非结构化的数据文件的/toplatform/data目录和用于存储数据提供方提交的控制文件的/toplatform/ctrl目录。
进一步地,步骤2)中,所述数据提供方提供规范化数据的步骤包括:
2-1)将结构化数据采用json格式封装成json数据文件,然后在/toplatform/data目录中上传json数据文件和非结构化数据,并在/toplatform/ctrl目录中上传json数据文件和非结构化数据对应的控制文件;
2-2)数据提供方在数据文件和控制文件上传完成后,在/toplatform/ctrl目录中生成控制文件对应的.ok文件,以标识本次提交的所有文件均已正确上传。
进一步地,步骤3)中,所述数据接收方从数据提供方多节点分布式采集数据的步骤包括:
3-1)数据接收方读取/toplatform/ctrl目录下带有.ok文件的控制文件,采用ftp传输协议多节点分布式采集对应的/toplatform/data目录中的数据文件;
3-2)数据接收方完成数据文件采集后,在/toplatform/ctrl目录下生成控制文件对应的.dwd文件,以标识数据接收方已经采集完对应的数据文件。
进一步地,所述离线数据接入通用处理模板的构建还包括构建用于存储数据接收方下发的报错文件的/fromplatform/feedback/error目录。
进一步地,所述数据接收方在采集文件过程中出错时,在/fromplatform/feedback/error目录下生成以”err_”开头接对应的控制文件文件名命名的报错文件,报错文件中指明出错文件的文件名和出错类型;数据接收方生成报错文件后,生成该报错文件的.ok文件,以标识此次报错完成;所述数据提供方定时读取fromplatform/feedback/error目录,根据报错信息做相应的处理。
进一步地,步骤3)采集的数据中,非结构化数据存储于分布式数据库中,结构化元数据存储于关系型数据库中。
进一步地,上述方法还包括对运行状态进行实时监控,如有异常则进行出错恢复。
一种通用的离线数据接入系统,包括:
模板构建模块,用于构建离线数据接入通用处理模板,所述离线数据接入通用处理模板被数据提供方用于规范化数据;
数据采集模块,用于多节点分布式采集数据提供方提供的规范化数据;
数据传输模块,用于数据提供方,数据采集模块和数据存储模块之间的数据传输;以及
数据存储模块,用于将从数据提供方采集的数据存储于数据库。
进一步地,所述离线数据接入通用处理模板包括:用于存储数据提供方提交的结构化和非结构化的数据文件的/toplatform/data目录和用于存储数据提供方提交的控制文件的/toplatform/ctrl目录。
进一步地,所述离线数据接入通用处理模板还包括用于存储采集数据出错时生成的报错文件的/fromplatform/feedback/error目录。
进一步地,所述数据采集模块和所述数据存储模块分别根据所述离线数据接入通用处理模板采集、存储数据。
进一步地,从数据提供方采集的数据中,非结构化数据存储于分布式存储数据库,结构化数据存储于关系型数据库。
进一步地,上述系统还包括服务监控模块,所述服务监控模块用于实时监控系统运行状态,在系统异常时进行出错恢复。
利用本发明提供的通用的离线数据接入方法及系统,具有如下优点:
1、数据接入与业务耦合度低,数据接入系统更为通用,音视频数据、图片数据、博客数据、即时通信数据等数据源,都可以采用该方法及系统;
2、多节点分布式采集数据,在保证数据正确传输的前提下,提供传输的并行度和传输效率,并实现了负载均衡;
3、提供完善的异常处理和报错机制;
4、实时监控系统运行状态,系统更为稳定。
附图说明
图1为采用本发明通用的离线数据接入方法进行数据接入的技术架构图。
具体实施方式
实施例
以下结合图1对本发明的实现作具体说明,但本发明并不限于此。
例如,数据传输协议采用ftp协议,则数据提供方须部署一个或多个ftp服务器;特别的,如果数据提供方以分布式存储,要求通过统一的ftp服务器集中提供数据;数据提供方须在ftp服务器上提供如下三个目录:
/toplatform/data
/toplatform/ctrl
/fromplatform/feedback/error
这三个目录用于存储不同类型的文件,其功能分别如下:
/toplatform/data目录用来存储数据提供方提交的结构化和非结构化的数据文件;
/toplatform/ctrl目录用来存储数据提供方提交的控制文件;
/fromplatform/feedback/error目录用来存储数据接收方下发的报错文件;
对这三个目录,数据提供方提供足够的存储空间以存储近一周的文件,过期文件定时清理。
其中,数据提供方提供规范化数据的过程包括:
1)数据提供方离线数据接入通用处理模板提交数据:对多种异源数据,首先将结构化数据采用json格式封装成json数据文件,然后在/toplatform/data目录中上传json数据文件和非结构化数据,并在/toplatform/ctrl目录中上传json数据文件和非结构化数据对应的控制文件;
2)数据提供方在数据文件和控制文件上传完成后,在/toplatform/ctrl目录中生成控制文件对应的.ok文件,以标识本次提交的所有文件均已正确上传。
数据接收方登录数据提供方的ftp服务器,根据指定目录进行文件下载和上传,具体包括:
1)数据接收方读取/toplatform/ctrl目录下带有.ok文件的控制文件,采用ftp传输协议多节点分布式采集对应的/toplatform/data目录中的数据文件;
2)数据接收方完成数据文件采集后,在/toplatform/ctrl目录下生成控制文件对应的.dwd文件,以标识数据接收方已经采集完对应的数据文件;
3)如果数据接收方在采集文件过程中出错,则会在/fromplatform/feedback/error目录下生成以”err_”开头接对应的控制文件文件名命名的报错文件;报错文件中指明出错文件的文件名和出错类型;
4)数据接收方生成报错文件后,生成该报错文件的.ok文件,以标识此次报错完成。数据提供方定时读取fromplatform/feedback/error目录,根据报错信息做相应的处理。
5)数据接收方完成数据文件的正确采集后,解析所采集的数据文件,将非结构化数据文件存储于分布式存储系统中,将结构化数据文件存储于关系型数据库中。
此外,数据接接收方可实时监控系统运行状态,在系统运行异常一分钟内进行出错恢复。