“数据按摩”是什么意思?

时间:2009-02-23 15:00:43

标签: c# .net asp.net sql database-design

我正在做一些阅读,如果我的应用程序在发送到SQL之前不需要按摩数据,就会避免使用internalStore。什么是数据按摩?

4 个答案:

答案 0 :(得分:21)

操纵,处理,改变,重新计算。简而言之,如果您只是使用raw移动数据,则无需使用internalStore,但如果您在存储之前对其执行任何操作,那么您可能需要internalStore。

答案 1 :(得分:16)

有时,移动数据的整个过程称为“ETL”,意思是“提取,转换,加载”。按摩数据是“转换”步骤,但它意味着你必须做的临时修复,以消除你遇到的问题(如按摩对你的肌肉),而不是众所周知的格式之间的转换。 p>

认为你可以做“按摩”数据包括:

  • 将源系统发出的格式更改为目标系统所期望的格式,例如:将日期格式从d / m / y更改为m / d / y。
  • 使用默认值替换缺失值,例如未给出数量时提供“0”。
  • 过滤掉目标系统中不需要的记录。
  • 检查记录的有效性,如果您尝试插入记录,则忽略或报告可能导致错误的行。
  • 规范化数据以删除应该相同的变体,例如用小写字母替换大写字母,将“01”替换为“1”。

答案 2 :(得分:4)

清理,规范化,过滤,......只需将数据从原始输入以某种方式更改为更适合您使用的形式。

答案 3 :(得分:2)

最后,当他们没有给你你想要的答案时,通过丢弃数据(或调整数字)来按摩数据的做法较少。不幸的是,进行统计分析的人经常按摩数据,以摆脱那些反驳他们理论的讨厌的异常值。由于这种做法涉及数据清理,因为按摩数据是不合适的。清理数据使其成为可以进入系统的东西(摆脱无意义的日期,如02/30/2009,因为其他人将它们存储在varchar而不是日期中,将名字和姓氏分隔成单独的字段,修复所有大写数据,在没有提供所提供的数据时,为需要数据的字段添加默认值等等。)一件事 - 按摩数据意味着不恰当地调整数据的做法。

另外,如果您没有更改任何数据,我认为拥有内部存储是不好的,我强烈不同意这一点(多年来我已经从数百个来源加载了数千个文件。首先,几乎没有任何数据不需要至少进行清洁检查。如果在第一次运行中没问题,则不能保证一年后它不会将垃圾放入您的系统。加载任何文件而不先将其放入临时表并清理它只是不负责任。

如果我们能够轻松查看我们在登台表中加载的文件内容,我们发现更容易研究数据问题。然后我们可以确切地确定哪个文件/来源为我们提供了有问题的数据,这解决了许多问题,即客户认为我们加载了他们实际发送给我们加载的错误信息。事实上,我们总是使用两个临时表,一个用于原始数据,一个用于文件,另一个用于清理后但在加载到生产表之前的数据。因此,如果我必须返回并搜索原始文件,我可以在几秒钟或几分钟内解决问题,这可能需要数小时。因为您可以保证的一件事是,如果您要导入数据,有时会质疑该数据的内容。