[发明专利]一种基于Shell的应用在系统间文件交互中的处理方法有效
申请号: | 202110103485.7 | 申请日: | 2021-01-26 |
公开(公告)号: | CN112764740B | 公开(公告)日: | 2022-06-10 |
发明(设计)人: | 廖继全 | 申请(专利权)人: | 北京融和友信科技股份有限公司 |
主分类号: | G06F8/34 | 分类号: | G06F8/34;G06F8/38;G06F8/41 |
代理公司: | 北京艾格律诗专利代理有限公司 11924 | 代理人: | 谢毅 |
地址: | 100095 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 shell 应用 系统 文件 交互 中的 处理 方法 | ||
1.一种基于Shell的应用在系统间文件交互中的处理方法,所述系统需要兼容Linux系统,包括下列步骤:
S1:参数配置:将与所述系统相关的数据源的关键信息进行参数配置,为所有数据源的IP、对接用户、数据路径、接入文件、接入频率、数据分割符提供参数化配置,同时设定工具的入参定义,支持JAVA或其他shell脚本程序调用时传入参数,也支持通过数据库自动获取参数;
所述关键信息包括数据源编号、数据源名称、交互方式、文件获取方式、数据源服务器地址、数据源服务器端口号、数据源服务器名称、数据源服务器密码、数据源服务器目录、OK文件类型、取数轮询间隔时间、本地接收路径、本地备份路径、本地数据库用户名、本地数据库密码、导入轮询间隔时间、数据分隔符,以及交互文件的相关参数;
所述相关参数包括文件编码、文件名称、数据源编号、对应库表、文件周期、是否允许重复导入、是否支持手工修改、是否批量依赖;
S2:参数获取:从数据库中获取数据源和数据文件参数,并根据参数进行初始化处理;
S3:轮询识别:根据入参中的数据源IP地址、数据源用户名、数据源密码,通过FTP或SFTP命令按数据源信息自动创建文件传输连接,并使用文件名称或OK文件作为特征自动检索源路径,以判断对应数据源的数据文件是否已经准备就绪;
S4:数据校验:在抓取数据文件后,根据OK文件 中登记的源文件条数和获取的数据文件条数进行对比,以确保获取到的数据文件完整;
S5:文件切割:利用sed命令对文件进行切割处理,将一个数据文件按文件大小切割成多个子数据文件;
S6:并发导入:对已经切割后的子数据文件或符合设置要求的源数据文件进行并发处理;
S7:结果验证:对导入完成的数据进行统计,与获取的文件记录数进行对比,确保已经处理和导入的数据完整。
2.根据权利要求1所述的基于Shell的应用在系统间文件交互中的处理方法,其特征在于:步骤S3中,使用二进制传输的方式,通过mget命令批量抓取数据文件和OK文件,并放置到本地路径下。
3.根据权利要求1所述的基于Shell的应用在系统间文件交互中的处理方法,其特征在于:步骤S4中,循环处理每个数据文件,对比OK文件中登记的数据文件与抓取到的数据文件的大小和条数,相符则写入文件监控表中,不符则跳过,继续处理下个数据文件。
4.根据权利要求1所述的基于Shell的应用在系统间文件交互中的处理方法,其特征在于:步骤S5中,对于不符合进行切割处理的其他文件,直接发起导入,使用入参中的数据库用户名、数据库密码、数据库实例、表名参数,通过封装的sqlldr或loaddata命令将数据文件的内容导入到数据库的指定的表中。
5.根据权利要求1所述的基于Shell的应用在系统间文件交互中的处理方法,其特征在于:步骤S6中,并发导入为循环处理,使用ps命令获取操作系统中关于数据导入的进程数量,在设定的并发数量内,使用nohup发起导入指令,当脚本通过ps命令获取到的进程数量大于限定值时,通过sleep命令让脚本进行睡眠,然后,再进行下一轮处理,直到所有的子数据文件完成导入。
6.根据权利要求1所述的基于Shell的应用在系统间文件交互中的处理方法,其特征在于:步骤S7中,对于初次接入的数据文件存在的错误数据,智能跳过错误数据并登记在册,优先完成正确数据的处理和入库处理,对错误数据的判断充分利用目标数据库自带的原生工具和容错机制,调整导入命令中的错误记录数参数errors,留存数据库反写的bad数据文件。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京融和友信科技股份有限公司,未经北京融和友信科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110103485.7/1.html,转载请声明来源钻瓜专利网。