有哪些测试数据分析系统和 ETL 流程的方法?

Posted

技术标签:

【中文标题】有哪些测试数据分析系统和 ETL 流程的方法?【英文标题】:What are some methods of testing data analytics systems and ETL processes? 【发布时间】:2013-08-05 19:24:15 【问题描述】:

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

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

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

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

您能否举例说明您在映射文件中所做的一些检查? 字段数、数据类型、值范围(因为某些值必须在特定范围内)等等。

以上是关于有哪些测试数据分析系统和 ETL 流程的方法?的主要内容,如果未能解决你的问题,请参考以下文章

ETL流程概述及常用实现方法

常用的etl工具都有哪些

产品设计认知:如何构建A/B测试系统,其核心功能有哪些?

我应该如何执行 SQL ETL 脚本和 SPROC 的自动化测试?

解答如何保障ETL过程的数据正确性。这个过程会产生哪些问题?

开源ETL工具比较,Kettle和Talend,都有啥优势和劣势