我们的一位客户希望检查每个表中的每个数据库记录。 问题是,我们的数据库目前有数十个表(大于50个),每个表已经有数千个记录。
我们的客户想要做的基本检查是,检查每个表哪些列具有空值。我们的客户认为,如果平台用户只填写基本输入,则可能意味着用户没有充分利用平台中的可用输入。
满足此要求的最佳方式是什么?
我已经考虑过从统计上做这个:
答案 0 :(得分:2)
我知道这并没有真正回答你提出的问题,但我认为只检查“null”是要求的开始,但不太可能是结束。
在我完成大量数据的大多数项目中,我们最终构建了一个验证框架,该框架具有每个表的业务逻辑以及每个表中的每个字段。
例如,我们发现许多记录都包含伪造的电子邮件地址,因此我们编写了一个脚本来验证它们(最初非常简单,检查域是否存在,并且不是“test.com”之一,“ aaa.com“,”qwerty.com“等)。我们还意识到我们的电话号码是虚假的,所以我们检查了电话号码与明显匹配的电话号码(123-456789)。
这是背后的痛苦,但如果企业想要了解数据的质量,那么这是唯一的方法。
我们最终编写了几十个小的SQL脚本,每个脚本都会出现一个“可疑”记录列表,以及怀疑它们的原因。它不漂亮,但它易于扩展,易于运行,为业务提供了足够的信息来做出决策。