随着信息技术突飞猛进的发展,信息化审计的地位日益凸显,而数据审计作为信息化审计的重要组成部分,其审计技术和方法的创新决定着信息化审计工作的成效。 根据审计署发布的数据审计指南,数据审计是指审计机关通过数据准备和数据分析进行审计的行为,这指出了数据审计的两个重要内容,即数据准备和数据分析。信息技术的飞速发展带来了信息爆炸的问题,对数据审计的影响体现在工作中需要处理的数据近指数增长。随着审计全覆盖的推进,该问题将愈加明显。如何对海量数据进行整理分析并从中发现审计线索,成为亟待解决的问题。 ETL技术及实现方式 ETL是英文Extract-Transform-Load的缩写,用来描述将数据从来源端经过抽取(Extract)、转换(Transform)、加载(Load)至目的端的过程。ETL常用于数据仓库领域,目的是将分散、零乱、标准不统一的数据,按照统一的规则集成整合,完成数据从数据源向目标数据仓库的转化。 ETL的实现一般有三种方式。一是借助ETL工具。典型的ETL工具有IBM InfoSphere DataStage(简称Data Stage)、Oracle Warehouse Builder和Microsoft SQL Server DTS等,借助ETL工具可以快速建立起ETL工程,屏蔽复杂的编码工作,使ETL开发专注于逻辑规则的实现,提升开发效率,但纯粹借助工具缺乏灵活性。二是编写SQL脚本。这种方式的最大优点是处理灵活,能够最大程度上体现ETL开发人员的思路,但该方式对ETL开发人员技术要求高,编写脚本难度大。三是上述两种方式结合。将ETL工具与SQL脚本方式结合,提高ETL开发效率又不失灵活性。实际上,目前部分ETL工具中已经提供了可供开发人员编写SQL脚本的模块,技术上实现了两种方式的结合。 ETL工具的具体应用 结合DataStage软件,本文谈ETL技术在数据审计中的应用。 (一)DataStage的工作模式 DataStage是通过设计job来实现ETL功能的,job的设计与普通的IDE设计工具类似,通过拖拽控件(Stage)并添加脚本来完成。DataStage提供了种类功能繁多的控件,将不同功能的控件按照数据处理的需求通过一定方式加以组合,形成job进行编译运行,从而实现对数据的抽取转换加载。DataStage除使用图形化界面开发,易于操作和管理维护外,还具有支持异构数据库、采用并行机制提高数据处理速度、减少源数据库服务器压力以及支持自定义开发组件等优点。 (二)数据准备中的应用 数据准备阶段包括对审计对象的数据进行采集、整理、加工,最终形成便于审计人员开展数据分析的基础。 目前,审计工作中从审计对象采集的后台数据主要包括Oracle数据库文件、SQL Server数据库文件以及Excel、Txt文本文件等,DataStage对这些常见的数据源均有相应的组件进行支持。假设源数据库文件已经在相应的数据库系统中完成了恢复,在DataStage中使用前只需先进行ODBC配置,然后在开发时选择相应的源数据组件Oracle Connector、ODBC Connector即可。除Oracle和SQL Server外,DataStage还支持DB2、Sysbase等数据库。Excel和Txt文本文件也可以调用Sequence File Stage和Unstructured Data Stage进行数据读取。 接下来是数据的整理和标准化工作,即清洗和转换数据。数据清洗的主要目的是为了过滤不符合要求的数据,根据过滤结果由业务人员判断直接删除或是由数据提供单位补充修正后重新抽取。 不符合要求的数据主要包括不完整的数据、错误数据和重复数据。不完整的数据主要指数据中部分应有的信息缺失,如工商数据中的股东持股比例信息缺失、银行流水数据中的对手信息缺失等,DataStage中可以使用Transformer组件调用内置函数IsNull对空值数据进行筛选。错误数据主要指因业务系统不健全,在数据录入时没有经过检验检查直接写入数据库后导致的数据错误,如应为数字格式的金额字段填入了文字,日期格式的字段值录入不规范等,同样可以使用Transformer组件调用参数类型匹配函数IsValid进行匹配,更复杂的逻辑可以开发自定义函数Routines来处理。重复数据则是指出现了一个或多个字段值重复的情况,这种情况可使用Remove Duplicates Stage直接对数据去重。 完成数据的清洗后,按照一定的规则,将数据进行转换,形成便于数据分析人员使用的标准表。数据转换主要包括表连接、合并、排序等,DataStage都提供了相应的功能组件Join、Merge、Sort等来完成这一工作,Transformer组件也可以通过调用一系列内置函数和自定义函数来完成数据转换。 以将某银行业务数据按标准化规则整理成银行流水标准表为例,简述DataStage在数据准备中的应用(限于篇幅不赘述DataStage使用细节)。假设银行业务数据中包含对公交易信息表(含客户编号、交易时间、交易金额、账户余额、摘要等字段)和对公客户信息表(含客户编号、客户名称、客户类型等字段),需进行数据采集整理后形成对公交易标准表(含客户名称、交易时间、交易金额、账户余额、摘要等字段)。