审计数据采集过程中容错技术探索
吴笑凡 万建国(审计署驻南京特派办)
【发布时间:2011年11月04日】
字号:【大】 【中】 【小】

审计人员在获取被审计单位业务数据的过程中遇到原始数据的质量常常参差不齐,如果不加处理使用相关的数据采集工具直接采集,通常不能有效地完成审计数据获取任务。有时仅仅是因为数据源中一条数据记录的某一个字段有问题就可能导致整张数据表的采集不能正常进行。因此掌握容错技术是审计人员在开展计算机审计过程中必备的能力。下面以使用Microsoft SQL Server采集有质量问题的数据为例,说明容错技术在审计数据采集过程中的应用。
在对“某地税数据3.mdb”中的“税票表3”时直接用Microsoft SQL Server的DTS导入导出工具,执行到最后一步,弹出错误信息对话框,如图1所示,数据库中仅新建立了一张空表,表中一条数据都没有导进去。重复尝试的结果都是一样的。

 
图1 SQL Server数据采集出错信息
那么对于有数据问题的“税票表3”应该怎么处理呢?这个问题其实可以通过Microsoft SQL Server的容错导入功能实现。容错导入的实现机制是将数据源表中没有问题的数据记录导入到目标表中,对于有问题的数据记录单独保存到文本文件中,并说明导入时出错的类型。用户可以根据出错信息修正出错数据,最后将修改后的数据以文本导入的方式追加到目标表中,以完成数据采集。
步骤一:打开DTS包编辑器
打开Microsoft SQL Server的企业管理器,从“控制台根目录”开始依次选择下级目录Microsoft SQL Servers → SQL Server组→ (Local) (Windows NT) → 数据转换服务,直到选中“本地包”,鼠标右键点击“本地包”,选择“新建包”,如图2所示,结果如图3所示。
 
图2 Microsoft SQL Server数据采集容错技术步骤一

图3  Microsoft SQL Server数据采集容错技术步骤一的结果
步骤二:选择数据源
在新建包的窗口中,从“连接”菜单中选择“2 Microsoft Access...”,如图4所示,在弹出窗口中指定待采集文件“某地税数据3.mdb”,结果如图5所示。
 
图4 Microsoft SQL Server数据采集容错技术步骤二

图5 Microsoft SQL Server数据采集容错技术步骤二的结果
步骤三:选择目标数据库
在新建包的窗口中,从“连接”菜单中选择“1 Microsoft OLE DB Provider for SQL Server...”,如图6所示,在弹出窗口中指定目标数据库为Microsoft SQL Server数据库“计算机审计”,结果如图7所示。
 
图6 Microsoft SQL Server数据采集容错技术步骤三

图7 Microsoft SQL Server数据采集容错技术步骤三的结果
步骤四:添加转换数据任务
在新建包的窗口中,从“任务”菜单中选择“3 转换数据任务...”,如图8所示,然后首先点击窗口区的Microsoft Access图标作为“源连接”,再点击窗口区的Microsoft OLE DB Provider for SQL Server图标作为“目的连接”,形成从源连接指向目的连接的右箭头,如图9所示。
 
图8 Microsoft SQL Server数据采集容错技术步骤四

图9 Microsoft SQL Server数据采集容错技术步骤四的结果
步骤五:配置转换数据任务
在新建包的窗口区选中代表转换数据任务的右箭头,从“包”菜单中选择“属性(P)”,如图10所示。
 
图10 Microsoft SQL Server数据采集容错技术步骤五
 弹出“转换数据任务属性”窗口,在默认的TAB页面上配置“源”的信息,可以保持默认选项不变,如图11所示。
 
图11 Microsoft SQL Server数据采集容错技术步骤五-“源”配置
切换到第2个TAB页面配置“目的”,点击“创建”按钮,弹出“创建目的表”窗口,给出创建新表的默认配置,如图12所示,点击“确定”按钮,关闭“创建目的表”窗口,回到“目的”TAB页面,如图13所示。
 
图12 Microsoft SQL Server数据采集容错技术步骤五的“目的”配置过程

图13 Microsoft SQL Server数据采集容错技术步骤五的“目的”配置
 第3个TAB页面配置“转换”,可保持默认配置,在导入大数据量的表时建议将源和目的分别作为一个整体连接起来,以提高导入效率,如图14所示。
 
图14 Microsoft SQL Server数据采集容错技术步骤五的“转换”配置
 第4个TAB页面“查找”可以保持默认配置。在最后一个TAB页面配置“选项”中指定异常错误文件的存放位置,勾选“错误文本”和“源错误行”,在“最大错误计数”中给定希望容错的个数(最大可以容错9999个),如图15所示,然后点击“确定”,完成转换数据任务属性的配置。
 
图15 Microsoft SQL Server数据采集容错技术步骤五的“选项”配置
 步骤六:容错导入
在新建包的窗口中,从“包”菜单中选择“执行(X)”,如图16所示,执行结果是成功导入了“税票表3”中140477条正确的记录,如图17所示。同时出错信息文件“1.txt”和出错数据集合“1.txt.source”被保存到指定位置。
 
图16 Microsoft SQL Server数据采集容错技术步骤六

图17 Microsoft SQL Server数据采集容错技术步骤六的结果
 步骤七:查看出错信息文件
 打开步骤四时在硬盘上保存的出错信息文件“1.txt”,从中可以看到以下的出错信息,如图18所示。
 
图18 SQL Server数据采集容错技术步骤七-查看出错信息文件
 根据出错信息,我们知道一共有2条记录未正常导入,这2条记录分别位于原文件的23939行和30373行,都在第4列“所属时期止”字段插入数值时发生了错误,错误的类型为数据溢出。
 步骤八:处理有问题的数据文件
 出错的那两行数据文件数据被保存在和“1.txt”存在的那个文件夹里,保存文件名为“1.txt.Source”。打开这文件,如图19所示。
 
图19 SQL Server数据采集容错技术步骤八-处理出错数据
 找到竖线分隔符分隔的第4列,发现数据值分别为“4/27/2209”和“7/4/2209”,从图13可知目标表的第4列“所属日期止”的数据类型为smalldatetime。从Microsoft SQL Server的联机丛书可检索出以下信息:“使用smalldatetime数据类型存储从1900年1月1日至2079 年6月6日的日期(每个数值要求4个字节的存储空间)。”因为数据值突破了数据类型的值域,因此产生了数据溢出。
 通过和被审计单位沟通,查实这两条数据的第4列“所属日期止”系填写错误,真实数据应为“4/27/2009”和“7/4/2009”。据此修改“1.txt.source”。
 步骤九:追加数据完成采集
 将修改过的以竖线分隔符的“1.txt.source”文件通过DTS导入/导出工具追加到目标数据库中的“税票表3”中,最终完成了所有140479条数据的采集,如图20所示。
 
图20 Microsoft SQL Server数据采集容错技术步骤九-追加数据完成采集
值得注意的是容错采集数据的优点就是它实现了包含错误信息的文件的正常导入;但容错采集在执行效率方面也存在一定的不足,表现为一次只能配置并导入一张表,不能实现批量采集的功能。因此在审计数据采集实践中,建议先使用DTS导入导出工具批量导入,对报错无法实现采集的表再逐一进行容错导入。(吴笑凡 万建国)
【关闭】    【打印】