论文部分内容阅读
ETL(Extraction-Transformation-Loading)数据处理测试框架可以实现对ETL数据处理的模拟过程,通过框架测试结果数据与实际ETL处理结果数据进行对比分析,从单条数据的diff(different)到全部数据量的统计,从而达到全方位的对ETL数据处理过程进行测试的目的。ETL数据处理测试框架可以在不了解框架处理细节的前提下,完成对大数据的全面的、可靠的处理任务,同时在各个产品线进行敏捷开发,并在产品快速迭代的情况下,完成对各个产品线的数据回归。ETL数据处理测试框架运行于Hadoop之上,充分利用了Hadoop框架的分布式文件系统以及并行计算的特点;其将ETL过程抽象划分为不同的阶段,各个阶段又被划分为不同的MapReduce任务,交给Hadoop来调度和运行。为了能够保证使用者更加集中到自己的处理逻辑中,ETL数据处理测试框架实现了一套adapter框架,在该框架中只要通过配置mapping文件以及具体的function就可以实现数据的解析。目前框架能够兼容文本日志和PB日志两种日志格式,支持simple map、union、join三种比较复杂的场景,并且将ETL数据处理流程划分为不同的阶段,可分步运行调试,以达到快速定位问题的目的。通过将处理结果与基础数据进行diff测试,ETL数据处理测试框架将生成测试报告文件,可以直接在hdfs(Hadoop Distributed File System)上进行原生结果的展示,也可以以邮件的形式进行推送,或推送到bashboard。ETL数据处理测试框架的环境可以存在于线下测试环境(tunningbox)中,以及线上测试环境(沙盒模型)中,线下可以进行小数据量的常规测试和大数据量的集中测试,沙盒环境则可以进行回归测试。论文的论述还对ETL数据处理测试框架进行了应用说明和功能测试,大量测试用例证明该框架可实现预期的设计目标,并且可以有效地应用于实际生产。论文最后总结了ETL数据处理测试框架所实现的功能,在实现过程中遇到的问题以及对框架改进的展望。