2

我主要使用所谓的“大数据”工作;ETL 和分析部分。我经常面临的挑战之一就是找到一种“测试我的数据”的好方法。对于我的 mapreduce 和 ETL 脚本,我编写了可靠的单元测试覆盖率,但如果数据本身(来自多个应用程序系统)发生意外的底层变化,代码不一定会引发明显的错误,这会给我留下坏/更改的数据,我不知道。

是否有任何最佳实践可以帮助人们密切关注基础数据可能发生的变化/方式?

我们的技术堆栈是 AWS EMR、Hive、Postgres 和 Python。我们对引入像 Informatica 这样的大型 ETL 框架并不真正感兴趣。

4

1 回答 1

0

您可以根据系统特定的标准创建某种映射文件(可能是 xml 或其他文件),并在将传入数据放入集群之前或在过程本身期间验证传入数据。前段时间我遇到了类似的问题,最终这样做了。

我不知道它对您的数据和用例有多可行,但它对我们有用。我必须创建一次 xml 文件(我知道这很无聊和乏味,但值得一试)现在每当我得到新文件时,我都会使用这些 xml 文件来验证数据,然后再将其放入我的集群以检查数据是否正确与否(根据定义的标准)。如果每次获得一些新数据时都必须手动检查所有内容,这将节省大量时间和精力。

于 2013-08-05T19:39:21.110 回答