专家在线:SQL Server的数据清理技术
2008-04-30 02:11
453 查看
当涉及决策的制订的时候,数据数值的准确性就非常重要了。如果数据不准确,决策制订者就有可能作出错误的假设,这会惨重的后果。在这篇贴士中,我将会列出确保数据正确性的技术,其中包括:
· 收集的确认
· 参考的完整性
· 查询表的使用
· 平衡应用程序的逻辑
· 反复核对
· 映射表
· 概要确认
· 抽查验证
· 文档规范
· NULL值管理
· 验证逻辑
· 处理异常和补救
[b]坚持列表:数据清洁技术
[b]收集的确认
确保用于报告和决策目的的数据的准确性,最简单的一种方式就是确保从一开始收集的就是准确的数据。这会让系统下游的人们生活得更轻松,因为他们不需要在导入数据的过程中编写验证逻辑。你可能会遇到一些与业务有关的困难,所以要考虑如下选项:
· 验证所有输入的数据。确保它符合一组合理的规则。
· 限制数据以自由的格式进入。使用check box或者下拉列表框来选择数据。
· 决定你如何激励雇员们提供输入准确的数据。
[b]完整性参考和约束
我很惊讶于没有使用SQL Server自带的完整性参考和约束的系统是如此之多。这些技术,在默认情况下,是确保表之间数据的准确性的一个合理方法。他们还强加了一些规则,只在一定的范围内提供准确的数据。这是查看你的数据是否是孤儿,以及是否满足业务规则的一条简单的方法。通过使用本地自带的完整性参考和约束,下游的系统就可以花更少的力气在验证依赖数据和校正违反了业务规则的数据上。
[b]查找表的利用方式
查找表提供了一种测量标准,确保应用程序使用的是一个已知数值,或者在脚本中使用的是一个临时的数值,而不是一个硬编码的数值。查找表可以防止应用程序或者用户输入不正确的数值,这样下游系统就不需要再去处理了。查找表提供了标准化的数据值,简化了下游系统数据处理的方式。
[b]平衡应用程序逻辑
在某些系统中一个常见的情况就是大量的升级或者块数据载入过程。这些过程通常比让用户输入数据更加有效率。但是业务逻辑无法忽视,所以这些处理必须采取与应用程序同样的步骤来确保业务逻辑的应用。如果没有的话,下游系统就需要识别这些没有被与应用程序数据相同的业务规则处理的数据,还需要对其进行验证。
[b]反复核对
根据数据和平台,存在一种普遍的执行检查和进行数据平衡的方法。例如,如果系统是财务驱动的,那么借方就必须等于贷方。对于制造业系统,下的订单和完成的订单必须相等。基于你的系统,判断你需要调节系统数据的哪个方面和平衡。
[b]映射表
许多负责决策的系统都从他们的一些源系统中收集数据。源系统通常有各种各样的数据映射到一个单个值上。要减轻这种现实情况,考虑在初始值和财务值之间的报告系统中构建一个映射表。这可以改善有效数值和其他超出范围的数值之间的指派。
[b]摘要验证
在摘要层面上验证数据。如果摘要数值同步了,那么就不再需要额外的验证和修补了,或者你还可以执行其他的处理来判断不正确的详细数据。在较高层次上验证数据可以是一种简单的准确的方式来确保数据的准确性。
[b]抽样调查验证
当说到良好的古老习俗,数据清洁的时候,没有什么比执行数据的抽样验证更好了。虽然这是一个手工的过程,但是经过训练的眼睛可以很快发现错误,指出修正数据的机会,避免手工处理。这是最好的方式,应该时刻想到。
[b]记录规范
要帮助判断是否发生了问题,或者上游系统中是否发生了逻辑的改变,记录规范的数值,比较当前数值与期望的正常数值。如果出现了分析,就可以判断准确数值,并且指出系统需要修正的地方。
[b]NULL值管理
如果有任何的数值会引起破坏,那一定就是NULL。对系统如何使用NULL值有一个很深刻的理解,确保每个人都理解了NULL值的意义。如果你在跨越业务或者特定的处理的不同的环境中使用NULL值,那么考虑构建一个查找表来支持业务的需要。此外,作为一个数据库管理员或者开发人员,确保你理解了你代码中的NULL是如何带来潜在的计算影响或者逻辑影响的。
[b]验证逻辑
如果你不能实现一些或者上面所有的早期处理,那么就只能在系统中建立准确性验证来保证财务报告的合理性。这个处理应该从分析各个系统的数据开始,最后归结为一个意见一致的数值集合。一种方式就是将已知的数值映射到一个统一的数据集上。这应该可以改善数据清洁的过程。然后,你可以单独修正这些数值。一旦你从业务或者处理的角度确认了问题的位置,你就可以从技术的角度解决它们了,使用SQL Server中的Integration Services 或者 Data Transformation Services,以及客户逻辑来实现你的需求。
[b]异常处理和补救
现实情况就是,在数据清理过程中会出现一些异常情况——特别是当你在几个脱节的系统中工作的时候,正确预期和处理这些异常。在数据清理过程中,为错误或者异常创建单独的一些表。根据数据,构建一个分析这个数据并更新SQL Server中Integration Services 或者Data Transformation Services数据清理代码的过程,以此来满足你的需要。记住,如果一种情况引起了异常,那么最后的结果通常会是一种业务案例,这是无法预期的。
· 收集的确认
· 参考的完整性
· 查询表的使用
· 平衡应用程序的逻辑
· 反复核对
· 映射表
· 概要确认
· 抽查验证
· 文档规范
· NULL值管理
· 验证逻辑
· 处理异常和补救
[b]坚持列表:数据清洁技术
[b]收集的确认
确保用于报告和决策目的的数据的准确性,最简单的一种方式就是确保从一开始收集的就是准确的数据。这会让系统下游的人们生活得更轻松,因为他们不需要在导入数据的过程中编写验证逻辑。你可能会遇到一些与业务有关的困难,所以要考虑如下选项:
· 验证所有输入的数据。确保它符合一组合理的规则。
· 限制数据以自由的格式进入。使用check box或者下拉列表框来选择数据。
· 决定你如何激励雇员们提供输入准确的数据。
[b]完整性参考和约束
我很惊讶于没有使用SQL Server自带的完整性参考和约束的系统是如此之多。这些技术,在默认情况下,是确保表之间数据的准确性的一个合理方法。他们还强加了一些规则,只在一定的范围内提供准确的数据。这是查看你的数据是否是孤儿,以及是否满足业务规则的一条简单的方法。通过使用本地自带的完整性参考和约束,下游的系统就可以花更少的力气在验证依赖数据和校正违反了业务规则的数据上。
[b]查找表的利用方式
查找表提供了一种测量标准,确保应用程序使用的是一个已知数值,或者在脚本中使用的是一个临时的数值,而不是一个硬编码的数值。查找表可以防止应用程序或者用户输入不正确的数值,这样下游系统就不需要再去处理了。查找表提供了标准化的数据值,简化了下游系统数据处理的方式。
[b]平衡应用程序逻辑
在某些系统中一个常见的情况就是大量的升级或者块数据载入过程。这些过程通常比让用户输入数据更加有效率。但是业务逻辑无法忽视,所以这些处理必须采取与应用程序同样的步骤来确保业务逻辑的应用。如果没有的话,下游系统就需要识别这些没有被与应用程序数据相同的业务规则处理的数据,还需要对其进行验证。
[b]反复核对
根据数据和平台,存在一种普遍的执行检查和进行数据平衡的方法。例如,如果系统是财务驱动的,那么借方就必须等于贷方。对于制造业系统,下的订单和完成的订单必须相等。基于你的系统,判断你需要调节系统数据的哪个方面和平衡。
[b]映射表
许多负责决策的系统都从他们的一些源系统中收集数据。源系统通常有各种各样的数据映射到一个单个值上。要减轻这种现实情况,考虑在初始值和财务值之间的报告系统中构建一个映射表。这可以改善有效数值和其他超出范围的数值之间的指派。
[b]摘要验证
在摘要层面上验证数据。如果摘要数值同步了,那么就不再需要额外的验证和修补了,或者你还可以执行其他的处理来判断不正确的详细数据。在较高层次上验证数据可以是一种简单的准确的方式来确保数据的准确性。
[b]抽样调查验证
当说到良好的古老习俗,数据清洁的时候,没有什么比执行数据的抽样验证更好了。虽然这是一个手工的过程,但是经过训练的眼睛可以很快发现错误,指出修正数据的机会,避免手工处理。这是最好的方式,应该时刻想到。
[b]记录规范
要帮助判断是否发生了问题,或者上游系统中是否发生了逻辑的改变,记录规范的数值,比较当前数值与期望的正常数值。如果出现了分析,就可以判断准确数值,并且指出系统需要修正的地方。
[b]NULL值管理
如果有任何的数值会引起破坏,那一定就是NULL。对系统如何使用NULL值有一个很深刻的理解,确保每个人都理解了NULL值的意义。如果你在跨越业务或者特定的处理的不同的环境中使用NULL值,那么考虑构建一个查找表来支持业务的需要。此外,作为一个数据库管理员或者开发人员,确保你理解了你代码中的NULL是如何带来潜在的计算影响或者逻辑影响的。
[b]验证逻辑
如果你不能实现一些或者上面所有的早期处理,那么就只能在系统中建立准确性验证来保证财务报告的合理性。这个处理应该从分析各个系统的数据开始,最后归结为一个意见一致的数值集合。一种方式就是将已知的数值映射到一个统一的数据集上。这应该可以改善数据清洁的过程。然后,你可以单独修正这些数值。一旦你从业务或者处理的角度确认了问题的位置,你就可以从技术的角度解决它们了,使用SQL Server中的Integration Services 或者 Data Transformation Services,以及客户逻辑来实现你的需求。
[b]异常处理和补救
现实情况就是,在数据清理过程中会出现一些异常情况——特别是当你在几个脱节的系统中工作的时候,正确预期和处理这些异常。在数据清理过程中,为错误或者异常创建单独的一些表。根据数据,构建一个分析这个数据并更新SQL Server中Integration Services 或者Data Transformation Services数据清理代码的过程,以此来满足你的需要。记住,如果一种情况引起了异常,那么最后的结果通常会是一种业务案例,这是无法预期的。
相关文章推荐
- 【大数据技术干货】阿里云伏羲(fuxi)调度器FuxiMaster功能简介(三) 针对在线服务的资源强稳定
- 利用Oracle在线重定义Online Redefinition清理历史数据
- 大数据技术专家王家林老师所有视频合集
- 应邀参加51CTO专家座谈门诊——驱动开发技术探析【2008.11.20在线】
- 《ArcGIS Runtime SDK for Android开发笔记》——离在线一体化技术:离线矢量数据同步
- 2016中国大数据技术大会(BDTC)——130位技术专家演讲
- SQL Server 2005数据同步技术遇到的问题及解决方案
- 数据爬虫技术实例:大快在线爬虫安装教程
- 【在线大数据处理】数据集成与处理技术精华汇总
- 《ArcGIS Runtime SDK for Android开发笔记》——离在线一体化技术:离线矢量数据编辑
- 干货:阿里云高级技术专家李金波:我们该如何做好一个数据仓库?
- 【大数据技术干货】阿里云伏羲(fuxi)调度器FuxiMaster功能简介(三) 针对在线服务的资源强稳定
- 海洋工作室——网站建设专家:【原】在线订餐系统,可商业化!订单系统共享啦!!应用技术: AJAX, LINQ, MASTERPAGE, ASP.NET
- 一起谈.NET技术,ASP.NET用SQL Server中的数据来生成JSON字符串
- 使用SQL SERVER复制技术,同步两台SQL Server数据
- 利用SQL Server复制技术实现数据同步更新
- 从SQL Server向Oracle迁移的技术实现方案(一)数据类型的迁移
- 人工智能在线特征系统中的数据存取技术
- 《ArcGIS Runtime SDK for Android开发笔记》——离在线一体化技术:离线矢量数据下载