我使用sqoop作为一种技术,将大量数据从mysql下载到hdfs。有时,我需要用sqoop编写一些特殊的查询来下载数据。我觉得sqoop的一个问题是它实际上是不稳定的。对sqoop进行单元测试绝对没有指导或技术。如果有人使用sqoop进行数据集成。如何测试sqoop应用程序?
vnjpjtjt1#
如果不通过 --query ,可以使用内置 --validate 选项来匹配源表和hdfs中的记录计数。不幸的是,它将在mssql中的大表上失败(记录计数>int容量),因为sqoop不知道 count_big() .
--query
--validate
count_big()
55ooxyrt2#
如果到目前为止还没有针对sqoop的单元测试框架,您可以遵循以下方法1) 安排一个sqoop eval作业,该作业将使用源查询来显示源表的输出。
$ sqoop eval --connect jdbc:mysql://db.example.com/corp \ --query "SELECT * FROM employees LIMIT 10"
2) 在sqoop完成后,运行相应的hive query或hdfsshell命令获取数据或计数。
2条答案
按热度按时间vnjpjtjt1#
如果不通过
--query
,可以使用内置--validate
选项来匹配源表和hdfs中的记录计数。不幸的是,它将在mssql中的大表上失败(记录计数>int容量),因为sqoop不知道count_big()
.55ooxyrt2#
如果到目前为止还没有针对sqoop的单元测试框架,您可以遵循以下方法
1) 安排一个sqoop eval作业,该作业将使用源查询来显示源表的输出。
2) 在sqoop完成后,运行相应的hive query或hdfsshell命令获取数据或计数。