最近项目需要用Perl对文本数据进行加工处理,再一次Perl的高效快捷让我爱不释手。
平时我们习惯用SQL文进行数据的增删查改处理,在没有DB的情况下,配上恰当的算法,Perl的
文件处理能力同样能够写出同SQL一样高效的小程序。
【条件过滤】
将条件参数放入文本中,Perl逐行读该文件,在以key/value的形式存入hash。
打开需要过滤的文件,perl逐行读该文件,取出条件项目字段,判断该字段是否在hash中存在,
如果存在,将本行数据写入过滤后的文本中。
【Interface数据作成】
如果数据仓库在A系统中,一般A系统将会向下流N个系统
以文件数据的形式提供Interface。从格式上讲:Interface文件一般根据“固定/可变,编码,分隔符,双引号”的
不同而不同;从内容上讲则有全件与差分的区别。下流系统全件数据更新时:会删除当前所以旧数据,再将本
次文件中所以记录追加到相应表中;下流系统差分数据更新时:会根据提供数据记录的“删除,变更,追加”区
分对相应的表做处理。全件数据一般用一条SQL可将执行结果导到文件中。而差分数据则需要本次全件数据
同上次数据逐行进行比较,进而将不同的数据(删除、添加、更新)输出到差分文件中。
本次项目的差分数据作成算法非常巧妙,值得留下记录。
假设A文件为上次全件数据,B文件为本次全件数据。
①.A文件和B文件,按照差分比较用主键进行升序排序。
②.取A文件和B文件第一行
③.当A和B文件都处理完成时终止循环
・A文件第一行=B文件第一行
⇒过滤,依次读A和B文件下一行
・A文件第一行≠B文件第一行 && A文件主键 = B文件主键
⇒将B文件的这条数据以更新区分的形式输出到差分文件中,A和B文件依次读取下一行
・A文件第一行≠B文件第一行 && A文件主键 > B文件主键
⇒将B文件的这条数据以追加区分的形式输出到差分文件中,B文件读取下一行
・A文件第一行≠B文件第一行 && A文件主键 < B文件主键
⇒将A文件的这条数据以删除区分的形式输出到差分文件中,A文件读取下一行
未完待续
相关推荐
源代码中提供了perl如何处理大的XML文件的方法,并在文件中对文件进行基于正则表达式的替换操作以形成新的文件。此方法既能极大的降低内存消耗,又提高了读取速度。
使用perl进行查找和替换.pdf使用perl进行查找和替换.pdf
自己编写程序,对TCGA的临床信息进行整理和提取,便于做生存分析
perl语言对时间进行处理,具体运行代码见附件文档。
Perl脚本语言的基本数据结构的实现,用于快速编程
使用perl进行面向对象编程。只含有包、模块以及类的内容,共两章
Perl处理剪贴板的一个简单示例,使用Perl5
perl脚本perl脚本perl脚本perl脚本
perl 处理文本能力之强大,运用正则表达式更是如虎添翼。
Perl的实际应用,如何自动化下载服务器端数据到本地。
Perl定期抓取PM2.5数据示例 使用Perl抓取网页数据,并进行弹窗展示
使用 Emacs 进行 Perl 编程 this is for beginner.
用Perl语言进行Socket编程,Perl调用Socket API
神奇的perl-最佳PERL入门教程与CGI编程_使用Perl的PDF版本,入门perl很好的资料
perl语言作为一种胶水语言已经被业界流传很近,perl的处理文本的能力也是众所周知的,次书,详细描述了多种处理xml文件的包极其大量的范例。
本书循序渐进、深入浅出地介绍了Perl的主要特性及用Perl进行CGI编程的知识。全书包括24个学时内容和一个附录,共分四部分。第一部分主要讲述Perl的基本概念,第二部分重点介绍Perl的一些高级特性,第三部分介绍如何...
Perl进行定期弹窗提醒 Windows下定期弹窗提醒的示例
使用Perl对策进行HTML转义 1 Perl 2 Perl转义对策 3 Perl对策转义XSS实例演示 目录 Perl Perl,一种功能丰富的计算机程序语言,运行在超过100种计算机平台上,适用广泛,从大型机到便携设备,从快速原型创建到大规模...
本书循序渐进、深入浅出地介绍了Perl的主要特性及用Perl进行CGI编程的知识。全书包括24个学时内容和一个附录,共分四部分。第一部分主要讲述Perl的基本概念,第二部分重点介绍Perl的一些高级特性,第三部分介绍如何...
oracle数据库同步perl脚本示例 其中有2个文件,一个是 perl同步脚本,另一个是存储过程;...大致思路是:perl脚本从数据库A同步数据至库B的临时表中,再通过存储过程将库B中的临时数据过滤导入正式数据当中。