CN104331309B - 一种配置实现数据加载项shell的管理方法及系统 - Google Patents
一种配置实现数据加载项shell的管理方法及系统 Download PDFInfo
- Publication number
- CN104331309B CN104331309B CN201410602519.7A CN201410602519A CN104331309B CN 104331309 B CN104331309 B CN 104331309B CN 201410602519 A CN201410602519 A CN 201410602519A CN 104331309 B CN104331309 B CN 104331309B
- Authority
- CN
- China
- Prior art keywords
- data
- allocation list
- shell
- script
- loading
- 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
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及一种配置实现数据加载项shell的管理方法及系统,其方法包括:步骤1:加载各个脚本用于创建配置表,配置表中保存数据相关信息;步骤2:创建shell脚本,shell脚本调用配置表中数据相关信息,执行sqlloader处理数据相关信息得到加载数据,将加载数据导入数据库;步骤3:调用配置表中对应数据库中加载数据的操作语句;步骤4:执行操作语句,得到反馈数据;步骤5:将反馈数据发送到配置表中的对应字段中。减少工作繁复程度;通过配置表的执行结果管理,对各个脚本进行统一维护,减少后期维护工作,开发完毕之后,不需要再维护每一个shell脚本,同时在crontab也不会因脚本的增加而改变。
Description
技术领域
本发明涉及一种配置实现数据加载项shell的管理方法及系统,属于数据库与shell编程领域。
背景技术
Oracle大数据量的加载往往是通过sqlloader来加载的。
sqlloader的加载需要满足以下条件:a、创建一个对应表的ctl文件;b、准备入库的数据文件;c、执行sqlloade命令的shell文件。
定时加载数据则需要将上述sqlloader所需的条件都在执行前准备好,然后通过将执行sqlloade命令的shell文件挂到crontab上面,定时执行。
目前数据加载shell脚本都是单一的脚本,也就是有一个数据文件接口就要编写一个对应的shell、ctl文件,同时需要将此脚本挂到crontab上面。如果后期需要对版本进行升级改造,就需要修改针对需要改造的每一个shell脚本。这样,不但需要重复开发不同的脚本,对于大量的脚本也不好维护,对于软件的开发与维护都不方便。
另外大量的shell脚本如果需要手动执行,会很不方便。而且对于执行后的情况也不明了,每次执行完后,都需要对各个脚本的执行结果进行检查。造成后期维护成本的浪费。
传统开发模式存在以下缺点:
(1)开发工作繁琐:每增加一个数据文件接口就需要同时编写一个shell脚本、一个CTL文件,而且在测试环境以及生产环境的环境变量也不尽相同,所以同一个脚本在测试和在生产也不完全一样,测试上面测试通过之后还要在生产上面修改再进行测试,工作十分繁琐。
(2)工作重复性强:每增加一个数据文件接口就需要同时编写一个shell脚本、一个CTL文件,但是每一个shell脚本的结构内容都大致相似,那开发人员每开发一个shell脚本,都有80%的重复性动作。
(3)后期维护困难:每个脚本都需要逐一的执行,执行完毕后还需要针对各个脚本的不同结果进行检测,查看脚本执行的是否准确。
发明内容
本发明所要解决的技术问题是提供一种提升效率、实现开发人性化的通过数据库配置实现数据加载项shell的管理方法。
本发明解决上述技术问题的技术方案如下:一种配置实现数据加载项shell的管理方法,具体包括以下步骤:
步骤1:加载各个脚本用于创建配置表,配置表中保存数据相关信息;
步骤2:创建shell脚本,shell脚本调用配置表中数据相关信息,执行sqlloader处理数据相关信息得到加载数据,将加载数据导入数据库;
步骤3:根据名称对应关系调用配置表中对应数据库中加载数据的操作语句;
步骤4:执行操作语句,得到反馈数据;
步骤5:将反馈数据发送到配置表中的对应字段中,完成对数据加载项shell的管理。
本发明的有益效果是:通过配置表对资源、个性化操作语句的统一管理,对各个需要开发的脚本进行统一配置、统一管理,减少工作繁复程度,每增加一个数据文件接口不需要开发shell脚本以及CTL文件,只需要配置数据表即可;通过配置表的执行结果管理,对各个脚本进行统一维护,减少后期维护工作,开发完毕之后,后期人员只需要维系配置表即可,不需要再维护每一个shell脚本,同时在crontab也不会因脚本的增加而改变。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步,所述步骤1中创建配置表采用的方法是统一对各个脚本的对应字段进行配置,使得通过配置表即可统一管理与维护需要加载的数据,并通过统一的脚本进行执行。
进一步,所述步骤2中shell脚本调用配置表中的信息时,每次调用一条。
进一步,所述配置表中包括ctl文件、表名、数据文件名和数据库名称等内容。
进一步,所述配置表中还包括记录数据脚本携带的数据条数、加载失败的数据条数、已经加载成功的数据条数以及加载开始时间与加载结束时间等信息。
采用上述进一步方案的有益效果是,让后期维护人员在一个表中可以看到所有的数据加载情况,大大的减少了后期维护工作。
本发明所要解决的技术问题是提供一种提升效率、实现开发人性化的通过数据库配置实现数据加载项shell的管理系统。
本发明解决上述技术问题的技术方案如下:一种配置实现数据加载项shell的管理系统,包括配置表模块、操作模块、调用模块、执行语句模块和反馈模块;
所述配置表模块用于加载各个脚本用于创建配置表,配置表中保存数据相关信息;
所述操作模块用于创建shell脚本,shell脚本调用配置表中数据相关信息,执行sqlloader处理数据相关信息得到加载数据,将加载数据导入数据库;
所述调用模块用于根据名称对应关系调用配置表中对应数据库中加载数据的操作语句;
所述执行语句模块用于执行操作语句,得到反馈数据;
所述反馈模块用于将反馈数据发送到配置表中的对应字段中,完成对数据加载项shell的管理。
本发明的有益效果是:通过配置表对资源、个性化操作语句的统一管理,对各个需要开发的脚本进行统一配置、统一管理,减少工作繁复程度,每增加一个数据文件接口不需要开发shell脚本以及CTL文件,只需要配置数据表即可;通过配置表的执行结果管理,对各个脚本进行统一维护,减少后期维护工作,开发完毕之后,后期人员只需要维系配置表即可,不需要再维护每一个shell脚本,同时在crontab也不会因脚本的增加而改变。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步,所述配置表模块中创建配置表采用的方法是统一对各个脚本的对应字段进行配置,使得通过配置表即可统一管理与维护需要加载的数据,并通过统一的脚本进行执行。
进一步,所述操作模块中shell脚本调用配置表中的信息时,每次调用一条。
进一步,所述配置表中包括ctl文件、表名、数据文件名和数据库名称等内容。
进一步,所述配置表中还包括记录数据脚本携带的数据条数、加载失败的数据条数、已经加载成功的数据条数以及加载开始时间与加载结束时间等信息。
采用上述进一步方案的有益效果是,让后期维护人员在一个表中可以看到所有的数据加载情况,大大的减少了后期维护工作。
附图说明
图1为本发明具体实施例1所述的一种配置实现数据加载项shell的管理方法流程图;
图2为本发明具体实施例1所述的一种配置实现数据加载项shell的管理系统结构框图;
图3为本发明具体实施例2所述的一种配置实现数据加载项shell的管理方法流程图。
附图中,各标号所代表的部件列表如下:
1、配置表模块,2、操作模块,3、调用模块,4、执行语句模块,5、反馈模块。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
如图1所示,为本发明具体实施例1所述的一种配置实现数据加载项shell的管理方法,具体包括以下步骤:
步骤1:加载各个脚本用于创建配置表,配置表中保存数据相关信息;
步骤2:创建shell脚本,shell脚本调用配置表中数据相关信息,执行sqlloader处理数据相关信息得到加载数据,将加载数据导入数据库;
步骤3:根据名称对应关系调用配置表中对应数据库中加载数据的操作语句;
步骤4:执行操作语句,得到反馈数据;
步骤5:将反馈数据发送到配置表中的对应字段中,完成对数据加载项shell的管理。
所述步骤1中创建配置表采用的方法是统一对各个脚本的对应字段进行配置,使得通过配置表即可统一管理与维护需要加载的数据,并通过统一的脚本进行执行。
所述步骤2中shell脚本调用配置表中的信息时,每次调用一条。
所述配置表中包括ctl文件、表名、数据文件名和数据库名称等内容。
所述配置表中还包括记录数据脚本携带的数据条数、加载失败的数据条数、已经加载成功的数据条数以及加载开始时间与加载结束时间等信息。
如图2所示,为本发明具体实施例1所述的一种配置实现数据加载项shell的管理系统,包括配置表模块1、操作模块2、调用模块3、执行语句模块4和反馈模块5;
所述配置表模块1用于加载各个脚本用于创建配置表,配置表中保存数据相关信息;
所述操作模块2用于创建shell脚本,shell脚本调用配置表中数据相关信息,执行sqlloader处理数据相关信息得到加载数据,将加载数据导入数据库;
所述调用模块3用于根据名称对应关系调用配置表中对应数据库中加载数据的操作语句;
所述执行语句模块4用于执行操作语句,得到反馈数据;
所述反馈模块5用于将反馈数据发送到配置表中的对应字段中,完成对数据加载项shell的管理。
所述配置表模块1中创建配置表采用的方法是统一对各个脚本的对应字段进行配置,使得通过配置表即可统一管理与维护需要加载的数据,并通过统一的脚本进行执行。
所述操作模块2中shell脚本调用配置表中的信息时,每次调用一条。
所述配置表中包括ctl文件、表名、数据文件名和数据库名称等内容。
所述配置表中还包括记录数据脚本携带的数据条数、加载失败的数据条数、已经加载成功的数据条数以及加载开始时间与加载结束时间等信息。
包括以下步骤:
(1)、资源统一管理:创建配置表,将ctl文件、表名、数据文件名、数据库名称等内容直接配置到配置表中;
(2)、通过sqlloader加载数据:编写shell脚本从配置表中取信息,每次取一条,然后执行sqlloader,将数据导入到数据库中;
(3)个性化操作语句管理:从配置表中取对加载数据的操作语句,比如删除、修改某些特定数据;
(4)执行结果管理:将加载结果回写到配置表的对应字段中。
本发明在要实现导入数据的shell脚本配置化并增加数据加载情况信息,在减少开发工作、增加灵活性、不必繁复的配置crontab以及重复性的编写shell脚本的基础上,又方便了后期维护的工作,主要技术要点如下:
1.编写可统一执行的shell总脚本,建立统一的数据接口表,保存各个脚本的个性化信息配置;
2.统一对各个脚本的对应字段进行配置,使得通过配置表即可统一管理与维护需要加载的数据,并通过统一的脚本进行执行;
3.在配置表中设计记录数据脚本携带的数据条数字段、加载失败的数据条数字段、已经加载成功的数据条数字段以及加载开始时间字段与加载结束时间字段,并在执行的过程中维护这些字段。以便于后期可对执行情况统一维护,及时了解执行方面的问题并解决。
本申请提案的关键点和欲保护点
提高开发效率:
由于实行统一配置进行开发,每增加一个数据文件接口不需要开发hell脚本以及CTL文件,只需要配置数据表即可,大大提高了开发效率,应当予以保护。
减少项目成本:
由于实行统一配置进行开发、维护,提高了开发效率,缩短了开发时间,同时也使后期维护工作变得可以统一了解,减少后期维护成本,以项目成本的角度出发,减少了项目支持节约了成本,应当予以保护。
提高客户满意度:
由于实行统一配置进行开发、维护,提高了开发效率,缩短了开发时间,能够及时满足用户的新增需求,并能通过表字段信息及时了解加载情况,对有问题的数据及时进行处理,提高用户的满意度,应当予以保护。
与现有技术相比,本发明存在以下技术优点
减少工作繁复程度,每增加一个数据文件接口不需要开发shell脚本以及CTL文件,只需要配置数据表即可;
减少后期维护工作,开发完毕之后,后期人员只需要维系配置表即可,不需要再维护每一个shell脚本,同时可通过表中的加载情况字段,及时了解加载情况,有利于多脚本的后期维护工作。
本发明在要实现导入数据的shell脚本配置化并增加数据加载情况信息,在减少开发工作、增加灵活性、不必繁复的配置crontab以及重复性的编写shell脚本的基础上,又方便了后期维护的工作,如图3所示,本发明具体实施2方案如下:
1.根据数据文件接口建立数据文件导致的数据接口表;
2.将【'脚本序列ID'、'链接数据库的标签'、'表名'、'表类型0为普通1为月表'、'表描述'、'加载数据数据文件末尾时间'、'文件名称除去日月类型和时间'、'数据类型0为日数据1为月数据2为特殊的数据文件没有MON和DAY字段'、'表的时间字段如果没有则填1'、'做删除和插入操作时间用到的时间必须与date_name一致如果没有则填1'、'经分文件存放路径'、'经分文件备份路径'、'加载数据日志路径'、'地市类型0不更新1转换为group_id 2旧的地市转换为新的地市'、'表地市字段名称'、'表区县字段名称'、'状态Y加载N不加载'、'ctl文件的内容'、'其他操作如:调用存储过程'、'文件及路径名称不需要填写数据加载后自动更新'、'数据量不需要填写数据加载后自动更新'、'加载成功的数据量不需要填写数据加载后自动更新'、加载失败的数据量不需要填写数据加载后自动更新'、加载开始时间不需要填写数据加载后自动更新'、加载结束时间不需要填写数据加载后自动更新'】字段配置到通用加载脚本配置表;
3.编写总的加载shell B,在B里面直接读取通用加载脚本配置表的信息,动态循环加载数据;
4.将B一个shell脚本挂在crontab上面,如果新增数据加载脚本无需重新开发脚本以及修改crontab;
5.数据加载过后,脚本会自动将加载后的。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种配置实现数据加载项shell的管理方法,其特征在于,具体包括以下步骤:
步骤1:加载各个脚本用于创建配置表,配置表中保存数据相关信息;
步骤2:创建shell脚本,shell脚本调用配置表中数据相关信息,执行sqlloader处理数据相关信息得到加载数据,将加载数据导入数据库;
步骤3:根据名称对应关系调用配置表中对应数据库中加载数据的操作语句;
步骤4:执行操作语句,得到反馈数据;
步骤5:将反馈数据发送到配置表中的对应字段中,完成对数据加载项shell的管理。
2.根据权利要求1所述的一种配置实现数据加载项shell的管理方法,其特征在于,所述步骤1中创建配置表采用的方法是统一对各个脚本的对应字段进行配置,使得通过配置表即可统一管理与维护需要加载的数据,并通过统一的脚本进行执行。
3.根据权利要求2所述的一种配置实现数据加载项shell的管理方法,所述步骤2中shell脚本调用配置表中的信息时,每次调用一条。
4.根据权利要求1-3任一项所述的一种配置实现数据加载项shell的管理方法,所述配置表中包括ctl文件、表名、数据文件名和数据库名称。
5.根据权利要求4所述的一种配置实现数据加载项shell的管理方法,所述配置表中还包括记录数据脚本携带的数据条数、加载失败的数据条数、已经加载成功的数据条数以及加载开始时间与加载结束时间。
6.一种配置实现数据加载项shell的管理系统,其特征在于,包括配置表模块、操作模块、调用模块、执行语句模块和反馈模块;
所述配置表模块用于加载各个脚本用于创建配置表,配置表中保存数据相关信息;
所述操作模块用于创建shell脚本,shell脚本调用配置表中数据相关信息,执行sqlloader处理数据相关信息得到加载数据,将加载数据导入数据库;
所述调用模块用于根据名称对应关系调用配置表中对应数据库中加载数据的操作语句;
所述执行语句模块用于执行操作语句,得到反馈数据;
所述反馈模块用于将反馈数据发送到配置表中的对应字段中,完成对数据加载项shell的管理。
7.根据权利要求6所述的一种配置实现数据加载项shell的管理系统,其特征在于,所述配置表模块中创建配置表采用的方法是统一对各个脚本的对应字段进行配置,使得通过配置表即可统一管理与维护需要加载的数据,并通过统一的脚本进行执行。
8.根据权利要求7所述的一种配置实现数据加载项shell的管理系统,其特征在于,所述操作模块中shell脚本调用配置表中的信息时,每次调用一条。
9.根据权利要求6-8任一项所述的一种配置实现数据加载项shell的管理系统,其特征在于,所述配置表中包括ctl文件、表名、数据文件名和数据库名称。
10.根据权利要求9所述的一种配置实现数据加载项shell的管理系统,其特征在于,所述配置表中还包括记录数据脚本携带的数据条数、加载失败的数据条数、已经加载成功的数据条数以及加载开始时间与加载结束时间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410602519.7A CN104331309B (zh) | 2014-10-31 | 2014-10-31 | 一种配置实现数据加载项shell的管理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410602519.7A CN104331309B (zh) | 2014-10-31 | 2014-10-31 | 一种配置实现数据加载项shell的管理方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104331309A CN104331309A (zh) | 2015-02-04 |
CN104331309B true CN104331309B (zh) | 2018-04-17 |
Family
ID=52406043
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410602519.7A Active CN104331309B (zh) | 2014-10-31 | 2014-10-31 | 一种配置实现数据加载项shell的管理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104331309B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104866568A (zh) * | 2015-05-22 | 2015-08-26 | 国云科技股份有限公司 | 一种大数据文件快速导入关系型数据库的方法 |
CN107798120B (zh) * | 2017-11-10 | 2022-01-21 | 中国银行股份有限公司 | 一种数据转换方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1816043A (zh) * | 2005-02-06 | 2006-08-09 | 华为技术有限公司 | 基于组件复用的脚本生成装置及其方法 |
CN1967475A (zh) * | 2006-04-29 | 2007-05-23 | 华为技术有限公司 | 脚本命令行开发系统 |
CN102323945A (zh) * | 2011-09-02 | 2012-01-18 | 南京中兴力维软件有限公司 | 一种基于sql的数据库管理方法和装置 |
WO2012174800A1 (zh) * | 2011-06-23 | 2012-12-27 | 中兴通讯股份有限公司 | 一种网管数据采集方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8549114B2 (en) * | 2002-06-12 | 2013-10-01 | Bladelogic, Inc. | Method and system for model-based heterogeneous server configuration management |
-
2014
- 2014-10-31 CN CN201410602519.7A patent/CN104331309B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1816043A (zh) * | 2005-02-06 | 2006-08-09 | 华为技术有限公司 | 基于组件复用的脚本生成装置及其方法 |
CN1967475A (zh) * | 2006-04-29 | 2007-05-23 | 华为技术有限公司 | 脚本命令行开发系统 |
WO2012174800A1 (zh) * | 2011-06-23 | 2012-12-27 | 中兴通讯股份有限公司 | 一种网管数据采集方法和装置 |
CN102323945A (zh) * | 2011-09-02 | 2012-01-18 | 南京中兴力维软件有限公司 | 一种基于sql的数据库管理方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104331309A (zh) | 2015-02-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106126204B (zh) | 一种基于模块化设计的信息系统迭代式扩展开发方法 | |
US10628152B2 (en) | Automatic generation of microservices based on technical description of legacy code | |
US9280554B2 (en) | Using confidence values for synchronizing file systems | |
WO2019029160A1 (zh) | 应用程序构建方法、系统、计算机设备和存储介质 | |
US8296734B2 (en) | System and method for testing a software product | |
CN104615466B (zh) | 一种云平台部署方法和系统 | |
US20160170719A1 (en) | Software database system and process of building and operating the same | |
CN105022656B (zh) | 虚拟机快照管理方法和装置 | |
CN106095620A (zh) | 一种嵌入式Linux存储分区的开发方法 | |
CN103761107B (zh) | 软件包定制的装置及方法 | |
US11244025B2 (en) | Systems and methods for updating data pipelines | |
CN101901265A (zh) | 一种虚拟试验数据对象化管理系统 | |
US20170371631A1 (en) | Globalization template manager for automated globalization enablement on development operations | |
US20170371687A1 (en) | Automated globalization enablement on development operations | |
US10678572B2 (en) | Framework for automated globalization enablement on development operations | |
CN102262684A (zh) | 移动终端网页页面生成方法及装置 | |
CN106227550A (zh) | 一种国际化图形用户界面的生成方法、系统及计算机 | |
CN102054041A (zh) | 元数据升级方法和系统 | |
CN104331309B (zh) | 一种配置实现数据加载项shell的管理方法及系统 | |
US20170235558A1 (en) | System and method for recapture and rebuild of application definition from installed instance | |
CN111158743A (zh) | 大数据运维管理平台 | |
CN113032257B (zh) | 自动化测试方法、装置、计算机系统和可读存储介质 | |
WO2002046909A1 (en) | Automatically deploy and upgrade an application based on markup language application definition | |
US20190303138A1 (en) | Apparatus and method for versioning, packaging, migrating and comparing artifacts of packaged and enterprise applications using virtual file systems | |
CN104881455B (zh) | 一种基于mysql的结构差异处理方法及系统 |
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 |