我主要处理所谓的"大数据";ETL和分析部分。可以说,我经常面临的挑战之一是找到一种"测试我的数据"的好方法。对于我的mapreduce和ETL脚本,我编写了可靠的单元测试覆盖率,但如果数据本身发生意外的潜在变化(来自多个应用程序系统),代码不一定会抛出明显的错误,这会给我留下我不知道的坏数据/更改的数据。
是否有任何最佳实践可以帮助人们关注潜在数据可能发生的变化?
我们的技术堆栈是AWS EMR、Hive、Postgres和Python。我们对引入像Informatica这样的大型ETL框架并不感兴趣。
您可以根据系统特定的标准创建某种映射文件(可能是xml或其他文件),并在将传入数据放入集群之前或在过程中验证传入数据。不久前,我也遇到过类似的问题,最后我也这样做了。
我不知道它对您的数据和用例有多可行,但它对我们起到了作用。我不得不创建一次xml文件(我知道这很无聊,很乏味,但值得一试),现在每当我得到新文件时,我都会使用这些xml文件来验证数据,然后将其放入集群,以检查数据是否正确(根据定义的标准)。这节省了很多时间和精力,如果我每次获得一些新数据时都必须手动检查所有内容,这将涉及到这些时间和精力。