sql脚本对比工具_【新书连载6】机器学习测试—大数据工具实践

86121a1487456004a547d106d580190c.gif

出品 | 51Testing软件测试网

第7章 大数据工具实践

大数据类项目测试验证功能点繁琐,不仅需要关注数据ETL过程流转的正确性,还需要关注ETL过程中数据的质量问题。ETL过程依赖任务调度工具,ETL过程中产生的数据依赖数据质量监控工具,ETL测试依赖集成的大数据测试工具。由此可见,为提高测试效率及保证数据的准确性,从数据生产到业务应用的整个过程都离不开工具平台的支撑。本章将结合我们的项目实践经验,对大数据ETL测试相关的3个工具平台做概要分析。

7.1 大数据测试工具

数据对于任何一个企业来说都是非常重要的,为了保证数据ETL过程的质量及效率,很多公司引入了ETL工具。目前业界ETL工具有很多,几乎所有的巨头软件供应商都推出了自己的ETL工具,另外也有一些开源的ETL工具。常见的ETL工具,主要有以下几款:

1) Datastage:一套专门针对多种源数据处理的集成工具。通过自动化过程将源数据抽取、转换后,输入到数据仓库。

2) Informatica:用于访问和集成几乎任何业务系统、任何格式的数据。数据交付高效,具有高性能、高可扩展性、高可用性的特点。

3) Kettle:一款国外开源的ETL工具,可以在Windows、Linux、Unix上运行。数据抽取高效稳定,纯JAVA编写,提供丰富的SDK,并开放源代码,便于二次开发包装。

4) Talend Data Integration:一个软件集成平台,为数据集成、数据质量保障、数据管理和数据准备提供解决方案。它只有ETL 的作用,所有插件都可以轻松地与大数据生态系统集成。但是它的使用门槛相对较高,对使用的人员的相关技能要求很高。

除此之外,还有Datameer、Clover ETL、Cognos Data Manager、Data Integrator、Data Integration Studio,不再一一详细介绍。

ETL工具虽多,但是针对ETL测试的测试工具在业界却比较少见。为解决公司日常大数据测试中遇到的痛点问题,我们结合实际业务背景需求,开发了一款大数据测试工具 easy_data_test。

7.1.1 大数据测试的痛点

在日常ETL测试过程中会遇到很多问题,主要是Hive SQL类测试的问题,如下:

1) 测试以手动测试为主,缺少自动化工具。

2) 缺少数据质量相关的分析工具。

3) 测试中需要重复编写查询类SQL语句,效率较低。

4) SQL查询耗时太长,严重拖慢测试进度。

5) Shell窗口查询结果不易保存、HUE的查询结果易过期且需要手动操作保存。

6) 数据同步场景及ETL场景下,需要对比源表目标表一致性,缺少对比工具。

7) 实时数据处理场景对数据时效性要求高,测试时场景难以模拟,问题复现困难。

8) 常用测试场景用例编写重复,比如对拉链表测试,MR脚本测试缺少通用的测试覆盖用例。

9) 缺少Hive&HBase一致性对比工具[ HBase与Hive一致性对比背景:在金融风控业务中会存在离线和在线场景。通常,离线数据存储在Hive中,在线数据或特征存储在HBase中,在线和离线共用一套特征计算代码。为了保证模型在线上效果不衰减,与离线训练效果一致,在线离线需要保证数据的一致性。这样相同样本关联得到相同的在线离线数据,再使用一套共用的特征计算代码才能计算生成一致的特征。特征输入进相同的模型,才会得到相同的决策结果。

总的来说,大数据测试存在门槛高,测试效率较低,测试覆盖不全,测试场景不易复现,测试问题难以定位等问题。

7.1.2 大数据测试工具设计

1.模块设计

easy_data_test模块设计图如图7-1所示:

680761c9f93f932946a30411f2b55964.png

图7-1 easy_data_test模块设计图

用户运行easy_data_test工具后,可以通过“./easy_data_test --help”查看所有非交互式命令,使用stdin.readline()来获取用户输入的语句。如果没有指定-f或者-e就会进入交互式命令行模式。进入交互式模式后,程序通过raw_input函数获取用户输入的命令,并根据命令的首个关键字执行对应的函数。函数中封装了一个或多个SQL语句,通过Presto或者pyHive连接Hive执行。部分执行结果展示在终端页面并存储在查询历史命令及结果文件中。部分命令执行完毕后会生成url,通过浏览器可以查看相应命令的执行结果。由图7-1可以看出,不同的首个关键字对应不同的功能模块,通常每个功能模块包含多个执行函数。

... ...

扫码/点击查看独家连载

a6d657a0dd5b8599fb0fcd974cf17709.png

c4cf8e653b8e4281861ec4de2f92e327.gif

d761ccdf5b798c39bc4b7e8b86101326.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值