首页 > Linux操作系统 > Linux操作系统 > ETL过程中怎么保证数据的准确性
整理了一篇飞狼发布的关于ETL的帖子。
这个准确性包含两个方面:数据量的准确性,数值的正确性。大致包含以下内容:
A、字符集的转换——怎么将基于不同字符集的数据转换到目的数据库。
保证目标数据库的字符集是其他源数据库字符集的超集
B、数据量的准确性——使用ETL工具的质量监控工具如何保证
至今还没什么好的方法,ETL不是数据平移--用个count统计对比就知道数据量是否正确,当一个
指标经过多次join,过滤,判断,计算以后就已经很难保证抽取过来的数据在量上是正确的。一般
采取的方法是定义抽样检测,得出一定的概率,这个概率就算是指标体系的一个误差了。
C、discard的数据怎么重新能够加载回目的数据库中(ETL已经完毕了,并不是所有的数据能够重新加载进取的)。
1)制定手工更改抽取的指标;2)启用前一天业务数据备份,在另一个环境下在人为的干预下重新跑
一次该模块的ETL流程。
D、ETL一般都是在晚上生产库结束后进行的,如果第二天发现ETL数据不对,怎么保证还能够抽取到昨天的业务数据?
对于生产库的一些关键性交易数据都要每天在抽取之前做一次逻辑的备份,类似于create table
tb_2008_1_5 as select * from ...,一旦第二天发现抽取问题,还有昨天的静态数据源;而对于
流水性质的数据来说我们可以不用做tmp表在第二天还能重新抽取,但对于那种可以删除流水的业
务系统就有点变态了:)
E、(a)一个指标的计算是经过多层次的抽取后完成的,怎么保证在抽取的过程中数值精度不丢失?(b)怎么让业务人员理解其指标?
(a).数据精度看要求多少位了,尽量db中留出足够的精度,前台展现可以进行适量的舍入和平衡.
(b).在展现层以文字或在线帮助的形式对可能会引起歧义的指标给出后台的计算公式,帮助用户更好的理解指标含义
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/8319408/viewspace-220563/ ,如需转载,请注明出处,否则将追究法律责任。